阅读:1761回复:6
关于CY68013采集卡提速问题!急寻各位大虾帮忙!谢谢...
目前我们在做一个数据采集卡,现在速率只有5Mbytes/s,设备的采集速率>5M,就会出现掉数据现象.目前我们采用的方案如下:
驱动:在CY自带驱动基础上改的异步块传输,目前驱动中两次读操作的时间间隔约70us(固定消耗),用程序每次读5K数据,设备开始采集数据前,应用程序先向驱动提交了16个异步读请求; 固件:SLAVE FIFO模式,8位数据宽度,配置EP6为512,双缓冲,IN端点,PC端从EP6读数据; FPGA:FPGA写FIFO速率 = 2 * 数据采集速率(如:FPGA写FIFO速率 == 10M,则数据采集速率 == 5M). 测试过程及现象: 我们将数据采集速率设置为10M(目前测试数据是在FPGA中模拟的),FPGA写FIFO速率为20M,读请求IRP从放入总线到读请求完成返回耗时1ms(驱动观测数据),这个时间跟"数据采集速率5M"是相关的,但按理讲应该跟"FPGA写FIFO速率10M"相关才对(硬件工程师确认 FPGA写FIFO速率为20M).从理论上讲这样的数据传输方案应该是可以的,但实际情况是会掉数据,这个现象我一直没想明白是怎么回事,或是我理解错误了.大家帮我分析下问题出在哪了,谢谢大家了. 问题: 1.我目前的驱动设计方案可行吗?(我是做软件的) 2.FPGA写FIFO速率 = 2 * 数据采集速率,这样的设置合理吗? 3.提高数据采集速率(要求无误码,不掉据),可以采取哪些措施(应用程序,驱动,固件,FPGA). 目前我知道加大PC端每次读请求的数据量,设置FIFO数据线为16位可以提高速率.第一种方法可行,但效果不明显,将PC端每次读请求的数据量设到最大,10M速率下有掉数据现象(不过我们的项目要求每次读请求的数据量必须为5K,对我意义不大,闷)第二种方法,正要尝试. 大家帮帮我,我的问题出在哪地方了,还在同样问题中挣扎的兄弟些也来一起讨论,一起解决问题啊.谢谢大家了 |
|
|
沙发#
发布于:2009-06-22 14:47
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2009-06-22 21:46
谢谢大虾指点.
一次读操作耗时1ms,应该是由于采集速率为5M导致的.目前的问题是采集速率>5M,应用程序就不能完整接收数据,不知道问题出在哪了. 大虾:假设硬件上没问题,我软件问题可能会出在哪呢?(目前的驱动设计方案可行吗) |
|
|
地板#
发布于:2009-06-22 21:50
"测试过程及现象:"中,我描述错误了.真是对不起.
应该改为: 测试过程及现象: 我们将数据采集速率设置为5M(目前测试数据是在FPGA中模拟的),FPGA写FIFO速率为10M,读请求IRP从放入总线到读请求完成返回耗时1ms(驱动观测数据) |
|
|
地下室#
发布于:2009-06-24 16:47
|
|
5楼#
发布于:2009-06-24 16:56
有兴趣 一起分析分析 QQ 1105849886
|
|
6楼#
发布于:2009-06-25 18:44
我的QQ13221097,遇到同样问题的兄弟,大家一起讨论.
我一般晚上在线 |
|
|