想请教一下USB主机控制器的问题~
我刚研究USB设备~ 理解不当的地方多请大家拍砖哈~
是关于UHCI的调度问题~
UHCI发送USB协议最主要就是这个帧列表
按我的理解~
TD表示的是一个事务~
QH是一种传输类型~
而UHCI的任务就是把连接在帧上的所有TD发送出去(包括QH所连接的TD)
呢么我的问题就在这里~
每个帧的处理时间是1ms~ 在这1MS中~ 发送不出去的TD~ 是不是要等到下一次历遍到这个帧的时候才发送?~
还有就是在这1ms中~ 如果时间用完了~ 但是还没得到回应怎么办? 像in事务~ 提交了申请~ 但是1ms用完了~ in事务还没返回 跳到了下一帧~ 这种情况下的in事务会被丢失么?
最后一个提问是关于in事务的~ in事务是用于让usb设备发送数据给usb主机的~ 我想问的是~ 是不是in事务所提交了数据包~ usb设备收到这个数据包之后把数据写在这个数据包后 再返还给usb主机?
然后usb主机根据什么把in数据包中的数据返回给对应的DMA地址?~
谢谢大家~
[ 本帖最后由 superfight 于 2009-3-2 01:31 编辑 ]
是关于UHCI的调度问题~
UHCI发送USB协议最主要就是这个帧列表
uhci.PNG (62.84 KB, 下载次数: 2)
按我的理解~
TD表示的是一个事务~
QH是一种传输类型~
而UHCI的任务就是把连接在帧上的所有TD发送出去(包括QH所连接的TD)
呢么我的问题就在这里~
每个帧的处理时间是1ms~ 在这1MS中~ 发送不出去的TD~ 是不是要等到下一次历遍到这个帧的时候才发送?~
还有就是在这1ms中~ 如果时间用完了~ 但是还没得到回应怎么办? 像in事务~ 提交了申请~ 但是1ms用完了~ in事务还没返回 跳到了下一帧~ 这种情况下的in事务会被丢失么?
最后一个提问是关于in事务的~ in事务是用于让usb设备发送数据给usb主机的~ 我想问的是~ 是不是in事务所提交了数据包~ usb设备收到这个数据包之后把数据写在这个数据包后 再返还给usb主机?
然后usb主机根据什么把in数据包中的数据返回给对应的DMA地址?~
谢谢大家~
[ 本帖最后由 superfight 于 2009-3-2 01:31 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
usb驱动不会,学习了,顺便帮你顶一下.
你好好看看usb的协议,这个不是驱动的问题,而是协议理解的问题,uhci还是usb1.1的,还是赶快读ehci,多看几遍usb2.0的协议
在usb2.0协议中哪章谈到了这些内容?~
方便的话能指出来么~
= = 我现在看的就是usb1.1啊~ ehci又不能处理低速和全速传输~ 所以想把uhci吃透先~
关于帧的第二个问题在hub规范中找到了~
是有一个剩余时间的计算公式~ 看来这个是集成在硬件上面了~
我还以为是软件来完成的~