當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]1.起始(SOP)封包  根集線器會(huì)在每1 ms時(shí),送出SOF封包。這介于2個(gè)SOF封包之間的時(shí)間,即稱(chēng)為幀(frame)。SOF封包雖是屬于令牌封包的一種,但卻具有獨(dú)自的PID形態(tài)名稱(chēng)SOF。通常目

1.起始(SOP)封包

  根集線器會(huì)在每1 ms時(shí),送出SOF封包。這介于2個(gè)SOF封包之間的時(shí)間,即稱(chēng)為幀(frame)。SOF封包雖是屬于令牌封包的一種,但卻具有獨(dú)自的PID形態(tài)名稱(chēng)SOF。通常目標(biāo)設(shè)各都利用SOF封包來(lái)辨識(shí)幀的起點(diǎn)。這個(gè)封包常用于等時(shí)傳輸。也就是在1 ms的幀(高速是125 μS微幀,將1 ms切成8份)開(kāi)始時(shí),等時(shí)傳輸會(huì)利用SOF激活傳輸并達(dá)到同步傳輸?shù)淖饔?。而在每一個(gè)幀開(kāi)始時(shí),SOF會(huì)傳給所有連接上去的全速設(shè)各(包含集線器)。因此,SOF封包并不適用于低速設(shè)備。這個(gè)封包內(nèi)包含了一個(gè)幀碼,其可不斷地遞增,且在高達(dá)最大值時(shí)反轉(zhuǎn)為0,重新再計(jì)

  數(shù)一次。這個(gè)幀碼是用來(lái)表示幀的計(jì)數(shù)值,因此,8個(gè)微幀都使用同一個(gè)幀碼值。若必要時(shí),高速設(shè)各可計(jì)算出SOF的重復(fù)使用次數(shù),并計(jì)算出微幀的數(shù)量。通過(guò)縮短微幀的周期時(shí)間,便可減少高速設(shè)各對(duì)于緩沖存儲(chǔ)器的需求。

  如圖1所示,高速的根集線器將會(huì)使用額外的SOF來(lái)傳輸8個(gè)微幀。有些書(shū)籍會(huì)把這種高速的SOF,另命名為uSOF。這種增加的微幀,同時(shí)也替高速的連接帶來(lái)了更復(fù)雜的控制方式。

  圖1 USB幀與微幀示意圖

  此外,再利用如圖2所示的簡(jiǎn)圖來(lái)說(shuō)明主機(jī)所送出的一個(gè)SOF封包的格式。其中,SOF的封包標(biāo)識(shí)符,PID數(shù)據(jù)域的值為0xA5。PID[3:o]=0101與PID[3:o]=1010所產(chǎn)生的,只不過(guò)它的傳送順序須由LSB→MSB。因此,即可推算出0xA5。以下,所有的PID數(shù)據(jù)域皆可由此推算而得到。

  圖2 SOF封包的各種組成字段

  圖2顯示了SOF封包的各種字段與相關(guān)的定義。

  此外,端點(diǎn)可以通過(guò)SOF封包來(lái)加以同步,或是以幀碼值來(lái)作為時(shí)間的參考依據(jù)。當(dāng)整個(gè)USB總線上沒(méi)有USB傳輸時(shí),SOF封包也可避免讓設(shè)備切人低功率的中止(suspend)狀態(tài)。再者,雖然在低速設(shè)各上,是看不到SOF封包的,但相反,設(shè)各的集線器使用了前面所提及的BOP(End of-Packet)信號(hào),且在每一個(gè)幀設(shè)置一次。因此,有時(shí)后也稱(chēng)這種信號(hào)為設(shè)各的低速存活(keep alive)信號(hào)。所以說(shuō),SOF/uSOF封包是給全速/高速設(shè)各來(lái)使用的,而低速存活信號(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類(lèi)型名稱(chēng)。也就是包含了OUT令牌封包、IN令牌封包以及SETUP令牌封包。例如,在執(zhí)行控制傳輸主機(jī)要通過(guò)預(yù)設(shè)的地址取得設(shè)備描述符(Get ̄Descriptor),就必須先執(zhí)行下列的SETUP令牌封包,作為每一次控制傳輸?shù)拈_(kāi)始,其中,PID欄變成SETUP的PID類(lèi)型名稱(chēng)(0xB4)。IN令牌封包,則是主機(jī)用來(lái)通知設(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ù)與要求命令是什么呢?因此,必須通過(guò)數(shù)據(jù)封包來(lái)執(zhí)行這項(xiàng)工作。

  而由SETUP、IN與OUT令牌封包所起始的數(shù)據(jù)傳輸,將會(huì)以DATAO、DATA1、DATA2與MDATA封包來(lái)加以實(shí)現(xiàn)。一個(gè)數(shù)據(jù)封包含了4個(gè)數(shù)據(jù)域:SYNC、PID、DATA與CRC16。各個(gè)字段的意義之前已有介紹過(guò)。這即是54233的第2個(gè)數(shù)字:4。在這里,要稍微注意的是DATA字段內(nèi)所放置的位值,須根據(jù)USB設(shè)各的傳輸設(shè)備(低速、高速與全速)以及傳輸類(lèi)型(中斷傳輸、批量傳輸與等時(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種類(lèi)型:DATA0、DATA1、DATA2與MDATA。而根據(jù)USB規(guī)范,最初的數(shù)據(jù)封包都以DATA0作為開(kāi)始,其后才是DATA1,然后依此方式交替切換。這個(gè)動(dòng)作稱(chēng)之為數(shù)據(jù)緊密連接(data toggle)。這個(gè)動(dòng)作有點(diǎn)類(lèi)似將數(shù)據(jù)緊密連接。如此就可確保整個(gè)傳輸過(guò)程中,主機(jī)能與設(shè)各維持同步,且作為幀錯(cuò)之用。例如,如果兩個(gè)連續(xù)的DATA0被接收到的話(huà),意味著DATA1封包被遺漏掉,并產(chǎn)生了錯(cuò)誤的狀況。而DATA2與MDATA,則僅適用于高速的等時(shí)傳輸。

  若主機(jī)要針對(duì)特別尋址的設(shè)各端點(diǎn),送出取得設(shè)各描述符的命令,就可如圖4所示,將含有命令的數(shù)據(jù)封包傳出。其中,須特別注意的是,由于是控制傳輸,所以數(shù)據(jù)域中僅有8字節(jié)。至于“8006 0001 000040”的設(shè)備要求的意義。

  圖4 數(shù)據(jù)封包的各種組成字段

  4.握手封包

  握手封包是最簡(jiǎn)單的封包類(lèi)型。在這個(gè)握手封包中,僅包含一個(gè)PID數(shù)據(jù)域。它的格式如下所列,僅包含SYNC與PID兩個(gè)數(shù)據(jù)域,這即是54233的第3個(gè)數(shù)字:2。

  握手封包的PID數(shù)據(jù)域(PID[1:0]=[1:0])中包含了ACK、NAK、STALL與NYET這4種PID類(lèi)型名稱(chēng)。也就是含有ACK、NAK、STALL與NYET握手封包。

  延伸上一個(gè)圖例,如果設(shè)備已收到主機(jī)要執(zhí)行取得設(shè)備描述符的命令,設(shè)備就以握手封包來(lái)加以響應(yīng)。因此須注意的是,如果設(shè)備已準(zhǔn)備接收的話(huà)就以ACK握手封包響應(yīng);如果尚未就緒就使用NAK握手封包響應(yīng);如果發(fā)生錯(cuò)誤而停滯,就使用STALL握手封包響應(yīng)。圖5顯示一個(gè)握手封包的格式,其中ACK的PID數(shù)據(jù)域值為Ox4B,剛好與SETUP的PID數(shù)據(jù)域值相反。

  圖5 握手封包的各種組成字段

  通過(guò)上述的3個(gè)封包,即可組成一個(gè)數(shù)據(jù)交易。當(dāng)然,這即是54233的第4個(gè)數(shù)字:3。

  對(duì)于高速設(shè)備,為了改善NAK的機(jī)制,特別支持了NYET握手封包。這是由于當(dāng)數(shù)據(jù)已經(jīng)傳輸至總線時(shí),通過(guò)NAK這個(gè)OUT數(shù)據(jù)交易的動(dòng)作是不夠的。況且若是在總線上存在著高頻率的NAK傳輸過(guò)程,將會(huì)使得整個(gè)總線逐漸地被拖累,帶寬被分享掉。此時(shí),高速設(shè)各就可以使用特殊的PING封包(稍后會(huì)提及)來(lái)詢(xún)問(wèn),是否接收器還有緩沖區(qū)空間來(lái)接收OUT數(shù)據(jù)交易。如果設(shè)各以ACK來(lái)響應(yīng),那么傳送器就會(huì)安排

  OUT傳輸。反之,如果響應(yīng)的是NYET,那么傳送器就會(huì)以PING封包來(lái)查詢(xún)。如此,總線上就會(huì)有最佳的使用率。

  5.特殊封包

  總共包含了4個(gè)特殊封包(PRE、ERR、SPLIT與PING)。其中,一個(gè)僅使用在低速設(shè)備,一個(gè)僅使用在高速設(shè)各,其余兩個(gè)則是針對(duì)當(dāng)?shù)退倩蚴侨僭O(shè)備連接上USB 2.0集線器后,再以高速的方式與主機(jī)通信時(shí),才會(huì)用到。

 ?。?)PRE封包

  這個(gè)特殊前置(Special Preamble,PRE)封包擁有獨(dú)自的PID類(lèi)型名稱(chēng)PRE,其僅適用于主機(jī)想要從高速傳輸變成低速傳輸時(shí)所送出來(lái)的情形。也就是主機(jī)對(duì)于下端端口送出低速封包與低速設(shè)備通信之前,所必須先送出的PRE封包。在該P(yáng)RE封包中,包含了前置碼以告訴集線器,下一個(gè)封包是低速。如此,集線器將會(huì)以即將接上的低速設(shè)備開(kāi)始執(zhí)行通信的工作。此時(shí),PRE封包會(huì)放在導(dǎo)引至低速設(shè)各的所有令牌、數(shù)據(jù)以及握手封包之前。而高速設(shè)各是將PRE以SPLIT封包來(lái)加以編碼,因此不會(huì)重復(fù)地送出。對(duì)于原本已是低速的設(shè)備來(lái)說(shuō),不需要PRE封包。這種格式如下所列,僅包含兩個(gè)8位的數(shù)據(jù)域:SYNC與PRE。

 ?。?)PING封包

  僅存于高速設(shè)備所使用的特殊封包是PING封包。主機(jī)會(huì)送出PING封包來(lái)找出是否高速設(shè)各端點(diǎn)在以批量或是包含以多個(gè)數(shù)據(jù)封包的控制傳輸來(lái)送出下一個(gè)數(shù)據(jù)封包之前,是否為忙碌的狀態(tài)。這是由于傳統(tǒng)的USB數(shù)據(jù)交易時(shí),若常以NAK來(lái)響應(yīng)批量或控制的OUT傳輸,通常都會(huì)導(dǎo)致浪費(fèi)太多的帶寬。因此,為了減少高速或控制的OUT端點(diǎn)的損失,USB 2.0新增了PING封包。一旦批量或控制傳輸?shù)腛UT數(shù)據(jù)交易被NAK響應(yīng)后,主機(jī)控制器將會(huì)使用PING封包來(lái)查詢(xún)高速非周期性的端點(diǎn)是否有足夠的內(nèi)存來(lái)接收wMaxPacketSize大小容量的數(shù)據(jù)。如果此端點(diǎn)具有足夠的緩沖區(qū)來(lái)使用,就以ACK來(lái)響應(yīng)之;反之,繼續(xù)以NAK響應(yīng)為止。

  此外,高速非周期性的OUT端點(diǎn)也可以使用NYET來(lái)加以響應(yīng),以通知主機(jī)所要加載的數(shù)據(jù)是可以接收的,但是端點(diǎn)沒(méi)有足夠的內(nèi)存。此時(shí),主機(jī)會(huì)使用PING令牌,直到端點(diǎn)表示了針對(duì)下一個(gè)OUT數(shù)據(jù)交易,已有足夠的緩沖區(qū)內(nèi)存。

 ?。?)SPLIT封包

  SPILIT封包定義了令牌封包為分割數(shù)據(jù)交易(split transactION)的一部分。為了最佳地使用總線時(shí)間,USB 2.0主機(jī)與集線器會(huì)以高速來(lái)送出低速與全速的通信數(shù)據(jù)。至于為什么需要分割數(shù)據(jù)交易呢?這是由于當(dāng)主機(jī)開(kāi)始傳輸一個(gè)針對(duì)低速或是全速的設(shè)各所預(yù)定的數(shù)據(jù)交易時(shí),那么最接近設(shè)備的2.0集線器就有責(zé)任去實(shí)現(xiàn)與此設(shè)各的數(shù)據(jù)交易。此外,也負(fù)責(zé)存儲(chǔ)任何回傳的數(shù)據(jù)或是狀態(tài)信息,以及以一個(gè)或是兩個(gè)稍后的數(shù)據(jù)交易來(lái)加以回報(bào)回去。如此,整個(gè)總線就無(wú)須去針對(duì)實(shí)現(xiàn)一個(gè)低速的交易來(lái)持續(xù)地等待。而這個(gè)介于集線器與主機(jī)之間的特殊數(shù)據(jù)交易,就稱(chēng)之為分割數(shù)據(jù)交易。

 ?。?)ERROR甚寸包

  這個(gè)封包僅使用在分割數(shù)據(jù)交易時(shí)。2.0集線器會(huì)使用該封包并以低速或全速的數(shù)據(jù)交易來(lái)回報(bào)一個(gè)錯(cuò)誤給主機(jī)。在此,讀者是否發(fā)現(xiàn)該P(yáng)ID碼值與PRE PID碼值是一樣的。但是其中,最大的差異是前者是應(yīng)用在設(shè)各與集線器上,另一個(gè)則是應(yīng)用在主機(jī)上。也即是集線器不會(huì)送出PRE封包給主機(jī)或是ERR封包給設(shè)各。

  以下,將這些封包格式與字段等加以匯整,如表所列,并列出各個(gè)字段與其目的。

  表 封包與字段之間的關(guān)系

  續(xù)表

  

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉