虛擬儀器技術(shù)的提出和發(fā)展,標(biāo)志著二十一世紀(jì)自動(dòng)測(cè)試與電子測(cè)量?jī)x器領(lǐng)域技術(shù)發(fā)展的一個(gè)重要方向。所謂虛擬儀器,就是在通用的計(jì)算機(jī)平臺(tái)上定義和設(shè)計(jì)儀器的測(cè)試功能,使用者在操作這臺(tái)計(jì)算機(jī)時(shí)就像在使用一臺(tái)自己設(shè)計(jì)的專用的傳統(tǒng)電子儀器。操作人員可通過友好的圖形化用戶界面和圖形化編程語(yǔ)言來控制儀器的啟動(dòng)、運(yùn)行和結(jié)束,完成對(duì)被測(cè)信號(hào)的數(shù)據(jù)采集、信號(hào)分析、譜圖顯示、波形圖顯示、故障診斷、數(shù)據(jù)存儲(chǔ)以及控制輸出等功能。
虛擬儀器系統(tǒng)中,硬件解決信號(hào)的輸入和輸出,軟件可以很方便地修改,改變儀器系統(tǒng)的功能,以適應(yīng)不同使用者的需要。其中信號(hào)的輸入部分一般使用數(shù)據(jù)采集卡實(shí)現(xiàn)。商用的數(shù)據(jù)采集卡具有較大的通用性,但其價(jià)格昂貴。普通聲卡,具有16位的量化精度、數(shù)據(jù)采集頻率是44kHz,完全可以滿足特定應(yīng)用范圍內(nèi)數(shù)據(jù)采集的需要。
2 虛擬儀器軟件開發(fā)工具LabVIEW介紹
LabVIEW是一種基于G語(yǔ)言(Graphical programming language)的可視化(圖形化)優(yōu)秀開發(fā)平臺(tái),主要用于數(shù)據(jù)的采集、分析、處理和表達(dá),總線接口、VXI儀器以及GPIB與串口儀器的驅(qū)動(dòng)程序編制和驅(qū)動(dòng)虛擬儀器。它與C、Pascal等傳統(tǒng)編程語(yǔ)言有著諸多相似之處,如相似的數(shù)據(jù)類型、數(shù)據(jù)流控制結(jié)構(gòu)、程序調(diào)試工具等。與傳統(tǒng)編程語(yǔ)言最大的區(qū)別是LabVIEW使用圖形語(yǔ)言(即各種圖標(biāo)、圖形符號(hào)、連線等),以框圖的形式編寫程序。
一個(gè)LabVIEW程序包括三個(gè)主要部分:前面板、框圖程序、圖標(biāo)/接線端口。前面板是交互式圖形化用戶界面,用于設(shè)置輸入數(shù)值和觀察輸出量?驁D程序是利用圖形語(yǔ)言對(duì)前面板的控制量和指示量進(jìn)行控制。圖標(biāo)/接線端口用于把LabVIEW程序定義成一個(gè)子程序,以便在其它程序中加以調(diào)用[1]。
3 虛擬示波器的設(shè)計(jì)與實(shí)現(xiàn)
本虛擬數(shù)字示波器主要由普通的聲卡和相應(yīng)的軟件組成。其操作與顯示主面板如圖1所示。

圖1 虛擬示波器前面板圖
3.1數(shù)據(jù)采集的實(shí)現(xiàn)
在一塊聲卡上有晶振、AD/DA轉(zhuǎn)換芯片和數(shù)字信號(hào)處理芯片及其他輔助電路。因此,它可以作為數(shù)據(jù)采集卡使用,不過被采信號(hào)的頻率被限制在音頻范圍之內(nèi)。設(shè)定了采樣頻率、采樣位數(shù)、緩沖區(qū)大小之后,再利用聲卡的DMA方式進(jìn)行數(shù)據(jù)采集工作[2]。本文在LabVIEW環(huán)境下,借助硬件驅(qū)動(dòng)程序?qū)β暱ǖ牟蓸宇l率、采樣位數(shù)、緩沖區(qū)大小等分別進(jìn)行控制,根據(jù)用戶的需要調(diào)整波形顯示,進(jìn)行波形分析,從而構(gòu)成功能強(qiáng)大的虛擬存儲(chǔ)示波器。
本虛擬示波器所能測(cè)量的信號(hào)全部為弱電,大約為1 VAC以下的信號(hào)(一般由聲卡的性能決定),如果需要測(cè)量更大的信號(hào),需要將信號(hào)衰減到量程以內(nèi)。
3.2 軟件設(shè)計(jì)
虛擬示波器主要由軟件控制完成參數(shù)的設(shè)置,信號(hào)的采集、處理和顯示。系統(tǒng)軟件總體上包括音頻參數(shù)的設(shè)置,音頻信號(hào)的采集、波形顯示、頻譜分析及波形存儲(chǔ)和回放等五大模塊,功能結(jié)構(gòu)框圖如圖2所示。

3.2.1 音頻格式設(shè)置模塊
由于本軟件設(shè)置了一塊聲卡,所以只能實(shí)現(xiàn)單蹤數(shù)字示波器。本模塊主要完成對(duì)聲卡采樣頻率、采樣位數(shù)、緩沖區(qū)大小等參數(shù)的設(shè)置。其中:
·采樣頻率(Hz):8000、11025、22050、44100
·采樣位數(shù):8位、16位
3.2.2 數(shù)據(jù)采集模塊
LabVIEW環(huán)境下的功能模板中提供了聲卡的相關(guān)VIs,如SI Config、SI Start、SI Read、SI Stop等。當(dāng)設(shè)定好聲卡的音頻格式并啟動(dòng)了聲卡后,聲卡就可以實(shí)現(xiàn)數(shù)據(jù)采集,采集到的數(shù)據(jù)通過DMA傳送到內(nèi)存中指定的緩沖區(qū),當(dāng)緩沖區(qū)滿后,再通過查詢或中斷機(jī)制通知CPU執(zhí)行顯示程序顯示緩沖區(qū)數(shù)據(jù)的波形。數(shù)據(jù)采集的部分G代碼如圖3所示。

圖3 數(shù)據(jù)采集的部分G代碼
3.2.3 波形顯示和頻譜分析模塊
通過幅值和基準(zhǔn)時(shí)間兩個(gè)旋鈕分別實(shí)現(xiàn)波形橫縱坐標(biāo)的變化范圍。頻譜分析測(cè)量音頻信號(hào)的最大、最小幅值和頻率。采用快速FFT算法,完成頻域信號(hào)分析,顯示自功率譜波形。