电脑是如何识别你插上了USB设备

描述

每次当插上鼠标或者U盘的时候,电脑是怎么知道是什么设备的呢?这里用到的就是枚举了。枚举,其实就是让HOST认识这个USB涉笔,并且为该设备准备资源,建立好主机和设备之间的数据传递机制。 USB设备枚举过程可以分为8个部分:1、  获取设备描述符2、  复位3、  设置地址4、  再次获取设备描述符5、  获取配置描述符6、  获取接口、端点描述符7、  获取字符串描述符8、  选择设备配置

先看一下上篇文章看的USB鼠标枚举的包吧。那样更加明显易懂。

电脑

1、  获取设备描述符

电脑

这次传输方式是控制传输,她由5个事务组成,分别是SETUP、IN、IN、IN、OUT。

首先看第一个事务即SETUP事务的data数据,根据其数据再根据usb协议中的setup协议可以知道其含义了。下面按照自己来看协议 

电脑

电脑

电脑

电脑

2、  复位 电脑

3、  设置地址

电脑

电脑电脑4、  再次获取设备描述符这个是第2部分是一样的,就不再分析了。  

5、  获取配置描述符

电脑

看第一行就知道了这个是GET_DESCRIPTOR,CONFIGURATION descriptor。下面还是看下具体的事务吧。

首先还是SETUP事务了,看数据80 06就可以知道了是设备要发描述符给主机,而02就表示configuration,就是配置描述符了,

接着就是IN事务,设备给主机发送数据了。具体的数据含义看下图。

最后就是OUT事务。

电脑

6、  获取接口、端点描述符

电脑

还是老方法,看SETUP事务,和上一个一样,是获取配置描述符,这里的配置描述符。

具体含义,看下面的图就明白了。

电脑

电脑

电脑

电脑

7、  获取字符串描述符

电脑

电脑

电脑

这里就不多做分析了。  8、  选择设备配置

电脑

这里,SETUP事务,主要是DEVICE 的 SET_CONFIGURATION。 好了,差不多USB的枚举就是这么回事了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分