定時與觸發的學習
數據采集的緩沖區:
在使用DAQmx API函數控制數據采集卡進行數據采集時,會在PC創建一個數據緩沖區,之前設置的通道采樣數大小一般是1000,有時設置4096,偶爾會遇到“設置的采樣數超出數據緩沖區”之類的錯誤,現在來看看DAQmx具體是如何分配數據緩沖區大小的。
(1)有限采樣:DAQmx劃分的緩沖區大小與每通道采樣數的數值相等。
(2)連續采樣:DAQmx劃分的緩沖區大小與每通道采樣數的數值相等,但是當每通道采樣數的值小于下表所列的值時,DAQmx使用下表中的值:
從上表中,初略可見當設置采樣率低于10kS/s時,緩沖區至少可以存放1s內采集的數據量,當采樣率高于10kS/s時,緩沖區能存放的數據量就遠小于1s內采集的數據了,這種情況下需1s內進行緩沖區數據的多次讀,防止緩沖區數據被覆蓋掉。
(3)當定時函數的采樣模式設置為硬件定時單點采集時,NI-DAQmx不會創建緩沖區。
NI-DAQmx API是使用循環緩沖區的,即讀取掉緩沖區前面部分的數據后,當采集的數據到達緩沖區尾部時,會將新采集的數據放到緩沖區開始數據已被讀取的區域。DAQmx數據傳輸方式多采用DMA方式實現。
在使用DAQmx API函數控制數據采集卡進行數據采集時,會在PC創建一個數據緩沖區,之前設置的通道采樣數大小一般是1000,有時設置4096,偶爾會遇到“設置的采樣數超出數據緩沖區”之類的錯誤,現在來看看DAQmx具體是如何分配數據緩沖區大小的。
(1)有限采樣:DAQmx劃分的緩沖區大小與每通道采樣數的數值相等。
(2)連續采樣:DAQmx劃分的緩沖區大小與每通道采樣數的數值相等,但是當每通道采樣數的值小于下表所列的值時,DAQmx使用下表中的值:
| 采樣率 | 緩沖區大小 |
| 未指定速率 | 10 kS |
| 0-100 S/s | 1 kS |
| 101-10,000 S/s | 10 kS |
| 10,001-1,000,000 S/s | 100 kS |
| >1,000,000 S/s | 1 MS |
(3)當定時函數的采樣模式設置為硬件定時單點采集時,NI-DAQmx不會創建緩沖區。
NI-DAQmx API是使用循環緩沖區的,即讀取掉緩沖區前面部分的數據后,當采集的數據到達緩沖區尾部時,會將新采集的數據放到緩沖區開始數據已被讀取的區域。DAQmx數據傳輸方式多采用DMA方式實現。


評論