From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



DAQmx定时和采样率



主要软件:
主要软件版本: 7.0
主要软件修正版本: N/A
次要软件: N/A
硬件: Multifunction DAQ (MIO)

问题:
我使用“DAQmx定时”VI进行基础的数据采集。采样时钟和数据读取速度是如何相关联的?

解答:
读取数据包括两个方面:真实世界信号数字化有多快(多快?);软件一次从硬件FIFO检索数据的量有多少(多少?)。这些硬件-软件配置是互相配合和依赖的。

硬件方面,“DAQmx定时”VI决定了数据流从设备/传感器中传到数据采集卡上的硬件FIFO的速率。软件方面,“DAQmx读取”VI决定了从PC缓冲区到软件的数据传输。




第一部分:从设备/传感器到数据采集卡上的硬件FIFO 

概述
“DAQmx定时”VI(采样时钟)控制了从设备中得到数据的数量和速率。  这个VI有三种工作模式:有限的、连续的和硬件定时单点, 这些模式决定了采集数据的数量。

“DAQmx定时”是一个多态VI,这里讨论的实例是采样时钟。 关于“DAQmx定时”VI其他实例的详细信息,请查看LabVIEW帮助。 

多少?
对于有限采样,“每通道采样”决定了每通道上有多少数据被读取。  也就是说,“每通道采样”设置收集的数据块大小。
对于连续采样,“每通道采样”决定了每个通道分配的PC缓冲区大小。   

多快?
采样率决定了数据被采集并且放置到硬件FIFO的速度。  指定采样率的值取决于“DAQmx定时”VI源输入指定的时基。  M系列数据采集卡的默认源是板载时钟(80MHz)。  指定采样率必须是源的一个除数。  关于可实现采样率的详细信息,请参考文末的“相关链接”,查看关于DAQ采样率的知识库文章。



第二部分:从硬件FIFO到PC缓冲区和编程环境 

概述
“DAQmx读取”VI决定PC从硬件FIFO缓冲区读取数据的速度,以及在编程环境中进行操作时数据格式化速度。 “DAQmx读取”VI也是多态VI。不同任务类型(单/多通道任务,单/多采样)和不同数据表示法对应不同的实例。

多少?
“每通道采样数”决定编程环境从PC缓冲区读取的采样数。 选定的数据传输机制(DMA、中断请求、程序控制I/O或USB Bulk)决定了PC缓冲区实际从硬件FIFO读取采样的方式。 详细信息请查看NI-DAQmx帮助:数据传输机制。 使用程序控制I/O方法时,“DAQmx读取”VI直接从硬件FIFO进行采样。 其他硬件定时传输机制则推荐“DAQmx定时”VI指定采样率的十分之一。  例如,如果“DAQmx定时”VI的采样率输入为1000 (Hz),则“DAQmx读取”VI每通道采样数不应超过100。  这样做是为了确保不会发生PC缓冲区过写入或欠写入错误。  

注:
“每通道采样数”输入只有在“DAQmx读取”VI在一个或多个通道下拉列表中选择多采样时才会出现。  “N采样”将是选择框标题(参考下图)的一部分。
在采样模式为有限采样(采样模式是“DAQmx定时”VI的一个输入)时,如果“每通道采样数”为-1或未连线,那么“DAQmx读取”VI将等待有限采样的所有数据都到达PC缓冲区,然后读取数据。如果采样模式为连续采样,那么所有PC缓冲区现有的采样都会被读取。  

多快?
进行程序控制I/O时,数据从数据采集卡硬件FIFO传到编程环境的速率取决于“DAQmx读取”VI调用的频率。 “DAQmx读取”VI经常位于While循环中,因此循环速率决定了“DAQmx读取”VI执行的频率。  软件的速度也取决于处理器的速度和同一时间发生的进程数量。 使用其他数据传输机制时,数据从硬件FIFO传输到PC缓冲区的速度与程序执行速度无关。 正因为如此,理想状态下一般不使用程序控制I/O机制,其他传输机制会强制使用PC缓冲区。 这样便可及时保存多个采样,使LabVIEW能够通过“DAQmx读取”VI将其读取。 

总结
决定数据采集的速率时,务必记得采集的两步必须协调好。 相对于数据载入硬件FIFO的速率,数据从硬件FIFO传输到PC缓冲区的速率一定不能太快或者太慢。  否则,将会产生PC缓冲区错误。 请参考下方的相关链接,了解关于PC缓冲区过写入和过流错误的详细信息。


相关链接:
知识库39BCDJMV:确定NI-DAQmx中采集的实际采样率
知识库27R8Q3YF:当我指定数据采集的扫描速率时,实际扫描速率是如何指定的?
知识库31T899KD:对于有限点采集或连续采集,DAQmx的缓冲区大小是如何分配的?
知识库4D3AI5Q7:理解并避免DAQmx中的数据覆盖错误(Overwrite)与数据溢出错误(Overflow)
知识库38BFMB3U:S系列数据采集板卡的时序考虑
白皮书:学会NI-DAQmx10个函数,解决80%的数据采集应用问题
白皮书:When Would I Use an External Sample Clock?
白皮书:Answers to Frequently Asked Questions About NI-DAQmx and Traditional NI-DAQ(Legacy)
白皮书:NI-DAQmx 入门主页
产品手册:M Series User Manual
NI-DAQmx帮助:数据传输机制

附件:





报告日期: 06/03/2009
最近更新: 05/25/2016
文档编号: 4Y2AS1WA