AHB2.0(2)完结

AHB协议详细描述了数据传输的流程,包括无等待、等待和流水线传输模式,以及HTRANS和HBURST定义的不同传输和突发类型。HREADY信号在传输中的作用至关重要,控制着数据阶段的持续时间。此外,文章还介绍了地址译码、响应信号和仲裁过程,确保总线的高效和安全操作。
摘要由CSDN通过智能技术生成

六、数据传输

AHB的数据传输由如下两部分组成

地址阶段:一个周期

数据阶段:一个或多个周期(取决于HREADY)

6.1基本传输

6.1.1无等待的数据传输

第一个时钟沿:第一个时钟上升沿之后,主机在将地址和控制信号驱动到总线上;

第二个时钟沿:然后第二个时钟上升沿,从机采样地址和控制信息;

                          第二个时钟上升沿后,从机将响应信号和数据发送到总线上

第三个时钟沿:主机采样从机响应信号和数据,传输完成。

6.1.2等待的数据传输

有等待传输下,数据传输阶段可以扩展,即在HREADY拉高之前,数据传输阶段不结束。

要求写数据在HREADY拉高前保持稳定,主机在HREADY拉高后采样读数据

注意:

如果是写操作,master需要在等待期间保持写数据不变,直到本次传输完成。

如果是读操作,slave不需要一开始就给出数据,仅当HREADY拉高后才给出有效数据。

6.1.3流水线传输

表示了三次传输到无关的地址A、 B和C。

即将传输分为地址-数据两个部分流水进行,本次传输的地址必然在上一次地址之后,本次传输的数据必定紧跟在本次传输地址之后。

地址 A 和 C 的传输都是无等待,地址 B 的传输是一个等待状态;

传输到地址 B 的扩展数据相位对传输到地址 C 的扩展地址相位有影响(必须B传输完成后,C才能传输);

6.2传输类型(HTRANS)

IDLE(00):标志主机占有AHB总线,但是没有数据传输发生。从机需要使用OKAY状态回应该类型

  两次brust传输中间主机发IDLE

BUSY(01):标志主机占有AHB总线并在进行brust传输,但下一个传输不能立刻发生。从机需要使用OKAY状态回应

  一次burst中间用busy。

NONSEQ(10):标志主机当前发送的地址和控制信号与上一次传输无关(单次传输就是该状态)

  表示一次burst的第一个传输或者一个单一传输。

SEQ(11):标记主机处于brust传输的中间部分,即当前发送的地址和控制信号与上一次地址和控制信号有关

 burst传输从第二个开始

第一次传输,开启一次burst传输,因此该地址与上一次传输无关,使用类型NONSEQ。

第二次传输,无法立刻进行传输,因此使用BUSY标记延迟一个周期(一次burst中间用busy)。

延迟后可以进行传输,且处于burst传输中,因此地址与上一次地址有关,使用SEQ标记之后均为brust传输,均使用SEQ类型。

6.3burst类型(HBURST)

burst传输分为两类:

incermenting burst(增量模式):传输过程中传输地址递增。下一次传输的地址是上一次地址加上一个增量

wrapping burst(回环模式):burst的地址范围被限制在一个固定范围之内,传输地址递增,若是超出则回到地址范围的开始的地址。

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拍增量

对于wrapping burst的理解(以HSIZE=10 32bit=4byte)

4byte  4beat*4byte=16 byte     且 16=0x10

0x10的倍数不能跨过0x10\0x20\0x30\0x40\,如果遇到要往回弹

4byte   8beat*4byte=32 byte     且32=0x20

不能跨过   0x20倍数 如果遇到要往回弹

0x34-0x38-0x3c-0x20-0x24-0x28-0x2c-0x30

起始地址是倍数(8byte 4beat)则跟增量模式一样

8byte*4beat=32 byte=0x20

20-24-28-2c-30-34-38-3c

T1:地址和控制信号(32bit、4beat回环  4*4=16=0x10)

T2:HREADY为低等待

T3:HREADY为高

T4:完成数据传输

两个半字传输:在地址 0x20 处开始。半字传输地址增加为 2。

三个字传输:在地址 0x5C 处开始。字传输地址增加为 4。

6.4控制信号

和传输类型和突发类型一样每次传输将会有一组控制信号以提供传输的附加信息。这些控制信号和地址总线有严格一致的时序。然而,在一次突发传输过程中它们必须保持不变。

6.4.1传输方向

当 HWRITE 为高,该信号表示一个写传输并且主机将数据到写数据总线上,HWDATA[31:0]。

当该信号为低时将会执行一个读传输并且从机必须产生数据到读数据总线 HRDATA[31:0]。

6.4.2传输大小

HSIZE[2:0]

大小

描述

000

8位

字节

001

16位

半字

010

32位

011

64位

100

128位

4字线

101

256位

8字线

110

512位

111

1024位

传输大小和 HBURST[2:0]信号一起决定回环突发的地址边界。

32bit=4byte;4byte*4beat=16byte=0x10

6.4.3保护控制(很少使用)

HPROT[3:0],提供总线访问的附加信息并且最初打算是给那些希望执行某种保护级别的模块使用的

6.5地址译码

HSELx由地址译码器产生,用于指示哪个从机被选中。

只有当前的地址数据传输完成后(HREADY为高),slave才会采样地址和控制信号以及HSELx。

6.6响应信号

6.6.1.HREADY

HREADY信号标志传输是否完成:0-未完成,需要延长周期;1-已完成

6.6.2.HRESP

HRESP用于标记传输完成的状态:

OKAY(00):传输完成

ERROR(01):传输错误,例如协议错误或写入只读地址

RETRY(10):传输未正常完成,需要重新尝试传输。该响应不会改变优先级

SPLIT(11):传输未正常完成,需要从下一个地址重新启动传输。该响应可能改变优先级

6.7仲裁

仲裁器保证一个时刻仅有一个主设备占有总线,因此当有多个主设备提出访问请求时,仲裁器通过仲裁信号仲裁哪一个主设备获得总线使用权。

主机获取总线控制权分为两个步骤:

1.主机分别通过HBUSREQx和HLOCKx分别向仲裁器申请获取或锁定总线控制权

2.仲裁器分配总线控制权

七、模块设计

7.1主机

7.2从机

7.3仲裁器

7.4译码器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宝哥学IC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值