1.usb傳輸(transfer)
2.事務(transaction)
3.包(pack)的概念
4.usb 主機(host)
5.裝置(device)
6.配置(configuration)
7.介面(inte***ce)
8.端點(endpoint)
9.管道(pipe)
10.usb各種各樣非常重要的描述符
看了這麼多概念,想必大家會問「我要學會usb協議,並且會程式設計,我具體要學習那些有關的內容?」,這一篇我們將會講解在學習usb協議中務必要掌握的知識點,羅列如下(後期文章逐一攻克):
(1)usb描述符
(2)usb傳輸
(3)usb事務
(4)usb包(☆☆☆☆☆)
(5)usb列舉
(1)usb描述符
大家一定要知道,所有usb描述符都是儲存在usb裝置中的。usb描述符有裝置描述符、配置描述符、介面描述符、端點描述符、字串描述符,hid類裝置會多出hid描述符、報告描述符、物理描述符三種描述符,描述符架構如下圖。我們需要深入學習每一種描述符的資料結構及作用,並且要知道它在**裡面是如何實現的,後期我們在學習對應描述符的時候會帶著大家分析stm32、zynq 7000兩個硬體平台的usb對應裝置**實現,這樣結合實戰,大家對理論學習更為深入。
(2)usb傳輸
usb傳輸分為控制傳輸、同步傳輸、批量傳輸、中斷傳輸四種,其中批量傳輸、同步傳輸每次傳輸需要乙個或多個事務,中斷傳輸一次需要乙個事務,控制傳輸包括三個過程(建立過程、資料過程、狀態過程),建立過程和狀態過程分別需要乙個事務,資料過程則可能包含0個多個事務。看例項協議分析,要知道transfer是傳輸,transaction為事務。
1.批量傳輸(由乙個事務組成)
2.同步傳輸(由乙個事務組成)
3.中斷傳輸(由乙個事務組成)
4.控制傳輸(建立過程和狀態過程由1個事務組成,資料過程由0個或者多個事務組成)
我們可以看下面這張圖,控制傳輸有三種型別,控制寫傳輸、控制讀傳輸、無資料的控制傳輸三種。控制寫傳輸和控制讀傳輸資料階段是根據傳輸情況可有可無,無資料控制傳輸無資料階段。
控制寫傳輸:
控制讀傳輸:
無資料控制傳輸:
(3)usb事務
事務通常由兩三個包組成:令牌包,資料報和握手包。為什麼說是通常呢?因為有乙個特例同步傳輸的事務中沒有握手包,只有令牌包和資料報。事務就是完成一件事的意思,完成乙個事務需要傳送或者接受幾包資料。
(4)usb包(☆☆☆☆☆)
usb包(packet)是學習usb協議中最最最重要的東西,包(packet)是usb傳輸的最小單位,所有的東西都是組織成包(packet)傳送出去的,再次強調,usb包是學習usb協議中最最最重要的東西。下面這張圖為包的組成結構,由sop、sync、packet content、eop四部分組成,其中packet content最為核心,packet content由pid、位址、幀號、資料、crc組成。後面會一一講解。
(5)usb列舉
通過學習列舉,我們可以了解描述符、傳輸、事務、包在usb協議中充當的作用以及usb的工作原理,後期會講解。
4.對於不遵守此宣告或者其他違法使用本文內容者,本人依法保留追究權等。
【乙個早起的程式設計師】精彩系列文章每天不斷。
USB協議詳解第11講(USB描述符 總結)
1.其實所有的描述符都是usb裝置用來描述自己屬性及用途的,所以必須在裝置端實現對應的描述符,主機會在列舉此裝置的時候根據裝置實現的描述符去確定裝置到底是乙個什麼樣的裝置 裝置需要的匯流排資源 和裝置的通訊方式等等。2.每乙個usb裝置只有乙個裝置描述符,主要向主機說明裝置型別 端點0最大包長 裝置...
HTTP協議詳解 2
導圖內容解析 注意 瀏覽器預設的提交方法是get 請求資源 uri 協議版本 請求頭 httpservletrequest獲取請求頭資訊 請求頭 實體名稱 傳遞的引數如何獲取 post方式 引數在實體內容中 共同的方式 注意問題 html中編碼與getparameter 引數名 方法中編碼方式不一致...
SNMP協議詳解 2
四 snmp協議資料單元 在snmp管理中,管理站 nms 和 agent 之間交換的管理資訊構成了snmp報文,報文的基本格式如下圖1 圖 1snmp主要有snmpv1 snmpv2c snmpv3幾種最常用的版本。1 snmpv1 snmpv1是snmp協議的最初版本,提供最小限度的網路管理功能...