编辑: 梦三石 2018-02-20

80 06

00 01

00 00

12 00 再次收到获取设备描述符的配置包,由于第一次不知道设备描述符有多大,因而总是发送一个最大数据的包,就是64个字节大,现在知道描述符的大小为0x0012个大小了,就把它发送下来了.所以USB设备再次回应设备描述符就可以了. ? REQUEST_STANDARD=0x6 USB_DEVICE_DESCRIPTOR_TYPE(1) USB_DataInStage,cnt=18,EP0Data.Count=18

12 01

10 01

00 00

00 40

00 80

00 80

00 01

04 2C 4A

01 在这里再次回应设备描述符. ? USB_EVT_IN,USB_DataInStage USB_DataInStage,cnt=0,EP0Data.Count=0 ? 4.收到配置描述符包 ? Setup m=0,n=0,val=45

80 06

00 02

00 00

09 00 根据USB协议可以知道,这是一个配置描述符的包,也就是让USB设备发送本设备有多少个配置方式给主控器.由于USB的设备是多种多样,满足不同的用户需要的.比如鼠标和键盘,就是不同的设备了.还有MP3播放器,还有各种数码相机等等,都是不一样的设备了.就可以通过下面的方式来说明这个配置有多少种方式,主要是通讯的方式. REQUEST_STANDARD=0x6 USB_CONFIGURATION_DESCRIPTOR_TYPE(2)(Offset=0x0) USB_DataInStage,cnt=9,EP0Data.Count=9

09 02

22 00

01 01

00 01

32 这里就是USB设备返回配置描述符给主控器的,它主要说明了这个设备有多少个配置,比如定义端点的类型,端点的传送方式,还有这个设备使用USB总线的电源多少. USB_EVT_IN,USB_DataInStage USB_DataInStage,cnt=0,EP0Data.Count=0 ? ? 5.收到字符串描述符包 ? Setup m=0,n=0,val=45

80 06

00 03

00 00 FF

00 这里收到获取字符串描述符.由于在设备描述符里已经说明字符串描述符在那里,主要是偏移地址,比如04就是厂家的描述符. REQUEST_STANDARD=0x6 USB_STRING_DESCRIPTOR_TYPE(3)(Offset=0x0) USB_DataInStage,cnt=4,EP0Data.Count=4

04 03

09 04 这里返回偏移地址为0的字符串描述,其实那里是保存字符串描述符的语言描述标识,这里英语的标识,0X0409. USB_EVT_IN,USB_DataInStage USB_DataInStage,cnt=0,EP0Data.Count=0 ? ? 6.收到字符串描述符包 ? Setup m=0,n=0,val=45

80 06 4A

03 09

04 FF

00 这时收到获取字符串描述符,根据偏移地址,就知道它是想返回0x4A的字符串,也就是字符串描述符里的偏移地址. REQUEST_STANDARD=0x6 USB_STRING_DESCRIPTOR_TYPE(4)(Offset=0x4A) USB_DataInStage,cnt=36,EP0Data.Count=36

24 03

43 00

41 00

49 00

32 00

30 00

30 00

37 00

30 00

33 00

32 00

35 00

20 00

31 00 2E

00 30

00 2E

00 30

00 USB设备返回0x4A的字符串给PC.这里是我放置的字符串: CAI20070325 1.0.0 它作为产品的序列号.由于采用UNICODE编码,所有高位字节全是0.由于USB协议是使用小端格式来发送数据,所以都低位在前,高位在后.这样在PC那里就可以看到USB设备的产品序列号了.又前进了一步. USB_EVT_IN,USB_DataInStage USB_DataInStage,cnt=0,EP0Data.Count=0 ? 7.收到第二个配置描述符包 ? Setup m=0,n=0,val=45

80 06

00 02

00 00 FF

00 这里收到是第二个配置描述符包,与第一个的区别是返回长度不同. 第一个配置包返回的长度是9个字节,而这里的长度是255. REQUEST_STANDARD=0x6 USB_CONFIGURATION_DESCRIPTOR_TYPE(5)(Offset=0x0) USB_DataInStage,cnt=34,EP0Data.Count=34

09 02

22 00

01 01

00 01

32 09

04 00

00 01

03 00

00 6E

09 21

00 01

00 01

22 24

00 07

05 81

03 40

00 20 在这里返回全部配置描述给PC,让PC知道USB设备所有的配置.在这里包括设备配置,接口配置,端点配置,还有设备特别配置信息. USB_EVT_IN,USB_DataInStage USB_DataInStage,cnt=0,EP0Data.Count=0 ? ? 8.收到字符串描述符包 ? Setup m=0,n=0,val=45

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题