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