数据采集模块设计如下:

先将初始化函数、启动板卡函数和读取数据等对仪器进行配置和数据读取的函数做成动态链接库。然后通过主程序调用动态链接库里的函数来实现对仪器的操作,一般调用过程如下:加载动态链接库,再获取函数的指针,之后利用指针来调用函数。系统的数据采集器采用的是AD8201,它是USBI.1总线兼容的12位32通道的数据采集器。

LabVIEW中动态链接库的调用是通过CLF(Call Library Function)节点来实现的,并进行采集模块的编程。其中初始化时为了使驱动程序能够对底层的硬件进行初始化,应设置中断号、内存分配、I/O地址等打通驱动程序和应用程序的通道。通过CLF节点调用函数DllInitial来实现采集程序的初始化,并选择采集卡的中断号和口地址。此时为了顺利启动采集,采集卡上的中断号和口地址要和主板上的一致,如果程序初始化成功,函数将返回1,否则返回0。

参数PhysAddr用来确定外部存储的开始地址,参数IRQNum用来确定板卡的中断号,参数DMAChn用来确定板卡的DMA通道,参数IOBase用来确定板卡的基地址。该例中其相应值为0,5,0,320。

启动采集的过程:首先要设置采集通道和采集频率,并确定数据通信方式(单缓冲或多缓冲),然后启动采集。接下来程序可自行驱动硬件实现采集,同时把采集到的数据存储到指定的缓冲区。

读取结果:读取结果是为了方便对数据进行处理,把驱动程序缓冲区中的数据读取到应用软件的数据缓冲区中去。要实现再次采集数据量,需定义一个数据缓冲区(或用户)函数ADBuf(NumSamp*NumChn+1)和一个内存保存数据函数RecordBuf(NumSamp*NumChn)来实现。

数据采集模块的设计主要是调用动态链接库中的各个函数来实现的,各函数调用的顺序是: