USB BULK OUT效率问题,求教

software工程师 2016-01-12 09:36:57
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 设备,简化先不考虑其他事务)
...全文
251 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
software工程师 2016-01-18
  • 打赏
  • 举报
回复
虽然没有我想要的答案,也要正常结帖 幸好我手上的USB ip是OTG的,带有HCD部分代码,还不熟悉但能大致有个结论: 这个HC层看到有定义一个变量为unsigned multi_count:2;// Number of periodic transactions per (micro)frame 看起来用0-3表示per uframe可以传输几个packet,初始为1,只有在判断为interuppt和Isochronous事务时才会赋值 基本断定bulk out 应该HOST只准备一个packet ,至少是在我的USB IP中,对于不同家的controller应该大同小异 吧
software工程师 2016-01-13
  • 打赏
  • 举报
回复
求大神 出现
software工程师 2016-01-12
  • 打赏
  • 举报
回复
没人啊,自己顶

21,600

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧