阅读:1236回复:3
怎样缩短连续bulk传输之间的时间
我把usb总线上其它设备都拔掉,只用一个设备,该设备只有bulk in和bulk out 两种端点。在我的应用程序连续使用bulk端点传输,比如连续不停的bulk out,或bulk in,或bulk in 和bulk out 相间。但是从逻辑分析仪抓的包来看,两次bulk之间的时间至少要3ms。我检查驱动程序,里面没有要花时间的地方,甚至我把申请urb和其他内存的语句都移到start device 中去了,还是要3ms。
请高手指教,是硬件的原因还是驱动程序的原因?如果是驱动程序的原因的话,驱动程序中有那些因素影响主机驱动程序时间片的安排。 :) |
|
最新喜欢:![]() |
沙发#
发布于:2003-03-14 17:49
我的程序也是有这样的问题,用BULK传输时,速度上不去!我觉得是
FIRMWARE的问题!想1MS发多几帧,返回出错信息。WHY?????? |
|
板凳#
发布于:2003-03-18 13:14
你可以跟踪一下吗,你想呀,要完成一次bulk传输,首先要应用程序调驱动程序,驱动程序建立urb,然后调usbd,然后是usbdi,下面才是硬件、电缆、设备、固件。如果你每传一个bulk包都这么搞一遍,能快吗,想快的话要把几个包合到一起,usb支持最大64kB的数据,然后到USBD里面再分成一个一个的包传,知道这64K全部完了后才进行下一个,这样就快多了。
|
|
地板#
发布于:2003-03-18 14:04
“驱动程序建立urb,然后调usbd,然后是usbdi,下面才是硬件、电缆、设备、固件。如果你每传一个bulk包都这么搞一遍,能快吗”谢谢jinghuiren,你讲的太好那,如果每个包都搞一遍,有啥法子叫他跑得更快一些。用户驱动程序可不可以对主机进行设置,调整host的时间片分配。
|
|