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

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

3天内不再提示

AMBA总线知识之AHB(下)

jf_78858299 来源:知芯有道 作者:知芯有道 2023-05-04 14:47 次阅读

之前文章为大家介绍了AHB的基本结构,信号以及基本传输,这次续上次文章,继续为大家介绍AHB总线

内容概括

这次为大家讲述的内容包括:

AHB传输类型

突发操作

仲裁

01

AHB传输类型

每个传输都可以分类为四个不同类型之一,如HTRANS[1:0]信号所示状态,详解如下:

HTRANS[1:0] 传输类型 Description
00 IDLE 主设备占用总线,但没进行传输两次突发传输中间主设备可发IDLE。此时就算从机被使能,也不会从总线上获取任何的数据信号。如果此时从机被选中,那么每一个IDLE周期从机都要通过HRESP[1:0]返回一个OKAY响应
01 BUSY 主设备占用总线,但是在突发传输过程中还没有准备好进行下一次传输。一次突发传输中间主设备可发BUSY这时从机不会从总线上收取数据而是等待,并且通过HRESP[1:0]返回一个OKAY响应。需要注意的是,这个传输需要给出下一拍的地址和控制信号,尽管从机不会去采样。
10 NONSEQ 表明一次单个数据的传输或者一次突发传输的第一个数据地址和控制信号与上一次传输无关
11 SEQ 突发传输中剩下的传输是连续传输并且地址是和前一次传输有关的。控制信息和前一次传输一样。地址等于前一次传输的地址加上传输大小(字节)。在回环突发的情况下传输地址在地址边界处回环,回环值等于传输大小乘以传输的次数(4、 8 或者 16 其中之一)。

图2 表示了一组用到不同传输类型: 图片

图2

  • 第一个传输是一次突发的开始所以传输类型为非连续;
  • 主机不能立刻执行突发的第二次传输所以主机使用了忙传输来延时下一次传输的开始。在这个例子中主机在它准备还突发的下一次传输之前仅请求了一个忙周期,下一次传输的完成没有等状态;
  • 主机立刻执行突发的第三次传输,但是这时从机不能完成(传输)并用 HREADY来插入一个等待状态;
  • 突发的最后一个传输以无等待状态完成;

02

突发操作

AMBA AHB 协议定义了四、八和十六拍突发,也有未定长度的突发和信号传输。协议支持增量回环操作:

**增量突发**访问连续地址并且突发中的每次传输地址仅是前一次地址的一个增量;对于 **回环突发** ,如果传输的起始地址并未和突发(x 拍)中字节总数对齐那么突发传输地址将在达到边界处回环。例如,一个四拍回环突发的字(4 字节)访问将在16 字节边界回环。因此,如果传输的起始地址是 0x34,那么它将包含四个到地址

0x34、 0x38、 0x3C 和 0x30;

突发信息通过使用 HBURST[2:0]并且 8 种可能的类型在中定义如下:

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 的地址边界。 因此重要的是主机不要尝试发起一个将要超过这个边界的定长增量突发。将执行单个传输时使用未指定长度的增量突发理解为长度为一的突发比较合理。

一个增量突发可以是任何长度,但是(长度)上限由地址不能超过 1KB 边界这个事实限定了。

注:突发大小表示突发的节拍数量,并不是一次突发传输的实际字节数量。一次突发传输的数据总量可以用节拍数乘以每拍数据的字节数来计算,每拍字节数由 HSIZE[2:0]指示。所有突发传输必须将地址边界和传输大小对齐。例如,字传输必须对齐到字地址边界(也就是 A[1:0] = 00),半字传输必须对齐到半字地址边界(也就是 A[0] = 0)。

当一个突发不允许完成的特定情况下,对任一从机设计而言,如果突发提前终止那么利用突发信息能够采取正确的动作显得很重要。从机能够通过监控 HTRANS 信号决定一个突发何时提前终止并且确保在突发开始之后每次传输有连续或者忙的标记。如果产生一个非连续或者空闲传输那么这表明一个新的突发已经开始因此前一次突发一定已经终止。

如果总线主机因为失去对总线的占有而不能完成一次突发那么它必须在下一次获取访问总线时正确地重建突发。例如,如果一个主机仅完成了一个四拍突发的一拍那么它必须用一个未定长度突发来执行剩下的三拍突发。

下图表示了一个四拍回环突发并且第一次传输伴随一个附加等待状态。

图片

0****3

仲裁

仲裁机制被用来确保任意时刻只有一个主机能够访问总线。仲裁器的功能是检测许多不同的使用总线的请求和决定当前请求总线的主机中哪—个的优先级最高。仲裁器也接收来自从机需要完成 SPIIT 传输的请求。

任何没有能力执行 SPLIT 传输的从机不需要了解仲裁的过程,除非它们需要检测因为总线所有权改变而导致突发传输不能完成的情况。

以下给出对每个仲裁信号的简短描述:

HBUSREQx 被总线主机用来请求访问总线的总线请求信号。每个总线主机都有自己的连接到仲裁器的 HBUSREQx 信号并且任何一个系统中都可以有高达16个独立的总线主机。

**HLOCKx **由主机在请求总线的同时时断言的锁定信号。这提示仲裁器主机正在执行一系列不可分割的传输并且一旦锁定传输的第一个传输,己经开始仲裁器不能授子任何其他主机访问总线。HLOCKx必须在涉及到的地址被寻址到之前至少断言一个周期,以防止仲裁器改变授子信号。

**HGRANTx **授子信号由仲裁器产生并且表示相关主机是当前请求总线的主机中优先级最高的主机,(优先)考虑锁定传输和 SPLIT 传输。主机在 HGRANTx 为高时获取地址总线的所有权并且在HCLK 的上升沿 HREADY 为高电平。

**HIVIASTER[3:0] **仲裁器使用 HMASTER[3:0]信号表示哪一个主机当前被授子总线并且该信号可被用来控制中央地址和控制多路选择器。有SFLIT 传输能力的从机也可以请求主机的序号以便它们能够提示仲裁器哪个主机能够完成一个SFLIT 传输。

HMASTLOCK仲裁器通过断言 HVASTLOCK 信号指示当前传输是一个锁定序列的一部分,该信号和地址以及控制信号有相同的时序。

HSPLIT [15: 0] 这16位有完整分块能力的总线被有分块(SFLIT)能力的从机用来指示哪个总线主机能够完成一个 SPLIT 传输。仲裁器需要这些信息以便于授子主机访问总线完成传输。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 半导体
    +关注

    关注

    334

    文章

    26998

    浏览量

    216228
  • soc
    soc
    +关注

    关注

    38

    文章

    4118

    浏览量

    217923
  • AMBA总线
    +关注

    关注

    0

    文章

    35

    浏览量

    9530
收藏 人收藏

    评论

    相关推荐

    基于AMBA-AHB总线的SDRAM控制器设计方案

    为了在嵌入式系统设计中实现对SDRAM存储器的访问,本文提出了一种基于AMBA-AHB总线规范的SDRAM控制器设计方案。方案首先简要介绍了AMBA总线规范,然后在完成整个存储控制器的
    发表于 01-02 13:59 4551次阅读
    基于<b class='flag-5'>AMBA-AHB</b><b class='flag-5'>总线</b>的SDRAM控制器设计方案

    ARM总线协议AMBAAHB、APB的区别与联系

    写在前面:最近实习项目里用到这三个协议,因此简单整理一,内容大多来自ARM官方文档与网络上的,我只是做一个整合,来源都会分别标出。如有侵权请指出,立刻删帖。官方文档入口:AMBA(包括AHB
    发表于 02-09 07:46

    AMBA、APB、AHB简介

    STM32菜鸟学习手册——1、AMBA、APB、AHB简介芯片上总线标准种类繁多,而由ARM公司推出的AMBA片上总线受到了广大IP开发商和
    发表于 02-17 07:18

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

    1、AMBA AHB总线信号接口介绍Advanced Microcontroller Bus Architecture, 即 AMBA,是 ARM 公司提出的
    发表于 04-07 10:03

    AMBA中的AHB总线协议详解

    1、漫谈AMBA总线-AHB在上篇文章文章我们已经分析了AMBA总线系列中的APB总线的优点和缺
    发表于 06-07 16:57

    AHB总线应用教程

    AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的
    发表于 11-15 12:33 2.2w次阅读
    <b class='flag-5'>AHB</b><b class='flag-5'>总线</b>应用教程

    总线概述AMBA总线

    的连接通路。 AMBA3.0 协议: 1 Advanced High-performance Bus (AHB) AHB总线用于高性能,高时钟工作频率模块。
    发表于 11-16 13:24 3.9w次阅读
    <b class='flag-5'>总线</b>概述<b class='flag-5'>之</b><b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>

    基于AMBA总线介绍​

    1.1.AMBA发展史 AMAB1.0 AMBA2.0 AMBA3.0 AMBA4.0 AMBA1.0:ASB协议和APB协议;
    的头像 发表于 05-19 14:22 2077次阅读
    基于<b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>介绍​

    数字IC验证:ARM总线协议AMBAAHB、APB的简介、区别与联系

    写在前面:最近实习项目里用到这三个协议,因此简单整理一,内容大多来自ARM官方文档与网络上的,我只是做一个整合,来源都会分别标出。如有侵权请指出,立刻删帖。官方文档入口:AMBA(包括AHB
    发表于 12-05 15:36 16次下载
    数字IC验证:ARM<b class='flag-5'>总线</b>协议<b class='flag-5'>AMBA</b>中<b class='flag-5'>AHB</b>、APB的简介、区别与联系

    STM32菜鸟学习手册——AMBA、APB、AHB简介

    STM32菜鸟学习手册——1、AMBA、APB、AHB简介芯片上总线标准种类繁多,而由ARM公司推出的AMBA片上总线受到了广大IP开发商和
    发表于 12-22 19:09 16次下载
    STM32菜鸟学习手册——<b class='flag-5'>AMBA</b>、APB、<b class='flag-5'>AHB</b>简介

    AMBA协议AHB介绍

    AMBA (Advanced Microcontroller Bus Architecture)高级微控制器总线架构定义了在设计高性能嵌入式微控制器的一种片上通信标准。主要包含以下四种
    的头像 发表于 05-04 11:33 2992次阅读
    <b class='flag-5'>AMBA</b>协议<b class='flag-5'>之</b><b class='flag-5'>AHB</b>介绍

    聊聊AMBA总线-AHB

    所以针对以上的缺点,ARM 开发了更高级的总线AHB,下文将详述AHB基于APB的改进点,改进策略,以及AHB的协议运行机制。
    的头像 发表于 05-04 11:36 1710次阅读
    聊聊<b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>-<b class='flag-5'>AHB</b>

    AMBA总线知识AHB(上)

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

    AMBA总线那些事APB

    之前老李问过大家想看哪方面的知识,有不少同学提议老李写写总线,特别是AMBA总线,所以老李决定从这期开始开始一个AMBA
    的头像 发表于 05-04 14:53 2388次阅读
    <b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>那些事<b class='flag-5'>之</b>APB

    AMBA总线ahb简介

    AHB(Advanced High-performance Bus),高性能总线的意思。
    发表于 06-05 15:14 4762次阅读
    <b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>—<b class='flag-5'>ahb</b>简介