當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]剛剛開始接觸USB,記錄一些基本知識。 注:有大量轉(zhuǎn)載別人的內(nèi)容。 1.端點(diǎn):位于USB設(shè)備或主機(jī)上的一個數(shù)據(jù)緩沖區(qū),用來存放和發(fā)送USB的各種數(shù)據(jù),每一個端點(diǎn)都有惟一的確定地址,有不同的傳輸特性(如

剛剛開始接觸USB,記錄一些基本知識。

注:有大量轉(zhuǎn)載別人的內(nèi)容。

1.端點(diǎn):位于USB設(shè)備或主機(jī)上的一個數(shù)據(jù)緩沖區(qū),用來存放和發(fā)送USB的各種數(shù)據(jù),每一個端點(diǎn)都有惟一的確定地址,有不同的傳輸特性(如輸入端點(diǎn)、輸出端點(diǎn)、配置端點(diǎn)、批量傳輸端點(diǎn))。

2.幀:時間概念,在USB中,一幀就是1MS,它是一個獨(dú)立的單元,包含了一系列總線動作,USB將1幀分為好幾份,每一份中是一個USB的傳輸動作。

3.上行、下行:設(shè)備到主機(jī)為上行,主機(jī)到設(shè)備為下行。

4. USB數(shù)據(jù)是有二進(jìn)制數(shù)字串構(gòu)成的。數(shù)字串構(gòu)成域(有七種域),域再構(gòu)成包,包再構(gòu)成事務(wù)(IN,OUT,SETUP),事務(wù)最后構(gòu)成傳輸(中斷傳輸,并行傳輸,批量傳輸,控制傳輸)。

5. 域:是USB最小的單位,由若干位組成,可以分為7個類型:

  1)同步域:SYNC,8位,值固定為0000 0001,用于本地時鐘和輸入同步。

  2)標(biāo)示域:PID,4位標(biāo)識符和4位標(biāo)識符反嗎構(gòu)成,共有2^4=16種USB標(biāo)識碼。

  3)地址域:ADDR,7位地址,代表設(shè)備在主機(jī)上的地址,其中地址000 0000被命名為零地址,是任何設(shè)備第一次連接到主機(jī),在被主機(jī)配置,枚舉前的默認(rèn)地址??梢娨粋€USB主機(jī)最多可分配的地址為2^7 - 1 =127,這意味著只能最多連接127個USB設(shè)備。

  4)端點(diǎn)域:ENDP,4位,可知一個USB設(shè)備具有的最多端點(diǎn)數(shù)量為16個。

  5)幀號域:FRAM,11位,每個幀都有一個特定幀號,幀號域最大容量為0x7FF。

  6)數(shù)據(jù)域:DATA,長度為0-1024字節(jié),在不同的傳輸類型中,數(shù)據(jù)域的長度不同,但是必須為整數(shù)個字節(jié)的長度。

  7)校驗(yàn)域:CRC,對令牌包和數(shù)據(jù)包中非PID域進(jìn)行校驗(yàn)的一種方法。

6. 包:由域構(gòu)成的包有4種類型,分別是令牌包,數(shù)據(jù)包,握手包和特殊包。前面三種是重要的包,不同的包的域結(jié)構(gòu)不同。

  1)令牌包:可分為輸入包,輸出包,設(shè)置包和幀起始包。

  其中輸入包,輸出包,設(shè)置包的格式相同:

  SYNC + PID + ADDR + ENDP + CRC 5

  幀起始包的格式為:

  SYNC + PID + FRAM 11 + CRC 5

  2) 數(shù)據(jù)包:分為DATA0包和DATA1包。在USB發(fā)送數(shù)據(jù)的時候,當(dāng)一次發(fā)送的數(shù)據(jù)長度大于相應(yīng)的端點(diǎn)容量時,就需要把數(shù)據(jù)包分為好幾個包,分批發(fā)送,并且DATA0和DATA1包交替發(fā)送。但是當(dāng)處于同步傳輸中,所有的數(shù)據(jù)包都是DATA0。

  數(shù)據(jù)包的格式為:

  SYNC + PID + 0-1023字節(jié) + CRC 16

  3)握手包:結(jié)構(gòu)為:

  SYNC + PID

  握手包有4種普通形式和1種特殊形式:

  a. ACK 表示數(shù)據(jù)包接收成功。對于Host,ACK在IN傳輸中返回;對于function在PING,OUT,SETUP過程中返回。

  b. NAK 表示function無法輸出或者輸入數(shù)據(jù),Host無法返回。

7. 事務(wù):分別由IN,OUT,SETUP這3個事務(wù)。每個事務(wù)都由令牌包,數(shù)據(jù)包,握手包這3個階段構(gòu)成。事務(wù)的3個階段如下:

  1)令牌包階段:啟動一個輸入,輸出或設(shè)置的事務(wù)。

  2)數(shù)據(jù)包階段:按輸入,輸出發(fā)送相應(yīng)的數(shù)據(jù)。

  3)握手包階段:返回數(shù)據(jù)接收情況,在同步傳輸?shù)腎N事務(wù)和OUT事務(wù)中沒有這個階段。

  事務(wù)的3種類型如下:

  1)IN事務(wù):

  令牌包階段--主機(jī)發(fā)送一個PID為IN的輸入包給設(shè)備,通知設(shè)備要往主機(jī)發(fā)送數(shù)據(jù)。

  數(shù)據(jù)包階段--設(shè)備根據(jù)情況會做出3種反應(yīng):

  a. 設(shè)備端點(diǎn)正常,設(shè)備往主機(jī)內(nèi)發(fā)出數(shù)據(jù),DATA0和DATA1交替發(fā)送。

  b. 設(shè)備正在繁忙,無法往主機(jī)發(fā)出數(shù)據(jù)包,此時發(fā)送NAK無效包,IN事務(wù)提前結(jié)束,到了下一個IN事務(wù)才繼續(xù)。

  c. 相應(yīng)設(shè)備端點(diǎn)被禁止,此時發(fā)送STALL錯誤包,事務(wù)提前結(jié)束,總線進(jìn)入空閑狀態(tài)。

  握手包階段--主機(jī)在正確接收到數(shù)據(jù)后,就會向設(shè)備發(fā)送ACK包。

  2) OUT事務(wù):

  令牌包階段--主機(jī)發(fā)送一個PID為OUT的輸出包給設(shè)備,通知設(shè)備要接收主機(jī)數(shù)據(jù)。

  數(shù)據(jù)包階段--主機(jī)交替發(fā)送數(shù)據(jù)DATA0和DATA1。

  握手包階段--設(shè)備根據(jù)情況做出3種反應(yīng):

  a. 設(shè)備端點(diǎn)接收正確,設(shè)備向主機(jī)返回ACK包,通知主機(jī)可以發(fā)送新的數(shù)據(jù),如果數(shù)據(jù)包發(fā)送了CRC校驗(yàn)數(shù)據(jù),將不返回任何握手信息。

  b. 設(shè)備正在忙碌,無法從主機(jī)接收數(shù)據(jù)包就發(fā)送NAK無效包,通知主機(jī)再次發(fā)送數(shù)據(jù)。

  c. 相應(yīng)設(shè)備端點(diǎn)被禁止,發(fā)送錯誤STALL包,事務(wù)提前結(jié)束,總線直接進(jìn)入空閑狀態(tài)。

  3) SETUP事務(wù):

  令牌包階段--主機(jī)發(fā)送一個PID為SETUP的輸出包給設(shè)備,通知設(shè)備要接收數(shù)據(jù)。

  數(shù)據(jù)包階段--主機(jī)設(shè)備發(fā)送數(shù)據(jù),注意這里只有一個固定為8個字節(jié)的DATA0包,其中就是標(biāo)準(zhǔn)的USB設(shè)備請求指令。

  握手包階段--設(shè)備接收到主機(jī)的命令信息后,返回ACK包,此后總線進(jìn)入空閑狀態(tài),并準(zhǔn)備下一個傳輸。一般來說,在SETUP事務(wù)后面通常是一個IN或OUT事務(wù)構(gòu)成的傳輸。

8. 傳輸:由OUT,IN,SETUP事務(wù)構(gòu)成,有4種類型,中斷傳輸,批量傳輸,同步傳輸,控制傳輸。其中中斷傳輸和批量傳輸結(jié)構(gòu)相同,同步傳輸結(jié)構(gòu)最簡單,控制傳輸時最重要最復(fù)雜的傳輸。(可以記憶為 中批同控)

  1) 中斷傳輸:由OUT事務(wù)和IN事務(wù)構(gòu)成,通常用于鍵盤,鼠標(biāo)等HID設(shè)備的傳輸中。

  2) 批量傳輸:由OUT事務(wù)和IN事務(wù)構(gòu)成,用于大容量數(shù)據(jù)傳輸,沒有固定的傳輸速率,也不占用帶寬,當(dāng)總線忙時,USB會優(yōu)先其他類型的傳輸而暫時停止批量傳輸。

  3) 同步傳輸:由OUT事務(wù)和IN事務(wù)構(gòu)成。它簡單在于2個地方,一是在同步傳輸?shù)腎N和OUT事務(wù)中沒有返回包階段的;一是在數(shù)據(jù)包所有階段中均為DATA0。

  4) 控制傳輸:最重要也是最復(fù)雜的傳輸方式??刂苽鬏斢?個階段構(gòu)成(初始設(shè)置階段,可選數(shù)據(jù)階段,狀態(tài)信息階段)。其中的每一個階段可以看出一個單獨(dú)的傳輸構(gòu)成,用來在USB設(shè)備初次連接到主機(jī)后,主機(jī)通過控制傳輸來交換信息,設(shè)備地址和讀取設(shè)備的描述符,使得主機(jī)識別設(shè)備,并安裝相應(yīng)的驅(qū)動程序。

  a. 初始設(shè)置階段:這是個有SETUP事務(wù)構(gòu)成的傳輸。

  b. 可選數(shù)據(jù)階段:就是一個由IN或OUT事務(wù)構(gòu)成的傳輸,這個階段取決于初始設(shè)置階段有沒有要求讀寫數(shù)據(jù)。(由SETUP事務(wù)的數(shù)據(jù)包階段發(fā)送的標(biāo)準(zhǔn)請求命令決定)。

  c. 狀態(tài)信息階段:獲取狀態(tài)信息,由IN或OUT事務(wù)構(gòu)成的傳輸,但是這里的IN,OUT事務(wù)和之前的IN,OUT事務(wù)有2點(diǎn)不同。1是傳輸方向相反,通常IN表示設(shè)備往主機(jī)內(nèi)送數(shù)據(jù),OUT表示主機(jī)往設(shè)備里送數(shù)據(jù);這里恰好相反,IN表示向設(shè)備里面?zhèn)魉蛿?shù)據(jù),OUT表示數(shù)據(jù)向主機(jī)里送數(shù)據(jù),這是為了和可選數(shù)據(jù)階段向結(jié)合。2是這個階段里,數(shù)據(jù)包都是0長度,即SYNC + PID + CRC 16。

9. 標(biāo)識碼,在USB2.0中有16個標(biāo)識符。這個部分待編輯。

10. USB主機(jī)識別USB設(shè)備的過程:

  1)接入態(tài)(Attached):設(shè)備接入主機(jī)后,主機(jī)通過檢測信號線上的電平變化來發(fā)現(xiàn)設(shè)備接入。

  2)供電態(tài)(Powered): 就是給設(shè)備供電,分為設(shè)備接入時的默認(rèn)供電值,配置階段后的供電值。

  3)缺省態(tài)(Default): USB在配置之前,通過缺省地址0和主機(jī)進(jìn)行通信。

  4)地址態(tài)(Address): 經(jīng)過配置,USB設(shè)備被復(fù)位后,就可以按主機(jī)分配給它的唯一地址和主機(jī)進(jìn)行通信。

  5)配置態(tài)(Configured):通過各種標(biāo)準(zhǔn)的USB請求命令來獲取設(shè)備的各種信息,并對設(shè)備的某項(xiàng)信息進(jìn)行改變或設(shè)置。

  6)掛起態(tài)(Suspecned):總線供電設(shè)備在3ms內(nèi)沒有總線操作,自動進(jìn)入掛起狀態(tài)。

11. USB設(shè)備請求命令,這是在控制傳輸中的初始設(shè)置步驟的中數(shù)據(jù)包階段中發(fā)送的。即DATA0,共8個字節(jié),共有11個命令,具有相同的結(jié)構(gòu),由5個字段構(gòu)成。

bmRequestType(1) + bRequest(1) + wValue(2) + wIndex(2) + wLength(2)

其中

1) bmRequestType:D7D6D5D4D3D2D1D0

2) bRequest 為請求命令代碼,是標(biāo)準(zhǔn)請求命令代碼的核心,這些命令代碼決定了11個USB標(biāo)準(zhǔn)請求指令。

(0) 0? GET_STATUS:用來返回特定接收者的狀態(tài)
(1) 1? CLEAR_FEATURE:用來清除或禁止接收者的某些特性
(2) 3? SET_FEATURE:用來啟用或激活命令接收者的某些特性
(3) 5? SET_ADDRESS:用來給設(shè)備分配地址
(4) 6? GET_DESCRIPTOR:用于主機(jī)獲取設(shè)備的特定描述符
(5) 7? SET_DESCRIPTOR:修改設(shè)備中有關(guān)的描述符,或者增加新的描述符
(6) 8? GET_CONFIGURATION:用于主機(jī)獲取設(shè)備當(dāng)前設(shè)備的配置值(注同上面的不同)?
(7) 9? SET_CONFIGURATION:用于主機(jī)指示設(shè)備采用的要求的配置
(8) 10 GET_INTERFACE:用于獲取當(dāng)前某個接口描述符編號
(9) 11 SET_INTERFACE:用于主機(jī)要求設(shè)備用某個描述符來描述接口
(10)12 SYNCH_FRAME:用于設(shè)備設(shè)置和報告一個端點(diǎn)的同步幀

?這11個命令是控制傳輸?shù)暮诵?,控制傳輸是USB的核心。

12. 描述符號:Descriptor,是一個完整的數(shù)據(jù)結(jié)構(gòu),可以通過c編程實(shí)現(xiàn),并存儲在USB設(shè)備中,用于描述一個USB設(shè)備的所有屬性,USB主機(jī)通過一系列命令來要求設(shè)備發(fā)送這些信息。標(biāo)準(zhǔn)的描述分為以下幾種:

  1--設(shè)備描述符

  2--配置描述符

  3--字符描述符

  4--接口描述符

  5--端點(diǎn)描述符

  其中一個設(shè)備只有一個描述符,而一個設(shè)備可以包含幾個配置描述符,而一個配置描述符可以包含多個接口描述符,一個接口使用了幾個端點(diǎn)就有幾個端點(diǎn)描述符。??



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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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