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

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

3天内不再提示

AMBA协议之AHB介绍

jf_78858299 来源:IC匠芯 作者:九州匠芯 2023-05-04 11:33 次阅读

00 AMBA概述

AMBA (Advanced Microcontroller Bus Architecture)高级微控制器总线架构定义了在设计高性能嵌入式微控制器的一种片上通信标准。主要包含以下四种:

AHB (Advanced High-performance Bus) 高级高性能总线,用于高性能、高时钟频率的系统模块

ASB (Advanced System Bus) 高级系统总线,用于高性能的系统模块[现在使用较少]

APB (Advanced Peripheral Bus) 高级外围总线,用于低功耗外设,可连接任一版本系统总线

AXI (Advanced eXtensible Interface) 高级可拓展接口,高速度、高带宽,管道化互联,单向通道,只需要首地址,读写并行,支持乱序,支持非对齐操作,有效支持初始延迟较高的外设,连线非常多。

图片


***01 ***基本组成

典型的AHB系统主要包含以下四部分:

AHB Master :总线主机能够通过提供地址和控制信号进行读写操作,任何时候只允许一个主机处于有效状态并使用总线。[发起端]

AHB Slave :总线从机在给定的地址空间响应读写操作,并将操作响应返回给有效的主机。[响应端]

AHB Arbiter :总线仲裁器确保每次只有一个总线主机被允许发起数据传输。

AHB Decoder : AHB译码器对每次传输的地址译码并在传输中包含一个从机选择信号。

图片

操作流程:

①Mater向Arbtier发送总线占用请求;

②获得授权的Master进行总线传输

首先发出地址和控制信号:提供地址信息、传输方向等;

其次,译码器根据地址和控制信号选择Slave,确定数据传输路径;

最后进行数据传输。


02 ** 基本传输**

AHB传输分为两部分:地址周期和数据周期;先地址周期,再数据周期;地址周期单周期,数据周期可多周期。

1.简单传输(无等待)

图片

在第一个时钟上升沿传输控制和地址信号,在第二个时钟上升沿传输数据信号,同时HREADY信号为高表明数据传输完成。

2.等待状态的传输

图片

首先是地址周期,在时钟上升沿时传输地址信号和控制信号;

其次是数据周期,在下一个时钟上升沿开始,如果HREADY信号为高则表明数据传输完成,HREADY信号为低则继续传输。

注意:对于写操作而言,数据在整个扩展周期要保持稳定;读操作则无必要。

3.多重传输

图片

多重传输采用流水线pipeline技术。

如图,第一个周期传输A地址;第二个周期传输A数据和B地址,同时READY为高表明A传输完成;第三个周期传输B数据和C地址,由于READY信号为低,数据传输未完成,需要等待;第四个周期保持地址和控制信号,同时READY信号为高表明B传输完成;由于没有其他操作,第五个周期仅进行C数据传输,同时READY信号为高表明数据传输完成。


03 ** 传输类型HTRANS**

传输类型分四种:

空闲IDLE [00]:没有数据传输要求

忙BUSY [01]:表明总线正被占用,下次传输不能立即发生

非连续NONSEQ [10]:表明一个单一传输或一次突发传输的第一个传输

连续SEQ [11]:突发中的剩下传输且地址与前一次传输有关

图片

第一个传输是一次突发传输的开始,为NONSEQ类型;

由于主机不能立刻执行第二次传输,因此未BUSY类型来延时下一次传输开始;


04 ** 突发类型HBURST**

突发类型分八种:

SINGLE单一传输、INCR未指定长度的增量突发、

INCR4、INCR8、INCR16 分别是4拍、8拍和16拍的增量突发

WRAP4、WRAP8、WRAP16 分别是4拍、8拍和16拍的回环突发

注意:突发禁止超过1KB的地址边界

1KB边界限制在AHB中表示burst传输不能跨越1KB边界的约束。该限制旨在防止burst传输从一个slave交叉到另一个slave。在实践中,这意味着如果master必须要进行跨1KB边界的burst传输则必须切分成两次传输

  1. WRAP4

图片

起始地址为0x38, HSIZE=WORD[4byte], 突发类型是4拍回环突发,回环边界地址=回环拍数*SIZE=4*4byte=16byte = 0x10。

由于起始地址不是16的整倍数,因此会产生折回,0x3C的下一个地址按增量为0x40,是16的整数倍,因此需要减去16,即为0x30。

2.INCR4

图片

起始地址为0x38, HSIZE=WORD[4byte],突发类型为4拍增量突发。

地址顺序为0x38 0x3C 0x40 0x44[4次]

3.WRAP8

图片

起始地址0x34, SIZE=WORD=4byte, 突发类型为WRAP8,

回环边界地址=回环拍数*SIZE=8*4=32byte=0x20,当遇到回环边界地址的整数倍时减去回环边界地址。

地址顺序0x34、0x38、0x3C、0x20、0x24、0x28、0x2C、0x30。

4.INCR

图片

对于T1-T3周期,突发类型为INCR, SIZE=halfword=2byte,因此地址依次为0x20、0x22;

对于T3-T8周期,突发类型为INCR, SIZE=WORD=4Byte, 起始地址为0x5C,因此地址依次为0x5C、0x60、0x64。


05 ** 控制信号**

传输方向HWRITE

HWRITE=H表明写操作,传输方向为MasteràSlave;

HWRITE=L表明读操作,传输方向为SlaveàMaster;

传输大小HSIZE[2:0]

8bit(byte) 、16bit(halfword)、32bit(word)、64bit(2word)、128bit(4word)、256bit(8word)、512bit、1024bit


06 地址译码

图片

主机发送地址信息给地址和控制多路选择器,选择器将地址信息发送给所有从机,同时将地址信息发送给译码器,译码器根据地址信息将相应设备的HSEL信号置高。

如果地址不存在则从机提供ERROR响应。


07 ** 从机传输响应**

传输完成HREADY

HREADY=1表明传输完成;

HREADY=0表明传输将被扩展,继续传输。

传输响应HRESP

00 OKAY 传输成功完成

01 ERROR 传输发生错误

10 RETRY 重试

11 SPLIT 传输未完成

仅有OKAY信号是单周期给出,其他响应信号至少两个周期。

08 ** 接口框图**

主机接口框图

图片

从机接口框图

图片

仲裁器接口框图

图片

译码器接口框图

图片

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

    关注

    0

    文章

    67

    浏览量

    14812
  • AHB
    AHB
    +关注

    关注

    0

    文章

    18

    浏览量

    9617
  • 嵌入式微控制器

    关注

    1

    文章

    11

    浏览量

    2545
收藏 人收藏

    评论

    相关推荐

    什么是AMBA APB4与AMBA3 AHB-Lite1.0协议

    本文我们简单对AMBA4中的APBv2.0(也称为APB4),以及AMBA3AHB-Litev1.0进行简单的了解。
    发表于 04-02 06:30

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

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

    AMBA、APB、AHB简介

    STM32菜鸟学习手册——1、AMBA、APB、AHB简介芯片上总线标准种类繁多,而由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构
    发表于 02-17 07:18

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

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

    AMBA中的AHB总线协议详解

    ,数据传输效率不高。所以针对以上的缺点,ARM 开发了更高级的总线AHB,下文将详述AHB基于APB的改进点,改进策略,以及AHB协议运行机制。1-1 背景在漫谈
    发表于 06-07 16:57

    在Arm AMBA协议集中AHB-lite可否使用

    Arm AMBA协议集中,LPI 在AMBA4 出现,协议和链路层 与 AXI/AHB 无关 独立的吗?
    发表于 09-08 11:35

    Arm AMBA协议集中AHB与AXI相比访问DDR效率带宽会差很大

    Arm AMBA协议集中,AHB没有outstanding, 只有burst。 与AXI 相比访问DDR 效率,带宽会差很大?
    发表于 09-14 11:44

    Arm AMBA协议集中ahb2.0和3.0必须要有dummy master和default slave吗?

    Arm AMBA协议集中,ahb2.0和3.0必须要有dummy master和default slave吗?
    发表于 09-27 11:58

    请问一下Arm AMBA协议集中,axi burst 和ahb burst的区别是什么?

    请问一下Arm AMBA协议集中,axi burst 和ahb burst的区别是什么?
    发表于 10-08 15:48

    AMBA CHI协议介绍

    (SoC)中。它促进了多处理器设计的首次开发,具有大量的控制器和外设。 CHI适用于需要一致性的广泛应用,包括移动,网络、汽车和数据中心。AMBA CHI的设计是为了保持性能在组件和流量不断增加的系统中。 本指南介绍了CHI协议
    发表于 08-02 13:40

    基于AMBA总线介绍

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

    介绍AMBA2.0总线

    1.1.AMBA发展史 AMAB1.0 AMBA2.0 AMBA3.0 AMBA4.0 AMBA1.0:ASB
    的头像 发表于 09-06 09:53 2770次阅读
    <b class='flag-5'>介绍</b><b class='flag-5'>AMBA</b>2.0总线

    数字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的简介、区别与联系

    Arm AMBA 5 AHB5:加速嵌入式和物联网世界

    AMBA 5 AHB5(高级高性能总线)是一种总线接口协议,将最广泛地与 Arm Cortex-M 处理器一起使用,用于嵌入式设计和低延迟 SoC,用于物联网和嵌入式应用。AHB5 的
    的头像 发表于 05-26 14:18 589次阅读

    AMBA AHB协议的burst termination简析

    AMBA AHB协议中,AHB master可以用burst传输连续取多笔数据。AHB定义了4、8和16拍的burst传输、未定义长度的b
    发表于 06-29 15:54 1043次阅读
    <b class='flag-5'>AMBA</b> <b class='flag-5'>AHB</b><b class='flag-5'>协议</b>的burst termination简析