4 4 基於OHCI的USB主機 描述符說明

2021-06-18 20:37:13 字數 2937 閱讀 4490

原始出處 、作者資訊和本宣告。否則將追究法律責任。

裝置描述符:

偏移值欄位名稱

字段大小

說明 0

blength 1

描述符長度

= 12h 1

bdescriptortype 1

裝置描述符型別

= 01h 2

bcdusb 2

usb規劃發布號

4 bdeviceclass 1

型別**(由

usb指定)

5 bdevicesubclass 1

子型別**(由

usb分配)

6 bdeviceprotocol 1

協議**(由

usb分配)

7 bmaxpackedsize0 1

端點0最大分組大小(只有

8、16、

32、64有效)

8 idvendor 2

**商id(由

usb分配)

10

idproduct 2

產品id(由廠商分配)

12

bcddevice 2

裝置出廠編碼

14

imanufacturer 1

廠商描述符字串索引

15

iproduct 1

產品描述符字串索引

16

iserialnumber 1

裝置序列號字串索引

17

bnumconfigurations 1

可能的配置數

配置描述符:

偏移值欄位名稱

字段大小

說明 0

blength 1

描述符的長度

= 09h 1

bdescriptortype 1

配置描述符的型別

= 02h 2

wtotallength 2

返回整個資料的長度,包括該配置所返回的所有描述符(配置、介面、端點以及型別或**商)的聯合長度

4 bnumberinte***ces 1

配置所支援的介面數

5 bconfigurationvalue 1

作為set configuration的乙個引數選擇配置值

6 iconfiguration 1

用於描述該配置字串描述符的索引

7 bmattributes 1

配置特性:

d7          匯流排供電

d6          自供電

d5          遠端喚醒

d4~0     保留(復位為

0)8

maxpower 1

當裝置完全可操作時,在這種特定配置下,匯流排供電的

usb裝置的最大消耗電流(以

2ma為單位,即

2ma x 50 = 100ma)

介面描述符:

偏移值欄位名稱

字段大小

說明 0

blength 1

描述符長度

= 09h 1

bdescriptortype 1

介面描述符型別

= 04h 2

binge***cenumber 1

介面的編號

3 balternatesetting 1

用於為上乙個字段選擇可供替換的設定

4 bnumendpoint 1

使用的端點數目(端點

0除外)

5 binte***ceclass 1

型別**(由

usb指定)

6 binte***cesubclass 1

子型別**(由

usb分配)

7 binte***ceprotocol 1

協議**(由

usb分配)

8 iinte***ce 1

字串描述符的索引

端點描述符:

偏移值欄位名稱

字段大小

說明 0

blength 1

描述符長度

= 07h 1

bdescriptortype 1

介面描述符型別

= 05h 2

bendpointaddress 1

usb裝置的端點位址

d7          方向,對於控制端點可忽略

0          

out端點

1     in端點

d6~4      保留,復位為

0 d3~0      端點號

3 bmattributes 1

端點屬性,當進行配置是採用以下的配置值

d7~2      保留

d1~0      傳輸型別

00       控制

01       同步

02       批量

03       中斷

4 wmaxpackedsize 2

本端點接受或傳送最大資訊包的大小。

對於同步傳送,此值用於為每幀的資料淨負荷預留時間。通道可能在實際執行時不需要預留頻寬。實際頻寬可由裝置通過一種非

usb定義的機制匯報給主機。

對於中斷傳送、批量傳送和控制傳送,端點可能傳送較小的資料報。在結束傳送後,既可能用間隙時間來重啟,也有可能不需要這段時間。

6 binterval 1

輪詢資料傳送端點的時間間隔。

此域值對於批量傳送的端點及控制傳送的端點忽略。對於同步傳送的端點,此域值必須為

1。對於中斷傳送的端點,此域值得範圍為

1~255。

基於OHCI的USB主機 OHCI(端點)

ohci open host controller inte ce 是康柏 微軟 國家半導體等公司共同制定的乙個usb主機介面規範,它提供乙個更抽象的介面來完成usb資料傳輸工作。在ohci規範中,最重要的幾個概念是端點 endpoint ed 傳輸描述符 transport descriptor ...

基於OHCI的USB主機 前言

很久以前,大概是前年年底吧,因為公司專案的要求,我做了基於ohci的usb主機訪問u盤的程式,用來把系統中產生的一些資料儲存到u盤中。本來做的時候就想把其中的一些經驗體會發表的,可是工作實在是太忙,而且也的確有點懶,就一直拖到了現在。做訪問u盤的usb主機,網上有很多現成的例子,從硬體到軟體。可是絕...

基於OHCI的USB主機 USB裝置列舉

usb裝置接入以後,必須進行裝置列舉,得到裝置引數,設定裝置執行配置等引數,下面的 就是對u盤裝置進行列舉的過程。因為沒有使用作業系統,所以函式使用狀態遷移的方式完成列舉,該函式在主迴圈中被呼叫。usb裝置列舉處理 return 當前列舉處理的狀態 short usbenumdev void old...