- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
定时与触发的学习
录入:edatop.com 点击:
数据采集的缓冲区:
在使用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方式实现。
上一篇:任务及通道学习笔记
下一篇:DAQmx中的控制的学习