一、AHB协议
1、概述
1.1典型案例
下图是一个典型的AHB和APB的互联系统,两者之间通过APB桥接器连接
1.2内部互联信号
这是一个AHB总线协议的互联方案,它是由3个主机、4个从机、1个仲裁器、1个译码器和3个多路选择器组成。
- 首先,仲裁器与地址和控制选择器从3个主机中选择其中的地址发到4个从机上。
- 仲裁器和写数据选择器选择3个主机中的1个数据写入到4个从机中
- 译码器和读数据选择器选择4个从机中的1个数据读入到主机中
1.3数据传输
- 上图是一种最简单的数据传输方式,在第一个时钟上升沿到来时,主机将HADDR(地址信号)和Control(控制信号)驱动到总线上;然后下一个时钟上升沿到来时,从机从总线上读取采样地址和控制信号
- 由于AHB协议允许上传数据和读写数据交叉进行,因此在读入上个周期信号的地址时,同时可以上传下一个信号的地址,这意味这3个信号,4个周期就可以完成
- 这是典型的两拍式数据传输方式,也可以延长采样的周期。HREADY信号拉高表示数据有效可以直接采样,但是HREADY拉低表示此时从机无法采样,数据会一直保存直到HREADY被拉高可以采样,这就实现了等待操作。如下图所示
- 需要注意的是这种等待操作会对后续的信号传输有影响,例如有A、B、C,3个信号以此传输,只需4个周期即可完成。如果B等待了一个周期,那么C也会相应延后1个周期
1.4传输类型
信号HTRANS[1:0]用来指示传输类型
- 如果遇到busy,就要等待一个周期,才能写入数据。例如下面这个例子,一共写了4个数据,本应该花5个周期,但实际用了7个周期,就是因为busy了一个周期,然后HREADY拉低等待了一个周期