大家好,这是我第一次发帖~如果有什么格式的问题很多多包涵。
这个帖子在“USB技术专区”也发了。因为比较紧急,希望能得到宝贵的意见~
背景:
我是一个研究生,最近我们实验室在做一个项目,要求FPGA采集数据,马上给68013A(其工作在slave fifo模式,AUTOIN,512字节,4缓冲),然后PC上的程序去读这些数据。由于FPGA采集速率是30Mbytes/s(至少是这个速度,也可以增加),而我的PC程序读数据的速度最多只能到达26Mbytes/s, 这样这个项目就似乎不能完成了。
测试:
我之前看了这个板上很多帖子,很多人说68013A速度能到40M+
经过我们测试,速度的瓶颈在PC程序和68013A之间(我们测试方法是看flag满的信号,因为出现了flag满,就说明出现了PC没有及时读数据的情况)。我是根据一块开发板的例程改写的(例程是VC,我是QT,但是关于USB的部分都是调用windowAPI)。那个例程测速也只能到26M,所以我的移植没有出什么问题。我们一次读的数据是127*512个。
我的问题:
1,怀疑会不会和驱动有关?我现在用的是网上传说最原始的驱动,EZ-USB的驱动,是靠调用IOCTL来工作的。有木有大侠们用这个驱动也能速度达到40M的??
2,如果我换了一个驱动,现在cypress上面的驱动是SuiteUSB(我还来不及研究),我的固件是不是要重写?驱动和固件有联系吗?
PS:AUTOIN的模式下,我看FX2的技术手册,固件的TD_POLL是空函数。对吧
谢谢大家~ |