裝置描述符:
偏移值欄位名稱
字段大小 說明
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。
4 4 基於OHCI的USB主機 描述符說明
原始出處 作者資訊和本宣告。否則將追究法律責任。裝置描述符 偏移值欄位名稱 字段大小 說明 0 blength 1 描述符長度 12h 1 bdescriptortype 1 裝置描述符型別 01h 2 bcdusb 2 usb規劃發布號 4 bdeviceclass 1 型別 由 usb指定 5 ...
基於OHCI的USB主機 OHCI(端點)
ohci open host controller inte ce 是康柏 微軟 國家半導體等公司共同制定的乙個usb主機介面規範,它提供乙個更抽象的介面來完成usb資料傳輸工作。在ohci規範中,最重要的幾個概念是端點 endpoint ed 傳輸描述符 transport descriptor ...
基於OHCI的USB主機 前言
很久以前,大概是前年年底吧,因為公司專案的要求,我做了基於ohci的usb主機訪問u盤的程式,用來把系統中產生的一些資料儲存到u盤中。本來做的時候就想把其中的一些經驗體會發表的,可是工作實在是太忙,而且也的確有點懶,就一直拖到了現在。做訪問u盤的usb主機,網上有很多現成的例子,從硬體到軟體。可是絕...