李燕杰,赵娜,赵平,张京京
(天津农学院 计算机与信息工程学院,天津 300384)
基于声卡和LabVIEW的虚拟示波器的设计
李燕杰,赵娜,赵平,张京京
(天津农学院 计算机与信息工程学院,天津 300384)
摘 要:为解决传统示波器价格昂贵、功能单一的问题,在对采样频率要求不高的情况下,利用PC机上配置的普通声卡作为数据采集卡,借助虚拟仪器开发软件LabVIEW,设计了基于声卡的双通道虚拟示波器。重点阐述了示波器的数据采集、数据处理、参数测量、波形显示、波形存储及回放等功能模块的设计。经实践证明,该虚拟示波器不仅实现了传统示波器的基本功能,而且具有开发周期短、运行可靠和性能良好等特点。
关键词:虚拟仪器;示波器;声卡;数据采集;LabVIEW
示波器是电子测量行业最常用的测量仪器之一,主要用来测量并显示被测信号的参数和波形,被广泛应用于科学研究、科学实验以及现场检测等领域。随着科学技术的不断发展,传统的功能单一的示波器逐渐被功能复杂的数字示波器取代。但基于商用的数据采集卡的示波器往往价格比较昂贵,针对该问题,笔者设计了一款基于声卡的成本低廉、功能完善、使用方便的虚拟示波器,这对于降低实验和科研成本,提高实验和科研质量具有重要意义。
1.1 虚拟仪器
虚拟仪器(virtual instrument,VI)是基于计算机的软件仪器,通常以通用计算机作为控制器,通过添加必要的模块化硬件来完成数据采集,由高效、功能强大的软件系统完成人机交互及数据处理的一种计算机系统[1]。与传统仪器相比,虚拟仪器在智能化程序、处理能力、性价比、可操作性等方面都具有明显的技术优势,成为现代测控系统的发展方向。
1.2 LabVIEW软件
LabVIEW(laboratory virtual instrument engineering workbench,LabVIEW)是实验室虚拟仪器集成环境的简称,由美国NI公司研发,是目前应用最广、发展最快、功能最强的图形化软件开发集成环境。LabVIEW8.2集成并满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能,它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数,可为实现仪器编程和数据采集系统提供便捷途径[2]。
2.1 硬件部分
声卡作为语音信号与计算机的通用接口,本身就是一个数据采集系统,同时具有A/D和D/A转换的功能,而且LabVIEW中提供了专门用于声卡操作的函数节点。声卡一般都是16位,比一般12位的数据采集卡精度要高。考虑声卡的频率响应,被采信号应该限制在音频范围之内,采样频率一般设为4档,分别为44.100、22.050、11.025 和8.000 kHz。声卡采用左右双声道,可以同时采集两路信号,也可以采用高级一些的声卡或者配置多块声卡来实现多通道的数据采集。需要注意的是,声卡输入端最高电压为1 V,可以将高于1 V的信号通过衰减电路后输入,这样就能适合多种场合的需要。
2.2 软件部分
本设计采用LabVIEW8.2进行开发。系统软件总体上包括数据采集、数据处理、波形显示(包括频谱分析)、参数测量及波形存储和回放等模块,功能结构框图如图1所示。
2.2.1 前面板设计
虚拟面板是软件部分的核心,它直接面向用户,是虚拟示波器控制软件的最上层,利用LabVIEW图形化编程环境,模拟传统仪器的操作界面,通过面板上的各种按钮、开关等控件实现对虚拟示波器的使用和控制,并且实时显示数据处理结果。本研究中设计的虚拟示波器前面板如图2所示。根据仪器的功能,前面板上设置有实时图形显示窗口(波形图),工作方式按钮(单通道、双通道、A+B、X-Y、频域),数据采集配置按钮(增益、时基、基准线、网格线)、颜色选择按钮(A线、B线、网格、背景)、参数动态显示窗口(电压、频率)、保存波形按钮、暂停按钮、保存屏幕按钮、波形回放按钮等。
图2 虚拟示波器前面板
2.2.2 数据采集模块设计
数据采集是虚拟示波器的核心部分,本研究中主要实现对声卡进行数据采集的配置以及数据的获取,分为以下3步:(1)调用Sound Input Configure.vi对声卡进行参数设置,采样率设置为44.100 kHz,通道数为2(即立体声双声道输入),每采样比特数(即采样位数)设置为16位,采样模式为连续采样,缓存大小设为每通道10 000个样本。(2)调用Sound Input Read.vi从缓存中读取数据,并在其外边添加While循环,设置每次从每个通道中读取样本数为4 410,即0.1 s时长的波形。(3)循环结束后,调用Sound Input Clear.vi停止采集并进行清除缓存和占用的内存等操作。数据采集模块程序框图如图3所示。
图1 虚拟示波器结构框图
图3 数据采集模块程序框图
2.2.3 数据处理模块设计
数据处理模块主要对信号波形进行数学运算等数学处理,包括加、减、乘、除的二元运算,多类型窗函数的FFT运算和多种类型的滤波器[3],经过处理后的结果将送到显示模块中。虚拟示波器对原始信号进行采样时,只采集到有限个点数,如果需要对原始信号进行更好地恢复和重建,必须对采样后的信号进行适当倍数的插值,为了让插值后的采样波形看起来更平滑,还需要对它进行滤波,因此需要设计好的插值滤波器对原始信号进行最大程度的重现[4]。本研究中主要采用基于低通滤波器实现的正弦插值法对信号波形进行数字处理,根据数字示波器的时基参数来确定需要插值的倍数,从而根据正弦插值的公式计算出系数,利用LabVIEW编程来实现。本研究中设计的虚拟示波器还具有独特的功能——频谱分析,即通过FFT变换在时域-频域对信号观察和分析,程序中设计了210个精度为8位的采样点的FFT运算来实现频谱分析。对采集信号的数据处理不是一次可以完成的,需要整个系统不断地循环计算和实现波形数据的显示。
2.2.4 波形显示模块设计
程序设计中利用case结构,可以实现单通道、双通道、两路信号相加(A+B)、两路信号分别做X轴和Y轴输入(X-Y)、频域5种显示方式的切换。其中X-Y这种方式类似通用示波器中用李萨如图形测频率的方式,频域方式将显示信号的频谱分布。对于单通道显示,使用Bundle节点将处理后的波形数据按序打包直接输入波形显示控件Waveform Graph;对于双通道显示,采用Build Array节点把2个通道的波形数据组成一个二维数组后再送入波形显示控件[5]。
2.2.5 参数测量模块设计
参数测量包括频率、电压的测量和显示。可以通过前面板上的“增益”、“时基”、“基准线”、和“网格线”几个控件调整和显示示波器各项参数。频率值是对输入信号进行FFT运算后得到的,每秒可以更新约10次,显示误差约为5 Hz,如果想得到更加准确的频率值,可以利用李萨如图形法测得。如果将FFT采样数提高,误差可以小于1 Hz,但同时会加大运算量[6]。在对采样频率要求不高的情况下,本设计完全可以满足要求。
2.2.6 波形存储和回放模块设计
为了方便对测量结果的分析,对虚拟示波器设计了独立的存储和回放功能。“保存波形”按钮
用于决定是否向磁盘存储波形数据,可将输入信号保存为WAV文件,再次按下停止记录。“暂停”按钮可将示波器屏幕暂停,以便观察,再次按下结束暂停。暂停时仍能调整各项参数。“保存屏幕”按钮可将示波器屏幕存为位图文件,需先将屏幕暂停,调整好后再保存。“波形回放”按钮决定是否把保存的波形重放。
本研究采用图形化编程语言LabVIEW8.2,设计出了一款基于声卡的虚拟双通道数字示波器,不仅具有普通示波器的基本功能,而且实现了频谱分析和波形存储及回放的功能。与基于数据采集卡设计的虚拟示波器[3,4,7-8]相比,这种设计方法不仅缩短了测量系统的研发周期,降低了开发成本,而且提高了软件的扩展性。该款虚拟示波器可替代传统示波器进行一般的实验教学,为实现虚拟示波器的广泛应用提供了重要参考。
参考文献:
[1]杨乐平,李海涛,肖凯,等.虚拟仪器技术概论[M].2版.北京:电子工业出版社,2005.
[2]陈锡辉,张银鸿.LabVIEW 8.2 程序设计从入门到精通[M].北京:清华大学出版社,2007.
[3]张一娇.四通道数字示波器数据处理与显示模块软件设计[D].成都:电子科技大学,2009.
[4]陈昌鑫,靳鸿,冯彦君,等.据采集卡和虚拟示波器系统[J].仪表技术与传感器,2012(3):67-69,72.
[5]李明.一种基于声卡的虚拟示波器的设计[J].科技通报,2013,29(4):155-157.
[6]沈辉,沙立民,张重龙.基于LabVIEW的多功能虚拟示波器设计[J].电子测量技术,2012(11):90-93.
[7]吴建,王高,王明艳,等.基于高速数据采集卡DAQC ard-010501的虚拟示波器设计[J].电子测试,2013(6):30-33.
[8]谢剑锋,车开森,黄澜涛,等.基于高速数据采集卡PCI-6143的虚拟示波器设计[J].工业控制计算机,2010(2):3-5.
Design of Virtual Oscilloscope Based on Sound Card and LabVIEW
LI Yan-jie,ZHAO Na,ZHAO Ping,ZHANG Jing-jing
(College of Computer and Information Engineering,Tianjin Agricultural University,Tianjin 300384,China)
Abstract:In order to solve the problem of expensive and single function of the traditional oscilloscope,this article describes the development of dual-channel virtual oscilloscope under the condition of not high sampling frequency based on personal computer’s sound card instead of data acquisition card and LabVIEW software.The main functions of virtual oscilloscope include data acquisition,parameter measurement,waveform display,spectrum analysis,et al.The practice shows that the virtual oscilloscope is not only realize the basic function of traditional oscilloscope,but also a short development cycle,reliable operation and good performance,et al.
Key words:virtual instrument; oscilloscope; sound card; data acquisition; LabVIEW
作者简介:李燕杰(1982-),女,河北邯郸人,讲师,博士在读,主要从事计算机应用技术、虚拟仪器与智能仪器方面的研究。E-mail:ff_liyanjie@163.com。
基金项目:天津农学院科技发展基金项目“基于EDA的虚拟示波器的研究与设计”(2012N13)
收稿日期:2015-09-07
文章编号:1008-5394(2016)01-0051-03
中图分类号:TP391
文献标识码:A