摘要:本文利用LabVIEW软件设计了一套信号输出与数据采集系统,能够在仿真环境下驱动嵌入式计算机系统运行并采集它的输出信号,为嵌入式软件的测试奠定了基础。同时利用虚拟仪器实现了软件代替硬件,节省了成本,提高了效率,达到了良好的效果。
关键词:LabVIEW;信号输出; 数据采集
1 引言
近年来,在国防、汽车、仪表等领域,嵌入式计算机系统的应用越来越广泛。由于目前硬件技术的迅猛发展以及容错技术的广泛应用,因硬件故障而导致的软件失效越来越少,系统故障的主要原因已经从硬件逐步转向软件。因此如何测试嵌入式计算机系统中的软件性能就成为人们关注的焦点,而这其中非常关键的就是如何在仿真环境下由仿真测试平台输出激励信号驱动嵌入式计算机系统运行并同时采集它的输出信号。本文正是基于此设计了一套基于LabVIEW的信号输出与数据采集系统。
2 LabVIEW简介
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是目前最为成功、应用最为广泛的虚拟仪器软件开发环境,是由美国国家仪器公司(National InstrumentsTM,简称NI)推出的一种基于图形程序的虚拟仪器仪表开发平台。它不仅提供了与遵从GPIB,VXI,RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能,还内置了支持TCP/IP,ActiveX等软件标准的库函数。
与传统编程采取的文本语言相比,LabVIEW使用图形语言 (各种图标、图形符号、连线等)编程,编程简单方便,界面形象直观,都是人们熟悉的开关、旋钮、波形图等,是一种直觉式图形程序语言。LabVIEW编程时,基本不需要编写程序代码,而是“绘制”程序流程图,这样就可以使没有丰富编程经验的工程师从繁重的程序文字编码中解脱出来,把更多的精力放在试验和测试上。LabVIEW程序运行的方式不像传统编程语言那样一条一条语句地往下执行,而是以数据流方式执行程序。也就是说,一个程序节点要在所有数据流都到达时,才开始运行,处理后的数据流同时向后面的各个节点流动,因此可以设计出同时执行多个程序的流程图。
3 信号输出与数据采集系统的设计
基于LabVIEW的信号输出与数据采集系统由PC机(PC机没有特殊的要求,常用的台式机都可以满足要求)、数据采集卡和信号输出与数据采集程序构成。
3.1 数据采集卡简介
系统采用NI公司的PCI-MIO-16E-4型数据采集卡。它是NI公司的NI 6040E系列数据采集卡之一,是一种性能优良、适合PC及兼容机的数据采集卡,能够完成模拟信号输入/输出和数字信号输入/输出等功能。它有16个模拟输入通道(对差分输入是8对模拟输入通道)、2个模拟输出通道、8个数字量I/O、2个24位的计数器(用于计时/计数功能)。
在使用采集卡之前,首先要进行采集卡的安装,将采集卡插入PC机的PCI插槽。由于是NI公司的数据采集卡,因此不需要再编写采集卡的驱动程序,只需重新启动计算机,放入采集卡的驱动光盘,按照提示就可以自动完成安装。安装完成后对设备号、模拟输入极性、模拟输入模式、模拟输出极性等参数进行设置。另外,选用CB-68LP连接块和R6868带状电缆等附件来连接数据采集卡和嵌入式计算机系统。
3.2 硬件连接
系统通过数据采集卡把嵌入式计算机系统和PC机连接起来,由PC机输出激励信号驱动嵌入式计算机系统运行,同时由PC机采集嵌入式计算机系统运行的输出信号。硬件连接框图如图1所示。
图1 信号输出与数据采集系统硬件连接框图
3.3 信号输出与数据采集系统的LabVIEW程序
系统能够实现同时输出和采集模拟信号,它利用传递error信息的数据线安排并行的执行顺序。其工作流程如下:首先通过AO Config VI设置好输出参数,通过AI Config VI设置好输入参数;然后将准备好的波形数据通过AO Write VI写入输出缓冲区;接着由AO Start VI启动模拟输出,AI Start VI启动模拟输入(要将number of scans to acquire的参数设为0,这样才能连续采集);在While循环中,AI Read VI连续从输入缓冲区读取数据,输出缓冲区中的数据经AO Write VI被送到DAC输入端,经转换后输出,直到用户按下了STOP按钮或程序出错才结束。最后由AO Clear VI清除任务所占用的全部资源。在本程序中,输出和采集并不是同步的,首先AI Start和AO Start没有受同一时钟源的控制,采集卡的模拟输入和模拟输出各有独立的时钟;其次它们并不是被同时启动的,AI Start要稍晚于AO Start,不过两者的启动时间相差非常小(时间差在几微秒内),在要求不是特别严格的场合可以忽略不计。
参数设置:输出通道指定从采集卡的那个模拟输出通道输出信号,输入通道指定由采集卡的那个模拟输入通道采集信号;输出通道缓冲区的大小一般为更新速率的两倍;输入通道缓冲区的大小一般为扫描速率的两倍,每次读取的样本数设置为一个小于输入通道缓冲区大小的值,一般为输入通道缓冲区大小的一半。图形化程序如图2所示(本程序输出的是一个正弦波,可根据不同的场合替换成所需的信号)。
图2 信号输出与数据采集系统的图形化程序
4 结束语
基于LabVIEW的信号输出与数据采集系统方法简单、可靠适用,能够实现在仿真环境下驱动嵌入式计算机系统运行并采集它的输出信号,为嵌入式软件的测试奠定了基础。同时利用虚拟仪器实现了软件代替硬件,避免了大量专用测试设备的使用,节省了成本,提高了效率,达到了良好的效果。
本文作者创新点:用LabVIEW实现了信号输出与数据采集的同时进行,可以在采集数据的同时由数据采集卡输出信号,提高了效率。
作者:高聪杰 李松岩 徐赫 来源:微计算机信息