基于LabVIEW和聲卡的虛擬儀器設(shè)計(jì)與實(shí)現(xiàn)
本文引用地址:http://www.ex-cimer.com/article/255832.htm
2.3 虛擬信號(hào)發(fā)生器的程序框圖設(shè)計(jì)
程序框圖是圖形化的源代碼,前面板中的每個(gè)控件在程序框圖中都有相應(yīng)的接線端與之對(duì)應(yīng),通過數(shù)據(jù)連線和不同的程序結(jié)構(gòu)即可控制整個(gè)程序的流程和數(shù)據(jù)傳遞。虛擬信號(hào)發(fā)生器的程序框圖主要包括3個(gè)模塊:聲卡配置模塊、波形設(shè)置模塊和波形輸出模塊,如圖3所示。
聲卡配置模塊首先設(shè)置“配置聲音輸出”函數(shù),本設(shè)計(jì)將聲卡設(shè)置為連續(xù)采樣,每通道緩沖數(shù)和聲音格式都可以在前面板進(jìn)行設(shè)置。然后將采樣信息傳輸?shù)?ldquo;波形設(shè)置模塊”,選擇所要產(chǎn)生波形的類型。
波形設(shè)置模塊使用條件結(jié)構(gòu)選擇不同類型的波形,可以分別選擇正弦波、方波、鋸齒波、三角波、高斯白噪聲、疊加正弦波以及自定義波形。該模塊還可以設(shè)置相應(yīng)的波形參數(shù),包括頻率、幅度、偏移量和方波占空比。
數(shù)據(jù)輸出模塊調(diào)用“寫入聲音輸出”函數(shù),通過聲音輸出設(shè)備輸出聲音信號(hào)。最后由“聲音輸出清零”清空緩沖區(qū),結(jié)束任務(wù)。
3 虛擬示波器設(shè)計(jì)
本文利用LabVIEW中的數(shù)字聲音記錄節(jié)點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了基于聲卡的虛擬雙蹤數(shù)字存儲(chǔ)示波器,采樣頻率為44.1 kHz,線路輸入端口最高電壓限制為1 V,對(duì)高于1 V的信號(hào)采用比例運(yùn)算放大電路衰減后輸入,能適合很多場(chǎng)合的需要。
設(shè)計(jì)的虛擬示波器的技術(shù)指標(biāo)如下:
1)輸入頻率范圍:10~20 000 Hz;
2)通道數(shù):2;
3)采樣頻率:44.1 kHz;
4)ADC分辨率:16位。
虛擬示波器的兩個(gè)重要指標(biāo)分別是分辨力(指能辨別一個(gè)物體不同部分的能力)和精度。其中分辨力包括水平分辨力和垂直分辨力,精度也包括水平和垂直兩種精度。虛擬示波器的水平分辨力是由時(shí)鐘信號(hào)采樣點(diǎn)的時(shí)間間隔決定的。采樣頻率越高,水平分辨力就越高。虛擬示波器的垂直分辨力是由模數(shù)轉(zhuǎn)換器的位數(shù)決定的,n位的轉(zhuǎn)換器有2-n的分辨力。因?yàn)樗捎玫穆暱ㄊ?6位的,其在垂直方向上可以分辨出65536個(gè)數(shù)據(jù)點(diǎn),分辨力為1/65536。虛擬示波器的垂直精度受模數(shù)轉(zhuǎn)換器精度的限制,一般要比分辨力低。
3.1 LabVIEW中有關(guān)聲卡信號(hào)采集的主要函數(shù)
在LabVIEW的函數(shù)選板下有“聲音”選項(xiàng),在該選項(xiàng)下,LabVIEW提供了一系列使用Windows底層函數(shù)編寫的與聲卡有關(guān)的函數(shù),這些函數(shù)主要分為兩大模塊:聲音輸入和聲音輸出。在虛擬示波器程序設(shè)計(jì)中主要用到的是“聲音輸入”模塊,如圖4所示。
1)“配置聲音輸入”函數(shù)。該函數(shù)的作用是配置聲音輸入設(shè)備,采集數(shù)據(jù),并把數(shù)據(jù)存放到緩沖區(qū),后面使用“讀取聲音輸入”VI將數(shù)據(jù)從緩沖區(qū)讀入。
2)“讀取聲音輸入”函數(shù)。該函數(shù)的作用是將數(shù)據(jù)從緩沖區(qū)讀入。在使用該VI之前,必須使用“配置聲音輸入”VI來配置設(shè)備。
3)“聲音輸入清零”函數(shù)。一般聲音輸出設(shè)備不可共享,若在某個(gè)程序運(yùn)行之前,設(shè)備已經(jīng)被其他程序占用,則此應(yīng)用程序不能再使用該設(shè)備,所以,在程序中一旦對(duì)聲卡使用完畢,應(yīng)該立即釋放。該函數(shù)的主要作用是使設(shè)備停止聲音數(shù)據(jù)采集,清空緩存,從任務(wù)返回至默認(rèn)的未配置的狀態(tài),并清空與任務(wù)相關(guān)的資源,任務(wù)變?yōu)闊o效。
3.2 虛擬示波器的前面板設(shè)計(jì)
前面板用來提供用戶與虛擬示波器的接口,通過一個(gè)友好的圖形界面,模擬傳統(tǒng)儀器操作,實(shí)現(xiàn)對(duì)虛擬示波器的控制,并且顯示數(shù)據(jù)處理結(jié)果。
本文設(shè)計(jì)的虛擬示波器的前面板如圖5所示,按照功能來分,顯示屏可以分別顯示原信號(hào)波形圖和信號(hào)的頻譜圖,波形圖開關(guān)、頻譜圖開關(guān)可以暫停畫面便于保存截圖,保存圖像按鈕可以將截圖保存為bmp圖像,通道選擇部分可以選擇單通道或是雙通道一起顯示,觸發(fā)部分可以調(diào)控信號(hào)的觸發(fā)源、觸發(fā)極性以及觸發(fā)電位,標(biāo)定比率便于標(biāo)定電壓,采樣數(shù)用于確定采樣精度,定位部分可以分別調(diào)節(jié)顯示精度、幅度和偏移,信息按鈕可以顯示相關(guān)制作信息。
3.3 虛擬示波器的程序框圖設(shè)計(jì)
3.3.1 總體設(shè)計(jì)
虛擬示波器的程序框圖主要包括數(shù)據(jù)采集模塊,波形顯示模塊,頻譜分析模塊,XY軸設(shè)置模塊,觸發(fā)設(shè)置模塊,圖像暫停與截圖模塊和信息顯示模塊7大部分,如圖6所示。下面結(jié)合虛擬示波器的相關(guān)功能模塊來分別介紹對(duì)應(yīng)的程序框圖。
3.3.2 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊利用聲卡數(shù)據(jù)采集函數(shù)完成聲卡采集時(shí)一些必要參數(shù)的設(shè)置,如聲卡采樣模式、采樣數(shù)、設(shè)備ID等,并將聲卡采集到的信號(hào)(已由模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào))傳送給波形顯示模塊。其工作流程如下:
1)使用配置聲音輸入函數(shù)確定聲卡的參數(shù)和數(shù)字聲音格式,如緩沖區(qū)大小、采樣速率、采樣模式(固定點(diǎn)數(shù)采樣或連續(xù)采樣)、采樣通道數(shù)、樣本位數(shù)(16 bit或8 bit),本設(shè)計(jì)的虛擬示波器采用雙通道連續(xù)采樣,采樣頻率為44100,樣本位數(shù)為16,每通道采樣數(shù)可以在前面板上設(shè)置。
2)使用讀取聲音輸入函數(shù)從緩沖區(qū)中讀取采樣數(shù)據(jù),從采集到的波形數(shù)組中選擇一個(gè)波形送到波形顯示模塊,使用while循環(huán)使采樣連續(xù)進(jìn)行。
dc相關(guān)文章:dc是什么
c++相關(guān)文章:c++教程
模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理
負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理 離子色譜儀相關(guān)文章:離子色譜儀原理
評(píng)論