微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于LabVIEW 语言实现PCI-1714 采集卡的全过程

基于LabVIEW 语言实现PCI-1714 采集卡的全过程

时间:09-20 来源:互联网 点击:

内部缓冲区和用户缓冲区的数据可以在程序控制下以文件的形式保存至计算机中, 实现采集数据永久性存储,便于后期数据分析处理。

3 基于LabVIEW 语言实现的PCI-1714采集卡数据采集程序实例

下面介绍用LabVIEW 语言编写的PCI-1714 采集卡数据采集驱动程序。该程序能够实现对传感系统外界信号的数据进行连续采集, 并能根据需要对有用数据进行存储。

从功能上分,该程序主要分为三部分:a)对采集卡进行初始化,完成采集卡重要工作参数的设置,如用户缓存、采样速率(scan rate)、输入限制等。b)进行数据采集和有用数据的存储, 就是将数据先放入采集卡的板载缓存FIFO 中, 再由计算机读取板载缓存中的数据, 写入由计算机的内存中分配出的用户缓存, 然后根据需要将有用数据从内存中存入计算机硬盘。具体存储格式可以为多种,该部分中包括的子VI 有读取数据模块、数据存储模块以及显示所采集信号的时域图形的模块。c)在采集结束后关闭采集卡。

为了使用PCI-1714 进行连续高速的数据采集,需要对采集速率、用户缓存大小等重要参数进行合理设置。如前所述,数据采集卡进行A / D 转换时是连续进行的, 也就是说采集卡往板载缓存中放入数据是连续进行的, 而计算机从板载缓存FIFO 中读取数据放入用户缓存时是在FIFO 半满或全满的状态下批量读取的,同时,如果要进行数据的存储,从用户缓存再向硬盘中写入数据时也是批量进行的。

由于用户缓存的大小受计算机内存空间大小的限制,不可能无限大,在使用过程中,只能尽量设得比较大,一般可以设为内存的十分之一左右。在保持一定的数据采样率并且用户缓存确定的情况下, 如果存储过程中,单批量写入硬盘的数据过少,会出现不能及时将数据从用户缓存中读出, 从而导致用户缓存溢出的错误。而当单批量写入硬盘的数据过多时,又会出现从用户缓存读取数据过快, 可能会读出空数据的错误,所以这几个参数必须互相配合设定才能使采集卡获得良好的采集和数据存储的性能。

4 基于LabVIEW 的数据调用与处理

利用上述程序完成信号采集的同时可以将有用信号存储,用于后续分析,下面举例说明如何将存储之后的波形数据重新调出并进行分析。

将以TXT 格式存储的数据从文件中调出并进行频谱分析的程序。在程序前面板中可以同时将一段数据表示的信号时域波形及利用“FFT 功率谱”VI分析获得功率谱波形显示出来。

利用LabVIEW 语言编写一个用于将存储数据调出并对信号波形特点进行分析的程序,该程序可以将一个具有多信道的监测信号从存储文件中调出,不同信道的监测信号各不相同,根据信号波形的特点,可以选用相关方法进行信号处理,分析各信号对应的监测环境的变化。利用LabVIEW 所提供的“调用库函数节点”模块,可以很方便地把C 语言编写的程序嵌入LabVIEW 程序中, 并且可以封装成子VI,供主程序调用。适用于一些LabVIEW 语言编程效率不高的应用场合,利用“调用库函数节点”模块编写的子VI 程序。

5 结束语

从以上分析可以看出, 利用LabVIEW 语言可以方便地解决信号采集与处理领域的相关问题,无论是对数据采集卡PCI1714 的驱动编写、数据的存储, 还是对数据的调用与分析都可以充分的调用该语言提供的专用VI, 并且在图形化语言编写环境中,获得清晰的数据流程。而且LabVIEW 语言也支持用户对VI 的二次开发,并可以调用其他语言编写的程序, 还可以将用户自行编写的程序方便地封装成标准VI,供后续程序调用,为提高程序编写的效率及扩展程序功能带来极大方便。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top