技能改变生活 USB端口是怎样判断插入了USB外设的呢?

【技能改变生活 USB端口是怎样判断插入了USB外设的呢?】#技能改变生活# USB端口是怎样判断插入了USB外设的呢?
我们做个简单的实验,自已搭一个电路,只用一个上拉电阻接在USB的+5V(VBUS)和D+或者D-上,这个电路插入电脑上的USB端口后同样会提示发现USB设备,只是不能安装驱动程序而已(因为安装驱动力程序需要设备枚举过后,设备枚举过程需要USB设备对主机发来的命令请求数据包作出正确的回复),这时打开设备管理器看看,有显示未知USB设备,并且其VID和PID为0,根据这个,我们可以简单的判断设备是否枚举成功 。
USB设备是一种即插即用设备,即插即用的英文缩写为PNP(Plug and Play),在不用关主机的情况即可直接拨插USB设备,而且插上即可使用,那么USB主机是如何检测USB设备的插入和拨出动作的呢?
总结来说USB主机是通过监视USB端口上的电压变化来判断设备的插入和拨出动作的 。
USB集线器端口的两根信号线D+和D-的每一根都有15kΩ的下拉电阻,而在设备端,在D+或D-上接了1.5kΩ的上拉电阻,当未插入设备时,即集线器的端口悬空时,两根信号线都被下拉电阻拉到了低电平 。当USB设备插入时,由于上拉电阻的存在,由1.5K的上拉电阻和15K的下拉电阻分压,两要信号线中有一根被拉到了高电平,集线器检测到这个状态后,它就报告给USB主控制器(或者通过它上一层的集线器报告给USB主控制器),这样就检测到设备的插入了 。对于全速和高速设备,上拉电阻是接在D+上的,而低速设备则是上拉电阻接在D-上的,集线器通过判断哪根线被拉高来区分是低速设备还是全速和高速设备 。USB高速设备先是被识别为全速设备,然后通过主机和设备两者之间的数据通讯进一步确认,再切换到高速模式的 。在高速模式下,是电流传输模式,这时会将D+上的上拉电阻断开 。当USB主机检测设备的插入后,主机将会向设备发出一系列枚举请求,设备作出正确响应来完成USB设备枚举过程 。

技能改变生活 USB端口是怎样判断插入了USB外设的呢?

文章插图
技能改变生活 USB端口是怎样判断插入了USB外设的呢?

文章插图
技能改变生活 USB端口是怎样判断插入了USB外设的呢?

文章插图