等待传输
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。