USB通信協(xié)議——分割數(shù)據(jù)交易
中斷與等時傳輸?shù)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/分割數(shù)據(jù)交易">分割數(shù)據(jù)交易的程序是類似的,但更嚴(yán)謹(jǐn)?shù)囟x其時序。而這個目標(biāo)即是在設(shè)各有可使用的數(shù)據(jù)后,會盡可能立即去傳輸數(shù)據(jù)給主機,或是設(shè)備已經(jīng)準(zhǔn)備好新的數(shù)據(jù)之前,主機能傳輸數(shù)據(jù)給設(shè)各。為了達(dá)到這個目標(biāo),具有大量封包的等時數(shù)據(jù)交易可以使用多個起始分割或完成分割數(shù)據(jù)交易,來每一次傳輸一部分?jǐn)?shù)據(jù)。
不像批量或控制傳輸,在中斷與等時傳輸?shù)钠鹗?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/分割數(shù)據(jù)交易">分割數(shù)據(jù)交易不含有握手階段。反而是在其后跟隨IN、OUT或SETUP封包,以及若是OUT或SETUP封包,應(yīng)再加上數(shù)據(jù)封包。
在此,對數(shù)據(jù)交易的起始分割與完成分割做個小結(jié)論(參考圖2)。
·仍然包含3個(或是更少)的數(shù)據(jù)交易層(令牌、數(shù)據(jù)與握手);
·令牌階段具有2個封包:SPLIT令牌封包與一般令牌封包;
·Start-OUT:SSPLIT(起始令牌)+令牌,數(shù)據(jù),(握手);
·Start IN:SSPLIT(起始令牌)+令牌,(握手);
·Complete OUT:CSPLIT(完成令牌)+令牌,握手;
·Complete IN:CSPLIT(完成令牌)+令牌,{數(shù)據(jù)),握手。
如圖2所示,在等時IN數(shù)據(jù)交易中,當(dāng)主機知道設(shè)各將會有部分?jǐn)?shù)據(jù)要回傳時,就會在每一個微幀安排完成分割數(shù)據(jù)交易的工作。這種以較小量來要求數(shù)據(jù)的方式,可以確保主機盡可能快速地接收到數(shù)據(jù)。這樣主機就不必等待從設(shè)備以全速傳輸?shù)乃袛?shù)據(jù)。
此外,如圖3所示,在等時OUT數(shù)據(jù)交易中,主機會以一個或是更多的起始分割數(shù)據(jù)交易來送出數(shù)據(jù)。主機會安排這些數(shù)據(jù)交易的程序,如此集線器的緩沖區(qū)將不曾是空的,且會盡可能包含一些字節(jié)。在每一個SPLIT封包中,包含了用來表示其在低速或全速數(shù)據(jù)封包的數(shù)據(jù)位置的許多位。讀者也可以發(fā)現(xiàn)這個OUT數(shù)據(jù)交易不含完成分割數(shù)據(jù)交易的程序。
圖3 分割數(shù)據(jù)交易(OUT)過程示意圖
表比較了在不同的總線速度下,低速與全速設(shè)各所具有的數(shù)據(jù)交易的結(jié)構(gòu)與內(nèi)容。其中,列出了當(dāng)?shù)退倩蛉僭O(shè)各在高速總線上有一個數(shù)據(jù)交易,且主機在這些設(shè)各與USB 2.0主機集線器之間使用了起始分割數(shù)據(jù)交易(SSPLIT)以及完成分割數(shù)據(jù)交易(CSPLIT)時,中間的集線器就負(fù)責(zé)將低速或全速加以完成分割,并且回報給主機。
表 不同的總線下,低速與全速設(shè)備所具有的數(shù)據(jù)交易的結(jié)構(gòu)與內(nèi)容
評論