最近跑了一下1294xl的评估板USB例程,发现usb_bulk泡在win7上的单向速率大概才64kbps。这感觉相当于Low-Speed设备啊,是我配置的有问题吗?
计时方式就是在windows的例程中添加了systime的打印
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
demo is always a demo...
有两种方式可以让bulk传输更快。第一种是增大你的buffer size. 即使在我们老款的芯片上,我们也能成功通过把512 bytes buffer修改成 4096 bytes 来把速度提升到o 3.9Mbps
还有一种方式就是用双buffer,可以参考下面帖子。大buffer size +双buffer可以把速度再提升一倍
https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/p/429199/1542504#pi239031350=2
谢谢回复,我用的就是单纯的usb_dev_bulk例程,仔细看了一下上面 Jacky Xu给出的解决方案,并测试。
发现有个规律,单包Buffer改大之后确实有效果,因为单包的传输时间只有很小的增加,但传输量却翻了几倍。可是多包测量取平均值发现速度依然很低...
研究了一下发现是包与包之间会有1ms间隔,而且时间很接近1ms,查了一下资料显示USB full-speed模式基于的SOF就是1ms一次同步。
不知道这么理解是不是正确的,每次的bulk传输都需要在SOF的基础上进行数据交换,因此包与包之间都会产生1ms间隔,SuperSpeed模式是125us
我实测就是这么个结果,希望对大家有参考价值,设计使用时需要考虑到1ms间隔的问题。