计算机上的usb设备是什么东西,电脑是如何识别你插上了USB设备

描述

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

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

15344e6e0ca4722eda546badaf7a68f7.png

1、  获取设备描述符

143ce559da7b6a553032a68e8b42d2b0.png

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

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

3125d558f112cb0b1253a1aa6e68f546.png

72da87b41633b66e3190f0ddab8283ee.png

2e2daee1152dca581770d8953c445848.png

af27ec182b2fc9acb6c022aa6450d544.png

2、  复位

a180fc3cf17a41bb61376741c84741de.png

3、  设置地址

619843cd056b9485a782f1c466ec80ff.png

f93dbe09bfe70863a8101e1c9c34e097.png

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

5、  获取配置描述符

17b840323033366bd0de953f53691cca.png

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

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

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

最后就是OUT事务。

b05d2a711437cbe7a7d25b380aada58f.png

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

cd00b6a4d0f9f51fc455352411cf9efa.png

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

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

68bd0ab2357481985ad362d70e2b81de.png

dfc75ef1ca016e43bafef4f60c2c29be.png

d9872b4cf7af4d827d047e64e2c20051.png

213009deddabb9cbf9471332fa2c1416.png

7、  获取字符串描述符

156648164507d78ed183222201029b2f.png

493c5860f574181d85130f9489980c03.png

1b7e47376928f698be436df80bd44ef4.png

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

df99385b01e4d7a46a4dfa3b946ea116.png

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

打开APP阅读更多精彩内容

点击阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值