- 什么是APB总线协议
AMBA 中的 APB 总线主要用在低速且低功率消耗的外围,且可针对外围作功率消耗及复杂接口的最佳化。在 APB 总线中,唯一的 M 为 APB bridge,其它一些低速和低功率的外围皆为 S
APB规订所有信号必须在时钟正沿触发时进行传递
APB 对每一笔数据的传送,均需花 2 个周期的时间,且 APB 的数据传递不适用在有流水线架构的模块设计中
2.APB状态机
![]() |
3.APB写操作
![]() |
在 T1 时,有限状态机进入预设的 IDLE 状态;
在 T2 时,数据地址、读写控制信号和写入的数据会在频率正沿触发时,开始作写的数据传递准备, 这个周期也就是刚才所提及的SETUP状态。译码电路在此状态会根据数据地址去译码出所要写入的APBS, 此时所对应到 S 的 PSEL 信号将由 0 变 1;
在 T3 时,有限状态机会进入 ENABLE 状态,PENABLE 信号在此状态会被设成 1; 在 T4 频率正沿触发时,PENABLE 信号将由 1 变 0,而 PSEL 信号在若没有其它数据的写入动作时, 也将由 1 变 0。PWDATA写入设备。为了减少功率的消耗,APB 的数据地址和读写控制信号在下一笔数据传递前,将不会作任何改变
4.APB读操作
![]() |
在 T3 后,也就是在进入 ENABLE 周期后,APB 从必须要将 M 所要读取的数据准备好,以便可以在 ENABLE 周期末被 T4 正时钟沿触发时正确的将数据读取
5.APB桥
APB桥为AHB的一个从设备,但它在APB中是唯一的主设备,而APB中其它低速和低功率消耗的外围 皆为APB桥的从设备。
![]() |
6.APB从
![]() |
7.APB与AHB
7.1AHB读转APB读(单次)
![]() |
在频率很高的情况下,在ENABLE CYCLE中可能数据不能够直接映射到AHB总线,需要在APB桥中在 T4的时候打一下锁住,并在T5的时候才被AHB主采样。
虽然需要多一个等待周期(一共2个),但是由于频率提升了因此总的性能也提升了
7.2AHB读转APB读(批量)
![]() |
读操作(非高频),每一组数据都只需要一个等待周期
7.3AHB写转APB写(批量)
![]() |
当批量写操作的时候,第一块数据不需要等待周期,之后的每一块数据都需要一个等待周期。 APB 桥中需要有 2 个地址寄存器,当处理一个数据块写操作时,可以寄存下一个数据块的地址
8.读写交替传送(Back to back)
![]() |