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