本文共 2073 字,大约阅读时间需要 6 分钟。
AMBA高级处理器总线架构,不同的速率需求构成了为高性能SoC设计的通信标准:
AHB
AHB主要是针对高效率、高频宽以及快速系统模块所设计的总线,它可以连接如微处理器、芯片上或者芯片外的内存模块和DMA等高效率模块。APB
APB主要用在低速且低功率的外围,可针对外围设备作功率消耗以及复杂接口的最佳化。APB在AHB和低带宽的外围设备之间提供了通信的桥梁,所以APB是AHB的二级拓展总线。AXI
AXI高速度、高带宽,管道化互联,单向通道,只需要首地址,读写并行,支持乱序,支持非对齐操作,有效支持初始延迟较高的外设,连线非常多。HADDR
:32位系统地址总线。HTRANS
:M指示传输状态,NONSEQ、SEQ、IDLE、BUSY。HWRITE
:传输方向1-写,0-读。HSIZE
:传输单位。HBURST
:传输的burst类型,SINGLE、INCR、WRAP4、INCR4。HWDATA
:写数据总线,从M写到S。HREADY
:S应答M是否读写操作传输完成,1-传输完成,0-需延长传输周期。HRESP
:S应答当前传输状态,OKAY、ERROR、RETRY、SPLIT。HRDATA
:读数据总线,从S读到M。HREADY
信号决定需要几个周期。等待传输状态:
HREADY
信号拉高才能读写数据
将上图的Control
信号展开为HTRANS
信号和HBURST
信号。HBURST
设置为INCR
,即地址连续增长。NONSEQ
指的是连续发送数据中的第一个数据,而SEQ
指的是传输过程里面的数据。BUSY
指的是虽然准备发送数据,而且是在发送数据过程里面,但是还没有准备好当前的这个数据,所以要等待下一拍才发送数据,因此就出现了两次0x24这个地址。
HBURST
信号设置为INCR4
,表示连续发送4个数据。
APB时序协议的状态机
IDLE
状态,此时没有传输操作,也没有选中任何从模块。当有传输要进行时,PSELx=1,PENABLE=0
,系统进入SETUP
状态,并只会在SETUP
状态停留一个周期。当PCLK
的下一个上升沿到来时,系统进入ENABLE
状态。系统进入ENABLE
状态时,维持之前在SETUP
状态的PADDR
、PSEL
、PWRITE
不变,并将PENABLE
置为1。传输也只会在ENABLE
状态维持一个周期,在经过SETUP
与ENABLE
状态之后就已完成。之后如果没有传输要进行,就进入IDLE
状态等待,如果有连续的传输,则进入SETUP
状态。 SETUP
周期。PENABLE
信号线置起,这表示ENABLE
周期。ENABLE
周期,地址线、数据线和控制线都应该保持有效。ENABLE
周期结束后,本次写操作结束。PENABLE
在写操作周期结束后,会同PSEL
一同拉低,除非又需要立即跟随下一次传输。ENABLE
周期内,返回PRDATA
。PRDATA
将在ENABLE
周期的下一个周期被采样。转载地址:http://zjpi.baihongyu.com/