什么是APB总线?
AMBA 中的 APB 总线主要用在低速且低功率消耗的外围,且可针对外围作功率消耗及复杂接口的最佳化。在 APB 总线中,唯一的 主设备为 APB bridge,其它一些低速和低功率的外围皆为 S。因此 APB 总线不需要有一个像 AHB 一样的仲裁器及其它复杂的线路,也就是说 APB 总线的整个架构较 AHB 简单许多。
典型的AMBA总线的系统架构
总线信号:
PCLK:总线时钟信号
PRESETn:APB复位信号
PADDR:总线地址
PSELx: 选择信号
PENABLE: 使能信号
PWRITE: 传输方向
PRDATA: 总线写数据
PWDATA: 总线读数据
APB状态转变:如图APB状态机所示
a.系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。
b.当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,并只会在SETUP状态停留一个周期。当PCLK的下一个上升沿到来时,系统进入ENABLE状态。
c.系统进入ENABLE状态时,维持之前在SETUP状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。
APB状态机
写操作:如图APB写的时序图
写操作发生时,伴随着地址线、写数据线、写信号线以及选择线一同发生变化
写操作的第一个周期称之为SETUP周期
下一个周期,PENABLE信号线置起,这表示ENABLE周期
在ENABLE周期,地址线、数据线和控制线都应该保持有效
在ENABLE周期结束后,本次写操作结束
PENABLE在写操作周期结束后,会同PSEL一同拉低,除非又需要立即跟随下一次传输
为了省电,地址信号和写信号在一次传输过后不会改变,知道下一次传输发生
APB写的时序图
读操作:如图APB读的时序图
地址线、写信号线、选择线将同写操作时一样保持不变
从端需要在ENABLE周期内,返回PRDATA
PRDATA将在ENABLE周期的下一个周期被采样
APB读的时序图