AMBA总线协议(1)——概述

news2024/12/23 18:09:10

目录

一、AMBA总线简介

二、基于AMBA 的典型微控制器

 三、AHB介绍

1、概述

2、典型结构

(1) AHB 主机(AHB Master)

(2)AHB 从机(AHB Slave)

(3)AHB 仲裁器(AHB Arbiter)

(4)AHB 译码器(AHB Decoder)

四、APB介绍

1、概述

2、典型结构

五、AXI介绍

1、概述

2、AXI接口的三种类型

3、AXI的工作方式

4、握手机制

六、小结 

一、AMBA总线简介

        Arm高级微控制器总线架构(Advanced Microcontroller Bus Architecture,AMBA)是一种开放式标准片上互联规范,用于连接和管理片上系统(System on Chip,Soc)中的功能块。

        AMBA是一种广泛用于Soc设计的架构,可在芯片总线中找到。AMBA规范标准用于设计高级嵌入式微控制器。AMBA的主要目的是提供技术独立性并鼓励模块化系统设计。更进一步说,它强烈鼓励开发可重复使用的外设,同时最大限度地减少硅基础设备。

        简而言之,它是鼓励每个人用来在其芯片中将块连接在一起的接口。

        下表有AMBA的7个主要的接口及其相关说明

接口名字功能相关处理器
高级系统总线(ASB)现在过时了,不用管——
高级外设总线(APB)简单,容易,用于外设——
高级高性能总线(AHB)在Cortex-M设计中用得很多Cortex-M系列
高级可拓展接口(AXI)最普遍,现在到了AXI4Cortex-A、Cortex-R
高级跟踪总线(ATB)用于在芯片周围移动跟踪数据——
AXI一致性拓展(ACE)用于智能手机,平板电脑等的big.LITTLE系统Cortex-A15、Cortex-A17、Cortex-A7
相关集线器接口(CHI)最高性能,用于网络与服务器Cortex-A72、Cortex-A57、Cortex-A53

        这里我们主要关注的是APB,AHB和AXI接口。

二、基于AMBA 的典型微控制器

        基于AMBA的微控制器典型地由一个高性能系统中枢总线(AMBA AHB或者AMBA ASB)组成,能够支持外部存储器带宽,包括CPU,片上存储器和其他直接数据存取(DMA)设备。这条总线为上述单元之间大多数的传输提供高带宽接口。在这条高性能总线上也有一个桥接器以连接低带宽的APB,而在APB上连接着大多数的系统外设 。AMBA APB 作为主总线高性能通道的二级总线,提供基本外设宏单元之间的通信接口。

 三、AHB介绍

1、概述

        AHB是高性能高时钟频率的系统模块,是系统的主干,它直接链接了CPU,片上内存,DMA和外部内存接口。AHB分为主和从两端,它支持多个主的链接,例如CPUDSPDMA等,并能进行高带宽的操作。

        AHB 总线可以包含多个主设备: 通常有 CPU,测试接口,DMA 或者 DSP

        AHB 的从设备通常包括:外挂内存接口,APB 桥,内部 RAM。其它一些外围设备通常也能作为从设备。但是低带宽的外围设备通常挂在 APB 上。

2、典型结构

        典型的 AMBA AHB 系统设计包含以下的成分:

(1) AHB 主机(AHB Master

        总线主机能够通过提供地址和控制信息发起读写操作。任何时候只允许一个总线主机处于有效状态并能使用总线。

(2)AHB 从机(AHB Slave

        总线从机在给定的地址空间范围内响应读写操作。总线从机将成功、失败或者等待数据传输的信号返回给有效的主机。

(3)AHB 仲裁器(AHB Arbiter

        总线仲裁器确保每次只有一个总线主机被允许发起数据传输。即使仲裁协议已经固定,任何一种仲裁算法,比如最高优先级或者公平访问都能够根据应用要求而得到执行。 AHB 必须只包含一个仲裁器,尽管在单总线主机系统中这显得并不重要。

(4)AHB 译码器(AHB Decoder

        AHB 译码器用来对每次传输进行地址译码并且在传输中包含一个从机选择信号.所有 AHB 执行都必须仅要求有一个中央译码器。

四、APB介绍

1、概述

        AMBA APB 表现为一个局部二级总线,封装为 AHB 或者 ASB 的一个外设。作为 AMBA 总线的一层,APB 总线是为了功耗最小化和减低接口复杂度而设计的。APB 总线应该用于低带宽和不需要高性能流水线总线接口的外设。APB 总线上的所有信号都在正时钟沿发生变化,这个特性决定了 APB 可以更容易地整合到各种设计流程里。

2、典型结构

        典型的 AMBA APB 工具包含单个 APB 桥,需要它来将 AHB 或者 ASB 传输转变成适合于 APB 从设备的形式。APB 桥提供所有地址、数据和控制信号的锁存,也提供一个二级译码以产生 APB 外设的从机选择信号。所有 APB 模块均是 APB 从机。

五、AXI介绍

1、概述

        AXI(高级可扩展接口),是ARM AMBA的一部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。AXI 是 AMBA 中一个新的高性能协议。AXI 技术丰富了现有的 AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。

2、AXI接口的三种类型

(1)AXI4(AXI4-Full):用于高性能的存储映射需求
(2)AXI4-Lite:简化版的AXI4接口,用于低吞吐率存储映射的通信
(3)AXI4-Stream(ST):用于高速的流数据通信

3、AXI的工作方式

AXI4和AXI4-Lite包含5个独立的通道:

        (1)读地址通道

        (2)读数据通道

        (3)写地址通道

        (4)写数据通道

        (5)写响应通道

        每一个独立的通道都包含一组信息信号:VALID信号和READY信号,用于提供双向的握手机制。

        信息的源端使用VALID信号表示当前通道地址、数据和控制信息什么什么时候有效,目的端使用READY信号表示什么时候可以接受信息,读数据通道和写数据通道都包含一个LAST信号,用来表示传输的最后一个数据。

        读数据通道和写数据通道都包含各自的地址通道,地址通道携带了请求所需的地址和信息。

        读数据通道由从机发送给主机,包含了读数据和读响应的信息,读响应的信号用于表示读数据是否操作完成。

        写数据通道由主机发送给从机,包含了写数据,然后通过WSTRB信号表示当前数据的哪个字节有效。

        写响应通道由从机发送给主机,包含了写响应信号,用于表示当前写操作是否完成。

4、握手机制

  • 所有的五个通道都是通过相同的VALID/READY握手处理来传输地址、数据和控制信息
  • 双向握手的机制意味着主机和从机之间传输数据时,都可以控制传输的速率
  • 只有当VALID和READY同时为高电平时,传输才会发生

六、小结 

        本文是对于AMBA总线的一个简单概述,我们主要关注的是其中的AHB,APB,AXI协议,很多概念在本文中只是简单的涉及,没有进行具体展开,所有读者可能有些部分无法理解,这是正常的,随着学习的深入我们会对于细节逐渐展开,在这里我们首先要明确AHB是高性能总线,用于CPU等高性能系统,APB可以理解成AHB的一个外设,作为局部二级总线存在。AXI经常用于外设的拓展使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/905061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基础论文学习(1)——ViT

https://zhuanlan.zhihu.com/p/308301901 1 图片分块和降维 因为transformer encoder的输入需要序列,所以最简单做法就是把图片切分为patch,然后拉成序列即可。 假设输入图片大小是256x256,打算分成64个patch,每个patch是32x32…

[MySQL]02关于事务的解析

目录 原子性 一致性 持久性 隔离性 事务隔离级别 并发执行可能存在问题 脏读问题 不可重复读 幻读 难点解析 原子性 事务最核心的就是原子性 以前人们认为原子不可再分,用原子性来表示一个事务不可分割 update account set balancebalance-500 where nam…

Go语言入门指南:基础语法和常用特性(下)

上一节,我们了解Go语言特性以及第一个Go语言程序——Hello World,这一节就让我们更深入的了解一下Go语言的**基础语法**吧! 一、行分隔符 在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ;…

MySQL基础篇(二)

DML 定义:Data Manipulation Language、数据操作语言(增删改) 添加数据(INSERT)修改数据(UPDATE)删除数据(DELETE) 添加数据(INSERT) 给指定的…

day0818

1. #include <myhead.h> int file_len(const char*strfile, const char*dstfile); void file_copy(const char* strfile, const char* dstfile, int start, int size); int main(int argc, const char *argv[]) {//判断是否传入两个文件if(argc!3){printf("input fi…

最新消息:谷歌将在Chromebook上运用UWB技术,无线通信更上一层

超宽带&#xff08;UWB&#xff09;技术是一种创新的短距离无线通信技术&#xff0c;具有高速数据传输和精确定位物体位置的优势。尽管该技术已经存在一段时间&#xff0c;但最近开始广泛应用于各种设备中。据最新报道&#xff0c;Pixel Watch 2可能会搭载UWB模块&#xff0c;这…

VSCode之C++ SQLite3 SmartDB实现

背景 承接上篇VSCode配置之C & SQLite3极简配置方案&#xff0c;参考《深入应用C11: 代码优化与工程级应用》&#xff0c;基于VSCodeCmake无痛实现SmartDB。 GitHub路径&#xff1a; smartDB_tutorial 结果展示 主要变化(与SmartDB1.3相比&#xff09; 1&#xff09;使用…

【【萌新的STM32学习-11】】

萌新的STM32学习-11 终于进入了正点原子的入门篇进行一些简单的设计 GPIO General Purpose Input Output 通用输入输出端口 简称GPIO 作用 &#xff1a;负责采集外部器件的信息或者控制外部器件工作&#xff0c;即输入输出 GPIO 的特点 1&#xff0c;不同型号&#xff0c;IO数…

HTML浪漫动态表白代码+音乐(附源码)(二)

一. 前言 七夕马上就要到了&#xff0c;为了帮助大家高效表白&#xff0c;下面再给大家加几款实用的HTML浪漫表白代码(附源码)背景音乐&#xff0c;可用于520&#xff0c;情人节&#xff0c;生日&#xff0c;求爱表白等场景&#xff0c;可直接使用。 来吧&#xff0c;展示&am…

第 7 章 排序算法(3)(选择排序)

7.6选择排序 7.6.1基本介绍 选择式排序也属于内部排序法&#xff0c;是从欲排序的数据中&#xff0c;按指定的规则选出某一元素&#xff0c;再依规定交换位置后达到排序的目的。 7.6.2选择排序思想: 选择排序&#xff08;select sorting&#xff09;也是一种简单的排序方法…

13.PV和PVC

文章目录 PV和PVC概念定义PV定义PVC创建静态PV和PVC创建动态PV和PVCNFS配置创建 Service Account和角色创建存储卷插件创建 StorageClass创建PVC创建pod 总结 PV和PVC 概念 PV 全称叫做 Persistent Volume&#xff0c;持久化存储卷。它是用来描述或者说用来定义一个存储卷的&…

1593页54万字电力行业数字化转型智慧电力云平台整体解决方案WORD

导读&#xff1a;原文《1593页54万字电力行业数字化转型智慧电力一体化监管云平台整体解决方案WORD》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 南方电网一体化…

基于Pytorch实现的声纹识别系统

前言 本项目使用了EcapaTdnn、ResNetSE、ERes2Net、CAM等多种先进的声纹识别模型&#xff0c;不排除以后会支持更多模型&#xff0c;同时本项目也支持了MelSpectrogram、Spectrogram、MFCC、Fbank等多种数据预处理方法&#xff0c;使用了ArcFace Loss&#xff0c;ArcFace loss…

TCP协议报文结构

TCP是什么 TCP&#xff08;传输控制协议&#xff09;是一种面向连接的、可靠的、全双工的传输协议。它使用头部&#xff08;Header&#xff09;和数据&#xff08;Data&#xff09;来组织数据包&#xff0c;确保数据的可靠传输和按序传递。 TCP协议报文结构 下面详细阐述TCP…

SSH远程直连--------------Docker容器

文章目录 1. 下载docker镜像2. 安装ssh服务3. 本地局域网测试4. 安装cpolar5. 配置公网访问地址6. SSH公网远程连接测试7.固定连接公网地址8. SSH固定地址连接测试 在某些特殊需求下,我们想ssh直接远程连接docker 容器,下面我们介绍结合cpolar工具实现ssh远程直接连接docker容器…

excel 动态表头与合并列

零、希望Springboot-java导出excel文件&#xff0c;包括动态表头与下边合并的列 使用 org.apache.poi 与自己封装工具类实现相关功能。代码如下 一、代码 1、依赖 implementation(group: org.apache.poi,name: poi-ooxml,version: 4.1.0)implementation(group: org.apache.po…

【Docker】存储卷Volume

Docker Volume概念 什么是存储卷 存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立绑定关系。这就意味着&#xff0c;当我们在容器中的这个目录下写入数据时&#xff0c;容器会将其内容直接写入到宿主机上与此容器建立了绑定关系的…

1139. 最大的以 1 为边界的正方形;2087. 网格图中机器人回家的最小代价;1145. 二叉树着色游戏

1139. 最大的以 1 为边界的正方形 核心思想&#xff1a;枚举正方向的右下角坐标&#xff08;i&#xff0c;j&#xff09;&#xff0c;然后你只需要判断四条边的连续一的最小个数即可&#xff0c;这里是边求连续一的个数同时求解结果。 087. 网格图中机器人回家的最小代价 核心…

PHP自己的框架实现操作成功失败跳转(完善篇四)

1、实现效果&#xff0c;操作成功后失败成功自动跳转 2、创建操作成功失败跳转方法CrlBase.php /**成功后跳转*跳转地址$url* 跳转显示信息$msg* 等待时间$wait* 是否自动跳转$jump*/protected function ok($urlNULL,$msg操作成功,$wait3,$jump1){$code1;include KJ_CORE./tp…

FPGA原理与结构——可配置逻辑块CLB(Configurable Logic Block)

一、什么是CLB 1、CLB简介 可配置逻辑块CLB&#xff08;Configurable Logic Block&#xff09;是xilinx系类FPGA的基本逻辑单元&#xff08;在各系列中CLB可能有所不同&#xff0c;以下我们主要讨论Xilinx 7系类&#xff09;&#xff0c;是实现时序逻辑电路和组合逻辑电…