DAQmx Timing(時序)和Sample Rates (取樣率)

更新 Apr 6, 2021

產品資訊

驅動程式

  • NI-DAQmx
  • Traditional NI-DAQ

問題敘述

我正在使用DAQmx Timing功能執行基本資料擷取。Sample clock與讀取數據的速度有何關係?

解決方案

讀取數據有兩個方面:現實世界中的訊號被數位化的速度有多快("how fast?"),以及軟體一次從硬體FIFO中檢索了多少數據("how much?")。這些軟硬體配置相互依賴。

在硬體方面, DAQmx Timing功能確定從設備/感測器到數據採集卡片上硬體FIFO的數據流速率。在軟體方面,DAQmx Read功能確定數據從PC Buffer到軟體的傳輸。參見下圖:





第1部分:從DAQ卡片上的設備/感測器到硬體FIFO

總覽
DAQmx Timing功能控制從設備獲取Sample的數量和速率。此功能在三種不同的取樣模式下運行:
  • Finite,
  • Continuous,
  • Hardware timed single point.
選擇哪種模式會影響取樣的Sample數量。
DAQmx Timing函數是多態的;這裡討論的實際例子是Sample Clock 。有關DAQmx Timing的其他實例,請參見DAQmx Help

How Much?
對於 Finite acquisition, DAQmx Timing的“Samples Per Channel”輸入確定每個通道上讀取多少個Sample。換句話說,“Sample Per Channel 設置將要收集的"數據塊"的大小。
對於Continuous acquisition, "Samples Per Channel "為每個通道指定的PC Buffer的大小。

How Fast?
DAQmx Timing的Rate輸入確定取樣速度並以多快的速度放入硬體FIFO。指定速率的值取決於DAQmx Timing中Source輸入指定的timebase。指定的速率必須能夠整除Source。例如,X系列卡上的預設Source是onboard clock(100 MHz)。有關可實現取樣率的更多訊息,請參閱以下內容:

第2部分:從硬體FIFO到PC Buffer和編程環境

How Much?
DAQmx Read功能的“Number of Samples Per Channel”輸入確定從PC Buffer向編程環境提取多少Sample。選定的數據傳輸機制(如下所列)決定了如何將Sample實際從硬體FIFO引入PC Buffer。有關更多訊息,請參見Data Transfer Mechanisms - NI-DAQmx Help January 2019
  • DMA
  • Interrupt Requests
  • Programmed I/O
  • USB bulk

當使用編程的I / O方法時,DAQmx Read功能直接從硬體FIFO本身獲取Sample。當使用所有其他硬體定時的傳輸機制時,建議取樣數為DAQmx Timing功能上指定的速率的1/10。例如,如果在DAQmx Timing function上輸入的速率為1000(Hz),則DAQmx Read功能上每個通道的取樣數應不超過100。這是為了確保沒有PC Buffer覆蓋或寫入錯誤 。

How Fast?
執行編程的I / O時,從DAQ上的硬體FIFO讀取Sample到編程環境的速率取決於調用讀取功能的頻率。由於DAQmx Read功能通常處於while loop中,因此迴圈執行速率將確定DAQmx Read功能執行的頻率。軟體的速度也將取決於處理器的速度和單位時間內所能執行的次數。

當使用其他數據傳輸機制時,Sample從硬體FIFO進入PC Buffer的速度與程式的執行速度無關。因此,通常希望使用非編程的I / O機制,該機制強制使用PC Buffer,以便可以及時保留多個Sample,以便讀取DAQmx Read功能。
 

相關資訊

注意:Number of Samples Per Channel 僅在DAQmx Read功能配置為讀取多個Sample時才可用。
如果在 Finite acquisition模式( acquisition模式為DAQmx Timing function的輸入)時,Number of Samples Per Channel-1(未連接或未設置),則DAQmx Read功能將等待,直到Finite acquisition中的所有Sample均被存到PC Buffer中,才將其讀入。如果取樣模式為Continuous acquisition,則會讀取PC Buffer中當前可用的所有Sample。

概要
在確定要多快地擷取數據時,請記住,兩個步驟必須一致。與將數據加載到硬體FIFO本身的速率相比,將數據從硬體FIFO傳輸到PC Buffer的速率不能太快或太慢。如果速度太快或太慢,將引發PC Buffer錯誤。有關PC Buffer錯誤的更多訊息,請參見Understanding and Avoiding NI-DAQmx Overwrite and Overflow Errors