From 08:00 PM CDT Friday, August 12 - 01:00 PM CDT Saturday, August 13, ni.com will be undergoing system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



什么时FIFO模式模拟输出?我应该怎么使用?



硬件: Multifunction DAQ (MIO)>>E Series

问题:

我看到数据采集卡说明书上列举了使用FIFO模式和非FIFO模式会影响模拟输出的更新率,什么时FIFO模式?这些模式之间有什么区别?我怎样在传统DAQ API上配置这些设置?



解答:

FIFO模式
当使用FIFO模式进行模拟输出时,首先将一个数据段加载到DAQ设备上的板载FIFO中,一旦数据被加载到FIFO中,DAQ模拟输出时钟启动,将FIFO中的数据循环的采集输出,直到清除模拟输出为止。因为数据被预存到了板载FIFO中,在整个模拟输出的过程中都没有PCI总线和内存的交互操作。正是因为了减少了系统的交互,使用这种模式的模拟输出更新率最大。

非FIFO模式
在模拟输出默认模式FIFO模式)下,模输出缓冲区驻留PC机内存中。PC缓冲区和DAQ设备之间自动交互处理。但是NI-DAQ驱动必须处理PC内存中的数据,每一次都必须把数据从PC内存传到板载FIFO中。所设的缓冲区大小、模拟输出的通道数以及更新率都会对CPU和PCI总线的使用率造成影响。这种模式下采用的也是硬件定时的模式,但是如果板上数据处理的速度小于PC发送数据的速度,这时候DAQ就会报错。

FIFO模式和非FIFO模式的比较

使用非FIFO模式最主要的好处是可以自己分配缓冲区的大小。你可以设置完全不匹配板载FIFO大小的数据缓冲区,因此在这种情况下如何将缓冲区中的数据合理的发送到DAQ设备中就需要做一些特殊的处理。

当你的操作不需要大量的数据时,FIFO模式是最稳定的连续输出模式。在试图使用FIFO模式之前,首先要确认你的模拟输出设备上有FIFO,如果有的话,它的大小时多少?对于简单的周期性信号而言,一个相对较小的FIFO存储单个周期的信号(用于重复生成连续周期性信号)都是足够的。

使用传统DAQ API配置FIFO模式
FIFO模式模拟输出设置只需通过使用一个可选输入的AO Config.vi输入的名称分配模式选择6使用FIFO存储器

当您将缓冲区的大小到赋给AO Config,它就为每个模拟输出通道分配数据由于硬件FIFO的大小是一个固定的值它必须被所有通道数据共享因此,如果您打算使用FIFO模式最大缓冲区大小配置可以通过FIFO的大小除以输出通道数计算出来

关于如何在新版本NI-DAQmx API中设置FIFO和非FIFO模式,请参见 KnowledgeBase 3HKCTTTY: Data Transfer Request Condition for Continuous Analog Output using NI-DAQmx.



相关链接: Developer Zone Example: FIFO vs non-FIFO Mode Analog Output
KnowledgeBase 3HKCTTTY: Data Transfer Request Condition for Continuous Analog Output using NI-DAQmx

附件:





报告日期: 08/19/2002
最近更新: 11/08/2011
文档编号: 2OI95OEW