传统台式仪器是由仪器厂家设计并定义好功能的一个封闭结构,它有固定的输入/输出接口和仪器操作面板,每种仪器实现一类特定的测量功能,并以确定的方式提供给用户。从一般的仪器设计模型看,一种仪器无非是由数据采集、分析处理、人机交互和显示等几部分功能模块组成的整体。因此,我们可以设想在必要的数据采集硬件和通用计算机支持下,通过软件设计实现仪器的全部功能,这就是虚拟仪器设计的核心。与传统仪器相比,虚拟仪器除了在性能、易用性、用户可定制性等方面具有更多优点外,在工程应用和社会经济效益方面也具有突出优势。一方面,目前我国高档台式仪器如数字示波器、频谱分析仪、逻辑分析仪等还主要依赖进口,这些仪器加工工艺复杂、对制造水平要求高,生产突破有困难,采用虚拟仪器技术可以通过只采购必要的通用数据采集硬件来设计自己的仪器系统;另一方面,用户可以将一些先进的数字信号处理算法应用于虚拟仪器设计,提供传统台式仪器不具备的功能,而且完全可以通过软件配置实现多功能集成的仪器设计。因此,可以说虚拟仪器代表了未来测量仪器设计发展的方向。
虚拟仪器是90年代提出的新概念。虚拟仪器技术的提出与发展,标志着二十一世纪自动测试与电子测量仪器领域技术发展的一个重要方向。所谓虚拟仪器,就是在通用的计算机平台上定义和设计仪器的测试功能,使用者操作这台计算机,就象是在使用一台专门设计的电子仪器。
虚拟仪器技术目前在国外发展很快,以美国国家仪器公司(NI公司)为代表的一批厂商已经在市场上推出了基于虚拟仪器技术而设计的商品化仪器产品。数字示波器是在科学研究和工程设计中广泛应用的一种通用仪器。下面结合一个虚拟数字示波器的设计开发具体介绍虚拟仪器的基本组成和基于图形化编程语言LabVIEW的虚拟仪器编程方法与实现技术。
1 虚拟示波器的结构与组成
本虚拟数字示波器主要由一块PCI总线的多功能数据采集卡和相应的软件组成。将它们安装在一台运行Windows95/98/NT的PC机上(建议配置在PENTIUMⅡ/233以上),即构成一个功能强大的可存储数字示波器。该数字示波器操作与显示主面板如图1所示。
1.1 数据采集卡
PCI总线传输速率高数据吞吐量大是今后数据采集板卡设计的主流。本设计采用的PCI-1200数据采集卡是一块性价比较好的产品,支持DMA方式和双缓冲区模式,保证了实时信号不间断采集与存储。它支持单极和双极性模拟信号输入,信号输入范围分别为-5~+5V和0~10V。提供16路单端/8路差动模拟输入通道、2路独立的DA输出通道、24线的TTL型数字I/O、3个16位的定时计数器等多种功能。这些功能使得我们不仅可以用该卡设计虚拟示波器,也可以设计虚拟函数发生器或虚拟计数器,做到一卡多用。当然,限于经费条件,我们选择的PCI-1200卡的采样速率只能达到100kS/s,对实际示波器而言,这远不能满足信号带宽的要求。目前市场上采样速率达200MS/s的PCI数据采集卡已有成熟产品,技术上实现高带宽的虚拟示波器不存在问题。实际测量时输入信号通过BNC接头从输入端子进入数据采集卡进行采集。
1.2 仪器功能
本虚拟数字示波器设计参考了HP公司的双通道台式数字存储示波器HP54603B的功能,并在仪器分析和处理功能上有所扩展。仪器主要功能包括:双通道信号输入、触发控制、通道控制、时基控制、波形显示、参数自动测量、频谱分析、波形存储和回放等。本虚拟数字示波器还提供网络接口,允许通过TCP/IP协议实现网络仪器共享或远程控制。表1是本虚拟数字示波器与HP54603B的功能对照表。
由表1可以看出,除了由于经费原因使得所选数据采集卡采样速率低于HP54603B外,本虚拟示波器在显示、测量、分析、存储和外部连接等方面的功能都不低于甚至高于HP54603B
2 软件的设计与实现
2.1 软件开发环境
虚拟数字示波器软件设计采用了先进的图形化编程语言工具LabVIEW 5.1 for Windows98/NT。LabVIEW编程的主要特点就是将虚拟仪器分解为若干基本的功能模块(相当于硬件设计中的集成电路),模块的引脚代表输入/输出接口。编程者可以通过交互式手段,采用图形化框图设计的方法,完成虚拟仪器的逻辑和测量分析功能设计。图2是虚拟数字示波器频谱分析模块程序。
由图2可以看出,LabVIEW程序设计过程与人们设计仪器的思维过程十分相近,程序框图就实现了程序代码功能,避免了一般程序设计从框图构思到程序表示的繁琐。LabVIEW编程的另一个优点是将软件的界面设计与功能设计独立开来,修改人机交互界面无需对整个程序进行调试,这对设计像仪器操作面板这样复杂的人机界面而言是十分方便的。LabVIEW还为用户提供了函数扩展功能,利用LabVIEW中的Code Interface Node(CIN),可以调用用C等传统编程语言写的程序代码;利用LabVIEW中的Call Library Function可以调用标准动态链接库(.DLL)。总之,LabVIEW 作为图形化编程语言环境,为虚拟仪器开发提供了一种快捷、方便和功能强大的软件工具。
2.2 主要功能模块
概括地讲,虚拟示波器主要由软件控制完成信号的采集、处理和显示。系统软件总体上包括数据采集、波形显示、参数测量、频谱分析及波形存储和回放等五大模块,其功能结构框图如图3所示。
2.2.1 数据采集模块
数据采集模块主要完成数据采集的控制,包括触发控制、通道选择控制、时基控制等。其中:
·触发控制包括触发模式、触发斜坡、触发电平控制;
·通道选择主要控制单通道或双通道测量;
·时基控制主要控制采集卡扫描率、每一通道扫描次数(取样数)。
2.2.2 波形显示模块
软件提供了三种波形显示模式:
·A B A&B模式:通过显示通道选择按键摚翑和摚聰,可以任意显示某一通道或两通道输入信号的波形;
·X Y模式:当两通道都处于选通状态时,使用此模式来显示李沙育(Lissajous)图形、测量相位差或频率;
·A+B A-B模式:当两通道都处于选通状态时,使用此模式来显示两通道信号代数相加、相减后的波形。
2.2.3 参数测量模块
参数测量模块主要模拟HP54603B的参数测量功能,完成包括Vrms等12个电压参数和频率、周期等7个时间参数的测量并显示其测量结果。
2.2.4 频谱分析模块
频谱分析模块采用快速FFT算法,完成频域信号分析。可实现的频谱分析控制包括:
·Windows选择,提供了9种频谱分析窗口;
·Log/Linear选择,提供了2种坐标显示模式;
·Display Unit选择,提供了8种单位。
2.2.5 数据存储和回放模块
按键撔磁虜控制是否进行数据存储按键摱僚虜控制是否从数据文件中读取数据。主面板提供了两个文件名输入框,前一个为信号波形数据文件名输入框,后一个为采样周期文件名输入框,这两个文件由写盘功能和读盘功能共用。从软盘或硬盘上读取的数据同实时采集的数据一样,能够进行自动参数测量以及显示波形并保留在显示窗口(显示模式可以设置为三种模式中的任意一种),还可以根据需要设置进行频谱分析。
2.3 主要控制结构
2.3.1 测量控制结构
通过逻辑按键“测量”控制是否进行测量;通过逻辑按键“通道”控制通道选择。
2.3.2 自动调整扫描率控制结构
由逻辑按键组“自动”、“手动”来控制是自动调整扫描率还是手动调整扫描率。
2.3.3 正常显示、记忆显示控制结构
由双功能逻辑驱动键“正常/记忆”控制,缺省为正常显示。处于正常状态时,最多只能显示A、B两通道输入的2个信号的波形;处于记忆状态时,最多可以记忆显示A、B两通道输入的17个信号的波形(A通道可记忆显示16组信号数据,B通道只能记忆显示1组信号数据)。在实际应用中,记忆显示功能主要用于测量信号的抖动情况或比较分析两个以上的信号波形。
本文介绍的虚拟数字示波器不仅具有一般台式数字存储示波器的功能,而且充分发挥了微机强大的功能和软件设计的灵活性,主要技术特点表现在:
(1)采用图形化编程语言LabVIEW和面向对象编程技术,软件开发效率高,可操作性和可维护性好;
(2)为数字存储示波器增加了频域分析功能;
(3)充分利用了计算机的存储与外设连接的能力,测量结果和波形可直接打印输出或通过网络共享;
(4)硬件具有开放性,允许通过升级硬件来提高其性能;
(5)在相同硬件条件下,可以通过修改或增加软件模块,形成新的仪器功能。
虚拟仪器设计已经成为测试与仪器技术发展的一个重要方向。随着高速A/D芯片和电路的进一步集成化,可以设想在不远的将来,一台安装有虚拟仪器软件的标准微机成为一个多功能的测量仪器站,从根本上改变目前专用仪器的研制和生产方式,具有广阔的应用前景和巨大的潜在经济效益。