0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度分析AMBA总线工作原理3

jf_78858299 来源:黑客与摄影师 作者:黑客与摄影师 2023-05-04 11:30 次阅读

2.4 AHB总线

2.4.1 AHB总线简介

AHB是一种高性能、高时钟频率的AMBA总线协议。主要用于连接RAMDMA、Bridge等高速设备。主要支持如下特性:burst传输、Split事务处理、单周期master移交、流水线操作、支持多个总线主设备。

AHB总线的强大之处在于它可以将微控制器CPU、高带宽的片上RAM、高带宽的外部存储器接口、DMA总线master、各种拥有AHB接口的控制器等连接起来,构成一个独立的完成SOC系统。不仅如此,还可以通过AHB-APB桥来连接APB总线系统。AHB可以成为一个完成的SOC芯片的骨架

2.4.2 AHB的组成

完整的AHB总线由四个部分构成:

  • AHB主设备Master:总线主设备能够通过提供地址和信息发起读写操作,任何时候,只允许一个总线主设备处于有效状态,并使用总线。
  • AHB从设备Slave:从设备在给定的地址空间范围内响应读写操作,总线从设备将成功、失败或者等待数据传输的信号返回给有效的主设备。
  • AHB仲裁器Arbiter:总线仲裁器确保每次只有一个总线主机被允许发起数据传输。即使仲裁协议已经固定,任何一种仲裁算法,比如最高优先级或者公平访问都能根据应用要求而得到执行。AHB必须只包含一个仲裁器,尽管在单总线主设备系统中这显得并不重要。
  • AHB译码器Decoder:AHB译码器用来对每次传输进行地址译码,并且在传输中包含一个从设备选择信号。
    每个AHB都需要一个仲裁器和一个解码器,并且分别有且只有一个。
    总线可分为三组:
  • 写数据总线(HWDATA)
  • 读数据总线(HRDATA)
  • 地址控制总线(HADDR

2.4.3 AHB总线操作

主设备通过驱动地址和控制信号开始一次传输。这些信号提供了地址、方向、传输的位宽,如果传输的类型是猝发,那么会指示出传输的类型。传输的类型可以是:

  • 单次传输(Single)。
  • 递增猝发(Incrementing burst),即在地址边界处不进行包装(地址不进行回绕)。
  • 包装猝发(Warpping burst),及到达地址边界处重新包装下一次传输的地址(地址回绕)。
    写操作数据由主设备到从设备,读数据数据由从设备到主设备。每次传输都包含两个阶段:
  • 地址阶段(Address phase),地址和控制周期。
  • 数据阶段(Data phase),数据周期是一个或多个周期。
    从设备不能请求Address phase进行延长,所以所有的从设备必须具备在Address phase周期采样地址的能力。但是从设备可以请求主设备延长Data phase,通过控制HREADY。HREADY信号为低时,从设备可以在传输中插入等待状态,使得从设备具有额外的时间提供和采样数据。最后从设备使用HRESP表明传输的成功/失败。

2.4.4 AHB信号

从上面的表可以看出,为了克服APB的缺点,从而支持多主机模式。提升效率操作,在总线接口数量上做了增加,并且位宽也做了提升。

2.4.5 AHB传输

1)AHB传输过程

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

  • 主模块获取总线使用权:主模块向仲裁器发送总线请求信号,仲裁器发送应答后主模块可以开始传输。
  • 数据传输:主模块向从模块传输数据,分为如下两个部分:
  • 发送地址和控制信号:包括地址、位宽、突发类型(增量突发和回卷突发)等控制新高,仅一个时钟周期。
  • 数据传输:进行数据交换,一个或多个时钟周期。
  • 从模块应答:从模块通过HRESP和HREADY 标记完成状态,对于HRESP,有以下状态:
  • OKAY:标记传输完成,当HRESP为该状态且HREADY拉高时,传输完成。
  • ERROR:标记传输出错
  • RETRY和SPLIT:标记传输未完成,主模块仍需要占用总线。
    前面已介绍一个基本的传输包括两个阶段:
  • 地址:持续一个系统时钟HCLK周期,除非被上一个传输延长
  • 数据:可能需要数个系统时钟HCLK周期,使用HREADY信号来控制完成一次传输所需要的时钟周期。
    HWRITE:控制数据的方向。当为高时,表明进行一次写传输,数据由主模块端发送,从模块端接收。当为低时,表明进行一次读传输,从模块端产生读数据,主模块端接收读数据。

2)无等待状态

上图是没有等待状态的简单传输的时序图,所以此传输包含一个地址周期和一个数据周期。3.1为读传输,3.2为写传输。在这个没有等待状态的传输中:

  • 主模块端在第一个时钟HCLK上升沿将地址和控制信号到总线。
  • 从模块端在接下来的一个时钟HCLK上升沿进行地址和控制信号采样。
  • 在从模块端对地址和控制信号采样结束后,从模块端可以驱动HEADYOUT信号及数据作为回应。该信号及数据由主模块端在传输的第三个时钟HCLK上升沿进行采样。
    这个例子说明了地址和数据阶段在不同的时钟周期是如何传输的。任意一次传输的地址阶段发生在上一次传输的数据阶段(重合,即当前传输的地址阶段和前一次传输的数据阶段重合)。address与data的重合是进行总线流水线处理的基础,此特性允许总线高性能操作,同时也为从模块端发送反馈信息提供了充足的时间。

2)有等待状态传输

从模块端可以插入等待阶段到任意一个传输中从而延长完成传输的时间。每个从模块端具有一个HREADYOUT信号,该信号为从模块端在data phase阶段驱动。互联结构需要将每个从模块端的HREADYOUT信号联合起来产生一个HREADY信号,HREADY信号用来控制上述延长传输完成时间的过程。

如上图是具有等待阶段的时序图。3.3是带有两个等待周期的读传输,3.4是带有一个等待周期的写传输。有等待传输下,数据传输阶段可以扩展,即在HREADY拉高之前,数据传输阶段不结束。要求写数据在HREADY拉高前保持稳定,主模块在HRAEADY拉高后采样读数据。对于写操作,在HREADY为低的等待阶段内,主模块端需要将写数据DATA保持不变,直到写操作完成。对于读操作,从模块端只需要在HREADY为高的周期内提供有效数据即可。

当传输由具有等待阶段通过延长address阶段进行延长时,那么对接下来的传输具有副作用。3.5是包含地址不相关的3次传输,A,B和带有一个等待周期的C传输。

在上述时序图中:

  • 传输A和传输C是0等待传输。
  • 传输B具有一个等待周期的address phase。
  • 延长传输B的数据phase对下一次传输C的address phase会相应的拉长。

2.4.6 传输类型

1)传输类型

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

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

2)突发类型

突发传输分为两类:

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

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

3)突发终止

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

  • 若下一个HTRANS标记为BUSY或SEQ:突发传输未终止
  • 若下一个HTRANS标记为NONSEQ或IDLE:上一次突发传输已经终止
    若突发传输是提前终止的,如总线控制权被剥夺,那么主机需要在可以进行传输时重建突发传输。例如一个4拍传输仅发送了一拍就终止,主机需要使用INCR类型的突发构建3拍传输以重建。

4)传输的例子

  • T0~T1:由非连续序列性的传输启动的4拍读。
  • T1~T2:主模块端不能进行传输,在第二个周期,所以插入了一个BUSY传输来延时第二次传输。此周期从模块端返回第一个周期主模块端发送读地址的读数据。
  • T2~T3:主模块端准备好进行第二次传输,发送一个SEQ传输。主模块端此周期将会忽略读数据总线上由任何从模块端返回的读数据(因前一个周期为BUSY传输)。
  • T3~T4:主模块端进行了第三次传输。发送了一个SEQ传输,此时读数据返回主模块端发起的第二次SEQ读读数据。
  • T4~T5:主模块端进行最后一次传输。此时在第一个周期内HREADY信号为低,从模块不能将前一次SEQ读的数据返回,所以将延迟上一次SEQ传输的DATA Phase,也就是当前传输的ADDRESS phase。
  • T5~T6:从模块端返回第T3、T4周期发送的SEQ读数据。
  • T6~T7:无传输命令,返回T4、T6发送的读数据。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8653

    浏览量

    361831
  • 总线
    +关注

    关注

    10

    文章

    2706

    浏览量

    87222
  • AMBA
    +关注

    关注

    0

    文章

    67

    浏览量

    14812
收藏 人收藏

    评论

    相关推荐

    AMBA AHB总线与APB总线资料合集

    使用的是 SystemVerilog 描述。2、AMBA APB总线信号接口介绍前面分析了AHB总线协议。接下来分析APB
    发表于 04-07 10:03

    基于AMBA的SOC总线功耗分析及优化

    随着集成电路的制造工艺进入纳米级,SOC片上各模块间通信的功耗成为系统重要的参数。本文介绍一种基于AMBA总线的系统级功耗评估和分析方法,重点通过定量的实验,阐述了SOC
    发表于 07-30 10:43 16次下载

    基于AMBA片上总线的片上系统

      AMBA片上总线   AMBA 2.0规范包括四个部分:AHB、ASB、APB和Test Methodology。AHB的相互连接采用了传统的带有主模块和从模块的共享总线   
    发表于 09-01 10:59 1993次阅读
    基于<b class='flag-5'>AMBA</b>片上<b class='flag-5'>总线</b>的片上系统

    AMBA总线IP核的设计

    文章采用TOP-DOWN 的方法设计了 AMBA 总线IP 核!它包括AHB 和APB两个子IP 核 所有AMBA结构模块均实现了RTL级建模
    发表于 07-25 18:10 92次下载
    <b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>IP核的设计

    SPI总线及I2C总线工作原理

    SPI总线及I2C总线工作原理,本内容详细介绍了SPI总线和I2C总线工作原理和比较
    发表于 12-08 16:55 0次下载

    ARM体系的特点与ARM的技术的简介及AMBA总线分析

    简要介绍了ARM体系及其特点,详细分析了ARM的流水技术、Cache技术、低功耗技术、代码压缩技术等,介绍了AMBA总线,给出了基于ARM和AMBA
    发表于 11-20 17:12 9次下载
    ARM体系的特点与ARM的技术的简介及<b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>的<b class='flag-5'>分析</b>

    基于AMBA总线介绍​

    3.0:增加了AXI协议(了解);AMBA4.0:ACE协议(了解) 本文主要介绍AMBA2.0 (Advanced Microcontroller Bus Architecture,先进微控制总线结构),主要
    的头像 发表于 05-19 14:22 1879次阅读
    基于<b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>介绍​

    深度解读AMBA、AHB、APB、AXI总线介绍及对比

    什么是AMBA? 现如今,集成电路芯片的规模越来越大。数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SoC设计中得到了广泛应用。在基于IP复用的SoC设计中,片上总线
    的头像 发表于 06-25 11:22 9357次阅读

    介绍AMBA2.0总线

    3.0:增加了AXI协议(了解);AMBA4.0:ACE协议(了解) 本文主要介绍AMBA2.0 (Advanced Microcontroller Bus Architecture,先进微控制总线结构),主要
    的头像 发表于 09-06 09:53 2771次阅读
    介绍<b class='flag-5'>AMBA</b>2.0<b class='flag-5'>总线</b>

    深度分析AMBA总线工作原理1

    本文主要介绍总线相关的知识,会从以下几个方面展开:什么是总线,为什么需要总线总线的组成,总线的分类,ARM中常见的
    的头像 发表于 05-04 11:29 689次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>分析</b><b class='flag-5'>AMBA</b><b class='flag-5'>总线</b><b class='flag-5'>工作原理</b>1

    深度分析AMBA总线工作原理2

    本文主要介绍总线相关的知识,会从以下几个方面展开:什么是总线,为什么需要总线总线的组成,总线的分类,ARM中常见的
    的头像 发表于 05-04 11:30 604次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>分析</b><b class='flag-5'>AMBA</b><b class='flag-5'>总线</b><b class='flag-5'>工作原理</b>2

    深度分析AMBA总线工作原理4

    本文主要介绍总线相关的知识,会从以下几个方面展开:什么是总线,为什么需要总线总线的组成,总线的分类,ARM中常见的
    的头像 发表于 05-04 11:30 859次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>分析</b><b class='flag-5'>AMBA</b><b class='flag-5'>总线</b><b class='flag-5'>工作原理</b>4

    AMBA总线知识之AHB(上)

    AMBA总线阵营的强大超乎多数人的想象。AMBA总线是一个在SoC领域使用的事实上的标准。AMBA总线
    的头像 发表于 05-04 14:45 2055次阅读
    <b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>知识之AHB(上)

    AMBA总线知识之AHB(下)

    AMBA总线阵营的强大超乎多数人的想象。AMBA总线是一个在SoC领域使用的事实上的标准。AMBA总线
    的头像 发表于 05-04 14:47 1979次阅读
    <b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>知识之AHB(下)

    AMBA总线—apb简介

    APB(Advanced Peripheral Bus),外围总线的意思。该总线协议是ARM公司提出的AMBA总线结构之一,几乎已成为一种标准的片上
    发表于 06-05 15:10 1151次阅读
    <b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>—apb简介