新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于LabVIEW和声卡的虚拟仪器设计与实现

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

作者:时间:2014-07-21来源:网络收藏

  

本文引用地址:http://www.eepw.com.cn/article/255832.htm

 

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

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

  

 

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

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

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

  3 虚拟示波器设计

  本文利用中的数字声音记录节点,设计并实现了基于声卡的虚拟双踪数字存储示波器,采样频率为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提供了一系列使用Windows底层函数编写的与声卡有关的函数,这些函数主要分为两大模块:声音输入和声音输出。在虚拟示波器程序设计中主要用到的是“声音输入”模块,如图4所示。

  

 

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

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

  3)“声音输入清零”函数。一般声音输出设备不可共享,若在某个程序运行之前,设备已经被其他程序占用,则此应用程序不能再使用该设备,所以,在程序中一旦对声卡使用完毕,应该立即释放。该函数的主要作用是使设备停止声音数据采集,清空缓存,从任务返回至默认的未配置的状态,并清空与任务相关的资源,任务变为无效。

  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循环使采样连续进行。

dc相关文章:dc是什么


c++相关文章:c++教程


模数转换器相关文章:模数转换器工作原理


负离子发生器相关文章:负离子发生器原理
离子色谱仪相关文章:离子色谱仪原理


评论


相关推荐

技术专区

关闭