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

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

注:有大量轉載別人的內容。

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

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

3.上行、下行:設備到主機為上行,主機到設備為下行。

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

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

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

  2)標示域:PID,4位標識符和4位標識符反嗎構成,共有2^4=16種USB標識碼。

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

  4)端點域:ENDP,4位,可知一個USB設備具有的最多端點數量為16個。

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

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

  7)校驗域:CRC,對令牌包和數據包中非PID域進行校驗的一種方法。

6. 包:由域構成的包有4種類型,分別是令牌包,數據包,握手包和特殊包。前面三種是重要的包,不同的包的域結構不同。

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

  其中輸入包,輸出包,設置包的格式相同:

  SYNC + PID + ADDR + ENDP + CRC 5

  幀起始包的格式為:

  SYNC + PID + FRAM 11 + CRC 5

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

  數據包的格式為:

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

  3)握手包:結構為:

  SYNC + PID

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

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

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

7. 事務:分別由IN,OUT,SETUP這3個事務。每個事務都由令牌包,數據包,握手包這3個階段構成。事務的3個階段如下:

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

  2)數據包階段:按輸入,輸出發(fā)送相應的數據。

  3)握手包階段:返回數據接收情況,在同步傳輸的IN事務和OUT事務中沒有這個階段。

  事務的3種類型如下:

  1)IN事務:

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

  數據包階段--設備根據情況會做出3種反應:

  a. 設備端點正常,設備往主機內發(fā)出數據,DATA0和DATA1交替發(fā)送。

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

  c. 相應設備端點被禁止,此時發(fā)送STALL錯誤包,事務提前結束,總線進入空閑狀態(tài)。

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

  2) OUT事務:

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

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

  握手包階段--設備根據情況做出3種反應:

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

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

  c. 相應設備端點被禁止,發(fā)送錯誤STALL包,事務提前結束,總線直接進入空閑狀態(tài)。

  3) SETUP事務:

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

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

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

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

  1) 中斷傳輸:由OUT事務和IN事務構成,通常用于鍵盤,鼠標等HID設備的傳輸中。

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

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

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

  a. 初始設置階段:這是個有SETUP事務構成的傳輸。

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

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

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

10. USB主機識別USB設備的過程:

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

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

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

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

  5)配置態(tài)(Configured):通過各種標準的USB請求命令來獲取設備的各種信息,并對設備的某項信息進行改變或設置。

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

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

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

其中

1) bmRequestType:D7D6D5D4D3D2D1D0

2) bRequest 為請求命令代碼,是標準請求命令代碼的核心,這些命令代碼決定了11個USB標準請求指令。

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

?這11個命令是控制傳輸的核心,控制傳輸是USB的核心。

12. 描述符號:Descriptor,是一個完整的數據結構,可以通過c編程實現,并存儲在USB設備中,用于描述一個USB設備的所有屬性,USB主機通過一系列命令來要求設備發(fā)送這些信息。標準的描述分為以下幾種:

  1--設備描述符

  2--配置描述符

  3--字符描述符

  4--接口描述符

  5--端點描述符

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



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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

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

關鍵字: AWS AN BSP 數字化

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

關鍵字: 華為 12nm 手機 衛(wèi)星通信

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

關鍵字: 通信 BSP 電信運營商 數字經濟

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

關鍵字: VI 傳輸協議 音頻 BSP

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

關鍵字: BSP 信息技術
關閉
關閉