[USB驱动] 关于USB中断传输模式问题咨询

[复制链接]
2869|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标志位。
lin704932121 发表于 2016-1-18 12:08 来自手机 | 显示全部楼层
USB每发送一个帧,帧计数器就会加一,interval就是以它为基准的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

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