微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > USB 基本知识

USB 基本知识

时间:12-14 来源:互联网 点击:

描述符,而一个设备描述符可以包含多个配置描述符,而一个配置描述符可以包含多个接口描述符,一个接口使用了几个端点,就有几个端点描述符。这间描述符是用一定的字段构成的,分别如下说明:

1、设备描述符

struct _DEVICE_DEscriptOR_STRUCT

{

BYTE bLength; //设备描述符的字节数大小,为0x12

BYTE bDescriptorType; //描述符类型编号,为0x01

WORD bcdUSB; //USB版本号

BYTE bDeviceClass; //USB分配的设备类代码,0x01~0xfe为标准设备类,0xff为厂商自定义类型

//0x00不是在设备描述符中定义的,如HID

BYTE bDeviceSubClass; //usb分配的子类代码,同上,值由USB规定和分配的

BYTE bDeviceProtocl; //USB分配的设备协议代码,同上

BYTE bMaxPacketSize0; //端点0的最大包的大小

WORD idVendor; //厂商编号

WORD idProduct; //产品编号

WORD bcdDevice; //设备出厂编号

BYTE iManufacturer; //描述厂商字符串的索引

BYTE iProduct; //描述产品字符串的索引

BYTE iSerialNumber; //描述设备序列号字符串的索引

BYTE bNumConfiguration; //可能的配置数量

}

2、配置描述符

struct _CONFIGURATION_DEscriptOR_STRUCT

{

BYTE bLength; //设备描述符的字节数大小,为0x12

BYTE bDescriptorType; //描述符类型编号,为0x01

WORD wTotalLength; //配置所返回的所有数量的大小

BYTE bNumInterface; //此配置所支持的接口数量

BYTE bConfigurationVale; //Set_Configuration命令需要的参数值

BYTE iConfiguration; //描述该配置的字符串的索引值

BYTE bmAttribute; //供电模式的选择

BYTE MaxPower; //设备从总线提取的最大电流

}

3、字符描述符

struct _STRING_DEscriptOR_STRUCT

{

BYTE bLength; //设备描述符的字节数大小,为0x12

BYTE bDescriptorType; //描述符类型编号,为0x01

BYTE SomeDescriptor[36]; //UNICODE编码的字符串

}

4、接口描述符

struct _INTERFACE_DEscriptOR_STRUCT

{

BYTE bLength; //设备描述符的字节数大小,为0x12

BYTE bDescriptorType; //描述符类型编号,为0x01

BYTE bInterfaceNunber; //接口的编号

BYTE bAlternateSetting;//备用的接口描述符编号

BYTE bNumEndpoints; //该接口使用端点数,不包括端点0

BYTE bInterfaceClass; //接口类型

BYTE bInterfaceSubClass;//接口子类型

BYTE bInterfaceProtocol;//接口所遵循的协议

BYTE iInterface; //描述该接口的字符串索引值

}

5、端点描述符

struct _ENDPOIN_DEscriptOR_STRUCT

{

BYTE bLength; //设备描述符的字节数大小,为0x12

BYTE bDescriptorType; //描述符类型编号,为0x01

BYTE bEndpointAddress; //端点地址及输入输出属性

BYTE bmAttribute; //端点的传输类型属性

WORD wMaxPacketSize; //端点收、发的最大包的大小

BYTE bInterval; //主机查询端点的时间间隔

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top