原始出處 、作者資訊和本宣告。否則將追究法律責任。
裝置描述符:
偏移值欄位名稱
字段大小
說明 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...