微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于LabVIEW和声卡的虚拟仪器设计与实现

基于LabVIEW和声卡的虚拟仪器设计与实现

时间:07-21 来源:互联网 点击:

一旦对声卡使用完毕,应该立即释放。该函数的主要作用是使设备停止声音数据采集,清空缓存,从任务返回至默认的未配置的状态,并清空与任务相关的资源,任务变为无效。

3.2 虚拟示波器的前面板设计

前面板用来提供用户与虚拟示波器的接口,通过一个友好的图形界面,模拟传统仪器操作,实现对虚拟示波器的控制,并且显示数据处理结果。

本文设计的虚拟示波器的前面板如图5所示,按照功能来分,显示屏可以分别显示原信号波形图和信号的频谱图,波形图开关、频谱图开关可以暂停画面便于保存截图,保存图像按钮可以将截图保存为bmp图像,通道选择部分可以选择单通道或是双通道一起显示,触发部分可以调控信号的触发源、触发极性以及触发电位,标定比率便于标定电压,采样数用于确定采样精度,定位部分可以分别调节显示精度、幅度和偏移,信息按钮可以显示相关制作信息。

3.3 虚拟示波器的程序框图设计

3.3.1 总体设计

虚拟示波器的程序框图主要包括数据采集模块,波形显示模块,频谱分析模块,XY轴设置模块,触发设置模块,图像暂停与截图模块和信息显示模块7大部分,如图6所示。下面结合虚拟示波器的相关功能模块来分别介绍对应的程序框图。

3.3.2 数据采集模块

数据采集模块利用声卡数据采集函数完成声卡采集时一些必要参数的设置,如声卡采样模式、采样数、设备ID等,并将声卡采集到的信号(已由模拟信号转换为数字信号)传送给波形显示模块。其工作流程如下:

1)使用配置声音输入函数确定声卡的参数和数字声音格式,如缓冲区大小、采样速率、采样模式(固定点数采样或连续采样)、采样通道数、样本位数(16 bit或8 bit),本设计的虚拟示波器采用双通道连续采样,采样频率为44100,样本位数为16,每通道采样数可以在前面板上设置。

2)使用读取声音输入函数从缓冲区中读取采样数据,从采集到的波形数组中选择一个波形送到波形显示模块,使用while循环使采样连续进行。

3)使用声音输入清零函数停止数据采集,清空缓存,从任务返回至默认的未配置的状态,并清空与任务相关的资源,使任务变为无效。

3.3.3 波形显示和频谱分析模块

信号从数据采集模块输出后乘以标定比率,然后分成两路,一路直接进入波形图控件在前面板显示信号的时域波形,另一路进行FFT分析后再输入波形图控件在前面板显示信号的频谱图。

3.3.4 XY轴设置模块

波形显示模块负责显示波形,并且可以通过旋钮来控制X轴和Y轴量程和偏移,同时根据通道的选择(通道A或者通道B)显示相应的波形。

X轴控制是时间轴调节。“X轴精度”调节每刻度显示的时间长度。在该控件中设置6个档位,档位越小显示的越精确。“X轴精度”中0.5ms/div档表示时间轴是从0~0.003 s,增量为0.5 ms,起始时刻为0。由于屏幕大小限制,还需要“X轴偏移”来调节屏幕标尺来显示其他部分的波形,在该控件中设置了14个档位,档位每增加一位屏幕显示向右移动一格。

Y轴控制是幅度调节。“Volts/Div”调节每刻度显示的电压值,在该控件中设置5个档位,档位越高每格显示的电压越大精确度越低。“Y轴偏移”控制信号在Y轴方向上下移动,该控件与信号相加可以使信号整体向上或者向下移动。设标定比率为N,则Y轴偏移的范围为-N~+N。

3.3.5 触发控制模块

示波器的触发功能可以稳定重复的波形,捕获单次波形,这对清楚地检定信号至关重要。虚拟示波器触发控制模块通过子VI来实现,如图7所示。的输入端有波形数据输入(通道A、通道B)、触发极性(Slope)输入(上升沿、下降沿)、触发电平(Ievel)输入、触发源(Source)输入(内触发、外触发)。

程序运行后,首先判断用户触发源的选择,当触发源选择“外触发”时,直接将输出的波形数据输出;当触发源选择“内触发”时,执行边沿子VI。

边沿子VI由一个波形数组索引实现,该子程序实现选择触发源、根据触发电平的大小和触发极性进行触发的功能。其原理如图8所示,首先判断用户设置的触发电平大小是否在波峰和波谷范围内,在此范围内则进行触发。对输入电压信号的第i点和i+1点的值进行比较,正极性触发时,若第i点的值等于或小于触发电平,同时第i+1点的值大于触发电平,则第i点为触发点,将此值送入触发子VI数组子集函数的“ind ex”端口,每次采集数据后,都从触发点开始提取子数组,送入前面板,实现波形的同步显示。负极性触发时与之相反。

3.3.6 图像暂停与截图模块

图像暂停模块通过条件结构来选择相应的程序,当前面板的开

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top