虚拟仪器技术的特点
虚拟仪器(Virtual Instrument)的概念是美国于上世纪80年代中期提出来的。这一概念的核心是以计算机作为仪器的硬件支撑,充分利用计算机的运算、存储、回放、调用、显示以及文件管理等智能式的功能,把传统仪器的专业化功能软件化,使之与PC 机结合起来融为一体,这样便构成了一台从外观到功能都完全与传统硬件仪器相同,同时又充分享用了PC 机智能资源的全新的仪器系统[3]。虚拟仪器技术是将计算机技术、仪器技术和通信技术三者的有机结合,利用良好的虚拟仪器软件开发平台和数据采集卡,可以在屏幕上虚拟出与传统仪器相似的显示面板, 用户通过点击这个显示面板, 来调控虚拟仪器的性能。与传统仪器相比,虽然虚拟仪器也需要硬件支持, 但硬件仅仅是为了解决信号的输入输出,软件才是整个系统的关键。也正是由于软件是虚拟仪器的关键,所以当基本硬件确定以后, 就可以通过不同的软件实现不同的功能。正是因为软件就是仪器,所以用户可以根据自己的需要,设计自己的仪器系统,满足多种多样的应用要求。另一方面,利用计算机丰富的软、硬件资源,不仅可以大大突破传统仪器在数据的处理、表达、传递、储存等方面的限制,达到传统仪器无法比拟的效果,而且为数据的快速共享提供了可能。
基于声卡的虚拟示波器的设计
示波器是电子实验室最为广泛的测量仪器之一。传统示波器外型笨重,功能单一,一些高性能的示波器加工工艺复杂,技术要求高,价格昂贵。随着虚拟仪器技术的发展,基于虚拟仪器技术的示波器也应运而生[4]。虚拟示波器充分利用计算机的信息处理能力,能够实现对多路输入信号的实时采集和存储,并且可以进行数据的离线分析和处理。
1.硬件实现
虚拟示波器的硬件核心是数据采集卡。目前市售的数据采集卡价格与性能基本成正比,一般比较昂贵。随着DSP(数字信号处理)技术走向成熟,PC机声卡可以成为一个优秀的数据采集系统,其数字信号处理器包括模数转换器(ADC)和数模转换器(DAC),ADC用于采集音频信号,DAC用于重现这些数字声音,转换率达到44.1KHz。 在采样频率要求不高的情况下,可以利用计算机的声卡作为数据采集的输入和输出。目前,声卡已成为多媒体计算机的一个标准配置,利用声卡进行采样与输出,就不需要购买专门的采集卡可以降低虚拟仪器的开发成本,且在音频范围内可以完全满足实验要求。由于计算机在各个高校已经普及,采用声卡研制虚拟仪器能以很低的成本、在较短的时间内更新和扩充实验室设备,在全新的实验平台上开发综合性和设计性的实验。
麦克风的工作原理是通过声音振动的强弱来改变其结构,以输出强弱不等的连续电流。在前面的系统中,麦克风的作用相当于一个传感器,它将声音的振动信号转换成微弱的电信号后,流入声片的输入端。连续电流经过声片的A/D转换后,被采集到系统中加以动态显示和分析。
经过以上分析得知:声波的振动信号是经过麦克风转换为电信号以后输入声片的。这样就为通过声片采集电信号提供了契机。为了保护声片,在实际应用中,应当充分估计被测信号的大小。如果被测信号的幅度很小或者很大,就不能直接进入声片,而是先经过一个信号调理电路,对信号进行“放大或限幅、滤波”等处理,经过处理后,幅度和频率降到一定范围内的信号才能输入声片。
声卡一般有Line In和MIC In两个信号输入插孔,声音传感器(本文采用通用的麦克风)信号可通过这两个插孔连接到声卡。若由MIC In输入,由于有前置放大器,容易引入噪声且会导致信号过负荷,实际中常使用Line In,其噪声干扰小且动态特性良好。本文使用Line In作为输入端,引出两根电缆,分别与信号发生器的两个输出端相连接。它可以接收幅值超过1.5 V的信号。
2.软件设计
LabVIEW是一种基于G语言的图形化虚拟仪器开发工具,主要用于数据的采集、分析、处理和表达,总线接口、VXI仪器以及GPIB与串口仪器的驱动程序编制和虚拟仪器驱动。它与C、Pascal等传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程序调试工具等。与传统高级编程语言最大的差别在于编程方式一般高级语言采用文本编程,而LabVIEW采用图形化编程语言(即各种图标、图形符号、连线等),以框图的形式编写程序。采用这种图形化的编程方式,再加上大量专业控件(Controls)和函数(Functions)的提供,使之具有极高的编程效率和优秀的编程效果。
(1)虚拟示波器的前面板设计
前面板用来提供用户与虚拟示波器的接口,通过一个友好的图形界面,模拟传统仪器操作,实现对虚拟示波器的控制,并且显示数据处理结果。本文设计的虚拟示波器前面板如所示。根据仪器的功能,在虚拟示波器前面板上设置实时图形显示窗口(包括波形图、频谱图),数据采集配置按纽(包括声卡初始化配置、通道配置、触发参数配置)、波形显示调节按纽(水平调节、垂直调节、游标显示)、参数动态显示按纽(波形平均值、峰峰值、频率)、错误信息显示窗口、帮助窗口、暂停按钮、保存按钮、回读按纽、停止按钮等。
(2)程序框图设计
程序设计的原理是让信号通过声卡采集进虚拟器中,通过声卡的基本设置,设置声卡的一些基本参数,声卡的采样频率不能太低,如果频率太低,采集过程中,不能连续地采集,示波器的输出就会中断。声卡采集完信号数据后,声卡开始读取数据,通过对数据的读取,虚拟示波器把波形显示出来;在波形显示的过程中,虚拟示波器还能通过频谱分析,对波形的幅频和相频分析,显示虚拟示波器的幅频特性和相频特性;最后再把频率、幅频、相频的数据通过数组的分析,也显示出来。在读取过程中,还能把虚拟示波器的周期平均、峰峰值、负峰值、正峰值、周期均方根、直流、均方根的数值也显示出来。而声卡的读取过程是通过一个While循环把这所有的过程连接起来。读取过程完后,经过声卡的清理后,再进行下一次的读取过程。在声卡的读取过程中,如果声卡触发有差错的话,声卡的读取就会停止,声卡直接停止,While循环也就结束了。
3.虚拟示波器的测试
虚拟示波器测试时采用了固纬(Good Will)GFG—8250A函数信号发生器作为外部模拟信号输入,用设计的虚拟示波器显示正弦波的波形。测试结果表明虚拟示波器采集的信号与传统函数发生器产生的信号吻合,参数测量精确,波形控制和触发控制响应迅速,显示正确,说明用LabVIEW开发的虚拟示波器的结果与传统示波器结果相一致。