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