阅读:2762回复:6
请教CY68013 大数据量连续BULK传输问题!
我的68013端点配置是4×1024 bulk in,用来进行图像数据传输,使用Cyusb.sys为驱动程序。现在传输但帧的图像数据的时候没问题,但是当要传输连续的图像时,一开始正常而且实时(25帧/s,cpu占用率为65%),约在十几秒后,图像传输开始慢下来(几帧/s),cpu占用率也下降到20%,然后图像就传输不了,PC收不到in数据。要关闭usb电路,重新上电运行才能恢复正常,不过很快故障又会出现。我的连续传输是用定时器每隔40ms在PC调用bulk in函数--xferdata(同步方式)传输的。
我个人认为可能是usb 请求出现了pending情况,所以接下来的usb请求都无效了。调用BeginDataXfer(异步)会不会解决?另外,会不会用ezusb.sys驱动程序就不存在这个问题呢? 请各位大侠帮忙解决,时间紧逼,高分相送!!!万分感谢!! |
|
|
沙发#
发布于:2005-02-21 20:30
自己顶一下!
|
|
|
板凳#
发布于:2005-02-23 11:25
我的68013端点配置是4×1024 bulk in,用来进行图像数据传输,使用Cyusb.sys为驱动程序。现在传输但帧的图像数据的时候没问题,但是当要传输连续的图像时,一开始正常而且实时(25帧/s,cpu占用率为65%),约在十几秒后,图像传输开始慢下来(几帧/s),cpu占用率也下降到20%,然后图像就传输不了,PC收不到in数据。要关闭usb电路,重新上电运行才能恢复正常,不过很快故障又会出现。我的连续传输是用定时器每隔40ms在PC调用bulk in函数--xferdata(同步方式)传输的。 PC读取数据的时间过长,用BULK方式传输时不应该等待40MS,一直读就OK |
|
地板#
发布于:2005-02-23 15:47
那假如现在已经出现了pending情况,除了断点USB电路外,还有其它方法可以解除pending这个状况,而重新进行bulk传输吗?
|
|
|
地下室#
发布于:2005-02-23 19:26
那假如现在已经出现了pending情况,除了断点USB电路外,还有其它方法可以解除pending这个状况,而重新进行bulk传输吗? 那就让驱动重新加载 |
|
|
5楼#
发布于:2005-02-23 19:28
那假如现在已经出现了pending情况,除了断点USB电路外,还有其它方法可以解除pending这个状况,而重新进行bulk传输吗?那就让驱动重新加载,其实关键是你的驱动有问题,这样解决不是好办法,最好是修改你驱动的bug |
|
|
6楼#
发布于:2005-02-23 22:56
谢谢AllenZh,我试试重载驱动,看看能不能解决!
[编辑 - 2/24/05 by tindy@keisun] |
|
|