曾明岗,赖万昌,毛 伟,王广西
(成都理工大学 核技术与自动化工程学院,四川 成都 610059)
示波器是现今电子行业测量最常用的仪器之一。尽管随着现代科学技术的发展,传统的示波器从外型笨重及功能单一,发展到了现在功能比较复杂的数字示波器。但是由于制作工艺水平的原因,导致示波器的价格比较昂贵。虚拟仪器技术的出现,改变了现状,我们可以利用虚拟仪器技术开发出操作界面友好操作简单实用的廉价的虚拟示波器。针对于成本问题,文中采用的声卡代替专业数据卡对数据进行采集,开发出一款虚拟示波器,完全能应付实验室教学。
声卡本身就是一个很有优秀的数据采集系统,它同时兼有A/D和D/A转换功能,不仅价格低廉,而且性能稳定,灵活通用。现如今市面上的声卡多的采样位数多为16位,高级一点的声卡的采样位甚至达到了32位。声卡采用左右声道的双声道设计方式,可以同时采集两路信号,当要实现多通道采集数据时,可以考虑采用高级一些是声卡或者配置多块声卡。特别注意的是声卡的输入端最高电压限制为1 V,对于高于1 V的信号可以通过衰减电路度后输入,这样一来就能适合多种场合的需要。
LabVIEW(laboratory virtual instrument engineering work beneh—实验室虚拟仪器工程平台)是美国国家仪器公司(NI公司)推出的一种基于“图形”方式的集成化程序开发环境,它是NI司开发的面向仪器与测控过程的图形化开发平台,它的概念,是直观的前面板与流程图式的编程方法的结合。本设计中采用最新版的LabVIEW2011。系统软件总体上包括数据采集、波形显示、参数测量、频谱分析、功率谱分析以及数据存储和读取、截图。
数据采集是虚拟示波器器软件的核心部分,文中是主要实现对声卡进行数据采集的配置以及数据的获取。利用Labview2011自带的丰富是数据采集函数 (位于Function-Programming AGaphic&Sound sound子模板中)实现本课题的数据采集任务。调用了Acquire.vi,configure.vi,等函数实现信号的采集。为了防止在连续采集过程中数据的丢失,这里设置了一个缓冲区对才具的数据进行暂存。因为对于X86系列处理器而言,在保护模式下,内存以8KB为单位被分成很多页。对内存的任意访问都是按页进行的,CPU保证了在读写8 kB长度的内存缓冲区是,速度足够快,并且一般不会被外来事件中断。通常设置8 192字节或者其倍数(例如32 768字节)大小的缓存,可以较好的保证声卡与CPU的协调工作。
虚拟示波器的触发控制模块的输入端有两路波形数据输入(通道 A、通道 B)、触发极性(正触发、负触发)、触发电平、触发源输入(立即触发、通道A、通道B)。程序运行时,很据用户触发源的选择分别执行相应的case,该过程运用到了子程序“触发电平.vi”。
图1 触发电平.vi Fig.1 Trigger level.vi
在虚拟示波器中,时基的设置是为了保证对输入信号采集到足够数量的采样值,并且每个采样值取的正确的时刻。根据:
采样速率=1/采样间隔
采样间隔=实际设置(s/格)/采样点数
设置每个采样点数,即可得到时基设置值。这里设置了5 ns/格,10 ns/格,20 ns/格,50 ns/格,20 ns/格,20 ns/格,5 ms/格,10 ms/格,20 ms/格。
在测量过程中,操作者往往需要观察信号某一段幅值的细节变化,就需要细化幅值刻度,这里设置了2 mV/格,5 mV/格 ,10 mV/格 ,20 mV/格 ,50 mV/格 ,100 mV/格 ,200 mV/格 ,500 mV/格,1 V/格,2 V/格,5 V/格。
参数测量模块包括峰峰值、频率以及实现双通道信号采集时的相位差测量并显示结果。
图2 参数测量Fig.2 Parameters measurement
程序利用case结构,实现单通道A,单通道B以及双通道A&B 3种显示方式的切换。然后将处理后的波形数据按序使用Bundle节点打包直接输入波形显示控件Waveform Graph,实现单通道波形显示。对于双通道显示,采用Build Array节点把两个通道的波形数据组成一个二维数组后再送入波形显示控件Waveform Graph,从而实现双通道波形的同时显示。
因为时域分析工具较少,对于测量时采集到的时域信号,常常转换到频域进行处理。信号的频域分析,即根据信号的频域来估计和分析信号的组成及其特征量。通常频域分析包括频谱分析(Spectral Measurements.VI)、功率谱分析(FFT Power Spectrum.VI)以及相干函数分析。
图3 通道选择Fig.3 Channel selection
为了方便事后对测量结果的分析,本软件分别设计了独立的存储和回读功能。
保存按钮:实现波形数据的存盘。LabVIEW支持两种文件类型的保存方式:流文件(Byte Steam File)和块记录文件(Datalog File)。流文件的优点在于除了G语言之外,使用任何文本编辑器都可以进行查看。块记录是LabVIEW独有的一种文件形式,是将数据作为由相同结构的记录组成的一个序列来保存。每一行是一个记录(record),每一个记录都必须包含相同的数据结构。LabVIEW把每一个记录作为一个簇写入文件,记录每一个组成元素可以使任何类型的。
数据回读按钮:从存储的波形数据文件中读取获得历史波形进行分析。
截图按钮:可以方便的捕捉到信号波形图,方便事后快捷查看历史波形的形状进行初步分析。
图4 捕捉波形Fig.4 Capture of waveform
文中采用图形化编程语言LabVIEW和面向对象编程技术设计出了一款虚拟示波器,不仅能具有一般示波器的功能,而且实现了高级示波器上才有的频谱分析充分发挥了PC机的强大功能,软件的扩展性强,只需要通过对软件简单的的升级和扩展,示波器就可瞬间变成扫描仪等,大大缩短了研发周期,同时使原有的投入的资源被遗弃,减少了不必要的浪费,可替代实验室传统的示波器进行一般的实验教学,从能节省实验室的传统设备资金投入,拥有很好的应用前景。
[1]杨乐平.LabVIEW高级程序设计[M].北京:清华大学出版社,2003.
[2]郑继明.声卡在数据采集中的应用[J].国外电子测量技术,2000(5):28-29.
ZHENG Ji-ming.Sound card application in data acquisition[J].Foretgn Electronig Measurement Technology,2000(5):28-29.
[3]杨高科.LabVIEW虚拟仪器项目开发与管理[M].北京:机械工业出版社,2012.
[4]赵海龙.给LabVIEW中的对象添加自动打印功能[J].微计算机信息,2001,17(12):32-34.
ZHAO Hai-long.Adding automatically print function for objects in LabVIEW[J].MicroComputer Information,2001,17(12):32-34.
[5]王怀兴.基于Labview的示波器仿真实验程序设计[J].湖北第二师范学院学报,2008(8):80-81+92.
WANG Huai-xing.Simulation programming of oscillograph based on Labview[J].Journal of Hubei University of Education,2008(28):80-81+92.
[6]张立学.基于LabVIEW的虚拟数字示波器设计[J].长沙大学学报,2008(5):66-68.
ZHANG Li-xue.Simulation programming of virtual digital oscillograph based on Labview[J].Journal ofChangsha University,2008(5):66-68.