APB/AHB/AXI总线介绍:
APB/AHB/AXI均属于AMBA (Advanced Microcontroller Bus Architecture),常用于
SoC设计中,全称叫作高级微控制器总线架构,它是由ARM公司研发推出的高性能片上总线协议。
AMBA 1.0还包含ASB和APB(ASB (Advanced System Bus) 高级系统总线APB (Advanced Peripheral Bus) 高级外围总线)。
APB (Advanced Peripheral Bus)
,全称叫作高级外围总线。主要用在低速且低功率的外围,可针对外围设备作功率消耗及复杂接口的最佳化。APB在AHB和低带宽的外围设备之间提供了通信的桥梁,所以APB是AHB或ASB的二级拓展总线。主要应用在低带宽的外设上,如UART、 I2C,它的架构不像AHB总线是多主设备的架构,APB总线的唯一主设备是APB桥(与AXI或APB相连),因此不需要仲裁一些Request/grant信号。APB的协议也十分简单,甚至不是流水的操作,固定两个时钟周期完成一次读或写的操作。其特性包括:两个时钟周期传输,无需等待周期和回应信号,控制逻辑简单,只有四个控制信号。
AHB (Advanced High-performance Bus)
,全称叫作高级高性能总线。AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内部的高速RAM、NAND FLASH、DMA、Bridge的连接,AHB总线由主设备Master、从设备Slave,内部包括仲裁器,译码器,数据多路和地址控制多路组成。
AXI(Advanced eXtensible Interface)
,全称叫作高级可扩展接口,是一种总线协议,该协议是ARM公司提出的AMBA3.0中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。高速度、高带宽,管道化互联,单向通道,只需要首地址,读写并行,支持乱序,支持非对齐操作,有效支持初始延迟较高的外设,连线非常多。 适合高带宽低延时设计,无需复杂的桥就实现高频操作,向下兼容已有的AHB和APB接口。
三者特点总结:
APB、AHB、AXI速度依次提高
APB最大总线带宽32、AHB最大总线宽度256、AXI最大总线宽度为1024;
AXI传输速度快,5个通道相互独立(读地址通道、读数据通道、写地址通道、写数据通道、写响应通道),且支持outstanding乱序传输,AHB只有三个通道;
AXI支持读写并行操作,其他两个不支持;
AXI和AHB支持多主/从设备,且有仲裁机制,而APB则不支持。
应用和理解:
据自己了解到的,像一些arm芯片平台的设计都会用到此三个总线,比如pcie,usb,sd,spi当总线等。 猜测ARM公司设计好CPU核后把这些总线结口开放出来,然后授权给各大半导体厂商,这些厂商再利用自身的优势设计出各个外围模块挂结到这些总线上,最终做成一个CPU。
比如自己对PCIE 模块的一个理解:
再比如SPI:
其中dma模式开启时,dma可直接与dram交互通信。
AHB总线连接:
主接口框图:
每一次的数据传送可分成四种型态,M 用 HTRANS[1:0] 信号来决定此次传送数据的型态,这四种传送型态分别是 IDLE、BUSY、NONSEQ 和 SEQ。
当 M 传送的数据型态为 IDLE 时,表示 M 这时候想要拥有总线的使用权,但并不需要作数据的传送,此时的 S 必须立即作出 OKAY 的响应;
第二种数据传送型态为 BUSY,当 M 进行一连续笔数据传递期间,若有些数据无法实时在下一个周期作传送,此时 M 会发出 BUSY 信号来延迟此笔数据的传送,S 这时候也会响应一个和 IDLE 传送型态一样的 OKAY 信号,同时忽略这笔数据的传递;
另一种传送型态为 NONSEQ,NONSEQ 的传送型态表示此次的传送为单笔数据传送或一连续笔数据传送中的第一笔,因此这种的传送型态,数据的地址和控制信号跟前一笔数据不具有关联性;
最后一种数据传送型态为 SEQ,在一连续笔数据的传递中,除了第一笔数据之外,其它的数据传递型态为 SEQ (第一笔为 NONSEQ),这种数据传递的控制信号和前一笔相同,而数据的地址则为前一笔数据地址加上由 HBURST[2:0]和 HSIZE[2:0] 信号所决定出的地址累加值
从接口框图:
AHB总线互连(中间还有仲裁器arbiter):
AHB总线协议时序
AHB总线协议的时序包括传输请求阶段、传输数据阶段和传输结束阶段三个阶段。
传输请求阶段
传输请求阶段包括主设备发送传输请求(HTRANS)和传输类型(HSEL)信号,从设备响应传输请求(HREADY)和传输状态(HRESP)信号等时序。
传输数据阶段
传输数据阶段包括主设备发送传输数据(HWDATA)和传输字节掩码(HWRITE)信号,从设备接收传输数据(HRDATA)和传输字节掩码(HRESP)信号等时序。
传输结束阶段
传输结束阶段包括主设备发送传输结束(HMASTLOCK)信号,从设备响应传输结束(HREADY)信号等时序