APB(Advance Peripheral Bus)是AMBA总线的一部分,从1998年第一版至今共有3个版本。
AMBA 2 APB Specfication:定义最基本的信号interface, 读写transfer, APB bridge, APB slave.
AMBA 3 APB:增加定义信号PREADY, PSLVERR来完成对wait state和Error reporting的功能。
AMBA 4 APB:增加定义信号PPROT, PSTRB来支持secure, supervisor和sparse data transfer的功能。
APB总线中的信号:
PSELx:由APB bridge产生的信号,针对每一个peripheral bus slave,表示一个slave 是被选中的,有transfer需要传输。
PENABLE:在一个transfer的second and subsequent cycles有效。
PSTRB:只能在写操作中用来指示byte lanes,在读操作中全为1。
PREADY:由slave产生,来extend an APB transfer,结束前一时钟有效,表示下一时钟transfer结束。
PSLVERR:APB transfer的最后一个cycle有效,当PSEL, PENABLE, PREADY同时有效时。
当需要bridge时,PSLVERR可以与AXI总线中的BRESP[1],AHB总线中的HRESP[0]连接一起。
PPROT:分别表示Normal or privileged, Secure or non_secure, Data or Instruction。
在APB总线中分别有PWDATA和PRDATA,但这并不表示它支持同时读写,因为他没有分别的读写握手信号。
write transfer:T1时刻,建立阶段(Setup)。在PCLK上升沿采样PADDR,PWDATA,PWRITE,PSEL信号。
T2时刻,通信阶段(Access)。采样PENABLE,PREDAY信号。
T3时刻,transfer结束。所以一个APB的transfer最少需要两个时钟。