本文共 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信号拉高才能读写数据
AHB transfer传输: 将上图的Control信号展开为HTRANS信号和HBURST信号。HBURST设置为INCR,即地址连续增长。NONSEQ指的是连续发送数据中的第一个数据,而SEQ指的是传输过程里面的数据。BUSY指的是虽然准备发送数据,而且是在发送数据过程里面,但是还没有准备好当前的这个数据,所以要等待下一拍才发送数据,因此就出现了两次0x24这个地址。
AHB burst传输: 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/