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=0PENABLE=0,总线上无活动传输--28

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

    • 行为 :主机将有效的PADDRPWRITEPWDATA(写操作)置于总线上。

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

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

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

    • PADDRPWRITEPSELxPWDATA信号必须保持稳定 ,直到传输完成-2

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

    • 状态跳转

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

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

⏱️ 读写时序详解

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

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

    • T1 (IDLE - SETUP) :时钟上升沿后,主机在总线上设置PADDRPWDATA,并拉高PWRITEPSELx-2

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

    • T3 (ACCESS End) :如果从机在传输前已将PREADY置为默认高电平,本次传输在此完成。PENABLEPSELx被拉低,总线回到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

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

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

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

相关推荐
思茂信息1 小时前
CST对一种用于中型无人机 433MHz 通信的宽带共形贴片天线
开发语言·单片机·嵌入式硬件·平面·无人机·cst
崇山峻岭之间2 小时前
单片机触摸屏实验
单片机·嵌入式硬件
析木不会编程2 小时前
单片机|嵌入式硬件设计--电容选型
单片机·嵌入式硬件
iCxhust2 小时前
C# 程序,实现二进制文件十六进制查看器,支持按行定位
开发语言·单片机·嵌入式硬件·c#·微机原理·8086最小系统·8088单板机
大卡片2 小时前
IDE软件实现注意事项
单片机
m0_377108142 小时前
stm32-mpu6050
stm32·单片机·嵌入式硬件
析木不会编程3 小时前
单片机|嵌入式硬件设计--电阻选型
单片机·嵌入式硬件
sramdram3 小时前
燃气表国产32位MCU微控制器低功耗解决方案
单片机·嵌入式硬件·微控制器·32位mcu·mcu微控制器·32位mcu微控制器
老吴胡编3 小时前
eknife 2026.05.28 v0.0.5 更新 —— 支持 PDF 文档合并
人工智能·嵌入式硬件·个人开发