USB的端点描述符详解-重新排版
生活随笔
收集整理的這篇文章主要介紹了
USB的端点描述符详解-重新排版
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
USB的端點描述符詳解
端點描述符,是描述USB通信通道或管道的類型和功能的標準USB描述符。
- 端點描述符和接口描述符還有配置描述符一樣,不能單獨發送給USB主機,需要以配置描述符集合的形式發送給主機。
- 在設備描述服務那篇文章里,我曾經提到過USB里面有一個定義叫做端點,并做了一個比較生動的比喻,我把那段話直接復制過來:
- 向前有4個行車道(1,2,3,4),向后有4個行車道(1,2,3,4),這就是4個雙向端點。假設它們都屬于一條津某高速路(一個USB接口),有的向前有的向后(有的輸入有的輸出),有向前的1號行車道(有輸出的1號端點)。
- 所以端點描述符,就是對USB通訊中用到的端點做一個功能描述。我們看一下下面的表格:?
-
這里盡量給大家描述清楚。
- /*1.bLength,長度,不解釋。*/
- /*2.bDescriptorTyep,描述符類型。看代碼:*/ #define USB_DESC_TYPE_DEVICE 0x01U #define USB_DESC_TYPE_CONFIGURATION 0x02U #define USB_DESC_TYPE_STRING 0x03U #define USB_DESC_TYPE_INTERFACE 0x04U #define USB_DESC_TYPE_ENDPOINT 0x05U #define USB_DESC_TYPE_DEVICE_QUALIFIER 0x06U #define USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION 0x07U #define USB_DESC_TYPE_BOS 0x0FU
- /*3.bmAttributes,屬性,這一位稍微有點復雜。如下*/ /*Bits 1..0: Transfer Type,傳輸類型*/ 00 = Control-控制傳輸 01 = Isochronous-等時傳輸 10 = Bulk-批量傳輸 11 = Interrupt-中斷傳輸/*如果不是一個等時傳輸端點,第5~2位是保留的,必須設置為0。如果它是等時的,則定義如下:*/ /*Bits 3..2: Synchronization Type-同步類型*/ 00 = No Synchronization-無同步 01 = Asynchronous-異步 10 = Adaptive-適配 11 = Synchronous-同步/*Bits 5..4: Usage Type-用途*/ 00 = Data endpoint-數據端點 01 = Feedback endpoint-反饋端點 10 = Implicit feedback Data endpoint-暗含反饋的數據端點 11 = Reserved-保留
- /*4.wMaxPackeSize,端點支持的最大包長。對于等時端點,此值用于在調度中保留總線時間,這是每(微)幀數據有效負載所需的時間。在進行中,管道實際使用的帶寬可能比保留的帶寬少。如果有必要,設備會報告通過其正常的、非usb定義的機制所使用的實際帶寬。*/ /*對于所有的端點,bit10~bit0指定最大數據包大小(以字節為單位)。*//*5.對于高速同步和中斷端點:bit12~bit11指定每個微幀的額外通信次數:*/ 00 = None (1 transaction per microframe) 01 = 1 additional (2 per microframe) 10 = 2 additional (3 per microframe) 11 = Reserved/*其它位默認為0,詳細信息可參考usb_20文檔第5章。*/
- /*6.bInterval,查詢時間,說白了就是主機多久和設備通訊一次。根據設備運行速度以幀或微幀表示。對于全/高速等時端點,此值必須在1到16之間。bInterval值用作2的指數;例如,bInterval為4,表示周期為8, 2(4 – 1)。對于全速/低速中斷端點,該字段的值可以是1到255。對于高速中斷端點,使用bInterval值作為2的指數;例如,bInterval為4表示周期為8 ,2(4-1)。這個值必須在1到16之間。對于高速批量/控制輸出端點,bInterval必須指定端點的最大NAK速率。值0表示端點永不NAK。其它值表示每個微幀的bInterval數最多1個NAK。這個值的范圍必須在0到255之間。詳細信息可參考usb_20文檔第5章。*/
?
總結
以上是生活随笔為你收集整理的USB的端点描述符详解-重新排版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Trumb/ARM 指令模式
- 下一篇: BSS的全称