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这类本身就很慢的外设。

相关推荐
✎ ﹏梦醒͜ღ҉繁华落℘5 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
u152109648495 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
zd8451015005 天前
RS485 总线详解
单片机·嵌入式硬件
半条-咸鱼5 天前
【STM32】I2C协议原理、HAL读写与OLED显示操作
嵌入式硬件·c·信息与通信
wohoo_wangzi5 天前
苏州晟雅泰电子:关于W25Q128JVSIQ这个芯片物料的参数,规格及应用领域
嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘6 天前
编程基础 --高内聚,低耦合
c语言·单片机
科芯创展6 天前
1A,1MHz,30VIN,XZ4115,降压恒流LED驱动芯片
单片机·嵌入式硬件
集芯微电科技有限公司6 天前
四通道2A输出集成功率电感降压模块专为紧凑型方案设计
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
踏着七彩祥云的小丑6 天前
嵌入式测试学习第 37 天:异常场景测试:断电、拔插、干扰、非法指令
单片机·嵌入式硬件·学习
望眼欲穿的程序猿6 天前
读取芯片内部温度传感器
嵌入式硬件·rust