昆仑山

首页 » 问答 » 问答 » 42USB接口8描述符
TUhjnbcbe - 2022/5/6 16:49:00
白癜风的治疗药物 http://www.baidianfeng51.cn/m/

1、设备描述符:

bLength:设备描述符长度,,固定值0x1

bDescriptorType:设备描述符类型,这里是1

bcdUSB:USB发布号,例如.10即0x

bDeviceClass:设备类别,由USB-IF分配,比较常见的USB设备:HID(鼠标)、CDC(串口)、SmartCard(智能卡)、Miscellaneous(复合设备)、MassStorage(U盘)、VendorSpecific(自定义USB设备)。

如下表格:

bDeviceSubClass:设备子类别,由USB-IF分配,举例

BaseClass10h(Audio/VideoDevices)

bDeviceProtocol:设备协议代码,由USB-IF分配,举例:

BaseClass09h(Hub)

bMaxPacketSize0:端点0的最大包大小只有这几个有效值8、16、3、64

idVendor:厂商ID,USB-IF分配,厂商向USB-IF申请

idProduct:产品ID

bcdDevice:设备发布编码,厂商自行定义

iManufacturer:厂商字符串索引,如果没有置为0

iProduct:产品字符串索引,如果没有置为0

iSerialNumber:设备序列号字符串索引,如果没有置为0

bNumConfigurations:配置数量,一个设备可以有多个配置,至少为1

、配置描述符

bLength:配置描述符长度,固定为0x09

bDescriptorType:设配置描述符类型,这里是

wTotalLength:描述符总长度,包括配置描述符、接口描述符、端点描述符等。

bNumInterfaces:一个配置下可以有多个接口,这里是接口数量

bConfigurationValue:配置值,作为SetConfiguration()的参数

iConfiguration:描述此配置的字符串索引,如果没有置为0

bmAttributes:配置属性

Bit7:保留设置为1

Bit6:自供电

Bit5:远程唤醒

Bi4-Bit0:保留置为0

bMaxPower:总线供电(非自供电)情况下的最大电流,mA为单位

3、接口描述符

bLength:接口描述符长度

bDescriptorType:接口描述符类型,这里是0x04

bInterfaceNumber:一个配置可以有多个接口,这是接口索引

bAlternateSetting:一个接口可以由多个替代接口描述符,这是替代接口描述符索引,使用SetInterface()进行设置。

bNumEndpoints:这个接口有多少个端点,不包含端点0

bInterfaceClass:接口类别,由USB-IF分配,见下面HID键盘例子

bInterfaceSubClass:接口子类别,由USB-IF分配,见下面HID键盘例子

bInterfaceProtocol:接口协议,,由USB-IF分配,见下面HID键盘例子

iInterface:接口字符串索引,如果没有置为0

4、端点描述符

bLength:端点描述符长度

bDescriptorType:端点描述符类型,这里是0x05

bEndpointAddress:

Bit3-Bit0:端点号

Bit6-Bit4:保留为设置为0

Bit7:传输方向0:OUT端点,1:IN端点

bmAttributes:端点地址

Bit1-Bit0:端点传输类型

00:控制传输类型

01:同步传输类型

10:批量传输类型

11:中断传输类型

Bit5-Bit:非同步传输保留为设置为0,同步传输有特殊定义,这里不做介绍

Bit7-Bit6:保留位,设置为0

wMaxPacketSize:端点大小

bInterval:中断传输轮训间隔时间,全速设备1ms为单位,高速设备15us为单位

5、字符串描述符

bLength:描述符长度

bDescriptorType:字符串描述符类型,这里是0x03

bString:UNICODE编码的字符串

注意:索引为0的字符串描述符是语言ID

添加

1
查看完整版本: 42USB接口8描述符