打印

USB设备的插入检测机制 疑问?

[复制链接]
2036|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
l_lin2003|  楼主 | 2012-10-16 15:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在网上随便一搜就可以搜出一段USB设备的插入检测的机制,里面有句话(红字体标出)我一直搞不明白,请教各位大侠!
原文是这样的:
“USB主机是如何检测到设备的插入的呢?首先,在USB集线器的每个下游端口的D+和D-上,分别接了一个15K欧姆的下拉电阻到地。这样,在集线器的端口悬空时,就被这两个下拉电阻拉到了低电平。而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻。对于全速和高速设备,上拉电阻是接在D+上;而低速设备则是上拉电阻接在D-上。这样,当设备插入到集线器时,由1.5K的上拉电阻和15K的下拉电阻分压,结果就将差分数据线中的一条拉高了。集线器检测到这个状态后,它就报告给USB主控制器(或者通过它上一层的集线器报告给USB主控制器),这样就检测到设备的插入了。USB高速设备先是被识别为全速设备,然后通过HOST和DEVICE两者之间的确认,再切换到高速模式的。在高速模式下,是电流传输模式,这时将D+上的上拉电阻断开。”

我现在不明白的就是:集线器是如何检测到这个状态的变化的?是轮询还是靠中断,还是其他的方式?

相关帖子

沙发
ILIS| | 2012-10-17 09:52 | 只看该作者
个人觉得是靠中断的,检测到后,会发一个USB消息给主控制器的PID层(就是驱动程序层)

使用特权

评论回复
板凳
centuryair| | 2012-10-19 16:12 | 只看该作者
应该是中断

使用特权

评论回复
地板
haifan1234| | 2012-11-7 19:36 | 只看该作者
Usb 的硬件接口包括: host controller  roothub(集线器)—》端口上的phy芯片。
Phy芯片是可以检测到端口电平变化的,然后会送给roothub对应端口上的一根接口信号线电平。Roothub 端口获释后上送中断。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
l_lin2003 + 2
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

103

帖子

1

粉丝