一、基于LabVIEW的通用数据采集卡的驱动
介绍一种通过LabVIEW提供的Call Library Function Node实现对动态链接库(DLL)调用的方法,完成对通用数据采集卡的驱动,实现LabVIEW与通用数据采集卡的结合。?
LabVIEW驱动通用数据采集插卡的方法有三种。
其一,直接用LabVIEW的Function模板内Advanced子模板的Port I/O图标编程,通过手动对基地址的设置,直接从特定的地址内存中读取数据。若采样速度要求不高,它是很方便直观的方法;其二,利用LabVIEW的Functions模板内Advanced子模板中CIN(Code Interface Node)图标,它适用于直接调用文字编程语言(如VC)所编写的代码。用CIN结点生成A/D驱动程序的子VI的方法可充分发挥A/D的高转换速度,获得高的采样速率。但编程较烦杂,不能由LabVIEW直接修改;其三,用LabVIEW的Functions模板内Advanced子模板中Call Library Function Node图标,动态链接数据采集卡的DLL库函数。DLL实际上是一个函数库,只在应用程序运行时DLL中的函数才被随时调用和连接。和静态连接库相比,DLL可以和其他应用程序共享库中的函数和资源。许多数据采集插卡生产商提供DLL库函数形式的驱动程序,用户可使用某种DLL链接库的编程工具,如VC、VB编写应用程序来调用它。同样,LabVIEW也提供了该功能,就是图标Call Library Function Node,放在Function模板内的Advanced子模板中,通过设置该节点来直接调用DLL。?
在本研究系统中采用第三种方法,实现了在线切削力的数据采集。采用基于ISA总线的数据采集卡ACL-8111,DLL直接由生产厂家提供。?
输入信号范围:±5V,±2.5V,±1.25V,±0.625V,±0.3125V(软件编程选择);最高采样频率:30kHz;触发模式:软件、在板可编程定时器或外触发;数据传输:程序控制、中断控制;IRQ级别:可编程IRQ2,3,4,5,6,7;通道数:8路单端通道。
本系统输入信号范围±5V,采样频率2000Hz,A/D数据转换触发模式采用在板可编程定时器触发,数据传输采用中断控制,中断级别设置为5,通道数为3,三个通道分别采集和传输获得X,Y、Z三向切削力。?
待采集的模拟信号通过电荷放大器放大,根据预先设定选择不同的增益;输出的信号进行A/D转换,转换结束后,将12位转换结果自动存在数据寄存器中,然后通过中断控制将数据取出,送入计算机内存进行处理。在使用时,将采集卡直接插入计算机ISA插槽中,使用其预先设定的基地址220H。?
二、数据采集与转换中的关键问题
数据采集与转换系统用于将模拟信号转换为数字形式进行分析或传输。模拟信号输入通常是由互感器和传感器将压力、温度、应力或张力、流量等真实信号转换为相应的电信号。系统保存信号准确性和完整性的能力是衡量系统的主要指标。如何设计一个高性能的数据采集与转换系统需要考虑多方面的因素,本文就其中的一些关键问题给出自己的讨论。
数据采集转换系统的基本框架
模拟信号进行采集并转换为相应数字形式所需的基本元素包括:模拟多路复用器和信号调节;放大器;模数转换器;PC 或 MCU。
图1 为数据采集系统典型框图。目前的数据采集系统通常包括数据采集与转换所需的所有元素,不过有时可能不包含模拟多路复用之前的输入滤波与信号调节。模拟信号由模拟乘法器进行时间多路复用;多路复用器输出信号通过放大器输入A/D转换器。我们可对采样/保持进行编程,以便采集并保持经各 A/D 转换器转换成的数字多路数据采样。转换后的数据以并行或串行形式出现在 A/D 转换器的输出中,以备终端设备做进一步处理。
图1
系统采样率
被转换数据的应用与最终使用决定了数据采集与转换系统所需的采样率和转换率。系统采样率由最高带宽通道、数据通道的数量以及每次循环的采样数决定。
图2
混叠误差
根据奈奎斯特采样定理,在理想的采样数据系统中,数据带宽的每次循环要求最少两次采样,这样恢复被采样信号才不会丢失信息。因此,确定系统采样率时首先要考虑的就是混叠误差,也就是由于在信号频率的每次循环中采样数量不足所造成的信息丢失。图 2 显示了在数据带宽的每次循环中采样数量不足所造成的混叠误差。
每次循环需要多少个采样
这个问题的答案取决于允许的平均误差容限、重建方法(如果存在)以及数据的最终使用。
采样数据的平均精度可通过以下途径加以改进:(1) 增加每次循环的采样数;(2) 多路复用前预采样滤波,或 (3) 过滤 D/A 转换器输出。图3显示了采样数据的重建,这里 fS= 2fMAX。
如图 4 所示,每次循环采样数只要稍许增加,采样数据的平均精度就会大幅上升。理论限制在于持续采样时采集与转换系统的吞吐量精度。对于数据的零阶重建,从图 4 可以看出,重建采样数据达到平均 90% 乃至更高的精度要求对数据带宽的每次循环进行10次采样。通常所用的范围是每次循环7~10 次采样。
图3
图4
采样误差
采样误差的定义是:采样过程中动态数据变化的不确定性所造成的采样数据点的幅值与时间误差。在数据采集和转换系统中,通过使用采样/保持器或快速的 A/D转换器,就能减小采样误差或使之不显著。对于正弦数据,最大采样误差出现在零交叉情况下,这时会出现最大的 dv/dt。
关于 A/D 转换器的几点说明
A/D转换器的转换速度和分辨率是最重要的两个参数。下面简单讨论一下 A/D 转换器术语将有助于读者更好地了解系统分辨率与精度。
速度:主要由A/D 转换器的采样时间及转换时间构成。A/D转换器手册均会在采样动态参数 (Sampling Dynamics)标出转换速度。有时是数据吞吐率(Throughput Rate)。逐次逼近型AD转换器采样速率或数据吞吐率一般从几十千次每秒到几兆次每秒。
分辨率:A/D 转换器的比特数决定着数据采集系统的分辨率。A/D 转换器分辨率的定义如下:---1 LSB = VFSR/2n,
LSB = 最低有效位,VFSR =满量程输入电压范围,这里,n为A/D转换器的分辨率。比特数决定着数字码的数量,对A/D转换器而言有2n个离散数字代码。就本文的讨论而言,我们将使用二进制逐次逼近A/D转换器。表1显示了典型A/D转换器的分辨率和 LSB的值。
表1
信噪比:理想AD转换器的信噪比为 SNRdB=6.02×n-1.76,表2 为AD 转换器位数与信噪比的简单对照表。
表2
精度:假定所有模拟值都位于 A/D 转换器输入处。A/D 转换器量化或编码特定的模拟输入值为相应的数字代码作为一种输出。上述数字代码有着内在的不确定性或 ±1/2LSB 的量化误差。这就是说,量化的数字代码所代表的模拟电压与相邻数字代码中间点的距离在 ±1/2LSB 之内。A/D转换器的精度不会超过内在的 ±1/2LSB 的量化误差所允许的范畴。增益、偏移和线性误差等模拟误差也会影响 A/D 转换器的精度。增益和偏移通常可调节为零,但线性误差是不可调的,因为它是由固定值的梯形电阻器网络和网络开关匹配造成的。大多数高质量A/D转换器的线性误差都低于±1/2LSB。另一个需要重点考虑的误差是微分线性误差。在理想的 A/D 转换器中,相邻过渡点间的步进大小为一个 LSB。微分线性误差就是在实际 A/D 转换器中相邻过渡点与理想的 LSB 步进差距。该误差必须小于一个 LSB,这样才能保证不会丢失代码。线性误差为 ±1/2LSB 的 A/D 转换器不一定意味着不会丢失代码。图5为微分线性、失调及增益误差图。
图5
二进制代码:二进制编码的数据格式是数字计算机类型应用中最常见的,其处理通常以二进制形式进行。A/D 转换器中最常用的二进制编码为:
1. 单极标准二进制 (USB)——用0~±10V等。
2. 双极偏移二进制 (BOB)——用于双极模拟信号范围,如 ±5V、±10V 等
3. 双极双组件 (BTC)——用于许多数字计算机应用中的双极模拟信号范围。
在 A/D 转换器中使用两种 BCD 编码,单极 BCD 和符号数值 BCD (SMD)。
表3
三、数据采集测量结果改善的常用校正方法
改善测量结果需要进行配置、校准以及优秀的软件开发技术。本文旨在使您了解优化测量结果的软、硬件技巧,内容包括:选择并配置数据采集设备、补偿测量误差以及采用优秀的软件技术。
当您将电子信号连接到数据采集设备时,您总是希望读数能匹配输入信号的电气数值。但我们知道没有一种测量硬件是完美的,所以为了改善测量结果我们必须采用最佳的硬件配置。
根据应用需求,您必须首先要明确数据采集卡所需的模拟输入、输出通道以及数字I/O线的最少数目。其次还要考虑的重要因素有:采样率、输入范围、输入方式和精度。
第一个要考虑的问题是现场接线,根据您要采集的信号源类型,您可以使用差分、非参考单端、参考单端三种输入方式来配置数据采集卡。
总的说来,差分测量系统较为可取,因为它能消除接地环路感应误差并能在一定程度上削弱由环境引起的噪声。而另一方面,单端输入方式提供两倍数据采集通道数,可是仅适用于引入误差比数据所需精度小的情况。表1为选择合适的信号源模拟输入方式提供了指导
选择合适的增益系数也是非常重要的。保证数据采集产品进行精确采集和转换所设定的电压范围叫做输入信号范围。为得到最佳的测量精度,使模拟信号的最大最小值尽可能占满整个ADC(+/-10V或0-10V)范围,这样就可使测量结果充分利用现有的数字位。
在数据采集系统中选择合适的增益
图1表示同在10V的输入范围下使用不同的增益系数,输入5V信号得到的采集结果。请注意:选取合适的增益系数能够充分利用ADC并改善您的测试结果。
任何测量结果都只是您要测量的“真实值”的估计值,事实上您永远也无法完美地测量出真实值。这是因为您测量的准确性会受到物理因素的限制,而且测量的精度也取决于这种限制。
在特定的范围内,16位数据采集卡有216(65536)种数值,而12位数据采集卡有212 (4096)种数值。理想情况下,这些数值在整个测量范围内是均匀分布的,而且测量硬件会把实际测量值取整成最接近的数值并返回计算机内存。事实上有许多人认为,这种取整误差(通常称为量化误差)是决定精度的唯一因素。实际上,这种量化误差,在 12位多功能数据采集卡中只占总误差的35%,而在类似的16位卡中就更微不足道了。不管您使用12位还是16位数据采集卡,都不能只考虑这种量化误差。
放大器中的缺陷,如电阻器容限和模拟-数字转换特性,都会产生增益误差。这种误差通常以总读数的百分比表示。为了补偿这部分误差,您可以进行内部校准。内部校准不仅能够补偿增益误差还能补偿温度变化引起的误差。这需要一个带有温度相关误差容限的板载参考源。数据采集设备和其它类型的传统仪器都采用内部校准,通常也被称为自校准。
E系列校准VI
在LabVIEW中,您可以使用“E系列校准VI(E-Series Calibrate VI)”来对数据采集设备进行校准(图2)。一旦板卡处于工作环境,经常校准能确保最精确、最稳定及可重复的测量结果,在自校准过程中可对模拟输入和模拟输出都能完成自校准。
由于有增益前偏差、增益后偏差和增益误差校准,自校准会建立一个校准常数集合。完成一次校准之后,新的校准常数将被加载到板卡的存储器上。旧的校准常数可以保存到EEPROM中,这样在必要时可以重新加载。一旦板卡停止供电,如果还需要校准常数,那保存工作则是非常重要的。如果没有把校准常数保存到EEPROM中,关闭计算机之后这些数据就丢失了。
放大器的缺陷或者模拟-数字转换会产生非线性误差。在输入范围内,增益系数的微小变化就会产生非线性误差,这种误差一般表示为满量程的百分数。到现在还没有一种简单的校准方法能够补偿这种非线性误差。因此仔细挑选数据采集卡是非常关键的。设备的相关精度表示非线性误差的总值,相关精度定义为数据采集设备测量精度的最低有效位数。它包括所有非线性误差和量化误差,不包括偏差和增益误差。知道了数据采集卡的相关精度就可以为所有读数建立容限。
为进一步提高测试结果的精度,还必须补偿任何偏移误差。偏移误差在输入范围内是不变的,因此,纠正起来相对容易些。您可以先测量短路通道的偏移误差,然后用以后的读数减去这个值。
采用优秀的软件技术
提高读数精度的一种很好的软件技术就是求平均值。求平均值的前提是噪声和测量误差是随机的,因此,根据中心极限定理,误差服从正态分布(高斯分布)。选取多个点后呈高斯分布,计算出平均值,平均值在统计上非常接近真实值。因此,所选取的要平均的点越多,平均值的标准偏差就越小。因为标准偏差会随着样本数量增加而减小,所以应当尽可能提高用于平均的采样点数。
定期的自校准也是一种好方法,它能够在任何时候保持测量精度。执行定期内部校准(建议每天进行)可以补偿温度和环境变化引起的误差。
四、基于LabVIEW和PCI-5124的数据采集系统设计
摘要:设计一种基于虚拟仪器LabVIEW和高速数字化仪NI PCI-5124的高采样率、长时间的数据采集分析实验系统。该系统可实现20 MHz甚至更高采样率以及数据信号长时间的实时采集,并具有实时存储、回放、信号分析、报表打印功能。实验表明:该系统具有程序设计简单、通用性好、可移植性高、界面设计简单大方、易于操作等优点。
传统数据采集系统一般由单片机与硬件采集电路或数据采集卡配置计算机组成。这种数据采集系统存在开发难度大、可移植性差、数据采集效率低、实时存储容量小等缺点。其存储容量取决于数据采集卡的板载内存的大小,一般只有8 MB或12 MB,而现代工程运用中的数据采集系统需具有很高的采样速率,完成海量数据的实时存储。针对传统数据采集系统存在的不足,这里采用虚拟仪器(LabVIEW)和高速数字化仪NI PCI-5124设计一种可以长时间连续采集、实时存储的数据采集系统。
本系统只使用PC机、数据采集卡以及编程语言即可在Windows操作系统下实现对数据的采集、存储、处理,开发成本低,通讯能力强,易于使用。系统改善了传统数据采集系统的存储量小、采集效率低等缺点,可实现信号的长时间实时采集、存储、回放、分析、报表打印等功能。
1 系统硬件设备简介
该系统硬件设计结构原理框图如图l所示。
系统硬件设计主要包括PC控制机和高速数据采集卡。由于许多插入式的数据采集DAQ(Data Acquisition)设备采集数据不仅受到采样速率的限制,而且受到板载内存和数据到PC机内存的传输速率的限制。
针对以上问题,本设计选用插入式DAQ产品中价位低、速率快、精度高的高速数字化仪NI PCI-5124。它可以直接插入计算机的PC捕槽,即插即用使用方便,具有200 MS/s的实时采样至4.0 GS/s的等效时段采样;标准8~256 MB大容量板载内存;基于PCI总线的12位分辨率的双同步采样通道;使用新技术实现在2个150 MHz带宽的、带有去噪和抗混叠滤波器的输入信道中同步采样;高达75 dBc的无寄生动态范围SFDR(Spufious-Free Dynamic Range);基于NI同步和存储核心SMC (Synchronization and Memory Core)构架,具备每通道512 MB板载内存、快速数据传输和紧密的同步功能。工程师们可以在几十皮秒(ps)内同步基于SMC的模块化仪器,主要有边缘、视窗、滞环、视频和数字等触发方式,主要用于高通道和混合信号应用。
专用数据采集长的驱动方式分为外挂式驱动和内置式驱动两种。对于NI公司生产的各种专用数据采集卡,可使用LabVIEW内的DAQ库直接对端口进行各种操作,即内置式驱动。NI数据采集卡提供对LabVIEW丰富且完备的支持,驱动函数在底层的基础函数上进行高度封装,用户无需深入了解采集卡的具体工作,只要掌握驱动函数输入/输出端口的意义,就能进行数据采集开发。因此用户使用NI PCI-5124时,只需将所需接口从程序中直接调用至系统开发环境中,即可实现采集、存储以及回放等功能。
2 数据采集系统设计
2.1 程序设计
LabVIEW是一种基于图形语言编程的可视化软件开发平台,与VC、VB等其他可视化编程语言相比,其函数库丰富、调试方便,而且开发界面简单,界面风格与传统仪器相似。LabVIEW是一个外观和操作均能模仿实际仪器的程序开发环境,类似于C、BASIC等编程语言。但LabVIEW的特点在于使用图形化编程G语言在流程图中创建源程序,而非使用基于文本的语言产生源程序代码。与传统C、C++等编程语言不同,LabVI-EW采用强大的图形化语言编程,面向测试工程师而非专业程序员,编程方便,人机交互界面直观友好,具有强大的数据可视化分析和仪器控制能力。
本实验系统主要由数据采集、存储和数据处理等部分组成。其中数据采集包括采集设置和数据采集波形显示;数据处理包括信号时频域参量测量、信噪比测量以及报表打印等。系统工作流程如图2所示。
本系统基本工作过程是:肩动LabVIEW程序后,首先设置高速数据采集卡PCI-5124的通道、采样模式、采样频率、触发类型、触发电平等,然后启动采集,进行长时间连续的数据采集并利用流艋技术将采集到的信息实时存储于计算机硬盘,由于采集到的信息量很大,因此对采集到的数据进行离线处理,以减轻计算机CPU负担,提高数据处理速度。
2.2 数据采集模块
数据采集是从传感器和其他待测设备等模拟和数字被测单元中自动采集各种参量(物理、化学、生物量等)信息的过程。数据采集操作的结果直接影响后续数据处理、分析,数据采集功能模块利用NI-Scope函数进行数据采集,为了让数据采集设备在后台连续采集数据并送入缓存区,首先,初次安装好NI PCI-5124数据采集卡和驱动程序以后,计算机将自动设置其I/O地址和中断号,并分配内存资源,打通LabVIEW程序和底层驱动NI-Scope的通道。其次,在程序界面设置采样频率、采集通道、数据存储方式并启动程序实时采集。由于需要触发某事件后(例如点击“运行采集”按钮)进行采集,本设计采用可编程扫描和当前软件触发采集模式:采集启动后,下层NI-Scope驱动程序独立控制硬件高速数字化仪PCI-5124进行数据采集,并将采集结果利用流盘存储方式跳过采集卡的缓冲区直接读取到应用软件的计算机硬盘中,处理数据。数据采集波形如图3所示,该模块完成连续数据采集,实时显示信号并刷新。
2.3 数据存储回放模块
数据存储功能模块由文件的类型簇、数据文件存储路径、TDMS Dialog函数、open TDMS函数、write TDMS函数、close TDMS函数以及error函数组成,本程序中调用openTDMS函数打开TDMS文件,当运行至此时,数据会依据原先设置的存储路径和类型将数据持续写入指定计算机文件中。由于本设计要存储海量数据,因此采用基于流盘技术的存储方式。流盘是一项在进行多次写操作时保持文件打开的技术,即持续从或者向存储器(Memory)中传输数据。存储器可以是设备的板上缓存(Onboard Memory)、控制器上的RAM或计算机上的硬盘,本设计使用“文件I/O函数”设计合理的流盘存储基本架构。
回放是为了使用户存实时采集存储和数据分析测量结束后,还可以在需要时重新观察和深入分析所采集的数据。数据回放功能程序运行至open TDMS函数时,将运行连接至open(只读),即可打开对应的数据存盘文件,采集到的波形数据按照带索引的二进制TDMS文件形式存放于计算机硬盘中。在选择波形回放时,后台程序首先要确定波形数据中数组元素所对应的采样时刻,当选择同放按钮时,给定的初始运行时间会与待同放的波形数据的第1个元素所对应的时刻进行比较,从而确定待回放数据的第1个数据元素的时刻,从此开始回放数据波形,直到用户发出停止指令。整个文件完全是Windows系统文件,大大提高存储和释放的速率,加快数据处理速度,回放波形如图4所示。
2.4 数据分析模块
数据分析主要包括测量信号参量、幅度相位谱和功率谱。时域分析是一种直接在时问域中对系统进行分析的方法,具有直观、准确的优点,可以提供数据采集系统时间响应所需的全部信息。本系统主要是标定所采集信号的周期、平均值、周期均方根、有效值以及频率等,实时了解信号各种参数。
数据报表打印主要是将所采集信号的原始波形和回放波形以图片格式传递至打印样式子VI,并设置该子VI,使得程序需要打印时,就可通过调用该子VI打开前面板的采集波形和回放波形,显示报表内容并进行打印预览。
3 结论
进行系统实验测试时,使用主频为1.8l GHz、处理器为64位,512 M内存的PC;采样速率为20MByte/s的高速数字化仪PCI-5124,实现长达30 min的连续数据采集和海量数据存储。利用虚拟仪器LabVIEW和高速数字化仪PCI-5124开发的长时间连续采集存储系统完成了信号实时的采集、显示、存储以及对采集历史数据进行回放的功能。
与传统数据采集仪器相比,该系统具有性价比高、开发时间短、通用性强、数据处理准确简单、可移植性强(可以将VC、C、MATLAB等程序进行递归调用)、人性化界面设计、易于操作等优点,LabVIEW简单的编写语言和易于编写的控制,控件,简化了编程过程,用户无需掌握数据采集卡的硬件知识,只需了解和掌握其驱动程序的功能,就能利用LabVIEW进行数据程序的开发和运用,这将成为未来数据采集发展的趋势。
评论
查看更多