usb库文件usb_desc.c分析

参考《圈圈教你玩USB》

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

设备描述符的实现:

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

              偏移量                             域                  大小/字节                          说 明                       
0 bLength 1 该描述符的长度(18字节)
1 bDescription 1 描述符类型(设备描述符为0x01)
2 bcdUSB 2 本设备所使用的usb协议版本
4 bDeviceClass 1 类代码
5 bDeviceSubClass 1 子类代码
6 bDeviceProtocol 1 设备所使用的协议
7 bMaxPackSize0 1 端点0最大包长
8 idVender 2 厂商id
10 idProduct 2 产品ID
12 bcdDevice 2 设备版本号
14 iManufacturer 1 描述厂商的字符串的索引
15 iProduct 1 描述产品的字符串的索引
16 iSerialNumber 1 产品序列号字符串的索引
17 bNumcofigurations 1 可能的配置数

 

 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   };

 

posted @ 2016-08-30 22:35  prayer521  阅读(1484)  评论(0编辑  收藏  举报