USB通信數(shù)據(jù)緊密連接位
由于傳送器與接收器兩者都要追蹤數(shù)據(jù)緊密連接位。因此,為了怕弄混淆,一開始二者同時設置為DATA0。當接收器檢測到剛進來的數(shù)據(jù)交易時,它就會比較所接收到數(shù)據(jù)緊密連接位與自己的數(shù)據(jù)緊密連接位的狀態(tài)。若位符合,接收器就會連接切換其位,并且傳回ACK封包給傳送器。而這個ACK也會使得傳送器去連接切換其位。
此時,在傳輸中的下一個所接收到的封包將會包含DATA1的數(shù)據(jù)緊密連接位,而接收器再一次連接切換其位,并且回傳ACK。若這個傳輸過程都無誤,這個流程會一直持續(xù)著,DATA0→DATA1→DAYAO→……直到整個傳輸結束為止。
而特殊例外的情形是,在全速等時傳輸時,主機總使用DATA0的數(shù)據(jù)緊密連接位。這是因為等時傳輸沒有回傳ACK或NAK來作握手的動作,也即是根本沒有時間來重傳數(shù)據(jù)。
為了在一個微幀同時支持3組數(shù)據(jù)傳輸以進行高速同步傳輸,USB 2.0規(guī)范采用DATA2與MDATA兩種規(guī)范全新的數(shù)據(jù)PID。高速中斷傳輸能在DATA0與DA-TAI PID之間進行緊密連接(togglg),如圖1所示。
圖1 高帶寬的中斷數(shù)據(jù)交易
對于高速等時傳輸來說,數(shù)據(jù)緊密連接位應分為IN與OUT兩種類型。在高速等時傳輸IN中,每一個微幀包含2或3個數(shù)據(jù)交易。因此,使用DATA0、DATA1、DA-TA2來表示數(shù)據(jù)交易在微幀的位置,如表1所列。如圖2所示,顯示了一個等時IN端點在每個微幀中同步進行3組數(shù)據(jù)傳輸?shù)倪^程。而數(shù)據(jù)PID(DATAx)代表傳輸要求的數(shù)量以及微幀的數(shù)值(x)。
表1 高速等時傳輸IN的數(shù)據(jù)緊密連接位
圖2 高帶寬的等時IN數(shù)據(jù)交易
對于高速等時OUT傳輸,最后數(shù)據(jù)PID(DATAx)代表在發(fā)生第x個微幀之前所進行的一個傳輸。先前的數(shù)據(jù)傳輸以MDATA PID方式進行數(shù)據(jù)傳輸。圖3中顯示了一個等時OUT端點能在每個微幀中同步完成3組數(shù)據(jù)傳輸?shù)倪^程。如表2所列,在高速等時傳輸OUT中,每一個微幀包含2或3個數(shù)據(jù)交易。因此,使用DA-TAO、DATA1、MDATA來表示是否有更多的數(shù)據(jù)會跟隨著在微幀中。
圖3 高帶寬的等時OUT數(shù)據(jù)交易
表2 高速等時傳輸OUT的數(shù)據(jù)緊密連接位
評論