日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

USB的端点描述符详解-重新排版

發布時間:2024/4/13 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的端点描述符详解-重新排版的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。