APB信号总线

APB(Advanced Peripheral Bus)是AMBA总线系列中专为连接低带宽、低功耗外设(如UART、I2C、GPIO)设计的简洁、低成本接口协议 -。它的核心价值在于通过简单的接口定义(通常约9个主要信号)和严格的通信时序,为挂载在AHB/AXI高速系统总线上的低速设备提供一个低功耗的接入通道-。你之前的理解没错,APB的结构确实很清晰易懂。

📌 核心信号与分类

APB接口的信号可清晰划分为以下几类-3:

分类 信号名 方向 功能描述
系统信号 PCLK 输入 总线时钟,所有信号在上升沿采样-2。
PRESETn 输入 低电平有效异步复位-36。
地址与命令 PADDR 主机输出 32位地址总线-28。
PWRITE 主机输出 高电平为写传输,低电平为读传输-36。
PSELx 主机输出 从设备选择信号,高电平有效。每个从机对应一条独立的PSELx线-36。
PENABLE 主机输出 使能信号,标志着访问(ACCESS) 阶段的到来-3。
数据总线 PWDATA 主机输出 写数据总线,数据在PENABLE为高时有效-。
PRDATA 从机输出 读数据总线,仅在读传输中被从机驱动-36。
扩展/流控 PREADY 从机输入 从机用于扩展传输 ,低电平时表示从机未准备好,总线会在当前状态等待-28。
PSLVERR 从机输入 传输错误 指示信号,与PREADY一同置高时表示当前传输失败-36。

🚦 APB状态机:传输的生命周期

APB协议的核心是一个包含IDLE、SETUP、ACCESS 三个状态的有限状态机(FSM),精准定义了传输的三步曲--28。

  • 🟡 IDLE(空闲状态) :APB总线的默认状态,此时PSELx=0,PENABLE=0,总线上无活动传输--28。

  • 🟠 SETUP(建立状态) :当一次传输开始时,状态机进入此阶段。此状态只持续一个时钟周期 --8。

    • 行为 :主机将有效的PADDR、PWRITE和PWDATA(写操作)置于总线上。

    • 主机将相应的从选择线PSELx拉高。

    • 此时,PENABLE信号保持为低 -2。

  • 🟢 ACCESS(访问状态) :PENABLE信号在此阶段被拉高 ,标志着数据传输的发生--2。

    • PADDR、PWRITE、PSELx和PWDATA信号必须保持稳定 ,直到传输完成-2。

    • 等待扩展 :从机可通过将PREADY拉低 来延长ACCESS状态。只有从机将PREADY拉高 时,传输才正式完成-1。

    • 状态跳转:

      • 到IDLE :如果没有更多传输,状态机返回IDLE,并拉低PSELx和PENABLE-2。

      • 到SETUP :如果本次传输后紧跟着下一次传输(无需经过IDLE),状态机会直接进入SETUP阶段-2。

⏱️ 读写时序详解

理解了状态机,时序就变得清晰了。下面将用文字描述典型时序,帮助你建立直观理解。

写传输 (Write Transfer)
  • 无等待写传输 :最基础的传输模式,总耗时2个时钟周期-16。

    • T1 (IDLE - SETUP) :时钟上升沿后,主机在总线上设置PADDR和PWDATA,并拉高PWRITE和PSELx-2。

    • T2 (SETUP - ACCESS) :下一个时钟沿,PENABLE被拉高,标志着ACCESS阶段开始,此时数据有效-2。

    • T3 (ACCESS End) :如果从机在传输前已将PREADY置为默认高电平,本次传输在此完成。PENABLE和PSELx被拉低,总线回到IDLE状态-2。

  • 有等待写传输:适用于处理速度较慢的从机。

    • 当传输进入ACCESS阶段后,主机采样PREADY信号。

    • 若PREADY为低,则总线保持在ACCESS状态 ,延长传输周期-1。

    • 直到从机将PREADY拉高,传输才宣告完成,随后总线状态转移。

读传输 (Read Transfer)
  • 流程与写传输类似,仅PWRITE信号保持为低-2-16。

    • 从机必须在ACCESS阶段将数据驱动到PRDATA总线上。

    • 主机会在ACCESS阶段结束时的时钟上升沿采样PRDATA总线上的数据-2。

📜 APB协议版本演进

了解不同版本之间的差异有助于你阅读相关的手册或代码:

版本 发布年份 核心新特性与信号 说明
APB2 1998 初版定义 定义了最基础的信号集-36。
APB3 2003 PREADY, PSLVERR 增加了等待状态和错误报告机制-36。这是目前最常用的版本。
APB4 2010 PPROT, PSTRB 增加了保护属性(如安全/非安全)和写选通信号-36。
APB5 2017 PWAKEUP, PUSER, PPARITY 引入了低功耗唤醒、用户自定义信号和奇偶校验等高级特性--36。

💡 设计考量与常见陷阱

  • 地址对齐 :协议本身未强制地址对齐。例如,若进行32位传输但地址PADDR非4字节对齐,必须由具体设计来处理 ,通常建议由主机保证对齐,或直接报错-36。

  • PSLVERR与PREADY :PSLVERR信号仅在PSEL、PENABLE和PREADY均为高时的时钟周期有效 -36。从机应在PREADY拉高的同时,根据内部情况决定是否拉高PSLVERR以报告错误。

  • PSTRB与PPROT兼容性 :这些是APB4新增的可选信号。设计时需特别注意主从设备对这些信号支持的兼容性,否则可能导致意外行为-37。

  • 带宽利用率 :APB是一种非流水线协议,每次完整传输都需要至少2个时钟周期 ,因此其理论最大带宽利用率仅为50% -17。这并不影响其适用场景,因为它连接的正是UART这类本身就很慢的外设。

相关推荐
@MMiL3 分钟前
为什么-200 mod 4000 等于3800
单片机
殷忆枫3 小时前
基于ESP32 的局域网全双工对讲系统
单片机·嵌入式硬件·esp32·对讲系统
szxinmai主板定制专家4 小时前
工业视觉新思路:FPGA图像预处理+RK NPU推理,实现高速缺陷检测
人工智能·嵌入式硬件·fpga开发·rk3576+codesys
硅基手札4 小时前
ROS2 全面解析 - 从架构到源码
单片机·架构·机器人
Molesidy7 小时前
【Embedded Development】【高级MCU篇】基于野火STM32H750XBH6_Pro开发板的高级MCU开发学习之1点亮led
stm32·单片机·学习
FPGA小徐7 小时前
【硬件实战】立创 EDA 绘制 TF/SD 卡模块电路|SPI 模式原理图 + 阻抗匹配 + PCB 布局布线全教程
单片机·嵌入式硬件·fpga开发
狂奔蜗牛(bradley)8 小时前
EtherCAT DC 分布式时钟同步的 ModelSim 仿真:从帧模板到从站行为建模
人工智能·嵌入式硬件·fpga开发·架构
铅笔小新z8 小时前
【stm32】I2C 中断模式数据收发
stm32·单片机·嵌入式硬件
铅笔小新z9 小时前
【stm32】理解弱引用
javascript·stm32·嵌入式硬件
铅笔小新z9 小时前
【stm32】DMA
stm32·单片机·嵌入式硬件