USB通信協(xié)議——分割數(shù)據(jù)交易
圖1 起始分割數(shù)據(jù)交易與完成分割數(shù)據(jù)交易的示意圖
但其中,有一個例外的是,快速等時OUT數(shù)據(jù)交易。這是因其無須回傳任何值,所以不必使用完全分割數(shù)據(jù)交易。而即使用戶需要包含更多的數(shù)據(jù)交易來實現(xiàn)一個傳輸?shù)墓ぷ鳎指顢?shù)據(jù)交易的程序?qū)沟每偩€的時間有較佳的使用性。這是因為它們將會縮小對于低速或是全速設(shè)備用來響應(yīng)所需花費的總線等待時間量。
如圖1所示,在起始分割數(shù)據(jù)交易中,2.0主機會送出至起始分割令牌封包(Start-Split Token Packet,SSPLIT),其后再跟隨一般的低速或是全速令牌封包(在令牌階段中,包含2個令牌封包,SSPLIT(起始令牌)+令牌),以及指定此設(shè)備的數(shù)據(jù)封包。此時,若設(shè)各所連接的2.0集線器回傳ACK或是NAK,主機就可以針對別的數(shù)據(jù)交易很自由地使用整個總線的帶寬。而設(shè)各也知道至今仍未有任何的數(shù)據(jù)存在。
為了更清楚了解整個起始分割數(shù)據(jù)交易與完成分割數(shù)據(jù)交易的過程,讀者可以比對圖2與圖3,分割數(shù)據(jù)交易IN與OUT的過程示意圖。在這兩個圖中,包含了3個主要的傳輸部分,2.0主機、2.0集線器與低速或是全速的設(shè)各。因此,讀者可以從這3個主要的部分來加以分析,且以圖2與3所示之3個步驟來加以了解。
圖2 分割數(shù)據(jù)交易(IN)過程示意圖
如圖2所示的第1步中,2.0主機先送出SSPLIT與IN令牌。第2步,集線器就會轉(zhuǎn)換主機接收到的封包或多 個封包為適當(dāng)?shù)乃俣?,然后將它們送至設(shè)備,以及存儲如果設(shè)備有的任何響應(yīng)。根據(jù)數(shù)據(jù)交易類型,設(shè)各可以回傳數(shù)據(jù)、握手或是沒有任何動作。對于設(shè)備部分來說,這個數(shù)據(jù)已經(jīng)是以預(yù)期的低速或是全速來處理的,且不知這是已被分割過的數(shù)據(jù)交易。此時,主機仍未收到任何設(shè)備的響應(yīng)。當(dāng)集線器已經(jīng)完成了與設(shè)各的數(shù)據(jù)交易的工作后,緊接著,主機可以開始另外的總線傳輸工作。同時,該集線器也必須加以處理。
此時對主機來說,當(dāng)其認為集線器已經(jīng)有足夠的時間來完成與設(shè)各的數(shù)據(jù)交易后,就開始與集線器進行完成分割數(shù)據(jù)的步驟,這即是步驟3(注意到這個動作在數(shù)據(jù)交易OUT,是不需要的)。
在第3步中的完成分割數(shù)據(jù)交易中,主機會送出完成分割數(shù)據(jù)交易,其后一般再跟隨低速或全速令牌封包(在令牌階段中,包含2個令牌封包,CSPLIT(完成令牌)+令牌),來要求集線器已經(jīng)從設(shè)各收到的數(shù)據(jù)或狀態(tài)信息。這也可參考圖2所示的下半部。集線器就會回傳所要求的數(shù)據(jù)或是狀態(tài)碼。這將是完成數(shù)據(jù)交易的動作。如果集線器并沒有準備好可以送出封包,它將會回傳NYET狀態(tài)碼,而且主機還會再試一次。
評論