USB device hot plug detection

发布时间:2016-12-8 4:12:17 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"USB device hot plug detection",主要涉及到USB device hot plug detection方面的内容,对于USB device hot plug detection感兴趣的同学可以参考一下。

refer to http://usb.baiheee.com/usb_article/usb_spec/usb_plug_detect.html。 自己玩了玩。 connect 1.5K resistor between vbus and D+. vbus is 5v. D+ is 4v. 搭个简单电路验证USB主机是如何检测USB设备的插入和拨出动作的 ------分隔线----------------------------   USB设备是一种即插即用设备,即插即用的英文缩写为PNP(Plug and Play),在不用关主机的情况即可直接拨插USB设备,而且插上即可使用,那么USB主机是如何检测USB设备的插入和拨出动作的呢?   总结来说USB主机是通过监视USB端口上的电压变化来判断设备的插入和拨出动作的。   USB集线器端口的两根信号线D+和D-(《USB物理模型简介》一文有介绍) 的每一根都有15kΩ的下拉电阻,而在设备端,在D+或D-上接了1.5kΩ的上拉电阻,当未插入设备时,即集线器的端口悬空时,两根信号线都被下拉电阻拉到了低电平。当USB设备插入时,由于上拉电阻的存在,由1.5K的上拉电阻和15K的下拉电阻分压,两要信号线中有一根被拉到了高电平,集线器检测到这个状态后,它就报告给USB主控制器(或者通过它上一层的集线器报告给USB主控制器),这样就检测到设备的插入了。对于全速和高速设备,上拉电阻是接在D+上的,而低速设备则是上拉电阻接在D-上的,集线器通过判断哪根线被拉高来区分是低速设备还是全速和高速设备。USB高速设备先是被识别为全速设备,然后通过主机和设备两者之间的数据通讯进一步确认,再切换到高速模式的。在高速模式下,是电流传输模式,这时会将D+上的上拉电阻断开。当USB主机检测设备的插入后,主机将会向设备发出一系列枚举请求,设备作出正确响应来完成USB设备枚举过程。   我们做个简单的实验,自已搭一个电路,只用一个上拉电阻接在USB的+5V(VBUS)和D+或者D-上,这个电路插入电脑上的USB端口后同样会提示发现USB设备,只是不能安装驱动程序而已(因为安装驱动力程序需要设备枚举过后,设备枚举过程需要USB设备对主机发来的命令请求数据包作出正确的回复),这时打开设备管理器看看,有显示未知USB设备,并且其VID和PID为0,根据这个,我们可以简单的判断设备是否枚举成功。电路图如下:     图1 USB插入检测实验电路     下面我们来搭这个电路,如果手上没有USB插座,可以用一根USB电缆,一头剪掉,记得插电脑那头扁平接头连线不要留得太短,将一个1.5K电阻焊到上VBUS和D+之间即可,如如何找出USB电缆里这两根线的位置呢,请看下面图所示:     图2 USB电缆及插头信号定义   这里介绍另一种方法,如果您的手上有USB插座的话,这种方法不用把USB电剪断,所以建议使用下面的方法。这种方法直接把电阻焊到另外准备的USB插座上,各种类型USB插座信号脚定义如下所示:     图3 USB插座引脚编号(电气含义见图2)    在USB插座的VBUS和D+(即第1和第3脚)之间焊上1.5K电阻后的效果(我用的是贴片电阻):     图3 在USB-B插座上搭个电阻做USB设备插入检测实验   然后把这个电路插入电脑主机,Windows真的发现有USB设备插入电脑了,只是不能安装驱动程序而已,如下图所示:     图4  Windows真的发现这个假的USB设备了   打开设备管理器查看这个假的USB设备,发现PID和VID都为0,这也是判断USB枚举成功与否的标志。   图5 USB插入检测实验-查看PID和VID 

上一篇:深刻理解C#的传值调用和传引用调用
下一篇:谈谈struts2的理解

相关文章

相关评论