
1、設(shè)備描述符:
bLength:設(shè)備描述符長(zhǎng)度,,固定值0x12
bDescriptorType:設(shè)備描述符類(lèi)型,這里是1
bcdUSB:USB發(fā)布號(hào),例如 2.10 即0x0210
bDeviceClass:設(shè)備類(lèi)別,由USB-IF分配,比較常見(jiàn)的USB設(shè)備:HID(鼠標(biāo))、CDC(串口)、SmartCard(智能卡)、Miscellaneous(復(fù)合設(shè)備)、Mass Storage(U盤(pán))、Vendor Specific(自定義USB設(shè)備)。
如下表格:

bDeviceSubClass:設(shè)備子類(lèi)別,由USB-IF分配,舉例
bDeviceProtocol:設(shè)備協(xié)議代碼,由USB-IF分配,舉例:
bMaxPacketSize0:端點(diǎn)0的最大包大小只有這幾個(gè)有效值8、16、32、64
idVendor:廠商ID,USB-IF分配,廠商向USB-IF申請(qǐng)
idProduct:產(chǎn)品ID
bcdDevice:設(shè)備發(fā)布編碼,廠商自行定義
iManufacturer:廠商字符串索引,如果沒(méi)有置為0
iProduct:產(chǎn)品字符串索引,如果沒(méi)有置為0
iSerialNumber:設(shè)備序列號(hào)字符串索引,如果沒(méi)有置為0
bNumConfigurations:配置數(shù)量,一個(gè)設(shè)備可以有多個(gè)配置,至少為1
2、配置描述符

bLength:配置描述符長(zhǎng)度,固定為0x09
bDescriptorType:設(shè)配置描述符類(lèi)型,這里是2
wTotalLength:描述符總長(zhǎng)度,包括配置描述符、接口描述符、端點(diǎn)描述符等。
bNumInterfaces:一個(gè)配置下可以有多個(gè)接口,這里是接口數(shù)量
bConfigurationValue:配置值,作為SetConfiguration() 的參數(shù)
iConfiguration:描述此配置的字符串索引,如果沒(méi)有置為0
bmAttributes:配置屬性
??? Bit7:保留設(shè)置為1
??? Bit6:自供電
??? Bit5:遠(yuǎn)程喚醒
??? Bi4-Bit0:保留置為0
bMaxPower:總線供電(非自供電)情況下的最大電流,2mA為單位
3、接口描述符

bLength:接口描述符長(zhǎng)度
bDescriptorType:接口描述符類(lèi)型,這里是0x04
bInterfaceNumber:一個(gè)配置可以有多個(gè)接口,這是接口索引
bAlternateSetting:一個(gè)接口可以由多個(gè)替代接口描述符,這是替代接口描述符索引,使用 SetInterface()進(jìn)行設(shè)置。
bNumEndpoints:這個(gè)接口有多少個(gè)端點(diǎn),不包含端點(diǎn)0
bInterfaceClass:接口類(lèi)別,由USB-IF分配,見(jiàn)下面HID鍵盤(pán)例子
bInterfaceSubClass:接口子類(lèi)別,由USB-IF分配,見(jiàn)下面HID鍵盤(pán)例子
bInterfaceProtocol:接口協(xié)議,,由USB-IF分配,見(jiàn)下面HID鍵盤(pán)例子
iInterface:接口字符串索引,如果沒(méi)有置為0
4、端點(diǎn)描述符
bLength:端點(diǎn)描述符長(zhǎng)度
bDescriptorType:端點(diǎn)描述符類(lèi)型,這里是0x05
bEndpointAddress:
Bit3-Bit0:端點(diǎn)號(hào)
Bit6-Bit4:保留為設(shè)置為0
Bit7:? ? ? ? 傳輸方向0:OUT端點(diǎn),1:IN端點(diǎn)
bmAttributes:端點(diǎn)地址
Bit1-Bit0:端點(diǎn)傳輸類(lèi)型
????00:控制傳輸類(lèi)型
????01:同步傳輸類(lèi)型
??? 10:批量傳輸類(lèi)型
??? 11:中斷傳輸類(lèi)型
Bit5-Bit2:非同步傳輸保留為設(shè)置為0,同步傳輸有特殊定義,這里不做介紹
Bit7-Bit6:保留位,設(shè)置為0
wMaxPacketSize:端點(diǎn)大小
bInterval:中斷傳輸輪訓(xùn)間隔時(shí)間,全速設(shè)備1ms為單位,高速設(shè)備125us為單位
5、字符串描述符

bLength:描述符長(zhǎng)度
bDescriptorType:字符串描述符類(lèi)型,這里是0x03
bString:UNICODE編碼的字符串
注意:索引為0的字符串描述符是語(yǔ)言ID
添加關(guān)注,了解更多干貨!