AHB 是 ARM 公司 AMBA (Advanced Microcontroller Bus Architecture) 规范中的一种高性能总线协议主要用于连接高性能系统模块如 CPU、DMA 控制器、片上存储器等。1. AHB 总线架构┌─────────┐ ┌─────────┐ ┌─────────┐ │ ARM │ │ DMA │ │ On-chip│ │ CPU │ │Controller│ │ RAM │ └────┬────┘ └────┬────┘ └────┬────┘ │ │ │ │ AHB Master │ AHB Master │ AHB Slave │ │ │ └──────────────┼──────────────┘ │ ┌─────────┴─────────┐ │ AHB Arbiter │ ← 仲裁器 │ AHB Decoder │ ← 译码器 └─────────┬─────────┘ │ ┌─────────┴─────────┐ │ AHB Matrix │ │ (Interconnect) │ └───────────────────┘核心组件AHB Master主机发起读写操作的设备CPU、DMAAHB Slave从机响应读写操作的设备RAM、APB BridgeAHB Arbiter仲裁器确保同一时刻只有一个 Master 占用总线AHB Decoder译码器根据地址选择对应的 Slave2. AHB 信号列表全局信号信号方向宽度说明HCLK输入1总线时钟所有信号在上升沿采样HRESETn输入1低电平复位Master 接口信号信号方向说明HADDR[31:0]Master → Slave32位地址总线HTRANS[1:0]Master → Slave传输类型IDLE / BUSY / NONSEQ / SEQHWRITEMaster → Slave1写0读HSIZE[2:0]Master → Slave传输位宽8/16/32/64/128/256/512/1024-bitHBURST[2:0]Master → Slave突发传输类型HPROT[3:0]Master → Slave保护控制Cacheable / Bufferable / Privileged / Data/OpcodeHWDATA[31:0]Master → Slave写数据总线最大 1024-bitHLOCKMaster → Arbiter锁定总线访问原子操作Slave 接口信号信号方向说明HRDATA[31:0]Slave → Master读数据总线HREADYSlave → Master1传输完成0插入等待HRESP[1:0]Slave → Master传输响应OKAY / ERROR / RETRY / SPLIT仲裁信号信号方向说明HBUSREQxMaster → Arbiter总线请求HGRANTxArbiter → Master总线授权HMASTER[3:0]Arbiter → 所有当前占用总线的 Master IDHSPLITx[15:0]Slave → ArbiterSPLIT 响应支持的 Master 位图3. 传输类型详解3.1 HTRANS — 传输类型HTRANS[1:0]类型说明00IDLE空闲Master 有总线授权但无数据传输01BUSY忙Master 正在处理下一拍不能立即发数据10NONSEQ非顺序传输单次传输或 Burst 的第一拍11SEQ顺序传输Burst 的后续拍地址 前一地址 SizeBurst 传输示例4拍 INCR 写Cycle: T0 T1 T2 T3 T4 HCLK: _/‾\_/‾\_/‾\_/‾\_/‾\_/‾\_/‾\_/‾ HTRANS: NSEQ SEQ SEQ SEQ IDLE HADDR: 0x1000 0x1004 0x1008 0x100C X HWRITE: 1 1 1 1 X HWDATA: D0 D1 D2 D3 X3.2 HBURST — 突发传输类型HBURST[2:0]类型说明000SINGLE单次传输001INCR未指定长度的增量突发010WRAP44 拍回绕突发011INCR44 拍增量突发100WRAP88 拍回绕突发101INCR88 拍增量突发110WRAP1616 拍回绕突发111INCR1616 拍增量突发INCR vs WRAP 的区别INCR增量地址线性递增如0x40 → 0x44 → 0x48 → 0x4C4拍WRAP回绕地址在边界内回绕如 4 拍从0x44开始的 WRAP40x44 → 0x48 → 0x4C → 0x40回到 16 字节边界内的起始回绕边界 Burst_Size × Transfer_Size例如 WRAP4 × 32-bit 16 字节边界。3.3 HSIZE — 传输位宽HSIZE[2:0]位宽说明0008-bit (Byte)字节00116-bit (Halfword)半字01032-bit (Word)字01164-bit双字100128-bit101256-bit110512-bit1111024-bit4. 从机响应 (HRESP)HRESP[1:0]响应说明00OKAY传输成功完成01ERROR传输错误如写入只读地址10RETRY重试Master 应重新发起传输11SPLIT拆分Slave 主动释放总线完成后再告知仲裁器RETRY vs SPLIT 的区别特性RETRYSPLIT总线占用Master 持续尝试占用总线Slave 主动释放总线效率低浪费总线带宽高其他 Master 可用总线实现复杂度简单复杂需 HSPLIT 信号支持适用场景等待时间短等待时间长如访问慢速外设5. 基本传输时序5.1 无等待传输最简单的读写读传输两拍流水线地址阶段 数据阶段 ↓ ↓ HCLK: _/‾‾‾‾‾\_/‾‾‾‾‾\_ HADDR: ---- A -------- HTRANS: ----NONSEQ------- HWRITE: 0 HRDATA: ---------- Data(A) HREADY: 1 1地址在 T1 发出数据在 T2 返回1 拍地址 1 拍数据写传输HCLK: _/‾‾‾‾‾\_/‾‾‾‾‾\_ HADDR: ---- A -------- HWRITE: 1 HWDATA: ---- Data(A) ---- HREADY: 1 1地址和数据在同一拍发出5.2 带等待的传输HCLK: _/‾\_/‾\_/‾\_/‾\_/‾\_ HADDR: ---- A B ------- HTRANS: ----NONSEQ SEQ ------- HREADY: 1 0 1 0 1 HRDATA: ------------Data(A)Data(B)Slave 拉低 HREADY 插入等待周期5.3 流水线传输AHB 的核心优势地址和数据流水线化。T1 T2 T3 T4 T5 HADDR: [A1] [A2] [A3] [A4] ... HRDATA: [D1] [D2] [D3] [D4]地址 N1 和数据 N 可以同时出现在总线上实现每拍一个传输的高吞吐。6. AHB-Lite简化版AHB-Lite 是 AHB 的子集去掉了多 Master 支持特性AHBAHB-Lite多 Master✅❌单 MasterArbiter✅❌HLOCK / SPLIT / RETRY✅❌复杂度高低典型应用复杂 SoC简单 MCU 系统7. AHB5AMBA 5 版本新增特性AHB5 是 AMBA 5 规范中 AHB 的最新版本新增TrustZone 安全扩展HNONSEC信号区分安全/非安全访问Exclusive Access排他访问HEXCL信号支持原子操作类似 LDREX/STREXUser Sideband 信号HAUSER/HWSER/HRSER传递用户自定义信息多字节选通HWSTRB信号支持更精细的字节写入控制8. AHB 与其他 AMBA 总线的对比特性AHBAXIAPB通道架构共享地址/数据5 个独立通道简单地址数据读写并发❌✅❌Burst 支持✅✅更灵活❌Outstanding❌✅❌Out-of-Order❌✅❌吞吐率中高低典型频率~200MHz~500MHz~50MHz适用场景高性能外设高性能互联低速外设9. 典型应用场景┌──────────────────────────────────────────────┐ │ SoC │ │ │ │ ┌──────┐ ┌──────┐ ┌──────────────┐ │ │ │ CPU │ │ DMA │ │ AXI-to-AHB │ │ │ │(AXI) │ │(AHB) │ │ Bridge │ │ │ └──┬───┘ └──┬───┘ └──────┬───────┘ │ │ │ │ │ │ │ │ ┌────┴──────────┐ │ │ │ │ │ AHB Matrix │ │ │ │ └────┤ (Interconn) ├───────┘ │ │ └───┬───┬───┬───┘ │ │ │ │ │ │ │ ┌─────┘ │ └─────┐ │ │ ↓ ↓ ↓ │ │ ┌────────┐ ┌──────┐ ┌────────┐ │ │ │On-chip │ │ AHB │ │ AHB-to │ │ │ │ RAM │ │Flash │ │ APB │──→ UART │ │ └────────┘ └──────┘ │ Bridge │ GPIO │ │ └────────┘ Timer │ └──────────────────────────────────────────────┘总结AHB 协议的核心设计思想流水线化地址和数据重叠每拍可完成一次传输突发传输减少地址发送开销提高吞吐灵活响应OKAY/ERROR/RETRY/SPLIT 适应不同速度从机多 Master 仲裁支持复杂 SoC 多主机共享总线