嵌入式中,usb设备插入hub后过程是怎样呢?

[复制链接]
3551|9
 楼主| luocolor 发表于 2007-10-15 13:27 | 显示全部楼层 |阅读模式
如题。<br />看了些资料,不甚明了。<br /><br />在设备插入后,设备上电。是设备通过一个中断来让host知道它还是通过其他方法呢?
computer00 发表于 2007-10-15 13:31 | 显示全部楼层

设备有个上拉电阻...HUB通过检测D+和D-的电平就可以判断是否

设备插入.
 楼主| luocolor 发表于 2007-10-15 13:53 | 显示全部楼层

3ks。不过,我的host驱动程序在什么时候开始运行呢?

  
computer00 发表于 2007-10-15 14:35 | 显示全部楼层

USB HOST芯片会产生中断请求或者改变一些寄存器的值

你的驱动程序可以等待中断或者查询寄存器的值.
 楼主| luocolor 发表于 2007-10-15 14:54 | 显示全部楼层

ok,多谢。明了了

  
平常人 发表于 2007-10-15 20:47 | 显示全部楼层

设备插入HUB并经HUB检测出来后,HUB向Host报告

在Host端的HUB驱动收到这个报告后再把这个事件(设备插入)报告给加载驱动程序的驱动,后者在可用的驱动中找出对应该设备的驱动程序并加载,加载完成后启动并运行它;如果找不到对应该设备的驱动程序,它就会提示使用者给出设备驱动程序的路径,再实现加载。
 楼主| luocolor 发表于 2007-10-15 21:28 | 显示全部楼层

“设备插入HUB并经HUB检测出来后,HUB向Host报告”<br /><br />hub向host报告的过程不需要我们关注,一般是硬件完成的。在这之后,host会产生一个中断。是这样的么?<br /><br />不然总感觉和computer00说的不一样。
平常人 发表于 2007-10-15 21:42 | 显示全部楼层

Host会产生一个中断?不知LS说的这个中断指什么?

如果是说OS中的中断,这不用你考虑,这是由“加载驱动程序的驱动”处理的。<br /><br />如果说是USB的中断传输,那就错了。Host接到HUB的报告后,会发一个命令让HUB把这个插入设备的端口激活,再发命令Get_Descriptor(Device)以取得设备的VID和PID作为寻找该设备驱动程序的依据。所有这些操作由“加载驱动程序的驱动”完成,所有的命令也是在控制端口传送,与中断传输无关。<br /><br />但HUB却是用中断传输向HOST报告有新设备插入的。
computer00 发表于 2007-10-15 21:44 | 显示全部楼层

楼主所指的中断是硬件中断,即USB HOST芯片发给CPU的中断

  
 楼主| luocolor 发表于 2007-10-15 22:48 | 显示全部楼层

恩。

多谢两位啊!<br /><br />我也看了uclinux下usb&nbsp;core的源程序,主要关注的是usb.c,ohci.c和hub.c,从整个程序的结构框架来看。和平常人描述的过程很相似,不过还需要再仔细看下。<br />另外,除前面的3的文件外,还有哪些文件需要关注呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

105

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部