各位大侠好,
最近小弟在学习自定义USB设备的数据传输,固件程序、驱动程序以及上位机的应用程序都已经写好而且可以正常通信,我用的是nxp的ISP1362 OTG芯片,数据是能够按要求发送并返回了,但是,为什么我的批量输出端点发送速率一直都提不上去呢?
在拜读了alien2006大侠的“如何使STM32进行USB传输时提高传输速度?”帖子后,我也试着把驱动程序中的pipemaxtranfer参数修改了,但对传输速率影响不大哎。
现在做出来,若同时进行输入输出,数据传输速率上限大概也就200Kb/s
若只做输出,数据也就在200Kb/s大一点的样子,不知为何
同时,在固件程序中,我如果不把USB芯片缓冲区中的数据读出来,那么传输速率上限基本上为2000Kb/s,但是,既然是数据传输,我肯定需要把上位机发过来的数据取出去啊!
设备配置了一对中断输入输出端点(端点大小16Bytes)、一对批量输入输出端点(端点大小64Bytes)
现在有几点疑问,想请教各位大侠:
1、对于提高USB传输速率,有哪些需要注意的方面,比如写应用程序时,应该怎样往驱动程序发数据等等
2、为何我单向传输时的速率比双向传输速率并没有大多少,理论上不是要接近2倍的吗?
3、设备驱动程序对速率的影响大不大?
小弟初来乍到,还请各位大侠多多指点迷津,在此拜谢了! |