目前关于使用NI FlexRIO设备使用Labview编写数据采集程序的过程中遇到了缓冲区溢出的问题。我目前采用的FPGA模块为NI PXIe-7975R,数据采集模块为NI 5783,目前所需要的应用场景为四通道AD采集,采样率为100MHz,采样时间为20ms,每个通道的采样数据量均为2M。
下图NI官方提供的NI 5783的例程,例程是采用Streaming VI系列函数实现的,其FPGA VI如下
例程主机VI中数据读取部分如下
但根据NI 5783的这一例程,最多只能够实现每通道几千数据量的采集。当设置读取的数据量较大时,就回出现以下错误(错误代码:-1074100508)。如果设置更大的FIFO大小,同样也会出现缓冲数据溢出的问题。
另外,也参考了官方提供的NI 5752B的例程引入DRAM FIFO来进一步扩展缓冲区,也是无法实现较大数据量的采集,目前采用这一方法最多也只能够将每通道可采集数据量提高到1万多,需要设置更多采集数据量时还是会出现缓冲溢出的问题。目前采用DRAM FIFO扩展缓冲区改进后的FPGA VI如下图所示,主机VI部分没有改动。
附件为目前修改的引入DRAM FIFO扩展缓冲区后的程序的Labview项目工程文件,能否帮忙看一下是存在哪些问题呢?