完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
USB 规范定义的设备状态总共有 6 个,分别是连接(Attached)、上电(Powered)、默认(Default)、地址(Address)、配置(Configured)和挂起(Suspend)。USB 总线枚举过程中,USB 设备需要经历后 4 个状态,如图 6-12 所示。 ![]() USB 集线器负责监测设备的连接情况,而 USB 主机会通过集线器轮询地查询设备。当主机发现有一个新的设备时,会要求集线器建立与设备的通信通道,即设备的端点 0,控制传输端点。之后,主机会通过此通道向设备发送一系列的标准 USB 请求以获取所需的信息,设备必须响应这些请求并且采取适当的动作。这个过程称为 USB 的总线枚举。设备描述符包含的是设备信息,而 USB 请求是指 USB 主机和设备之间获取特定信息的格式,标准的 USB 请求有 11 个。 设备枚举的步骤如下: • 在主机的 USB 集线器口连接上 USB 设备,主机会首先发出一个获取设备描述符的请求Get_Descriptor(wValue = 0x01)。设备接收到这个主机请求,发送设备描述符,这时由于主机对设备的描述符将有多长实际上都不知道,所以这个步骤只是试探性的。实际上,这时候即使只发送部分设备描述符,主机也会进行下面的步骤。 • 主机发送设置地址的请求 Set_Address,这时候,设备的地址就是 Set_Address 请求数据包内对应的地址,一般为 02 或 03。 • 完成地址设置后,主机会再次发送 Get_Descriptor(wValue = 0x01)的请求,读取完整的设备描述符,一般为 18 个字节,如果没有收到正确的设备描述符,主机会再次尝试,总共尝试 3 次。 • 主机发送获取配置描述符的请求 Get_Descriptor(wValue = 0x02),此时请求的仅仅是配置描述符,总长度为 9 个字节。 • 主机再次发送获取配置描述符的请求 Get_Descriptor(wValue = 0x02),这次请求的数据长度可能会是 0xFF,这表示主机要求获取所有的配置信息,包括配置描述符、接口描述符和端点描述符,设备应该将以上所有的描述符都发送给主机。 • 在正确获取到所有配置描述符之后,主机就会开始查找驱动,如果未能搜索到驱动的话,主机系统会提示找到设备但是未找到驱动。 • 当正确找到驱动后,主机会给设备发送 Set_Configuration 的请求,这样才算是一个设备被正确枚举了。 |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
2722 浏览 3 评论
27461 浏览 2 评论
3299 浏览 2 评论
3850 浏览 4 评论
基于采用FPGA控制MV-D1024E系列相机的图像采集系统设计
2189 浏览 3 评论
1166浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-17 06:20 , Processed in 0.653841 second(s), Total 58, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191