枚举的详细过程分析

本文详细阐述了USB设备枚举的过程,包括主机检测设备插入后的复位、获取设备描述符、设置设备地址以及获取配置和字符串描述符等步骤。在这一过程中,主机通过地址0与设备通信,确保设备唯一地址的分配,并获取设备的关键信息。
摘要由CSDN通过智能技术生成
下面介绍枚举的详细过程:


①USB主机检测到USB设备插入后,就会先对设备复位。USB设备在总线复位后其地址为0,这样主机就可以通过地址0和那些刚刚插入的设备通信。USB主机往地址为0的设备的端点0发送获取设备描述符的标准请求(这是一个控制传输的建立过程)。设备收到该请求后,会按照主机请求的参数,在数据过程将设备描述符返回给主机。主机在成功获取到一个数据包的设备描述符并且确认没有错误后,就会返回一个0长度的确认数据包(状态过程)给设备,从而进入到接下来的设置地址阶段。这里需要注意的是,第一次主机只会读取一个数据包的设备描述符。标准的描述符有18字节,有些USB设备的端点0大小不足18字节(但至少具有8字节),在这种情况下,USB主机也是只发送一次数据输入请求,多余的数据将不会再次请求。因此,如果当设备端点0大小不足18字节时,就需要注意到这个问题。也就是说在第一次获取设备描述符时,只需要返回一次数据即可,不要再等主机继续获取剩余数据(如果还有),因为主机不会这么干的。当主机成功获取到设备描述符的前8字节之后(USB协议规定端点0最大包长至少要有8字节),它就知道端点0的最大包长度了,因为端点0最大包长度刚好在设备描述符的第八字节处。


②主机对设备又一次复位。这时就进入到了设置地址阶段。USB主机往地址为0的设备的端点0发出一个设置地址的请求(控制传输的请求过程),新的设备地址包含在建立过程的数据包中。具体的地址由USB主机负责管理,主机会分配一个唯一的地址给刚接入的设备。USB设备在收到这个建立过程之后,就直接进入到状态过程,因为这个控制传输没有数据过程。设备等待主机请求状态返回࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值