打印
[数据传输]

usb 协议 关于bulk事务 per uframe ,求教

[复制链接]
1349|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kuankuan02|  楼主 | 2016-1-12 10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
FRAM, USB, ST, os, vi
FPGA阶段,板端是device,host用linux PC机,使用usblib(0.1)进行bulk write操作
USB2.0 high speed 下单纯的测bulk ep
读写通讯都是可以的,我循环bulk out 大量的数据(比如10M)测试其效率

我的问题是通过advise查看中间数据协议,每个uframe最多只做一次bulk事务(Max Package 512),
有时ACK回来后还可以有100us idle,host为什么不在同一个uframe out第二次呢?
延伸问题:Host 是如何在uframe里的剩余时间里安排 bulk 事务的?可以为多个否?

(主机PC为了减少其他带宽占用,就只接了这一个USB 设备,简化先不考虑其他事务)

相关帖子

沙发
lin704932121| | 2016-1-18 12:12 | 只看该作者
100us内够不够再传输一次512字节所需时间,不够的话是不行的

使用特权

评论回复
板凳
kuankuan02|  楼主 | 2016-1-18 18:06 | 只看该作者
后来我在我使用的USB 控制器的OTG HCD代码部分看到,它是定义了一个变量:
unsigned multi_count:2;// Number of periodic transactions per (micro)frame
对于Bulk事务,该值始终为1,表示pre uframe 只会做一次bulk事务。
虽然各家的USB 控制器不同,但HCD HC层的实现应该是相似的

另外,我有看到剩余100+us ,也不会做bulk事务的事实,至少我用的linux PC如此

使用特权

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

本版积分规则

1

主题

4

帖子

1

粉丝