AHB传输---等待传输

等待传输

slave在需要更多时间支持或采样数据时使用HREADYOUT信号插入等待状态。在等待传输期间,master对传输类型和地址的更改受到限制。

1. 在等待状态下传输类型的变化

当slave请求等待状态时,master不得更改传输类型,除非是以下状态:

  • IDLE传输。
  • 固定长度突发的BUSY传输。
  • 未定义长度突发的BUSY传输。

1.1 IDLE传输

在等待传输期间,允许master将传输类型从IDLE更改为NONSEQ。当HTRANS传输类型变为NONSEQ时,master必须保持HTRANS不变,直到HREADY变高。

图3-13 展示了一个SINGLE突发的等待传输,传输类型从IDLE变为NONSEQ。

图3-13中的说明:

  • T0-T1:master开始对地址A进行SINGLE突发传输。
  • T1-T2:master插入一个对地址Y的IDLE传输。 slave通过HREADYOUT=LOW插入一个等待状态。
  • T2-T3:master插入一个对地址Z的IDLE传输。
  • T3-T4:master更改传输类型为NONSEQ,并开始对地址B进行INCR4传输。
  • T4-T6:由于HREADY为LOW,master必须保持HTRANS不变。
  • T5-T6:对地址A的SINGLE突发传输在HREADY变高时完成,master开始对地址B的第一拍传输。
  • T6-T7:对地址B的INCR4传输的第一拍完成,master开始对地址B+4的下一拍传输。

1.2 BUSY传输,固定长度突发

在固定长度突发的等待传输期间,master允许将传输类型从BUSY更改为SEQ。当HTRANS传输类型变为SEQ时,master必须保持HTRANS不变,直到HREADY变高。

注意:因为BUSY传输只能在突发的连续拍之间插入,所以这不适用于SINGLE突发。因此,这种情况适用于以下突发类型:

  • INCR4、INCR8 和 INCR16(增量突发)。
  • WRAP4、WRAP8 和 WRAP16(包装突发)。

图3-14 展示了在固定长度突发中,传输类型从BUSY变为SEQ的等待传输。

图3-14中的说明:

  • T0-T1:master发起对地址0x24的下一拍INCR4突发传输。
  • T1-T3:master对地址0x28插入一个BUSY传输。 slave通过HREADYOUT=LOW插入等待状态。
  • T3-T4:master更改传输类型为SEQ,并发起对地址0x28的下一拍突发传输。
  • T4-T6:由于HREADY为LOW,master必须保持HTRANS不变。
  • T5-T6:对地址0x24的拍随着HREADY变高而完成。
  • T6-T7:对地址0x28的INCR4传输的第三拍完成,master开始对地址0x2C的最后一拍。

1.3 BUSY传输,未定义长度突发

在未定义长度突发(INCR)的等待传输期间,当HREADY为低时,master允许将传输类型从BUSY更改为任何其他传输类型。如果执行了SEQ(顺序)传输,则突发继续;但如果执行了IDLE(空闲)或NONSEQ(非顺序)传输,则突发终止。

图3-15 展示了在未定义长度突发期间的等待传输,传输类型从BUSY变为NONSEQ。

图3-15中的说明:

  • T0-T1:master发起对地址0x64的下一拍INCR突发传输。
  • T1-T3:master对地址0x68插入一个BUSY传输。 slave通过HREADYOUT=LOW插入等待状态。
  • T3-T4:master更改传输类型为NONSEQ,并发起对地址0x10的新突发传输。
  • T4-T6:由于HREADY为LOW,master必须保持HTRANS不变。
  • T5-T6:未定义长度的突发在HREADY变高时完成,发起开始对地址0x10的第一拍。
  • T6-T7:对地址0x10的INCR4传输的第一拍完成,master开始对地址0x14的下一拍。

2. 等待状态下的地址变化

当slave请求等待状态时,master只能更改一次地址,除了以下状态外:

  • 在IDLE传输期间。
  • 在出现ERROR响应后。

2.1 在IDLE传输期间

在等待传输期间,允许master为IDLE传输更改地址。当HTRANS传输类型变为NONSEQ时,master必须在HREADY变高之前保持地址不变。

图3-16 展示了SINGLE突发的等待传输,在IDLE传输期间地址变化。

图3-16中的说明:

  • T0-T1:master发起对地址A的SINGLE突发传输。
  • T1-T2:master插入一个对地址Y的IDLE传输。 slave通过HREADYOUT=LOW插入一个等待状态。
  • T2-T3:master插入一个对地址Z的IDLE传输。
  • T3-T4:master更改传输类型为NONSEQ,并开始对地址B的INCR4传输。 在HREADY变高之前,不允许再更改地址。
  • T5-T6:对地址A的SINGLE突发传输在HREADY变高时完成,master开始对地址B的第一拍传输。
  • T6-T7:对地址B的INCR4传输的第一拍完成,master开始对地址B+4的下一拍传输。

2.2 在ERROR响应后

在等待传输期间,如果slave以错误(ERROR)响应反馈,则允许master在HREADY为低时更改地址。

图3-17 展示了在slave发出ERROR响应后,等待传输期间地址的变化。

图3-17中的说明:

  • T0-T1:master发起对地址0x24下一拍的突发传输。
  • T1-T3:master发起对地址0x28下一拍的突发传输。 slave响应OKAY。
  • T3-T4:slave响应ERROR。
  • T4-T5:master更改传输类型为IDLE,且在HREADY为低时允许更改地址。 slave完成ERROR响应。
  • T5-T6:地址为0xC0的slave响应OKAY。

  • 35
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
AHB Burst传输是指在AMBA(Advanced Microcontroller Bus Architecture)高级微控制器总线架构中的一种数据传输方式。它通过在一次传输传输多个数据项来提高数据传输效率。这种传输方式可以使用不同的传输类型和不同的传输长度。其中,传输类型可以是INCR(递增)、FIXED(固定)或WRAP(循环),而传输长度可以是不定长或固定长度。 在AHB Burst传输中,INCR传输类型表示每次传输的地址会递增,可以按照一个固定步长进行地址增加。例如,一个INCR的写请求burst的地址步长为0x2,表示每次传输的地址会增加0x2。同样地,一个INCR的读请求burst的地址步长为0x4,表示每次传输的地址会增加0x4。这样可以在一次传输中连续读取或写入多个地址的数据项。 另外,AHB Burst传输中的等待状态(Waited transfers)会影响下一个传输的地址阶段的时间。在某些地址的传输过程中,可能会存在等待状态,这会延长下一个地址的传输时间。例如,在一个到地址B的传输过程中的数据阶段有一个等待状态,这会导致下一个地址C的地址阶段被延迟。 此外,在AHB Burst传输中,还有单次传输的方式,即SINGLE burst。这种传输方式只包含一个长度为1的不定长burst,用于单次数据传输。 综上所述,AHB Burst传输是一种在AMBA高级微控制器总线架构中使用的数据传输方式,它可以提高数据传输效率。根据不同的传输类型和传输长度,可以实现递增或固定步长的连续数据传输,并且可能存在等待状态影响下一个传输的地址阶段的时间。此外,还可以使用单次传输方式进行单次数据传输。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【AHB协议解读 三】传输(Transfers)](https://blog.csdn.net/qq_41849447/article/details/116902245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值