LabVIEW环境下基于声卡的虚拟示波器软件设计(精) 下载本文

界面与真实示波器的操作面板相似,如图1所示,其中显示的波形为虚拟示波器用于RLC 串联电路特性实验时,电路频率为2000Hz 时的波形。虚拟示波器面板上各个旋钮、开关的功能与真实示波器相同,包括“TI M E /D I V ”时间/分度选择旋钮、“X -Y ”水平-垂直按钮、“X -P OS ”水平位置调节旋钮、“VAR ”扫描速度微调旋钮、“S OURCE ”触发选择开关、“S LOPE ”触发极性选择开关、“VOLT/D I V ”电压/分度衰减器、“Y -P OS ”位置调节旋钮、“VAR ”幅度微调旋钮、直流-接地-交流开关。不同于真实示波器的部分有:

1显示屏 用于显示声卡采集的信号波形。水平方向和垂直方向各有10个格,每个格又分5个小格。用户可以通过单击鼠标右键,选择“V isible Ite m s ”选项,显示“Pl ot Legend ”和“Graph Palette ”,实现传统示波器无法实现的操作,如查看显示屏上未显示的部分、进行波形的多倍放大,以完成特定的测量。

2“LE VE L ”触发电平调节旋钮 触发电平默认值为“0”。当用户设置的触发电平大小超出触发电压信号的范围时,不再进行触发。若进行设置后需调节回零值,可在旋钮上单击鼠标右键,选择“Reinitialize t o Default Value ”即可。

3“P AUSE ”暂停按钮 按下此按钮,可暂停信号采集,方便用户仔细观察显示屏上的波形。

4“S AVE ”存盘按钮和存盘路径设置文本框 用户可在文本框中指定保存文件的位置,点击“S AVE ”按钮,以文本文件的格式存储数据。文本文件可导入EXCE L 、MAT LAB 等软件进行处理。用户亦可用“Print Screen ”键直接剪取波形图。

5“VERT MODE ”显示模式选择开关 只观测A 或B 通道信号时,选择器置于“A ”或“B ”。设计程序时,线路输入插孔左声道采集的信号送入A 通道,右声道采集的信号送入B 通道。“A&B ”用于同时显示两通道信号。“A +B ”和“A -B ”用于显示两通道信号相加和相减后的波形。

6电压显示 虚拟示波器附加了电压表的功能,显示屏下两个文本框分别用于显示A 、B 通道的电压幅值。

使用前,需要制作一根测试电缆用于输入信号。方法是用一个立体声插头,接一段1~2m 长的双芯屏蔽线,分别对应立体声插头的地线、左声道、右声道,构成测试电缆,电缆的另一端接上三个鳄鱼夹。为确保虚拟仪器正常工作,要正确设置声卡:送入虚拟示波器的信号若为线路输入信号,通过L I N E I N 插孔输入,在音量控制面板的录音属性中选择“线路输入”一项;若为麦克风信号,通过M I C 插孔输入,在录音属性中选择“麦克风”一项。输入电压不能超过声卡的承受范围,以免损坏声卡,对于线路输入插孔,一般为-1V ~1V 。若测量的信号超过此范围,需先将信号衰减。

虚拟示波器程序安装在不同计算机上时,对于信号频率的

测量没有影响,由波形计算出的信号频率与真实值一致;对于信号幅度的测量,由于线路输入音量大小的不同,在使用前需要定标,以后的测量中,不必再调节线路输入音量大小。

4 虚拟示波器软件设计 4.1 总体结构

虚拟示波器程序采用W hile 循环结构,示波器的电源开关状态作为循环的控制条件,包含数据采集、电压显示、触发控制、垂直方向波形调节、水平方向波形调节、显示模式选择、波形显示和波形存储8个模块,各模块之间的关系如图2所示。框图程序见图3

图2 虚拟示波器总体结构 图3 虚拟示波器框图程序 4.2 数据采集

SI Config 节点和SI Start 节点放在循环的外部,设置声卡参

数和数字声音格式,并驱动声卡开始采集数据。SI Clear 节点也 放在循环外部,并由数据流程控制,在程序停止时释放声卡占用的资源。 “P AUSE ”按钮按下时,用SI St op 节点停止数据采集,进入W hile 循环,直到弹起“P AUSE ”按钮,循环中止,用SI Start 节点重新驱动声卡采集数据。SI Read 节点读取包含16bits 立体声数据的数组,由I ndex A rray 函数分别提取左声道和右声道数据,作为示波器CH A 与CH B 的输入信号。需要注意的是:在各个声道声卡每次读取的数据点数为8192,即SI Read 节点读取的数组维数为8192行×2列,提取左、右声道数据时,要按列进行,“0”列对应左声道数据,“1”列对应右声道数据。

样本位数为16bits 的数据其范围为-32768~32767,为便于虚拟示波器电压读数与信号真实参数相同,将声卡采集的数据除以某个数值。根据声卡线路输入插孔的输入电压范围,设定虚拟示波器可测到的最高电压为1V,可将此除数设为32767,当输入的信号高于1V 时,示波器的波形失真。

4.3 触发控制 图4 软件触发原理图

触发控制子程序实现选择触发源、根据触发电平的大小和触发极性进行触发。其原理如图4所示,首先判断用户设置的触发电平大小是否在波峰和波谷范围内,在此范围内则进行触发。对输入电压信号的第i 点和第

第3期

吕红英等:Lab V I E W 环境下基于声卡的虚拟示波器软件设计63 图5 触发控制框图程序 i +1点的值进行比较, 正极性触发时,若第i

点的值等于或小于触发电平,同时第i +1点的值大于触发电平,则第i 点为触发点,将此值送入触发控制子程序后的A rray Subset 函数的“in 2dex ”端口,每次采集数

据后,都从触发点开始提取子数组,送入显示屏,实现波形的同步显示。负极性触发时与之相反。子程序框图如图5所示。

4.4 电压灵敏度调节

可以采用不同档位时对显示屏wavef or m graph 的三个属性节点“YScale .M axi m u m ”、“YScale .M ini m u m ”和“YScale .I ncre 2ment ”赋不同值的方法。但这样调节CH A 电压/分度衰减器时,CH B 的波形也随之变化。故采用另一种方法。

固定显示屏wavefor m graph 的Y 轴刻度即电压刻度,范围为-0.5V ~0.5V,在垂直方向占10个格,每个格分为5个小格。为使波形在垂直方向所占的格数与档位变化相一致,采用按比例放大或缩小数组数据的方法。电压/分度衰减器“VOLT/D I V ”的值作为Case 结构条件,Case “0~9”中,分别将数组除以不同的数值。由于Y 轴刻度值固定,因此选择不同档位时,波形在垂直方向上所占的格数与其档位相乘,其值是恒定的。如对于幅值为0.2V 的正弦信号,当档位为0.1V /格时,在Y 轴刻度范围为-0.5V ~0.5V 的显示屏上,其半波形占2个格;当档位变为0.2V /格时,由于除数由“1”变为“2”,数据值减小为原来的一半,即电压幅值变为0.1V,此时在显示屏上,其半波形占1个格。两种情况下波形在垂直方向上所占的格数与其档位的乘积相等。,就可以分别调节CH A 和CH B 波形的电压灵敏度。

4.5 水平方向波形调节 (1时间灵敏度调节

与电压灵敏度的调节相似,可以采用不同档位时对显示屏

wavefor m graph 的三个属性节点“XScale .Maxi m u m ”、“XScale .M ini m u m ”和“XScale .I ncre ment ”赋不同值的方法。但用这种方