图2 基于PCI-1714 的高速数据采集系统结构框图。
将需监测的现场信号经滤波器滤波后送入PCI-1714 板卡, 卡上A / D 转换器对信号进行高速模数转换。转换数据首先暂存在板卡的32 K 板载FIFO (先入先出) 中, 当FIFO 半满或全满时,向DMA(动态内存存取)控制器发送DMA 请求,使用直接内存存取方式,经PCI(外设组件互连)总线将数据从FIFO 输出到内部缓冲区中,PCI 总线传输带宽很宽, 可以满足4 通道高速同步采样时所带来的高速数据传输要求。
内部缓冲区作为高速数据采集系统的海量缓存,它与用户缓冲区一样,都是数据采集程序动态分配给驱动程序使用的两块内存区域, 区别在于内部缓冲区存放的是从FIFO 取来的原始值, 用户缓冲区存放的是经转换之后的电压值。
在进行长时间高速数据采集时,PCI-1714 多采用循环方式。在此方式下,启动一次采集过程能进行无数次的A / D 转换。此时内部缓冲区分成前后对等的两个半区使用,当前半区填满后,将此半区的数据向用户缓冲区传送, 同时将新转换的数据放在内部缓冲区的后半部分。当后半区填满后,此半区数据向用户缓冲区传送。同时自动将新转换的数据放到早已传输完毕的前半个缓冲区。可通过查询状态寄存器的状态来判断FIFO 缓冲区的状态, 分别判断空标志位(Empty flag)、半满标志位(Half full flag)以及全满标志位(Full flag)。
内部缓冲区和用户缓冲区的数据可以在程序控制下以文件的形式保存至计算机中, 实现采集数据永久性存储,便于后期数据分析处理。
3 基于LabVIEW 语言实现的PCI-1714采集卡数据采集程序实例