USB通信数据紧密连接位
由于传送器与接收器两者都要追踪数据紧密连接位。因此,为了怕弄混淆,一开始二者同时设置为DATA0。当接收器检测到刚进来的数据交易时,它就会比较所接收到数据紧密连接位与自己的数据紧密连接位的状态。若位符合,接收器就会连接切换其位,并且传回ACK封包给传送器。而这个ACK也会使得传送器去连接切换其位。
此时,在传输中的下一个所接收到的封包将会包含DATA1的数据紧密连接位,而接收器再一次连接切换其位,并且回传ACK。若这个传输过程都无误,这个流程会一直持续着,DATA0→DATA1→DAYAO→……直到整个传输结束为止。
而特殊例外的情形是,在全速等时传输时,主机总使用DATA0的数据紧密连接位。这是因为等时传输没有回传ACK或NAK来作握手的动作,也即是根本没有时间来重传数据。
为了在一个微帧同时支持3组数据传输以进行高速同步传输,USB 2.0规范采用DATA2与MDATA两种规范全新的数据PID。高速中断传输能在DATA0与DA-TAI PID之间进行紧密连接(togglg),如图1所示。
图1 高带宽的中断数据交易
对于高速等时传输来说,数据紧密连接位应分为IN与OUT两种类型。在高速等时传输IN中,每一个微帧包含2或3个数据交易。因此,使用DATA0、DATA1、DA-TA2来表示数据交易在微帧的位置,如表1所列。如图2所示,显示了一个等时IN端点在每个微帧中同步进行3组数据传输的过程。而数据PID(DATAx)代表传输要求的数量以及微帧的数值(x)。
表1 高速等时传输IN的数据紧密连接位
图2 高带宽的等时IN数据交易
对于高速等时OUT传输,最后数据PID(DATAx)代表在发生第x个微帧之前所进行的一个传输。先前的数据传输以MDATA PID方式进行数据传输。图3中显示了一个等时OUT端点能在每个微帧中同步完成3组数据传输的过程。如表2所列,在高速等时传输OUT中,每一个微帧包含2或3个数据交易。因此,使用DA-TAO、DATA1、MDATA来表示是否有更多的数据会跟随着在微帧中。
图3 高带宽的等时OUT数据交易
表2 高速等时传输OUT的数据紧密连接位
评论