锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

深度解读AMBA、AHB、APB、AXI总线

时间:2023-09-25 15:37:02 asb集成电路ic

什么是AMBA?

如今,集成电路芯片的规模越来越大。IC从时间驱动的设计方法到IP复用设计方法SoC广泛应用于设计中。IP复用的SoC电影总线设计是设计中最关键的问题。
因此,影片上有很多总线标准,AMBA其中之一。

AMBA(Advanced Microcontroller Bus Architecture),主要用于开放协议的开放协议SoC内部和ASIC,用于连接各种功能模块。简称AMBA总线,最早由ARM设计推出。AMBA它是一种相对广泛使用的电影总线技术,已成为一种流行的工业标准电影结构,现在不仅仅是ARM专有的。

AMBA总线可以将RISC其他处理器集成IP芯核与外设有效连接IP核的数字胶ARM重复使用策略的重要组成部分。它不是芯片与外设之间的接口,而是芯片上其他部件的核心接口。

首先,让我们按照它的发布版本来认识一下它。

AMBA版本1规范定义:ASB( Advanced System Bus)与 APB(Advanced Peripheral Bus);

AMBA版本2规范定义:AHB(Advanced High-performance Bus)、ASB( Advanced System Bus)与 APB(Advanced Peripheral Bus);

AMBA版本3规范定义:AXI v1.0(Advanced Extensible Interface)、AHB-Lite v1.0(Advanced High-performance Bus Lite)、 APB v1.0(Advanced Peripheral Bus)与ATB v1.0(Advanced Trace Bus);

AMBA版本4规范定义:ACE(AXI Coherency Extensions)、ACE-Lite(AXI Coherency Extensions Lite)、AXI4(Advanced Extensible Interface 4) 、AXI4-Lite(Advanced Extensible Interface 4 Lite)、AXI4-Stream v1.0(Advanced Extensible Interface 4 Stream)、APB v2.0(Advanced Peripheral Bus)与ATB v1.1(Advanced Trace Bus);

它们有什么区别?让我们依次介绍它们。

AHB (Advanced High-performance Bus) 高级高性能总线

APB (Advanced Peripheral Bus) 高级外设总线

ASB (Advanced System Bus) 高级系统总线

AXI (Advanced eXtensible Interface) 高级可扩展接口

其中AXI是在AMBA3.可用于0协议中的增加ARM和FPGA剩下的三个是高速数据交互AMBA2.0协议中定义的总线标准。

AHB介绍

AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接作为SoC系统总线包括以下特点:单时钟边缘操作、非三态实现、支持突发传输、分段传输、多个主控制器、32位~128位总线宽度;支持字节、半字节和单词的传输。

AHB 系统由主模块、模块和基础设施组成(Infrastructure)三部分组成,整个AHB主模块发出总线传输,由模块响应。仲裁器采用基础结构(arbiter)、从模块到主模块的多路器,从模块到主模块的多路器,译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。如下图所示如下图所示。

AHB的组成

Master(主控制器):能同时启动读写操作,提供地址和控制信号Master会被激活。

Slave(从设备):在给定的地址范围内响应读写操作,并响应Master回到成功、失败或等待状态。

Arbiter(仲裁器):负责保证总线只有一次Master在工作中。规定仲裁协议,但仲裁算法可根据应用程序决定。

Decoder(译码器):负责解码地址,并向每个人提供片选信号Slave。

AHB基本信号

HADDR:系统地址总线32位;

HTRANS:M指示传输状态,NONSEQ、SEQ、IDLE、BUSY;

HWRITE:传输方向1-写,0-读;

HSIZE:传输单位;

HBURST:传输的burst类型;

HWDATA:写数据总线,从M到MS;

HREADY:S应答M是否读写操作传输完成,1-传输完成,0-传输周期需要延长。需要注意的是,HREADY作为总线上的信号,它是M和S输入;同时,每个S输出HREADY。所以会有两个SHREADY信号,一个来自总线的输入,一个来自多路器的输出;

HRESP:S响应当前的传输状态,OKAY、ERROR、RETRY、SPLIT;

HRDATA:读数据总线,从S读到M;

AHB基本传输

两个阶段

地址周期(AP),只有一个cycle

数据周期(DP),由HREADY需要几个信号来决定cycle

流水线传送

首先是地址周期,然后是数据周期

AHB突发传输与AXI突发传输的特点

AHB协议需要一次突然传输的所有地址,地址与数据定对应关系,后一次突然传输必须在前一次传输完成后才能进行;

AXI只需要一个突然的第一个地址,多个突然的第一个地址可以连续发送,而无需等待前一个突然的传输完成,多个数据可以交错传输,大大提高了总线的利用率;

AHB总线与AXI总线适用于高性能、高带宽SoC系统,但AXI它具有更好的灵活性,可以并行发送读写通道,不相互影响;更重要的是,AXI总线支持乱序传输,能有效利用总线带宽平衡内部系统。因此SoC均在系统中AXI主线为主线,通过桥连接AHB总线与APB这样可以增加总线SoC系统的灵活性使不同的特征更加合理IP分配到总线。

APB介绍

APB主要用于低带宽外围设备之间的连接,如UART、1284等,其总线架构不同AHB在APB里面唯一的主模块是APB 桥。

APB总线协议包括一个APB桥,用来将AHB,ASB总线上的控制信号转换为APB信号可用于设备控制器。APB总线上的所有外设都来自设备,具有以下特点:

a 接收有效地址并控制访问

b 当APB当外设处于非活动状态时,这些外设可以处于0功耗状态

c 通过选择通信号,译码器可以提供输出时序(非锁定接口)

d 可执行数据写入访问时

其特点包括:两个时钟周期传输;无需等待周期和响应信号;控制逻辑简单,只有四个控制信号。APB上传输可以用下图所示的状态图来解释。

1.系统初始化IDLE状态,此时没有传输操作,也没有从模块中选择任何。

2.当需要传输时,PSELx=1,,PENABLE=0,系统进入SETUP状态,只会在SETUP状态停留一个周期。PCLK当下一个上升沿到来时,系统进入ENABLE状态。

3、系统进入ENABLE状态时,保持以前的状态SETUP状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。只有传输ENABLE状态维持一个周期,经过SETUP与ENABLE状态完成后。之后,如果没有传输,则进入IDLE状态等待;如有连续传输,则进入SETUP状态。

APB读写传输

在传输过程中,psel在此期间,两个周期保持不变,paddr、pwrite也保持不变,penable在psel有效的第二个周期是有效的。为了降低功耗,在下一次传输之前,地址信号和信号将不会改变,直到下一次传输发生。该协议只要求使能量信号有一个规则的跳跃,在背靠背传输的情况下,选择和写信号可能会有一个小的跳跃。

读传输时,每个信号的时间顺序与写作时间相同。在读传输中,从机必须在ENABLE数据在周期中提供ENABLE时钟末端沿采样上升。

ASB介绍

AMBA2.0 规范中的ASB总线适用于连接高性能系统模块。它的读写数据总线采用相同的双向数据总线,可以高速使用,不必要AHB 作为系统总线,总线的场合可以支持处理器、片上存储器和片外处理器的接口以及与低功耗外宏单元的连接。

ASB支持高性能处理器、片上内存、片外内存提供接口和慢速外设。高性能、数据传输、多总线主控制器、突发连续传输。ASB总线是位于APB高性能总线协议采用总线架构,具有以下特点:

a 突发连续传输

b 单管数据传输

c 多总线主控制器

AXI介绍

AXI是总线协议,是总线协议ARM公司提出的AMBA3.0中最重要的部分是面向高性能、高带宽、低延迟的电影总线。AMBA4.修改升级为0AXI4.0。

AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream。

AXI4.0-lite是AXI简化版,ACE4.0 是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司共同提出,主要用于FPGA以数据为主导的大量数据传输应用。

AXI协议是基于burst的传输,并且定义了5个独立的传输通道:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道。

地址通道携带控制信息来描述传输的数据属性;数据传输使用写作通道master到slave的传输,slave使用写响应通道完成一次写传输;读通道用来实现数据从slave到master的传输。

由若干master设备和slave设备通过一些形式的interconnect组成的典型的系统如下图所示,AXI总线即可作为其中的Interface,实现数据通信。

AXI的性能

AXI总线是一种多通道传输总线,将地址、读数据、写数据、握手信号在不同的通道中发送,不同的访问之间顺序可以打乱,用BUSID来表示各个访问的归属。主设备在没有得到返回数据的情况下可发出多个读写操作。读回的数据顺序可以被打乱,同时还支持非对齐数据访问。

AXI总线还定义了在进出低功耗节电模式前后的握手协议。规定如何通知进入低功耗模式,何时关断时钟,何时开启时钟,如何退出低功耗模式。这使得所有IP在进行功耗控制的设计时,有据可依,容易集成在统一的系统中。

AXI的特点

单向通道体系结构-信息流只以单方向传输,简化时钟域间的桥接,减少门数量。当信号经过复杂的片上系统时,减少延时。

支持多项数据交换-通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。

独立的地址和数据通道-地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。

增强的灵活性-AXI技术拥有对称的主从接口,无论在点对点或在多层系统中,都能十分方便地使用AXI技术。

AXI读写数据

写入数据

1、master通过写地址通道发出写入请求;

2、master通过写数据通道发送写入的数据;

3、slave在完成写入动作后(写数据通道last),通过写响应通道发回确认信息。

读取数据

1、master通过读地址通道发出读取请求;

2、slave通过读数据通道将读取的数据传给master。

握手过程

5个传输通道均使用VALID/READY信号对传输过程的地址、数据、控制信号进行握手。使用双向握手机制,传输仅仅发生在VALID、READY同时有效的时候。

通道顺序

AXI协议要求通道间满足如下关系:

-写响应必须跟随最后一次burst的的写传输

-读数据必须跟随数据对应的地址

-通道握手信号需要确认一些依赖关系

通道握手信号的依赖关系

为防止死锁,通道握手信号需要遵循一定的依赖关系。

1、VALID信号不能依赖READY信号。

2、AXI接口可以等到检测到VALID才断言对应的READY,也可以检测到VALID之前就断言READY。

单箭头指向的信号能在箭头起点信号之前或之后断言;双箭头指向的信号必须在箭头起点信号断言之后断言。

突发传输机制

突发传输,一般也称为数据突发,其在通信领域中一般指在短时间内进行相对高带宽的数据传输。

AXI 总线中的突发传输(Burst Transaction)是指,在地址总线上进行一次地址传输后,进行多次数据传输。第一次地址传输中的地址作为起始地址,根据突发传输类型的不同,后续数据的存储地址在起始地址的基础上递增(INCR 模式);或者首先递增,到达上限地址后回到起始地址,继续递增(WRAP 模式);又或者后续数据都将不断写入起始地址,刷新起始地址上的数据。(FIXED 模式)

突发传输的流程

a.主机在读/写地址通道写入起始地址(AxADDR)以及突发传输的长度(AxLEN)、宽度(AxSIZE)、类型(AxBURST)等信息;

b.从机将在起始地址开始,依次接收主机传输的写数据,或者读取连续地址上的数据,作为读数据传输给主机。

突发传输长度

突发传输长度(burst length),指一次突发传输中包含的数据传输(transfer)数量,在协议中使用AxLEN信号控制(AWLEN和ARLEN)。

突发传输长度在不同的模式下有一些限制,包括:

a.对于WRAP模式,突发传输长度仅能为2,4,8,16

b.在一次突发传输中,地址不能跨越4KB地址边界

c.一次突发传输不能在完成所有数据传输前提前结束

突发传输宽度

突发传输宽度(burst size),指传输中的数据位宽,具体地,是每周期传输数据的字节数量,在协议中使用AxSIZE信号控制(AWSIZE和ARSIZE)。

突发传输数据宽度不能超过数据总线本身的位宽。而当数据总线位宽大于突发传输宽度时,将根据协议的相关规定,将数据在部分数据线上传输。

突发传输类型

突发传输类型(burst type),类型共有 3 种,分别为 FIXED,INCR 以及 WRAP。使用 2 位二进制表示,在协议中使用 AxBURST信号控制(AWBURST和ARBURST)。

FIXED:突发传输过程中地址固定,用于FIFO访问。

INCR:增量突发,传输过程中,地址递增。增加量取决AxSIZE的值。

WRAP:回环突发,和增量突发类似,但会在特定高地址的边界处回到低地址处。回环突发的长度只能是2,4,8,16次传输,传输首地址和每次传输的大小对齐。最低的地址整个传输的数据大小对齐。回环边界等于(AxSIZE*AxLEN)。

AHB、AXI、APB的区别与联系

AHB:主要是针对高效率、高频宽及快速系统模块所设计的总线,它可以连接如微处理器、芯片上或芯片外的内存模块和DMA等高效率模块。

APB:主要用在低速且低功率的外围,可针对外围设备作功率消耗及复杂接口的最佳化。APB在AHB和低带宽的外围设备之间提供了通信的桥梁,所以APB是AHB或ASB的二级拓展总线。

AXI:高速度、高带宽,管道化互联,单向通道,只需要首地址,读写并行,支持乱序,支持非对齐操作,有效支持初始延迟较高的外设,连线非常多。

AMBA的应用

大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。

另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。

虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。其主要功能是锁存来自AHB系统总线的地址、数据和控制信号,并提供二级译码以产生APB外围设备的选择信号,从而实现AHB协议到APB协议的转换。

AMBA AHB循环级建模标准是完全公开和免费的。

AMBA总线的仲裁

如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。

而对于AMBA总线仲裁的相关应用,我们来看一个实例,有关于对应的优先顺序的设置:

即,对应的ARB寄存器,可以设置,AHB总线上面的数据的优先级

ARMI:ARM的指令

ARMD:ARM的数据

DMAC:DMA控制器

BRIDGE:AHB/APB 桥(Bridge)

可以通过配置,决定他们的优先级顺序。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章