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

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

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

能够产生常用的基本波形,并且实现了频率显示,频率调节,幅值调节,直流偏置调节和频率扫描等功能。整个程序结构设计采用在LabVIEW状态机的基础上引入事件结构的方法,提高了程序的运行效率。

2.1 LabVIEW中有关声卡信号输出的主要函数

在虚拟信号发生器的设计中,用到了LabVIEW软件“声音输出”模块部分的函数,如图1所示。下面对设计过程中用到的主要函数及其功能作简单介绍:

1)“配置声音输出”函数。该函数的作用是配置一个生成数据的声音输出设备,初始化声卡的配置,包括采样频率,采样模式,声卡参数等。

2)“设置声音输出音量”函数。该函数用来设置声音输出设备的播放音量。

3)“写入声音输出”函数。该函数将准备好的数据写入声卡驱动程序进行播放输出。

4)“声音输出清零”函数。该函数使设备停止播放音频,清空缓存,将任务返回至默认的未配置的状态,并清空与任务相关的资源,将任务变为无效。

2.2 虚拟信号发生器的前面板设计

前面板为用户提供了友好的操作界面,本文根据传统仪器的操作面板和本仪器所能实现的功能设计了虚拟信号发生器的前面板,如图2所示。前面板主要由四个部分组成,包括波形显示部分、公共参数设置部分、CH1通道和CH2通道设置部分。波形显示部分用于显示两个通道的输出波形,公共参数设置部分用于设置声卡的采样率、通道数、采样位数、缓冲区大小和音量,CH1和CH2通道进行设置每个通道生成的波形参数,包括波形类型、频率、偏移量、幅度、方波占空比、噪声等,并可以利用公式输出自定义波形。

2.3 虚拟信号发生器的程序框图设计

程序框图是图形化的源代码,前面板中的每个控件在程序框图中都有相应的接线端与之对应,通过数据连线和不同的程序结构即可控制整个程序的流程和数据传递。虚拟信号发生器的程序框图主要包括3个模块:声卡配置模块、波形设置模块和波形输出模块,如图3所示。

声卡配置模块首先设置“配置声音输出”函数,本设计将声卡设置为连续采样,每通道缓冲数和声音格式都可以在前面板进行设置。然后将采样信息传输到“波形设置模块”,选择所要产生波形的类型。

波形设置模块使用条件结构选择不同类型的波形,可以分别选择正弦波、方波、锯齿波、三角波、高斯白噪声、叠加正弦波以及自定义波形。该模块还可以设置相应的波形参数,包括频率、幅度、偏移量和方波占空比。

数据输出模块调用“写入声音输出”函数,通过声音输出设备输出声音信号。最后由“声音输出清零”清空缓冲区,结束任务。

3 虚拟示波器设计

本文利用LabVIEW中的数字声音记录节点,设计并实现了基于声卡的虚拟双踪数字存储示波器,采样频率为44.1 kHz,线路输入端口最高电压限制为1 V,对高于1 V的信号采用比例运算放大电路衰减后输入,能适合很多场合的需要。

设计的虚拟示波器的技术指标如下:

1)输入频率范围:10~20 000 Hz;

2)通道数:2;

3)采样频率:44.1 kHz;

4)ADC分辨率:16位。

虚拟示波器的两个重要指标分别是分辨力(指能辨别一个物体不同部分的能力)和精度。其中分辨力包括水平分辨力和垂直分辨力,精度也包括水平和垂直两种精度。虚拟示波器的水平分辨力是由时钟信号采样点的时间间隔决定的。采样频率越高,水平分辨力就越高。虚拟示波器的垂直分辨力是由模数转换器的位数决定的,n位的转换器有2-n的分辨力。因为所采用的声卡是16位的,其在垂直方向上可以分辨出65536个数据点,分辨力为1/65536。虚拟示波器的垂直精度受模数转换器精度的限制,一般要比分辨力低。

3.1 LabVIEW中有关声卡信号采集的主要函数

在LabVIEW的函数选板下有“声音”选项,在该选项下,LabVIEW提供了一系列使用Windows底层函数编写的与声卡有关的函数,这些函数主要分为两大模块:声音输入和声音输出。在虚拟示波器程序设计中主要用到的是“声音输入”模块,如图4所示。

1)“配置声音输入”函数。该函数的作用是配置声音输入设备,采集数据,并把数据存放到缓冲区,后面使用“读取声音输入”VI将数据从缓冲区读入。

2)“读取声音输入”函数。该函数的作用是将数据从缓冲区读入。在使用该VI之前,必须使用“配置声音输入”VI来配置设备。

3)“声音输入清零”函数。一般声音输出设备不可共享,若在某个程序运行之前,设备已经被其他程序占用,则此应用程序不能再使用该设备,所以,在程序中

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

网站地图

Top