AHB-Lite 总线:HREADY 流水线、HRESP 错误与 Split/Retry 演进
更新时间:2026-09-19。AHB/APB 桥的骨干侧见 AHB/APB 与桥接。本篇讲 AHB 自身的两拍流水线与响应模型,定位介于高速 AXI 与低速 APB 之间。
本文要回答的问题
- AHB 的地址相位和数据相位如何重叠形成流水线?
- HREADY、HTRANS、HRESP 如何配合,等待态怎么插?
- OKAY/ERROR/RETRY/SPLIT 各是什么,AHB-Lite 砍掉了什么?
- 既然有 AXI,为什么 AHB 在 MCU 里仍是主力?
一、单组总线 + 两拍流水线
AHB(Advanced High-performance Bus)用一组共享线传地址和数据(不像 AXI 五通道分离),但通过「地址相位与数据相位错开一拍」获得流水线:
拍: T1 T2 T3 T4
地址相位: 访问A 访问B 访问C
数据相位: A数据 B数据 C数据
HREADY ■ ■ (可拉低插等待)主机在 T1 驱动 A 的地址/控制,从机在 T2 传 A 数据的同时,主机已经在发 B 的地址——地址与数据相位重叠,因此理想情况下每拍能启动一笔新访问(吞吐 1/拍),而每笔访问本身经历地址→数据两相位。
核心信号:HADDR、HWDATA/HRDATA、HWRITE、HSIZE(每拍字节)、HBURST(拍类型)、HTRANS(传输类型)、HPROT/HMASTLOCK、HREADY、HRESP、HSEL(decoder 片选)。
二、HTRANS:四种传输状态
- IDLE(00):无传输。
- BUSY(01):主机在 burst 中途但本拍不能继续,告诉从机继续等、别把当前地址当有效。
- NONSEQ(10):一笔独立传输或 burst 的第一拍(地址不连续)。
- SEQ(11):burst 后续拍,地址按 HSIZE 顺序递增。
插入 BUSY 是主机侧的节流方式,与从机拉 HREADY 的反压不同。
三、HREADY 与两周期错误响应
- HREADY=1 表示数据相位完成;从机拉低则在当前数据相位插入等待态,地址相位被同步推迟(流水线停顿),HADDR/HWDATA 保持。
- HRESP:AHB 有
OKAY / ERROR / RETRY / SPLIT,AHB-Lite 只保留 OKAY 和 ERROR(单主,无多主仲裁,故取消 SPLIT/RETRY)。 - 关键时序坑:ERROR 必须维持两拍。从机先在一拍给 HREADY=0 + HRESP=ERROR,再在下一拍给 HREADY=1 + ERROR 结束,给主机两级流水足够时间从地址相位退出。只给一拍错误会导致主机在错误地址上继续。
四、AHB vs AXI vs APB
| AHB-Lite | AXI4 | APB | |
|---|---|---|---|
| 通道 | 单组共享、地址/数据错拍 | 五通道分离 | 单组 |
| 并行 | 读写不能同时 | 读写/多笔可并行、outstanding | 无 |
| burst | 有(HBURST,4/8/16/不定长) | 强(256 拍、WRAP) | 无 |
| 多主 | Lite 单主;完整版有仲裁 | 原生多主 | 单主 |
| 典型 | Cortex-M 系统总线、SRAM/Flash | 高性能 CPU↔DDR/DMA | 配置寄存器 |
为什么 AHB 仍广泛使用:Cortex-M 这类内核自带 AHB-Lite(经 AHB/APB 桥挂外设),SRAM/Flash 单主访问简单、面积小、时序好;不需要 AXI 的多笔并发时 AHB 性价比更高。新 SoC 高性能域用 AXI/CHI,MCU 控制域仍大量 AHB+APB。
五、典型连接
处理器 I/D 总线 → AHB 总线矩阵(多主时用 multilayer matrix,本质是多组 MUX)→ SRAM/Flash 控制器、AHB-to-APB 桥(下挂 UART/SPI/I2C)、DMA。桥把 AHB 的流水线协议翻译成 APB 的两拍 Setup/Access,见 AHB/APB 与桥接。
六、常见的坑
- ERROR 只给一拍:主机来不及退出流水,错误处理错位;必须两拍。
- HREADY 与 HSEL 混用:从机应在
HSEL & HREADY采样,未就绪拍重复采样会错。 - 等待态时改 HADDR:从机拉低 HREADY 后地址/控制/写数据必须全部保持。
- 默认从机缺失:访问空地址区间无人响应 HREADY,总线永久挂起;要挂 default slave 回 ERROR。
- 跨时钟直接连:AHB 是同步总线,跨时钟域需异步桥(见 异步 FIFO CDC),不能直连。
相关与延伸
低速侧见 APB 时序与从机设计 与 AHB/APB 桥接;高速侧见 AXI4 完整协议;缓存一致骨干见 CHI/ACE;整体取舍见 AMBA 总线选型。
总结
AHB-Lite 用单组共享总线配合地址/数据相位错一拍形成流水线,HTRANS 标 IDLE/BUSY/NONSEQ/SEQ、HREADY 插等待态、ERROR 必须维持两拍;它砍掉多主 SPLIT/RETRY,简单省面积,是 Cortex-M 控制域连接 SRAM/Flash 和 APB 桥的主力,高性能并发场景才让位 AXI。