USB封包格式
發(fā)布時(shí)間:2008/12/17 0:00:00 訪問次數(shù):2584
1.起始(sop)封包
根集線器會(huì)在每1 ms時(shí),送出sof封包。這介于2個(gè)sof封包之間的時(shí)間,即稱為幀(frame)。sof封包雖是屬于令牌封包的一種,但卻具有獨(dú)自的pid形態(tài)名稱sof。通常目標(biāo)設(shè)各都利用sof封包來辨識(shí)幀的起點(diǎn)。這個(gè)封包常用于等時(shí)傳輸。也就是在1 ms的幀(高速是125 μs微幀,將1 ms切成8份)開始時(shí),等時(shí)傳輸會(huì)利用sof激活傳輸并達(dá)到同步傳輸?shù)淖饔。而在每一個(gè)幀開始時(shí),sof會(huì)傳給所有連接上去的全速設(shè)各(包含集線器)。因此,sof封包并不適用于低速設(shè)備。這個(gè)封包內(nèi)包含了一個(gè)幀碼,其可不斷地遞增,且在高達(dá)最大值時(shí)反轉(zhuǎn)為0,重新再計(jì)
數(shù)一次。這個(gè)幀碼是用來表示幀的計(jì)數(shù)值,因此,8個(gè)微幀都使用同一個(gè)幀碼值。若必要時(shí),高速設(shè)各可計(jì)算出sof的重復(fù)使用次數(shù),并計(jì)算出微幀的數(shù)量。通過縮短微幀的周期時(shí)間,便可減少高速設(shè)各對(duì)于緩沖存儲(chǔ)器的需求。
如圖1所示,高速的根集線器將會(huì)使用額外的sof來傳輸8個(gè)微幀。有些書籍會(huì)把這種高速的sof,另命名為usof。這種增加的微幀,同時(shí)也替高速的連接帶來了更復(fù)雜的控制方式。
圖1 usb幀與微幀示意圖
此外,再利用如圖2所示的簡(jiǎn)圖來說明主機(jī)所送出的一個(gè)sof封包的格式。其中,sof的封包標(biāo)識(shí)符,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)的定義。
此外,端點(diǎn)可以通過sof封包來加以同步,或是以幀碼值來作為時(shí)間的參考依據(jù)。當(dāng)整個(gè)usb總線上沒有usb傳輸時(shí),sof封包也可避免讓設(shè)備切人低功率的中止(suspend)狀態(tài)。再者,雖然在低速設(shè)各上,是看不到sof封包的,但相反,設(shè)各的集線器使用了前面所提及的bop(end of-packet)信號(hào),且在每一個(gè)幀設(shè)置一次。因此,有時(shí)后也稱這種信號(hào)為設(shè)各的低速存活(keep alive)信號(hào)。所以說,sof/usof封包是給全速/高速設(shè)各來使用的,而低速存活信號(hào)卻可避免讓低速設(shè)備切入中止?fàn)顟B(tài)中。
2.令牌封包
由于usb的數(shù)據(jù)交易是由pc主機(jī)端所激活的,所以在每一個(gè)數(shù)據(jù)交易中,必須以下列的5個(gè)數(shù)據(jù)域所組合而成的令牌封包作為起始,并執(zhí)行通信協(xié)議的前導(dǎo)工作。一個(gè)令牌封包含蓋了5個(gè)數(shù)據(jù)域sync、pid、addr、endp與crc5。這即是54233的第1個(gè)數(shù)字:5。如下所列為其令牌封包的各個(gè)組成的數(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令牌封包則剛好相反。
圖3 顯示了pc主機(jī)所起始的setup令牌封包。
圖3 令牌封包的各種組成的字段
3.?dāng)?shù)據(jù)封包
在usb接口中,主機(jī)執(zhí)行了總線的管理、數(shù)據(jù)傳輸以及設(shè)各對(duì)主機(jī)所提出的要求命令作出響應(yīng)的動(dòng)作。這些所要傳輸?shù)臄?shù)據(jù)與要求命令是什么呢?因此,必須通過數(shù)據(jù)封包來執(zhí)行這項(xiàng)工作。
而由setup、in與out令牌封包所起始的數(shù)據(jù)傳輸,將會(huì)以datao、data1、data2與mdata封包來加以實(shí)現(xiàn)。一個(gè)數(shù)據(jù)封包含了4個(gè)數(shù)據(jù)域:sync、pid、data與crc16。各個(gè)字段的意義之前已有介紹過。這即是54233的第2個(gè)數(shù)字:4。在這里,要稍微注意的是data字段內(nèi)所放置的位值,須根據(jù)usb設(shè)各的傳輸設(shè)備(低速、高速與全速)以及傳輸類型(中斷傳輸、批量傳輸與等時(shí)傳輸)而定,且須以所設(shè)置的maxpacksize字節(jié)為基本單位。也即是,若傳輸?shù)臄?shù)據(jù)不足maxpacksize字節(jié),或是傳輸?shù)阶詈笏S嗟囊膊蛔鉳axpacksize字節(jié),則仍須傳輸maxpacksize個(gè)字節(jié)的數(shù)據(jù)域。
列出由4個(gè)數(shù)據(jù)域所組合而成的數(shù)據(jù)封包。
數(shù)據(jù)封包的pid數(shù)據(jù)域(pid[1:0]=[1:1])包含了4種類型:data0、data1、data2與mdata。而根據(jù)usb規(guī)范,最初的數(shù)據(jù)封包都以data0作為開始,其后才是data1,然后依此方式交替切換。這個(gè)動(dòng)作稱之為數(shù)據(jù)緊密連接(data toggle)。這個(gè)動(dòng)作有點(diǎn)類似將數(shù)據(jù)緊
1.起始(sop)封包
根集線器會(huì)在每1 ms時(shí),送出sof封包。這介于2個(gè)sof封包之間的時(shí)間,即稱為幀(frame)。sof封包雖是屬于令牌封包的一種,但卻具有獨(dú)自的pid形態(tài)名稱sof。通常目標(biāo)設(shè)各都利用sof封包來辨識(shí)幀的起點(diǎn)。這個(gè)封包常用于等時(shí)傳輸。也就是在1 ms的幀(高速是125 μs微幀,將1 ms切成8份)開始時(shí),等時(shí)傳輸會(huì)利用sof激活傳輸并達(dá)到同步傳輸?shù)淖饔。而在每一個(gè)幀開始時(shí),sof會(huì)傳給所有連接上去的全速設(shè)各(包含集線器)。因此,sof封包并不適用于低速設(shè)備。這個(gè)封包內(nèi)包含了一個(gè)幀碼,其可不斷地遞增,且在高達(dá)最大值時(shí)反轉(zhuǎn)為0,重新再計(jì)
數(shù)一次。這個(gè)幀碼是用來表示幀的計(jì)數(shù)值,因此,8個(gè)微幀都使用同一個(gè)幀碼值。若必要時(shí),高速設(shè)各可計(jì)算出sof的重復(fù)使用次數(shù),并計(jì)算出微幀的數(shù)量。通過縮短微幀的周期時(shí)間,便可減少高速設(shè)各對(duì)于緩沖存儲(chǔ)器的需求。
如圖1所示,高速的根集線器將會(huì)使用額外的sof來傳輸8個(gè)微幀。有些書籍會(huì)把這種高速的sof,另命名為usof。這種增加的微幀,同時(shí)也替高速的連接帶來了更復(fù)雜的控制方式。
圖1 usb幀與微幀示意圖
此外,再利用如圖2所示的簡(jiǎn)圖來說明主機(jī)所送出的一個(gè)sof封包的格式。其中,sof的封包標(biāo)識(shí)符,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)的定義。
此外,端點(diǎn)可以通過sof封包來加以同步,或是以幀碼值來作為時(shí)間的參考依據(jù)。當(dāng)整個(gè)usb總線上沒有usb傳輸時(shí),sof封包也可避免讓設(shè)備切人低功率的中止(suspend)狀態(tài)。再者,雖然在低速設(shè)各上,是看不到sof封包的,但相反,設(shè)各的集線器使用了前面所提及的bop(end of-packet)信號(hào),且在每一個(gè)幀設(shè)置一次。因此,有時(shí)后也稱這種信號(hào)為設(shè)各的低速存活(keep alive)信號(hào)。所以說,sof/usof封包是給全速/高速設(shè)各來使用的,而低速存活信號(hào)卻可避免讓低速設(shè)備切入中止?fàn)顟B(tài)中。
2.令牌封包
由于usb的數(shù)據(jù)交易是由pc主機(jī)端所激活的,所以在每一個(gè)數(shù)據(jù)交易中,必須以下列的5個(gè)數(shù)據(jù)域所組合而成的令牌封包作為起始,并執(zhí)行通信協(xié)議的前導(dǎo)工作。一個(gè)令牌封包含蓋了5個(gè)數(shù)據(jù)域sync、pid、addr、endp與crc5。這即是54233的第1個(gè)數(shù)字:5。如下所列為其令牌封包的各個(gè)組成的數(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令牌封包則剛好相反。
圖3 顯示了pc主機(jī)所起始的setup令牌封包。
圖3 令牌封包的各種組成的字段
3.?dāng)?shù)據(jù)封包
在usb接口中,主機(jī)執(zhí)行了總線的管理、數(shù)據(jù)傳輸以及設(shè)各對(duì)主機(jī)所提出的要求命令作出響應(yīng)的動(dòng)作。這些所要傳輸?shù)臄?shù)據(jù)與要求命令是什么呢?因此,必須通過數(shù)據(jù)封包來執(zhí)行這項(xiàng)工作。
而由setup、in與out令牌封包所起始的數(shù)據(jù)傳輸,將會(huì)以datao、data1、data2與mdata封包來加以實(shí)現(xiàn)。一個(gè)數(shù)據(jù)封包含了4個(gè)數(shù)據(jù)域:sync、pid、data與crc16。各個(gè)字段的意義之前已有介紹過。這即是54233的第2個(gè)數(shù)字:4。在這里,要稍微注意的是data字段內(nèi)所放置的位值,須根據(jù)usb設(shè)各的傳輸設(shè)備(低速、高速與全速)以及傳輸類型(中斷傳輸、批量傳輸與等時(shí)傳輸)而定,且須以所設(shè)置的maxpacksize字節(jié)為基本單位。也即是,若傳輸?shù)臄?shù)據(jù)不足maxpacksize字節(jié),或是傳輸?shù)阶詈笏S嗟囊膊蛔鉳axpacksize字節(jié),則仍須傳輸maxpacksize個(gè)字節(jié)的數(shù)據(jù)域。
列出由4個(gè)數(shù)據(jù)域所組合而成的數(shù)據(jù)封包。
數(shù)據(jù)封包的pid數(shù)據(jù)域(pid[1:0]=[1:1])包含了4種類型:data0、data1、data2與mdata。而根據(jù)usb規(guī)范,最初的數(shù)據(jù)封包都以data0作為開始,其后才是data1,然后依此方式交替切換。這個(gè)動(dòng)作稱之為數(shù)據(jù)緊密連接(data toggle)。這個(gè)動(dòng)作有點(diǎn)類似將數(shù)據(jù)緊
熱門點(diǎn)擊
- USB封包格式
- USB通信協(xié)議——傳輸類型
- USB通信協(xié)議——錯(cuò)誤檢查
- USB通信協(xié)議——循環(huán)冗佘檢驗(yàn)位
- 低速與全速的USB總線狀態(tài)
- USB的編碼方式
- USB接口的電氣特性
- Flash的選擇
- USB通信協(xié)議——數(shù)據(jù)交易
- USB通信協(xié)議——傳輸
推薦技術(shù)資料
- 分立器件&無源元件選型及工作原
- 新一代“超越EUV”光刻系統(tǒng)參
- 最新品BAT激光器制造工藝設(shè)計(jì)
- 新款汽車SoC產(chǎn)品Malibo
- 新芯片品類FPCU(現(xiàn)場(chǎng)可編程
- 電動(dòng)汽車動(dòng)力總成系統(tǒng)̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究