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