當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]1、USB總線(xiàn)通信的基本單位是包,包由8位的前導(dǎo)符SYNC域、8位的PID域、數(shù)據(jù)域、CRC域以及EOP(電平信號(hào))組成。??? 1)SYNC域是為了同步時(shí)鐘,當(dāng)總線(xiàn)上由IDLE狀態(tài)跳變到差分的010

1、USB總線(xiàn)通信的基本單位是包,包由8位的前導(dǎo)符SYNC域、8位的PID域、數(shù)據(jù)域、CRC域以及EOP(電平信號(hào))組成。

??? 1)SYNC域是為了同步時(shí)鐘,當(dāng)總線(xiàn)上由IDLE狀態(tài)跳變到差分的01010..的SYNC域時(shí),表明一個(gè)包的開(kāi)始。

??? 2)PID域是為了區(qū)分不同的包類(lèi)型,比如SETUP包、OUT包、IN包等等。

??? 3)數(shù)據(jù)域則根據(jù)不同的包類(lèi)型來(lái)解釋。

??? 4)CRC域是校驗(yàn)碼。

??? 5)EOP是一種總線(xiàn)信號(hào)狀態(tài),用來(lái)表明一個(gè)包的結(jié)束。

?

2、USB的包根據(jù)PID域可以分為3個(gè)大類(lèi):

??? 1)token(令牌)包,由USB主機(jī)發(fā)起。token包又分為IN、OUT、SETUP等。當(dāng)USB主機(jī)發(fā)送一個(gè)SETUP包時(shí),表明接下來(lái)是一個(gè)SETUP事務(wù)傳輸。若USB主機(jī)發(fā)起的是IN包,表明接下來(lái)是一個(gè)IN事務(wù)傳輸。

??? 2)DATA0包和DATA1包。DATA0和DATA1包可以由USB主機(jī)發(fā)起或者是由USB設(shè)備發(fā)起,表明這是一個(gè)數(shù)據(jù)包。為了同步數(shù)據(jù)包,使用DATA0、DATA1、DATA0...這樣的翻轉(zhuǎn)包來(lái)達(dá)到同步。

??? 3)ACK包、NAK包以及STALL包,這些包用來(lái)表明之前的數(shù)據(jù)傳輸、控制應(yīng)答是否正確。這3個(gè)包比較特殊,只有SYNC和PID域。

注意,區(qū)分這些包是在包的PID域中區(qū)分的。

?

3、USB總線(xiàn)上的設(shè)備具有地址的屬性,一個(gè)包或者一次事務(wù)傳輸,必須支持是USB主機(jī)和哪個(gè)設(shè)備的通信。換句話(huà)說(shuō),當(dāng)主機(jī)發(fā)起一個(gè)SETUP包、DATA0包等,這些包時(shí),哪個(gè)設(shè)備應(yīng)該接收數(shù)據(jù)并作出相應(yīng)呢?

為此,USB定義了事務(wù)傳輸,事務(wù)傳輸由幾個(gè)包組成,而且第一個(gè)包必定是USB主機(jī)發(fā)起的token包、接著是DATA包、最后是ACK包。其中的token包,就領(lǐng)銜了一次事務(wù)傳輸,指出此次事務(wù)傳輸是對(duì)應(yīng)哪個(gè)設(shè)備地址、哪個(gè)端點(diǎn),還指出了此時(shí)事務(wù)傳輸中的數(shù)據(jù)包應(yīng)該如何解釋。比如,如果是SETUP的token包領(lǐng)銜的事務(wù),則事務(wù)中的DATA包必定是由USB主機(jī)發(fā)送的REQUEST數(shù)據(jù);如果是IN的token包,則表明本次事務(wù)中的DATA包必須由USB設(shè)備發(fā)送。事務(wù)中的ACK/NAK包,則是用于表明本次事務(wù)傳輸是否正確。

由此可見(jiàn),在USB總線(xiàn)上的進(jìn)行通信時(shí),都是先由USB主機(jī)發(fā)起token包,表明參與此次事務(wù)的設(shè)備和端點(diǎn);然后不同的token包也指出了是否有DATA包,以及DATA包是由USB主機(jī)發(fā)送給USB設(shè)備還是由USB設(shè)備發(fā)送給USB主機(jī);最后的ACK/NAK包則是應(yīng)答包,由接收數(shù)據(jù)端發(fā)送。

?

4、不同的token包PID指出了不同的事務(wù),不同的事務(wù)表明了事務(wù)中的DATA包的方向和意義。其中SETUP事務(wù)用于USB傳輸控制信息,而OUT、IN事務(wù)用于傳輸普通數(shù)據(jù)。

?

5、假設(shè)本次事務(wù)是SETUP事務(wù):

??? 1)USB主機(jī)首先在總線(xiàn)上發(fā)送SETUP包,對(duì)應(yīng)的USB設(shè)備、端點(diǎn)接收到此SETUP包后,立刻知道,USB主機(jī)將會(huì)發(fā)送DATA包,并且DATA包中的數(shù)據(jù)應(yīng)按照USB2.0規(guī)范中規(guī)定的或者其他CDC規(guī)范等規(guī)定的格式解釋。

??? 2)選中的USB設(shè)備等待USB主機(jī)發(fā)送DATA包。

??? 3)USB主機(jī)發(fā)送DATA包(DATA0),注意DATA包中并沒(méi)有指出哪個(gè)USB設(shè)備應(yīng)該接收此DATA包。但是,之前的SETUP包已經(jīng)說(shuō)明了哪個(gè)設(shè)備、端點(diǎn)應(yīng)該接收此DATA包。所以,其他的設(shè)備、端點(diǎn)忽略此DATA包。

??? 4)選中的USB設(shè)備接收到DATA包,返回ACK包(若出錯(cuò)或者其他非正常情況,返回NAK包)。并按照不同的協(xié)議規(guī)范(USB2.0、USB CDC等規(guī)范)解釋收到的DATA包。通常來(lái)說(shuō),SETUP事務(wù)中的DATA包都是USB Device Request,USB設(shè)備根據(jù)不同的Request,或返回描述符,或執(zhí)行狀態(tài)變化,或者...

?

6、假設(shè)本次事務(wù)是OUT事務(wù):

??? 1)USB主機(jī)首先發(fā)送OUT的token包,指出了本次事務(wù)參與的設(shè)備地址和端點(diǎn)號(hào),并說(shuō)明,接著USB主機(jī)要發(fā)一個(gè)數(shù)據(jù)包給USB設(shè)備。

??? 2)USB主機(jī)發(fā)送DATA包(DATA0或者DATA1)。

??? 3)選中的USB設(shè)備接收到相應(yīng)的數(shù)據(jù)包,并依據(jù)情況返回ACK包或者NAK包。

?

7、假設(shè)本次事務(wù)是IN事務(wù):

??? 1)USB主機(jī)首先發(fā)送IN的token包,指出了本次事務(wù)參與的設(shè)備地址和端點(diǎn)號(hào),并說(shuō)明,選中的USB設(shè)備應(yīng)該發(fā)送數(shù)據(jù)包給主機(jī)。

??? 2)選中的USB設(shè)備發(fā)送DATA包(DATA0包或者DATA1包)。

??? 3)USB主機(jī)根據(jù)情況返回ACK包或者NAK包。

?

8、控制傳輸:

控制傳輸由幾個(gè)事務(wù)組成,分別是SETUP事務(wù)、IN/OUT事務(wù)、狀態(tài)階段的IN/OUT事務(wù),對(duì)應(yīng)USB2.0規(guī)范中的設(shè)置階段、數(shù)據(jù)階段、狀態(tài)階段。

??? 1)設(shè)置階段:SETUP事務(wù)給出了本次控制傳輸中的USB REQUEST,是GET_DESCRIPOR還是SET_ADDRESS,或者是SET_CODE_LINE等等的REQUEST,這些REQUEST可以是USB2.0規(guī)定的標(biāo)準(zhǔn)REQUEST,也可以是設(shè)備類(lèi)型的(class-specific)的REQUEST,還可以是廠(chǎng)商指定的REQUEST(vendor-specific)。

??? 2)數(shù)據(jù)階段:根據(jù)不同的REQUEST,①或是USB主機(jī)發(fā)送DATA包,給出上一步對(duì)應(yīng)的REQUEST的補(bǔ)充信息;②或是USB設(shè)備根據(jù)不同的REQUEST,通過(guò)發(fā)送DATA包返回?cái)?shù)據(jù)給USB主機(jī)(也可以沒(méi)有數(shù)據(jù))

??? 3)狀態(tài)階段:USB主機(jī)根據(jù)數(shù)據(jù)階段的方向,發(fā)起OUT或者IN事務(wù)。OUT或者IN事務(wù)中的DATA包必須是DATA1,而且長(zhǎng)度必須是0。

?

9、由上面的描述,USB主機(jī)和USB設(shè)備具備了基本的通信能力,比如USB主機(jī)發(fā)送REUQEST、USB設(shè)備響應(yīng)REQUEST、USB發(fā)送數(shù)據(jù)給USB設(shè)備、USB設(shè)備發(fā)送數(shù)據(jù)給USB主機(jī)等等。而且,可以看到,所有的最初事務(wù)都是先由USB主機(jī)發(fā)起的。如果一個(gè)USB設(shè)備想要發(fā)送數(shù)據(jù)給USB主機(jī),必須等待USB主機(jī)對(duì)本設(shè)備發(fā)起IN事務(wù)時(shí),USB設(shè)備才能通過(guò)發(fā)送DATA包(即需要發(fā)送的數(shù)據(jù))來(lái)達(dá)到發(fā)送數(shù)據(jù)給USB主機(jī)的目的。因此,USB主機(jī)控制了USB總線(xiàn)的帶寬分配權(quán)。

?

10、USB總線(xiàn)系統(tǒng)最本質(zhì)的功能就是提供一種基本的通信方式來(lái)連接USB主機(jī)和USB設(shè)備,使多個(gè)USB設(shè)備可以同時(shí)(宏觀(guān)上的同時(shí))和USB主機(jī)通信。USB總線(xiàn)系統(tǒng)通過(guò)不同的(管道、端點(diǎn))傳輸類(lèi)型,來(lái)合理安排總線(xiàn)的帶寬,以達(dá)到不同的USB設(shè)備都可以和USB主機(jī)通信。在這種基本的通信能力基礎(chǔ)之上,USB主機(jī)向上提供client(主機(jī)上運(yùn)行的、針對(duì)特定USB設(shè)備的驅(qū)動(dòng))和USB設(shè)備通信的接口。于是,不同的USB主機(jī)端client就可以驅(qū)動(dòng)不同的USB設(shè)備,使USB設(shè)備發(fā)揮特定的功能。

?

11、當(dāng)一個(gè)USB設(shè)備連接到USB總線(xiàn)上時(shí),USB的hub負(fù)責(zé)通知USB主機(jī)這一變化。在USB主機(jī)端,有一個(gè)hub driver的程序負(fù)責(zé)處理這一變化。通常來(lái)說(shuō),這就是USB的枚舉過(guò)程:

??? 1)USB主機(jī)給USB設(shè)備發(fā)送復(fù)位信號(hào)。

??? 2)USB設(shè)備接收到復(fù)位信號(hào)之后,其設(shè)備地址默認(rèn)為0。

??? 3)USB主機(jī)通過(guò)設(shè)備地址0、端點(diǎn)0,給USB設(shè)備發(fā)送獲取設(shè)備描述、配置描述符、接口描述符等等之類(lèi)的USB REQUEST。

??? 4)USB設(shè)備根據(jù)不同的REQUEST,返回特定的描述,以表明自己的身份。

??? 5)USB主機(jī)根據(jù)USB設(shè)備返回的各種描述符,依據(jù)vendor-ID、product-ID等信息,加載特定的USB驅(qū)動(dòng),讓特定的USB驅(qū)動(dòng)去和USB設(shè)備交互,完成USB設(shè)備的初始、配置。

??? 6)特定的USB驅(qū)動(dòng)和USB設(shè)備之間的數(shù)據(jù)交換,完成了USB功能。

?

12、在加載特定的USB驅(qū)動(dòng)之前,USB主機(jī)必須能獲取USB設(shè)備的各種描述符,如此才能識(shí)別此USB設(shè)備,才能決定加載哪個(gè)驅(qū)動(dòng)去和這個(gè)設(shè)備進(jìn)行交換。所以,USB2.0規(guī)定了幾個(gè)標(biāo)準(zhǔn)的REQUEST,要求所有USB2.0設(shè)備必須支持。這樣,在USB設(shè)備掛接總線(xiàn)時(shí),USB系統(tǒng)可以通過(guò)這些標(biāo)準(zhǔn)的REQUEST來(lái)認(rèn)識(shí)這個(gè)USB設(shè)備,再加載特定的驅(qū)動(dòng)去和USB設(shè)備進(jìn)行交換。

?

13、在標(biāo)準(zhǔn)的USB2.0?? REQUEST之上,特定類(lèi)型的USB設(shè)備(calss-specific),或者廠(chǎng)商開(kāi)發(fā)的特殊設(shè)備(vender-specific),都可以定義不同的REQUEST,這些REQUEST的格式和標(biāo)準(zhǔn)的USB2.0? REQUEST格式一致,只不過(guò)是具體的字段決定了不同的REUQEST。所以REQUEST是一個(gè)開(kāi)放的標(biāo)準(zhǔn)。通過(guò)這個(gè)開(kāi)放的REQUEST,就可以開(kāi)發(fā)出不同的USB設(shè)備以及對(duì)應(yīng)的驅(qū)動(dòng)程序,共同組建USB系統(tǒng)。

?

14、為了簡(jiǎn)化USB開(kāi)發(fā),USB協(xié)議還制定了幾種設(shè)備類(lèi)型,比如CDC(Communicatin Device Class)設(shè)備,MSD(Mass Storage Device)設(shè)備,HID(Human Interface)設(shè)備等等,常見(jiàn)的USB轉(zhuǎn)COM就是CDC設(shè)備,USB鼠標(biāo)和USB鍵盤(pán)就是HID設(shè)備,還有U盤(pán)就是MSD設(shè)備。通常某一類(lèi)型的USB設(shè)備具有共同的操作、功能接口,將這些共同的操作、接口抽象出來(lái),就形成了某一類(lèi)USB設(shè)備(比如CDC或者M(jìn)SD)。在此基礎(chǔ)上,USB為某類(lèi)USB設(shè)備制定了一些規(guī)范,比如CDC設(shè)備規(guī)范、MSD設(shè)備的規(guī)范,通過(guò)這些規(guī)范,在USB2.0 標(biāo)準(zhǔn)REQUEST的基礎(chǔ)上,添加設(shè)備類(lèi)型指定(class-specific)的REQUEST,就可以形成特定功能的USB設(shè)備。某一類(lèi)USB設(shè)備,除了支持標(biāo)準(zhǔn)的USB2.0? REQUEST之外,還支持本類(lèi)型規(guī)定的REQUEST。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(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)閉