您现在的位置是:主页 > USB2.0规范 >
USB 枚举/断开过程
发布时间:2022-12-21 16:28:18所属栏目:USB2.0规范 已帮助人编辑作者:【USB接口百科】
USB设备枚举一般会经过插入、供电、初始化、分配地址,配置,获取设备描述符、获取配置描述符、获取字符串描述符和配置设备这么几个过程。
各过程的状态如下表:
USB主机检测到USB设备插入后,就要对设备进行枚举了。
枚举的作用就是从设备是那个读取一些信息,知道设备是什么样的设备,然后通信,这样主机就可以根据这些信息安装合适的驱动程序。
USB设备的枚举过程如下:
复位后主机为什么需要再次获取设备描述符呢?
这是因为有些USB设备的端点0的最大包长度为8字节(USB规定端点0的最大包长至少有8字节长),而设备描述符有18个字节,所以第一次获取设备描述时如果要想获取全部的描述符需要多次获取,而实际上系统只是取前8字节的设备描述符,后续的数据是不再获取的,这样有可能获取的描述符是不完全的,而复位后是要获取设备描述符的全部18字节。
为什么USB规定端点0的最大包长至少有8字节长?
USB设备的断开这是因为端点0最大包包长度刚好在设备描述符的第8字节处。
USB设备从USB总线断开时,包括以下几个步骤:
USB设备从集线器下行端口断开时,集线器禁止该端口,并通过中断IN通道向USB主机报告其端口变化。主机收到端口变化后发送GetPortStatus获取详细信息,并做处理断开操作。系统调用USB驱动程序的断开回调函数,释放该设备占用的所有系统资源。USB总线枚举如果断开的是一个USB集线器,USB主机会对该集线器和其所连接的所有设备进行断开操作。
PC主机一般有一个根集线器,在主机启动时由根集线器所在的总线负责进行枚举根集线器。在我们的PC中,USB根控制器通常是一个PCI/E设备,所以由PCI/E总线枚举并发现的,并将USB根控制器的地址空间永久地映射在内存中(可通过设备管理器看到)。
USB根控制器一般包括根集线器功能和根控制器功能。
PC主机通过与USB根集线器对话,然后由根集线器报告连接在其集线器上的其它USB设备或集线器,其它集线器负责报告连接到其它集线器上的集线器和USB设备,直到发现所有的USB设备。
一个根集线器在windows中就是一个单独的USB总线,如果系统中有多个根集线器,就会有多个USB总线。
我们的pc中一般有2-3个根集线器,通常包括1个USB3.0根集线器和多个USB2.0根集线器。
以上就是USB接口百科为您提供USB 枚举/断开过程的解读,本文章链接: http://www.usb-hub.cn/usb20gf/42264.html 欢迎分享转载,更多婚礼相关资讯请前往USB2.0规范
上一篇:USB数据信号的电气特性
下一篇:USB 供电方式及设备功耗