打印

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

[复制链接]
2543|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
luocolor|  楼主 | 2007-10-15 13:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
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芯片会产生中断请求或者改变一些寄存器的值

你的驱动程序可以等待中断或者查询寄存器的值.

使用特权

评论回复
5
luocolor|  楼主 | 2007-10-15 14:54 | 只看该作者

ok,多谢。明了了

使用特权

评论回复
6
平常人| | 2007-10-15 20:47 | 只看该作者

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

在Host端的HUB驱动收到这个报告后再把这个事件(设备插入)报告给加载驱动程序的驱动,后者在可用的驱动中找出对应该设备的驱动程序并加载,加载完成后启动并运行它;如果找不到对应该设备的驱动程序,它就会提示使用者给出设备驱动程序的路径,再实现加载。

使用特权

评论回复
7
luocolor|  楼主 | 2007-10-15 21:28 | 只看该作者

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

hub向host报告的过程不需要我们关注,一般是硬件完成的。在这之后,host会产生一个中断。是这样的么?

不然总感觉和computer00说的不一样。

使用特权

评论回复
8
平常人| | 2007-10-15 21:42 | 只看该作者

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

如果是说OS中的中断,这不用你考虑,这是由“加载驱动程序的驱动”处理的。

如果说是USB的中断传输,那就错了。Host接到HUB的报告后,会发一个命令让HUB把这个插入设备的端口激活,再发命令Get_Descriptor(Device)以取得设备的VID和PID作为寻找该设备驱动程序的依据。所有这些操作由“加载驱动程序的驱动”完成,所有的命令也是在控制端口传送,与中断传输无关。

但HUB却是用中断传输向HOST报告有新设备插入的。

使用特权

评论回复
9
computer00| | 2007-10-15 21:44 | 只看该作者

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

使用特权

评论回复
10
luocolor|  楼主 | 2007-10-15 22:48 | 只看该作者

恩。

多谢两位啊!

我也看了uclinux下usb core的源程序,主要关注的是usb.c,ohci.c和hub.c,从整个程序的结构框架来看。和平常人描述的过程很相似,不过还需要再仔细看下。
另外,除前面的3的文件外,还有哪些文件需要关注呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

105

帖子

0

粉丝