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