AHB传输---等待传输

本文详细描述了在I2C总线通信中,当slave请求等待状态时,master在IDLE、BUSY传输类型以及突发传输中的行为规范,包括地址的变更限制。重点强调了在等待状态下的传输类型变更和地址变更规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

等待传输

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。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值