APB总线总结

0x00 综述

APB的全称为Advanced Peripheral Bus,即先进外设接口,该总线主要用于和低速以及低功耗的外设通信,该总线中唯一的主设备为APB Bridge,而其它的外设均为从设备。其中,APB Bridge可以锁存总线所有的地址、数据和控制信号,并通过二级译码来产生APB从设备选择信号,通常APB Bridge本身挂在AHB等高速总线上,用于“桥接”低速的APB总线。

APB规定所有的信号必须在时钟上升沿触发时进行传递

0x01 APB总线信号

APB总线最大支持32bit的数据位宽,拥有两个独立的数据通道,分别为读通道和写通道。由于APB的两个通道没有独立的握手信号,因此两个通道不会被同时使用。

信号定义如下:

 

0x02 APB传输时序

读传输

读传输最简单情况的时序如下图所示:

事实上,PREADY信号可以无限延后,直到数据准备好后再拉高,如下图所示:

可以看到实际上分为五个阶段:Idle、Setup、Enable、Data Valid、Finish

进入Data Valid阶段后,数据将会准备好,数据应当在Finish阶段的时钟上升沿被采样。

读传输可能发生错误,因此可以使用PSLVERR进行错误指示(以下为读传输出错的情况):

事实上,只有当PSEL、PENABLE以及PREADY都为高时,PSLVERR才在最后一个周期(即Data Valid阶段)判断,其它情况下,建议拉低(只是建议,非强制性)。

在Data Valid完成后,若有新的数据需要传输,则会再次转移到Setup阶段。

写传输

写传输的情况也与读传输类似的,但多了一个信号PSLVERR用于指示写传输错误,下面直接给出最复杂的情况,在这种情况中,最终发生了写传输错误:

在Write Finish完成后,若有新的数据需要传输,则会再次转移到Setup阶段。

总结

为了减少功率的消耗,APB的地址和读写控制信号在下一笔数据传递前,不会发生任何改变。

0x03 APB的状态机

事实上,上述所有图中的"Enable"、"Data Valid"与"Write Finish"阶段被合称为“Access”阶段,而最后的"Finish"阶段实际为"Idle"阶段,因此状态机只有三级:Idle、Setup与Access,其状态转移图如下:

0x04 参考文献

AMBA总线—APB总线协议详解

AMBA-APB总线协议详解

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值