首页 > 代码库 > usb库文件usb_desc.c分析

usb库文件usb_desc.c分析

参考《圈圈教你玩USB》

usb协议中使用的是小端结构,所以实际数据在传输时是低字节在先的。

设备描述符的实现:

  已知每个设备都必须有且仅有一个设备描述符,它的结构在USB协议中有详细的定义。

              偏移量                            域                 大小/字节                         说 明                       
0bLength1该描述符的长度(18字节)
1bDescription1描述符类型(设备描述符为0x01)
2bcdUSB2本设备所使用的usb协议版本
4bDeviceClass1类代码
5bDeviceSubClass1子类代码
6bDeviceProtocol1设备所使用的协议
7bMaxPackSize01端点0最大包长
8idVender2厂商id
10idProduct2产品ID
12bcdDevice2设备版本号
14iManufacturer1描述厂商的字符串的索引
15iProduct1描述产品的字符串的索引
16iSerialNumber1产品序列号字符串的索引
17bNumcofigurations1可能的配置数

 

 1 const uint8_t MASS_DeviceDescriptor[MASS_SIZ_DEVICE_DESC] = 2   { 3     0x12,   /* bLength  */ 4     0x01,   /* bDescriptorType */ 5     0x00,   /* bcdUSB, version 2.00 */ 6     0x02, 7     0x00,   /* bDeviceClass : each interface define the device class */ 8     0x00,   /* bDeviceSubClass */ 9     0x00,   /* bDeviceProtocol */10     0x40,   /* bMaxPacketSize0 0x40 = 64 */11     0x83,   /* idVendor     (0483) */12     0x04,13     0x20,   /* idProduct */14     0x57,15     0x00,   /* bcdDevice 2.00*/16     0x02,17     1,              /* index of string Manufacturer  */18     /**/19     2,              /* index of string descriptor of product*/20     /* */21     3,              /* */22     /* */23     /* */24     0x01    /*bNumConfigurations */25   };

 

usb库文件usb_desc.c分析