ahb总线协议主机_AMBA 总线 ahb简介

蔚落 2023-01-02 02:25 424阅读 0赞

#

1

AHB概述

AHB(Advanced High-performance Bus) ,高性能总线的意思。该总线协议是ARM公司提出的AMBA总线结构之一,主要 用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内部的高速RAM、NAND FLASH、DMA、Bridge的连接。它支持以下特性:

  • Burst传输
  • Split事务处理
  • 单周期master移交
  • 单一时钟沿操作
  • 无三态
  • 更宽的数据总线配置(64/128)
  • 流水线操作
  • 可支持多个总线主设备(最多16个)

#

2

AHB协议简介

AHB2 支持 多个Bus Master ,例如有三个Master,有四个slave,但是同时只有一个Mater可以拿到Bus的访问权。所以,总线的使用权就需要Master去申请,也就需要一个仲裁器(Arbiter)。同时也支持突发传输,分段传输,字节、半字节和字的传输,也可配置总线位宽。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由 仲裁器(arbiter) 、主模块到从模块的 Mux 、从模块到主模块的 Mux 、 译码器 (decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。其互连结构如下图所示。

f7812b146846769de07fb9d7270a1549.png

AHB2协议要求Slave 的地址空间至少是以 1KB 为单位,这个要求在AHB-lite也存在。 AHB-lite 是AMBA 3,在AHB2的基础上互连逻辑和slave设计上做了简化,为 单Bus Master 设计的(低端MCU的SoC系统使用的Bus master个数相对比较少)。

f790b121d44ea35adcd8a6cd7fdc3deb.png

当然AHB3系统也是有办法实现支持多个Master的,多个Mater连接到一个MUX输入,slave连接该MUX输出,相当于一个简单的仲裁器。MUX 也可以只连接其中一个Master,这样其他Master就无法访问MUX连接的Slave,相当于该Slave就是连接到MUX上 的Master私有Slave,如下图:

3d232c34167e8b23980c33a2bb96b3b9.png

AHB5是AMBA 5,在2015年发布,在AHB-lite的基础上增加功能,支持 secure/non-sucure ,配合v8系列架构的处理器,引入 trustzone 机制。

#

3

AHB信号描述

下表给出了AHB的基本信号:

e0241e401fb86dfac40204dd0b805147.png

aab6d06b1afd50cadaf81b2dd1d24fc1.png

2d2f0dd34fa51d2d1b82714e22a76b5a.png

#

4

AHB传输

AHB传输分为以下几个部分:

  • 主机获取总线使用权:主机向判决器发送总线请求信号,判决器发送应答后主机可以开始传输
  • 数据传输:主机向从机传输数据,分为以下两个部分:

    • 发送地址和控制信号:包括地址,位宽,突发类型(增量突发和回卷突发)等控制信号,仅一个时钟周期
    • 数据传输:进行数据交换,一个或多个时钟周期
  • 从机应答:从机通过HRESP和HREADY标记完成状态,对于HRESP,有以下状态:

    • OKAY:标记传输完成,当HRESP为该状态且HREADY拉高时,传输完成
    • ERROR:标记传输出错
    • RETRY和SPLIT:标记传输未完成,主设备仍需要占用总线

关于突发传输,理论上进行突发传输的主设备应当一直占据总线,但是为了缩短等待时间,AHB允许打断突发传输,并在一段时间后重启该突发传输。AHB的基本传输过程由两个部分组成:

  • 地址/控制传输:传输地址信息和控制信息,仅占一个时钟周期
  • 数据传输:可能需要多个时钟周期,由信号HREADY决定(拉高才结束数据传输)
  1. 无等待传输

330d852b610b43099af7d2455a9e379a.png无等待传输下,一个传输与三个时钟沿有关:

  • 第一个时钟沿:第一个时钟沿后,主机将地址信息和控制信息发送到总线上
  • 第二个时钟沿:第二个时钟沿上,从机采样主机的地址信息和控制信息。第二个时钟沿后,从机将响应信号和数据发送到总线上
  • 第三个时钟沿:主机采样从机响应信号和数据,传输完成

    1. 有等待传输 bff43118a9d01f7038613f71ea9e1c02.png有等待传输下,数据传输阶段可以扩展,即 在HREADY拉高之前,数据传输阶段不结束。要求写数据在HREADY拉高前保持稳定,主机在HREADY拉高后采样读数据 3. 流水线传输 2f6e17bfe7502cbbf988fc3c4cbb3330.png AHB总线支持流水线传输,即将传输分为地址-数据两个部分流水进行,本次传输的地址必然在上一次地址之后,本次传输的数据必定紧跟在本次传输地址之后。因此,当上一次的数据传输阻塞导致传输周期增加时,下一传输的地址周期也会相应的变长:
  • A1和C1为第一次传输的地址和控制信号

  • WD1和RD1是第一次传输的数据,该传输为单时钟即无阻塞的传输,同时发送的还有下一次传输的地址和控制信号:A2和C2
  • 第二次传输为多周期传输,因此WD2和RD2占据多个时钟周期,对应的,同时发送的第三次传输地址和控制信A3和C3也被延迟相同的时钟周期数
  • WD3和RD3为第三次传输的数据

#

5

传输类型

传输类型使用端口HTRANS标记,有以下取值:

  • IDLE(00):标志主机占有AHB总线,但是没有数据传输发生。从机需要使用OKAY状态回应该类型
  • BUSY(01):标志主机占有AHB总线并在进行突发传输,但下一个传输不能立刻发生。从机需要使用OKAY状态回应
  • NONSEQ(10):标志主机当前发送的地址和控制信号与上一次传输无关(单次传输就是该状态)
  • SEQ(11):标记主机处于突发传输的中间部分,即当前发送的地址和控制信号与上一次地址和控制信号有关

例子如下图所示: c0f0d1c9f28bc4735136bc53a11a8e75.png

  • 第一次传输,开启一次突发传输,因此该地址与上一次传输无关,使用类型NONSEQ
  • 第二次传输,无法立刻进行传输,因此使用BUSY标记延迟一个周期,延迟后可以进行传输,且处于突发传输中,因此地址与上一次地址有关,使用SEQ标记
  • 之后均为突发传输,均使用SEQ类型
  1. 突发类型突发传输分为两类:

    • 增量突发:传输过程中传输地址递增。下一次传输的地址是上一次地址加上一个增量
    • 回卷突发:猝发的地址范围被限制在一个固定范围之内,传输地址递增,若是超出则回到地址范围的开始的地址。例如从0x34进行增量为4,范围为16的回卷突发,地址顺序为0x34、0x38、0x3c,0x30

突发类型使用字段HBURST标记,含义如下表所示:



















































HBURST[2:0] 类型 描述
000 SINGLE 单个传输
001 INCR 无限制长度的增量突发传输
010 WRAP4 4拍回卷突发
011 INCR4 4拍增量突发
100 WRAP8 8拍回卷突发
101 INCR8 8拍增量突发
110 WRAP16 16拍回卷突发
111 INCR16 16拍增量突发

注意一次突发传输不能跨越1kB的地址区间,且传输的起始地址必须与数据类型对应,例如传输字数据的二进制起始地址必须满足后两位为00。

  1. 突发终止

从机通过监控HTRANS发现突发传输的终止:

  • 若下一个HTRANS标记为BUSY或SEQ:突发传输未终止
  • 若下一个HTRANS标记为NONSEQ或IDLE:上一次突发传输已经终止

若突发传输是提前终止的,如总线控制权被剥夺,那么主机需要在可以进行传输时重建突发传输。例如一个4拍传输仅发送了一拍就终止,主机需要使用INCR类型的突发构建3拍传输以重建。

  1. 数据总线

当传输位宽不同时,数据总线的使用情况如下所示(小端传输):

bb350b52934b1bd8332bd2d58f25c9e5.png

#

#

6

参考文档

AMBA 3 AHB-Lite协议以及AHB总线规范读书笔记下载地址:

  1. http://bbs.eetop.cn/thread-880439-1-1.html

● END ●

250ed976ed37425ab379c4de03b139d6.png

喜欢就点亮“在看”吧c8daa7016482a692ca704870348e121f.png

发表评论

表情:
评论列表 (有 0 条评论,424人围观)

还没有评论,来说两句吧...

相关阅读

    相关 CPU总线浅学之AMBA

    AMBA总线浅学 随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大。数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用

    相关 AMBAAHB、APB总线简介

      AMBA简介 随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大。数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用。