打印
[USB驱动]

关于USB中断传输模式问题咨询

[复制链接]
2083|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zym0820|  楼主 | 2016-1-14 23:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在学习USB相关知识,现在一直有个USB问题困扰我,希望好心人帮解答下,谢谢。
问题:USB主机在进行USB中断传输时,有资料这样描述,根据USB设备描述符,解析出其中的interval参数,
然后主机按照interval时间周期性对USB设备进行查询,但是,查看相关hcd driver的代码,并没有发现有这样的
查询操作啊?USB主机发起的这个查询是否是由相关USB设备驱动层发起的呢?

相关帖子

沙发
yutianxiang618| | 2016-1-15 22:07 | 只看该作者
描述符里定义了最多多少ms主机应该来查询一次

使用特权

评论回复
板凳
zym0820|  楼主 | 2016-1-15 23:11 | 只看该作者
yutianxiang618 发表于 2016-1-15 22:07
描述符里定义了最多多少ms主机应该来查询一次

谢谢回复。你的意思是主机根据根据描述符里面的时间间隔进行主动查询的,是主机主动发起的操作。
我看鼠标驱动程序里面URB提交的流程:usb_fill_int_urb(mouse->irq, dev, pipe, mouse->data,   (maxp > 8 ? 8 : maxp),  usb_mouse_irq, mouse, endpoint->bInterval); usb_submit_urb(mouse->irq, GFP_KERNEL),
一旦URB packet被提交给USB HOST后,在URB处理完成后都是通过usb_mouse_irq()回调再重新进行URB包的提交的。是不是polling由应用触发后,开始周期性进入submit URB->process URB->process URB done->irq callback->resubmit…这个过程,不知我的理解是否正确。

使用特权

评论回复
地板
yutianxiang618| | 2016-1-16 17:06 | 只看该作者
这个是哪个mcu的函数库么,鼠标一般使用中断传输,我的理解是描述符里定义了主机来查询的最长时间,你操作鼠标的函数里面会把buff发给 描述符里定义的端点,等待主机来取,  主机每隔一定时间会发一个IN,取断点里面的数据,最后进入断点in中断,里面一般为空,最多有一个flag标志位。

使用特权

评论回复
5
lin704932121| | 2016-1-18 12:08 | 只看该作者
USB每发送一个帧,帧计数器就会加一,interval就是以它为基准的

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝