完整的AHB总线由四个部分组成:
① AHB主设备Master; 发起一次读/写操作;某一时刻只允许一个主设备使用总线;
② AHB从设备Slave; 响应一次读/写操作;通过地址映射来选择使用哪一个从设备;
③ AHB仲裁器Arbiter; 允许某一个主设备控制总线;
④ AHB译码器Decoder; 通过地址译码来决定选择哪一个从设备;
总线可以分为三组
有需要占用总线的Master向arbiter发出请求,arbiter授权给指定的master。任一时间周期只有一个master可以接入总线,对其指定的slave进行读写操作。
获得授权的总线开始AHB传输,首先发出地址和控制信号,提供地址信息、传输方向、带宽和burst类型。总线统一规划slave的地址,译码器根据地址和控制信号确定哪个slave与master进行数据通信。数据传输通过数据总线完成。为避免出现三态总线,AHB将读写总线分开,写数据总线用于从master到slave的数据传输,读数据总线用于从slave到master的数据传输。每笔传输包括一个地址和控制周期,一个或多个数据周期。地址和控制周期不能被扩展,因此slave必须在一个周期内采样地址信号。数据周期可以通过HREADY信号扩展,但HREADY为低时给传输加入一个等待状态以使slave获得额外的时间来提供或采样数据,另外slave通过响应信号HRESP反映传输状态。
AHB 支持批量式数据传送,可以自动递增地址。递增地址方式分为:持续递增与回绕传送。
一般情况下master完成完整的burst传输,arbiter才会授权给其他的master接入总线,然而为避免过大的判决延迟,arbiter也可能打断burst传输。在这种情况下master必须再次接入总线以进行中断的burst剩余部分的传输。
AHB 的传送模式包含二个阶段。第一阶段为地址的传递,另一阶段为数据的传递。
1. 地址期间; ( address phase):一个周期
2. 数据期间;(data phase):一个周期 (以 HREADY 信号控制周期数目).