AHB协议解读

1.定义

AHB或者ASB系统总线在需要做大量数据传送的模块之间提供了高带宽的接口。同时,外围总线APB在AHB或者ASB和低带宽的外围设备之间提供了通信的桥梁。所以APB是AHB或者ASB的二级扩展总线

2.拓扑结构

2.1 Master:

可以是CPU、DMA控制器、外设控制器等。Master通过AHB总线向slave发送传输请求,请求读取或者写入slave的寄存器或内存地址。当master发送请求时,首先必须等待Arbiter的确认,如果得到许可,就可以访问总线并发起传输。通过hgrant信号线来知道自己是否被Arbiter选择

2.2 Slave

负责处理master的AHB传输请求。可以是内存、外设、寄存器等。Slave通过AHB总线接受master的传输请求,并根据请求类型,响应master执行读取或者写入操作。通过hslectx信号线来知道自己是否被master选中

2.3 Arbiter

负责协调多个master之间的竞争,以决定哪个master能够获得总线控制权

2.4 Decoder

负责讲master的地址映射到对应的slave设备或内存地址。通过解析master请求的地址信息,将其转换为slave的地址或内存地址,并将请求发送给相应的slave设备或内存地址

3.主要特性:

3.1 Burst传输:

3.2 Split事务处理

必须master和slave同时支持split才行

3.3 单一时钟沿操作

3.4 无需三态门的实现方式

三态门是为了避免同一时刻多个设备对同一根信号线进行驱动

3.5 更宽的数据总线配置

3.6 流水线操作

在时序图上直观表现出来是地址比数据早一拍

3.7 可以支持多个总线主设备

4.术语

5.AHB构成

6.AHB信号列表

6.1 HADDR[31:0]

AHB地址位,用于传输主设备发送给从设备的地址信息

6.2 HBURST[2:0]

表明是单次传输还是burst传输

6.3 HMASTLOCK

用来锁定主设备,实现master之间的互斥控制。当一个master获得总线访问权并开始进行数据传输时,可以使用该信号线防止其他master在此期间访问总线

6.4 HPROT[3:0]

用来确保从设备只能被授权主设备访问。在AHB协议中,每个主设备都被分配一个唯一的HPROT值,从设备可以根据这个保护类型来判断是否允许主设备进行访问

6.5 HSIZE[2:0]

AHB中指示数据传输的大小的信号

6.6 HTRANS[1:0]

指示当前这一次传输中的这一拍由master向slave发起的数据传输类型。

6.7 HWDATA[31:0]与HWRITE

HWDATA[31:0]: AHB的数据位,用于传输主设备发送给从设备的数据信息

HWRITE: 指示数据传输方向,为1 时表示写操作,为0时表示读操作

6.8 HRDATA[31:0]

AHB的读数据位,用于传输从设备发送给主设备的数据信息

6.9 HRESP[1:0]

从端为主端提供有关传输状态的附加信息

7.APB信号列表

8.控制信号:传送状态HTRANS[1:0]

9.控制信号:批量传送HBURST[1:0]

最常用的是000,SINGLE类型传输

10.批量式传输时序图

传输到地址0x64之后,接下来传输的地址是0x30

11.传送方向HWRITE

12.传送大小HSIZE[2:0]

当进行包围突发传输时,回绕地址必须对齐到特定的边界。这个边界由 HSIZE 和 HBURST 共同决定。具体来说,对齐的边界是 (突发长度) × (传输大小)

13. 传输完成HREADY

14.burst size与burst length、hsize

Burst length是指一次连续传输中数据的数量,通常以数据总线宽度为单位计算。例如,当数据总线宽度为32位时,burst length为4表示一次连续传输可以传输4个32位的数据。

Burst size是指数据的大小位宽,以字节为单位。

举例: 32个字节可以分为32 * 8位, 这里 Burst Size 是 8位(1 BYTE), Burst Length是 32.

地址边界的计算方式是突发(Burts)中的拍数(Beats)与传输(Transfer)大小(Size)的乘积,其中,拍数由HBURST控制,传输大小由HSIZE控制。例如,一个4byte大小的4拍循环突发(4-beats wrapping burst of word)以16byte为边界进行边界跳转,若起始地址为0x34,则它的四个transfer地址分别为0x34、0x38、0x3c和0x30

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值