USB封包格式
根集線器會在每1 ms時,送出SOF封包。這介于2個SOF封包之間的時間,即稱為幀(frame)。SOF封包雖是屬于令牌封包的一種,但卻具有獨自的PID形態(tài)名稱SOF。通常目標(biāo)設(shè)各都利用SOF封包來辨識幀的起點。這個封包常用于等時傳輸。也就是在1 ms的幀(高速是125 μS微幀,將1 ms切成8份)開始時,等時傳輸會利用SOF激活傳輸并達(dá)到同步傳輸?shù)淖饔谩6诿恳粋€幀開始時,SOF會傳給所有連接上去的全速設(shè)各(包含集線器)。因此,SOF封包并不適用于低速設(shè)備。這個封包內(nèi)包含了一個幀碼,其可不斷地遞增,且在高達(dá)最大值時反轉(zhuǎn)為0,重新再計
數(shù)一次。這個幀碼是用來表示幀的計數(shù)值,因此,8個微幀都使用同一個幀碼值。若必要時,高速設(shè)各可計算出SOF的重復(fù)使用次數(shù),并計算出微幀的數(shù)量。通過縮短微幀的周期時間,便可減少高速設(shè)各對于緩沖存儲器的需求。
如圖1所示,高速的根集線器將會使用額外的SOF來傳輸8個微幀。有些書籍會把這種高速的SOF,另命名為uSOF。這種增加的微幀,同時也替高速的連接帶來了更復(fù)雜的控制方式。
圖1 USB幀與微幀示意圖
此外,再利用如圖2所示的簡圖來說明主機(jī)所送出的一個SOF封包的格式。其中,SOF的封包標(biāo)識符,PID數(shù)據(jù)域的值為0xA5。PID[3:o]=0101與PID[3:o]=1010所產(chǎn)生的,只不過它的傳送順序須由LSB→MSB。因此,即可推算出0xA5。以下,所有的PID數(shù)據(jù)域皆可由此推算而得到。
圖2 SOF封包的各種組成字段
圖2顯示了SOF封包的各種字段與相關(guān)的定義。
此外,端點可以通過SOF封包來加以同步,或是以幀碼值來作為時間的參考依據(jù)。當(dāng)整個USB總線上沒有USB傳輸時,SOF封包也可避免讓設(shè)備切人低功率的中止(suspend)狀態(tài)。再者,雖然在低速設(shè)各上,是看不到SOF封包的,但相反,設(shè)各的集線器使用了前面所提及的BOP(End of-Packet)信號,且在每一個幀設(shè)置一次。因此,有時后也稱這種信號為設(shè)各的低速存活(keep alive)信號。所以說,SOF/uSOF封包是給全速/高速設(shè)各來使用的,而低速存活信號卻可避免讓低速設(shè)備切入中止?fàn)顟B(tài)中。
2.令牌封包
由于USB的數(shù)據(jù)交易是由PC主機(jī)端所激活的,所以在每一個數(shù)據(jù)交易中,必須以下列的5個數(shù)據(jù)域所組合而成的令牌封包作為起始,并執(zhí)行通信協(xié)議的前導(dǎo)工作。一個令牌封包含蓋了5個數(shù)據(jù)域SYNC、PID、ADDR、ENDP與CRC5。這即是54233的第1個數(shù)字:5。如下所列為其令牌封包的各個組成的數(shù)據(jù)域。
令牌封包的PID數(shù)據(jù)域(PID[1:0]=[0,1])中包含了OUT、IN、SETUP這3種PID類型名稱。也就是包含了OUT令牌封包、IN令牌封包以及SETUP令牌封包。例如,在執(zhí)行控制傳輸主機(jī)要通過預(yù)設(shè)的地址取得設(shè)備描述符(Get ̄Descriptor),就必須先執(zhí)行下列的SETUP令牌封包,作為每一次控制傳輸?shù)拈_始,其中,PID欄變成SETUP的PID類型名稱(0xB4)。IN令牌封包,則是主機(jī)用來通知設(shè)備,將要執(zhí)行數(shù)據(jù)輸入的工作。而OUT令牌封包則剛好相反。
pid控制相關(guān)文章:pid控制原理
三相異步電動機(jī)相關(guān)文章:三相異步電動機(jī)原理
評論