APB协议学习

APB(Advanced Peripheral Bus)

1、APB的概述与特点

APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号。

2、APB的组成部分

3、 APB的数据传输

APB上的传输可以用如下图所示的状态图来说明。

 

  1. 系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。
  2. 当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,并只会在SETUP 状态停留一个周期。当PCLK的下一个上升沿时到来时,系统进入ENABLE 状态。
  3. 系统进入ENABLE状态时,维持之前在SETUP 状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。
  4. 之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。

4、传输时序

4.1、Write

写传输分为不带等待信号的写,和带等待信号的写:

无等待状态

下图显示了一个基本的无等待状态的写传输。



  1. T1 时刻 APB 将地址信息 PADDR 和写的数据 PWDATA 准备好,拉高 PWRITE 表示进入写,同时拉高 PSEL,从 IDLE 进入 SETUP
  2. T2 时刻也就是下一个时钟周期拉高 PENABLE,使得状态进入 ACCESS
  3. T3 时刻检测到 PREADY 被拉高,也就是说 Slave 已经正确接收到数据,传输完成;PENABLE 拉低,PSEL 拉低

有等待状态

下图展示了 PREADY 信号是如何扩展了从器件的传输。

  1. T1 时刻 APB 将地址信息 PADDR 和写的数据 PWDATA 准备好,同时拉高 PSEL,从 IDLE 进入 SETUP
  2. T2 时刻也就是下一个时钟周期拉高 PENABLE,使得状态进入 ACCESS
  3. T3 时刻检测到 PREADY 为 0,也就是说 Slave 还没有接收完数据,所以在此刻,PADDR 地址信号、PWRITE 数据方向信号、PSEL 片选信号、PENABLE 使能信号以及PWDATA 数据必须保持,以便 Slave 能够继续采样。
  4. T4 时刻 PREADY 依然 为 0,所以还是保持不变
  5. T5 时刻,PREADY 为 1,说明 Slave 已经正确接收到数据,传输完成;PENABLE 拉低,PSEL 拉低

注意:即便是传输结束了,Address 和 data 信号也不会立即改变,直到下一次传输才会刷新新的地址和数据信号,这样做的原因是减少功耗;

4.2、Read

读数据和写的流程几乎差不多,也分为了等待和非等待

无等待状态
同非等待写一样,图示如下:

  1. T1 时刻 APB 将地址信息 PADDR 准备好,拉低 PWRITE 表示进入读,同时拉高 PSEL,从 IDLE 进入 SETUP
  2. T2 时刻也就是下一个时钟周期拉高 PENABLE,使得状态进入 ACCESS
  3. T3 时刻检测到 PREADY 被拉高,也就是说 Slave 已经完成收据发送,PRDATA 上就是来自 Slave 的数据,传输完成;PENABLE 拉低,PSEL 拉低

有等待状态
加等待的读时序如下:

时序过程和上述一样,只不过 PREADY 被拉低了两个周期,真正从 Slave 读的数据到 T5 时刻才真正有效;这里不在多说;

4.3、Error Respond

在读和写的过程,可能出现错误,错误通过 PSLVERR 信号来指明;

APB外围设备不要求必须支持PSLVERR引脚,当不使用该引脚时,应被置低

写失败后时序
下面这个是写失败后的时序:

可以看到,在写失败后,PSLERR 信号被拉高了

读失败后时序
下面这个是读失败后的时序:

读失败后,PRDATA 上的数据不再有效

5、对比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沧海一升

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值