USB HID设备枚举过程

一. 枚举过程

  1. USB设备插入检测,硬件上全速设备D+线上有1.5K上拉电阻,可便于USB主机检测到有设备连上。
  2. 等待稳定供电后,USB主机会对设备复位,即BusReset,复位后,主机将使用地址0与设备通信。
  3. USB主机将向地址0设备的Endpoint 0 发送获取设备描述符的标准请求,设备收到该请求后,会按照主机请求的参数,在数据过程将设备描述符返回给主机,主机在成功获取到一个数据包的设备描述符后并确认没有错误后,就会返回一个0长度的确认数据包给设备。
  4. 主机再次BusReset,进入地址设置阶段,主机发送Set Address请求,请求中携带新分配的地址,USB设备收到新地址后将返回0长度的状态数据包确认收到新地址。
  5. 主机再次获取设备描述符,此次将使用新配置的地址进行通信。
  6. 主机获取配置描述符,配置描述符为9字节。主机在获取到配置描述符后,根据配置描述符中所描述的配置集合总长度,获取配置集合。获取配置描述符和获取配置描述符集合的请求一致,只是指定的长度不一样,配置描述符集合包括配置描述符、接口描述符、类特殊描述符、端点描述符等。后续还会获取String Descriptor等。
  7. 对于HID类设备,主机还将发送HID请求如Set Idle等。并继续获取报告描述符。
  8. 完成获取上述描述符后,主机将可以确定USB设备的类型、VID、PID、接口、端点等信息,后续就可以正常通信。

二. 设备状态图

      为了更清晰的了解枚举过程,也可以参考下图设备状态的变化过程,此图截自USB 2.0官方规格文档。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值