AMBA之AHB协议

  1. AHB介绍

AHB总线一开始面向系统级高性能,低功耗的系统互连。随着系统的发展,AXI总线作为高速总线的优势更加明显。AHB更多用于简单的数据传输,后来对AHB协议进行简化,定义了AHB-Lite,简化后的AHB主要用于单master数据访问。目前AHB多用于片上memory或低带宽需求的外设接口。

AHB总线接口的定义如下表所示:

Signal

Width

Destination

description

hclk

1

salve

总线时钟,上升沿有效

hrstn

1

slave

总线复位信号,低有效

hsel

1

slave

由Decoder产生,高电平表示当前slave被master选中

hwrite

1

slave

表示传输方向,high(写),low(读)

haddr

32

slave

总线地址

hwdata

32

slave

总线数据

htrans

2

slave

传输类型,0(IDLE),1(BUSY),2(NONSEQ),3(SEQ)

hsize

3

slave

传输大小,size=(2**hsize)*8bits,最大支持1024bits

hburst

3

slave

突发类型

hprot

4

slave

保护控制信号,需slave带保护功能,一般不用

hmastlock

1

slave

当前master正在执行locked操作,与hmaster时序相同。

hmaster

4

slave

master识别符,由具有多个独占线程的主机产生

hready

1

slave

由multiplexor产生,用于slave判断master是否对其它设备完成操作

hreadyout

1

multiplexor

由slave产生,当master发起读写操作时,如果slave不能及时响应,把此信号拉低,用于延长传输。

hrdata

32

multiplexor

从slave读取的数据,数据位宽可以扩展,推荐32bits

hresp

2

multiplexor

slave发出的传输状态,0(OKAY),1(ERROR),2(RETRY),3(SPLIT)

在一个系统中,主机提供地址和控制信号来发起读写操作,主机的接口如下图所示:

从机通过hsel信号来确定是否要响应主机发起的操作请求,从机的接口如下图所示:

  1. 基本传输

一次传输包含两个阶段:

地址传输阶段:除非前一个传输需要延展,否则只需一个hclk周期;

数据传输阶段:根据hready信号控制完成传输的时钟周期。

  1. 无等待传输

下图是一个无等待读操作的时序关系图

下图是一个无等待写操作的时序关系图:

步骤分析:

Step1:Master在hclk上升沿驱动地址和控制信号到AHB总线上;

Step2:在下一个hclk上升沿,从机采集地址和控制信号;

Step3:Slave采集到地址和控制信号后,驱动hready进行响应,在第三个hclk上升沿Master采集hready信号。

  1. 有等待传输

下图是等待2个时钟周期读操作时序关系图:

步骤分析:

Step1:Master在hclk上升沿驱动地址和控制信号到AHB总线上;

Step2:在下一个hclk上升沿,从机采集地址和控制信号,但hready在两个时钟周期内没响应,Master保持当前地址和控制信号;

Step3:第4个hclk上升沿后,Slave驱动hready拉高,进行响应,完成读操作。在第5个hclk上升沿Master采集hready信号。

下图是等待1个时钟周期写操作时序关系图:

步骤分析:

Step1:Master在hclk上升沿驱动地址和控制信号到AHB总线上;

Step2:在下一个hclk上升沿,从机采集地址和控制信号,但hready在接下来1个时钟周期内没响应,Master保持当前地址和控制信号;

Step3:第3个hclk上升沿后,Slave驱动hready拉高,进行响应,完成写操作。在第4个hclk上升沿Master采集hready信号。

下图是等待1个时钟周期读写交替操作的时序关系图:

步骤分析:

Step1:Master在第1个hclk上升沿驱动A写地址和控制信号到AHB总线上;

Step2:第2个hclk上升沿,Slave采集A写地址和控制信号,hready为高,完成A的写操作。同时,Master发起B读地址和控制信号到总线上;

Step3:第3个hclk上升沿,Slave采集B读地址和控制信号,由于Slave不能及时响应hready为低,总线进入等待状态;

Step4:第4个hclk上升沿后,Slave进行响应,hready拉高,完成读操作;

Step5:第5个hclk上升沿,Slave采集Master请求的C写地址和控制信号;

Step6:信号hready为高,完成C写数据操作。

  1. 传输类型

总线AHB通过htrans[1:0]信号来控制总线的传输类型,类型如下表所示:

下图展现的是传输类型的时序图:

步骤分析:

T0-T1:突发长度为4beats,以NONSEQ起始的读操作;

T1-T2:hready为高,Slave发送读数据到总线。Master插入BUSY传输类型,推迟Burst的第2beats的传输;

T2-T3:Master继续Burst传输,发送SEQ传输类型到总线;

T3-T4:Master继续Burst第3beat读请求;

T4-T5:Master继续Burst第4beat读请求,hready为低,进入等待状态;

T5-T6: hready拉高,Slave提供第3beat读数据;

T6-T7: Slave提供第4beat读数据;

  1. 锁定传输

通常,锁定传输是为了维护信号量的完整性,从机在读或写完成之前不进行其他操作。

  1. 突发操作

突发操作支持incrementing和wrapping突发。

主机不要发送超过1KB地址范围的递增突发。

  1. 传输一个busy后突发终止

在未定义突发长度的incrementing突发传输中,主机可以插入busy确定没有数据需要被传输。但协议不允许主机通过在固定突发长度的情况下插入busy来终止突发传输。固定长度的如法必须以SEQ传输类型终止。

不允许主机在single突发后立即执行busy传输。single突发后必须跟随IDLE或NONSEQ传输。

  1. 提前终止突发

1、从机发送error response

如果从机发出error响应,主机可以取消突发中的剩余传输,或,继续突发中剩余传输。如果主机取消了突发中的剩余传输,主机必须在两个周期error响应期间将HTRANS变为IDEL状态。

2、多层互连终止

在一个多主机系统的多层互连设备的情况下,可以终止一个突发,使另一个主机获取从机的存取权限。从机必须终止原主机的突发,并且给新主机适当的响应。

  1. 突发举例

下图,突发长度为4的wrapping(WRAP4)写突发传输。

下图,突发长度为4的incrementing(INCR4)读突发传输。

下图,突发长度为8的wrapping(WRAP8)读突发传输。

下图,突发长度为8的incrementing(INCR8)写突发传输。

未定义突发长度的递增突发(INCR)传输。

  1. 传输等待

从机可以用hreadyout信号插入等待状态。等待期间,主机被限制改变传输类型和地址。

  1. 等待期间传输类型的改变

在从机请求等待状态时,除了下面三种情况,主机不能改变传输类型:

  1. IDLE传输;

  1. 固定突发长度的BUSY传输;

  1. 不定义突发长度的BUSY传输。

下图,在等待状态下,IDLE状态,传输类型可以发生改变。

下图,固定突发长度,在等待状态下,BUSY状态,传输类型可以发生改变。

下图,不固定突发长度的递增突发,在等待状态下,BUSY状态,传输类型可以发生改变。

  1. 等待期间地址的改变

在从机请求等待状态时,除了下面两种情况,主机只能改变地址一次:

  1. IDLE传输期间;

  1. 一个ERROR响应后。

下图,在IDLE期间,地址发生改变。

下图,从机发送ERROR响应后,地址发生改变。

  1. 总线互连

互连组件是提供主机和从机之间的连接。单个主机系统只需要解码器(Decoder)和多路复用器(Multiplexor)。多主机系统需要提供仲裁器(Arbiter)和路由器(Router)。

  1. 地址解码

地址解码器提供一个选择信号HSELx,是根据高位地址产生。

分配给单个从机的最小地址空间是1KB。所有主机在不执行超过1KB的递增传输,确保突发传输不超过地址解码的边界。

如果一个系统不包含一个完整填充的地址映射,则需要实现一个额外的默认从机,以在访问任何不存在的地址空间时提供一个响应。

  1. 读数据和响应多路复用器

  1. 从机响应信号

主机发起一个传输后不能取消,从机必须提供一个响应,以指示传输访问的状态。

从机发送ERROR响应需要两个周期,在hreadyout信号为低电平时驱动hresp为高表示ERROR,在下一个周期驱动hreadyout为高以结束传输,同时保持hresp为高电平表示ERROR。由于总线的流水线性质,所以需要两个周期响应。当从机开始发送ERROR响应时,下一个地址已经发送到总线上。两个周期可以提供充足的时间让主机取消下一个访问,在开始下一个传输前,启动htrans进入IDLE状态。

  1. 独占传输

AHB5定义了独占传输属性。独占访问序列是单个主机独占传输的序列。操作步骤如下:

  1. 从一个地址执行独占读传输;

  1. 根据独占读数据,计算一个新数据写入到该地址;

  1. 独占读和独占写之间可以有其它非独占传输;

  1. 对同一个地址执行独占写传输,新数据的值为;

如果独占读之后没有其它主机写入该位置,独占写传输成功,并更新memory;

如果独占读之后有其它主机写入该位置,独占写传输失败,并memory位置不被更新。

5、独占写传输响应表明传输是成功还是失败。

独占传输相关联的信号:

HEXCL:独占传输,指示传输是独占访问序列的一部分,该信号是一个地址相位信号,与HADDR有相同的有效性约束;

HMASTER:主机识别符,一个主机拥有多个独占能力的线程必须产生该信号来区分线程。地址相位信号,与HADDR有相同的有效性约束;

HEXOKAY:独占成功,指示独占传输成功或失败的响应信号。

  1. 原子性

  1. 单拷贝原子大小

单拷贝原子大小定义了一次传输自动更新的字节数。

为一组相互通信的组件定义单拷贝原子大小,例如:

  1. CPU、DSP和DRAM控制器在一个64bits单拷贝原子组中;

  1. 一个更大的组,包含CPU、DSP、DMA、DRAM、SRAM和外设在一个32bits单拷贝原子组中;

当一个写传输更新memory位置时,必须保证观测者看到其中一种情况:

  1. memory位置未更新;

  1. 更新了至少一个单拷贝原子大小数量的数据。

字节选通信号(strobe)相关的传输不影响单拷贝原子大小。

  1. 多拷贝原子

如果一个系统有如下特征,则被定位为多拷贝原子性:

  1. 所有agent以同样的顺序能观察到相同位置的写入;

  1. 对一个agent(不是发行人)可以观察到的位置的写入,所有agent都可以观察到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: AMBA 3 AHB-Lite是一种总线协议,用于在集成电路中连接不同模块或外设。AMBA(Advanced Microcontroller Bus Architecture)是ARM公司开发的一种标准总线,旨在促进系统级集成的设计。 AHB-Lite是AMBA 3总线规范的一部分,它是ARM公司为嵌入式系统提供的低功耗和高性能的解决方案。AHB-Lite的设计目标是提供一个简化版本的AHB总线,以满足对较小和简单系统的需求。 AHB-Lite总线采用了一种简化的总线传输方法,同时保留了AHB总线的一些重要特性和功能。它支持主从模式,其中一个设备充当主设备,能够发起数据传输请求,而其他设备作为从设备,能够应答主设备的请求。 AHB-Lite总线具有低功耗和低复杂性的特点,可以减少面积和功耗,并提供高性能的数据传输。它支持多个主设备和从设备的连接,并使用分时复用的方式进行数据传输。主设备可以通过读写传输和直接存储器访问(DMA)来实现数据交换。 AHB-Lite总线还支持优先级访问,可根据不同模块的需要分配不同的优先级,以确保高优先级的数据传输能够及时处理。此外,它还支持错误检测和纠正机制,以确保数据传输的可靠性和完整性。 总之,AMBA 3 AHB-Lite是一种低功耗、高性能和简化的总线协议,用于连接不同模块和外设,并提供可靠的数据传输和处理能力。它在嵌入式系统中广泛使用,以满足对小型和简单系统的要求。 ### 回答2: AMBA 3 AHB-Lite是一种轻量级、高性能的总线协议,用于连接处理器、内存和外设等不同设备,提供高效的数据传输和控制信号交互。 AMBA是ARM公司提出的一系列总线标准,AHB-Lite则是其中的一种。AHB-Lite是AMBA总线的一种精简版本,相对于更为复杂的AHB和APB总线,AHB-Lite更加简单、易于实现和集成。 AHB-Lite总线结构包括主设备(如处理器)和从设备(如内存和外设),通过地址线、数据线、控制线和时钟信号等进行通信。主设备通过发起地址传输来读取或写入从设备的数据。AHB-Lite总线采用分片事务的方式,可以高效地支持多个主设备的并行访问。 AHB-Lite总线的特点之一是具有低功耗和低延迟。由于其采用有效的传输机制和轻量级的设计,能够在多个主设备之间快速传输数据,降低功耗消耗和延迟。 此外,AHB-Lite还支持多种访问模式,如单次传输、增量传输和乱序传输等。这些传输模式可以根据不同的应用场景和要求进行选择,提高系统的灵活性和性能。 总之,AMBA 3 AHB-Lite是一种高效、低功耗、低延迟的总线协议,适用于连接不同设备的通信和数据交互,为系统提供了快速、可靠的数据传输和控制机制。 ### 回答3: AMBA是一种应用于ARM处理器的总线架构,其中AMBA 3是第三代的AMBA总线标准。而AHB-Lite则是AMBA 3中的一种总线协议AMBA 3 AHB-Lite是一个高性能、低功耗的总线协议,适用于处理器和外围设备之间的通信。它具有如下特点: 1.简单易懂:AHB-Lite协议相对于AMBA 3中的其他总线协议来说,是比较简单的,因此易于理解和实现。这使得开发者可以更容易地集成和实现AHB-Lite接口。 2.低功耗:AHB-Lite设计了一些较低功耗的机制,如低功耗模式和动态功耗缩减技术,以帮助节省能源,并延长设备的待机时间。 3.高性能:尽管AHB-Lite是AMBA总线中较简单的协议,但它仍然提供了较高的性能,可以处理高速数据传输和多个总线事务同时发生的情况。因此,它适用于嵌入式系统中对性能要求较高的场景。 4.灵活可扩展:AHB-Lite具有良好的可扩展性,它支持连接多个处理器和外围设备,并允许通过添加信号进行系统扩展。这使得AHB-Lite适用于各种不同规模和配置的系统。 总之,AMBA 3 AHB-Lite是一种高性能、低功耗、简单易懂且灵活可扩展的总线协议,适用于ARM处理器和外围设备之间高效通信的嵌入式系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值