渣渣小码
渣渣小码
展开
-
第五篇 USB设备枚举过程(6)
上一篇:https://blog.youkuaiyun.com/qq_40088639/article/details/109771884十四、又一次获取产品描述符串口打印跟踪:协议分析仪:十五、又一次设置接口串口打印跟踪:协议分析仪:十六、一个未知的HID中断输出请求这个请求不用管。十七、最后再获取一次配置描述符协议分析仪:串口打印跟踪:十八、总结(1)要仔细分析,主机的每一次标准请...原创 2020-11-18 14:10:36 · 1046 阅读 · 0 评论 -
第五篇 USB设备枚举过程(5)
上一篇:https://blog.youkuaiyun.com/qq_40088639/article/details/109768241九、设置配置请求经过上面的步骤之后,主机下发了设置配置的请求。回顾一下,上文中配置描述符的结构以及在程序代码中的定义,需要注意的是配置描述符的bConfigurationValue这个域。一个USB设备可以有很多个配置。bConfigurationValue就是每个配置的标识!主机请求设置配置的时候,会下发一个配置值,如果某个配置的bConfigurationValue和主机原创 2020-11-18 13:52:16 · 1934 阅读 · 0 评论 -
第五篇 USB设备枚举过程(4)
上一篇:六、语言ID描述符和字符串描述符的请求这个阶段,Host会先请求语言ID字符串,然后再依次请求厂商字符串、产品字符串和序列号字符串。1. 字符串描述符的结构主机在获得配置描述符集合之后,会下发获得语言ID的请求,以及获得字符串的请求。在USB协议中,字符串描述符是可选的。在设备描述符中,申请了三个非0的索引值: 1:是厂商字符串的索引值 2:是产品字符串的索引值 3:是产品序列号的索引值 主机通过索引值来获取对应的字符串数据。索引值为0则表示获.原创 2020-11-18 11:30:21 · 1305 阅读 · 0 评论 -
第五篇 USB设备枚举过程(3)
上一篇:https://blog.youkuaiyun.com/qq_40088639/article/details/109752441五、获取配置描述符集合(第一次)通常来说,主机第一次先获取9字节长度的配置描述符,然后根据配置描述符中配置描述符集合的长度,再次获取配置描述符。第二次获取的时候,设备会将配置描述符、接口描述符、类特殊描述符、端点描述符等一并返回。这是一个比较合理的配置描述符请求过程。但是,由于计算机系统的差异,有可能请求配置描述符的时候,直接请求255个字节的数据,然后设备会将配置描述符原创 2020-11-18 10:37:40 · 1725 阅读 · 0 评论 -
第五篇 USB设备枚举过程(2)
二、复位总线主机第一次正确接收到设备描述符,就会复位一次总线,接下来发送设置地址的标准请求。1. 协议分析仪数据这次复位是正常复位。如果主机第一次获取设备描述符之后,一直复位(异常复位),很大情况下是因为获取设备描述符的过程有错(返回的数据或者数据长度都有错)!比如:在一次验证FPGA的过程中,设备栈刚移植结束,跑起Demo之后,发现获取设备描述符后,Host一直复位总线,如下:将数据展开,仔细分析后发现有错:返回的长度和数据内容都有错。应该是18字节的设备描述符,而这里原创 2020-11-17 20:37:52 · 1859 阅读 · 4 评论 -
第五篇 USB设备枚举过程(1)
总述设备枚举的整个过程USB设备枚举过程,可大致分为下面的几个阶段: 一、获取设备描述符 二、复位总线 三、设置地址阶段 四、再次获取设备描述符 五、获取配置描述符集合请求(第一次) 六、语言ID描述符和字符串描述符的请求 七、又获取了一次设备描述符 八、又再一次获取配置描述符 九、设置配置请求 十、设置接口请求 十一、重复两次请求产品字符串描述符 十二、Set_Idle请求 十三、获取报...原创 2020-11-17 16:43:29 · 10725 阅读 · 1 评论 -
第四篇 什么是组合设备(概述)
一、组合设备的概念一般来说,都是一个usb口接一个usb设备,并在pc端实现单一的usb device设备功能。比如说:usb鼠标,usb键盘,u盘等。但是也有一些usb设备,它虽然只有一个usb硬件口,却实现了多种功能,比如现在市面上常见的usb摄像头,它同时具有多个功能:usb摄像头(传输图像) + usb麦克风(传输语音数据) + HID(按键控制)。像上面说的这种只有一个usb接口,却集成了多个usb设备功能的设备,一般有两种实现方式:一种是Compound Device,就是复合设备;另一原创 2020-11-17 14:18:45 · 3683 阅读 · 0 评论 -
第三篇 USB描述符以及请求
一、USB描述符作为基础,首先要掌握USB设备的标准描述符(不管是什么类型的设备,都有这几个描述符存在),而不同类的设备,又有自己特殊的描述符,后面介绍不同类设备的时候,再进行介绍。1. 设备描述符每个USB设备都必须并且只有一个设备描述符(在程序中定义好设备描述符)。USB协议对设备描述符的定义如下: 设备描述符结构表...原创 2020-11-03 11:07:25 · 3780 阅读 · 0 评论 -
第二篇 USB2.0协议简述(包-事务-传输)
USB2.0协议简述(包-事务-传输)原创 2020-11-03 10:32:11 · 8460 阅读 · 1 评论 -
第一篇 USB基础知识
USB基础知识原创 2020-11-03 10:01:01 · 5367 阅读 · 5 评论