1.HREADY信号
heady信号是slave回复主,表示读写操作是否完成的信号,可以通过拉低来延长传输。
注意:HREADY会有两个,一个是总线给的输入hready_in,一个是SLAVE给出的hready_out。
这个示意图是指在传输过程中,在需要延迟传送的周期,会把HREADY拉低(数据的周期),此时地址和数据都需要保持。
因为是流水线的设计,本次操作data 对应下一个address ,所以作为Slave必须先判断一下Master对上一次其它Slave设备的操作是否已经完成。如果完成,则响应主设备的操作;如果没有完成,则等待完成,然后才响应操作。
2.HTRANS
HTRANS[1:0] | ||
00 | IDLE | Slave忽略掉此时的传输 |
01 | BUSY | 表示master正在处理数据,slave需要忽略掉此时的传输 |
10 | NONSEQ | 表明当前是单笔的数据,或者是Burst的第一笔数据 |
11 | SEQ | 是Burst传输的剩余数据 |
T1:标明是busrt传输,这是burst的第一笔数据。
T2:HTANS是busy状态,表明当前传输延迟。
T3:继续传输,但是此时是没有数据的,所以是空白
T4:slave传输发现没法完成,拉低了Hready,
T5:master收到 延迟的信息,在T6时刻,随着hready拉高而受到数据。
3.HBURST
这个递增和回绕是指的地址,递增就是随着上一地址增加,回绕就是数据传输到一个边界内返回。这个边界是由hsize和hburst共同决定的。注意边界不能超过1KB。
1. 在 T1 正沿触发时,第一个传送地址 0x68 送出, NONSEQ 表示这是第一笔的传送; WARP4 表明是4个数据要回绕地址。
S 在 T3 时,回传一笔数据。注意地址 0x60 为一延伸周期,其数据在 T6 正沿才被接收到 (对读而言)或写入 S (对写而言)。
这个图就是T1-T3是一笔传输,T3-T6是一笔传输。
第一笔传输从0x68开始,16位传输,第二笔是32Bit,从0x108开始。