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

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

3.2.1 音頻格式設(shè)置模塊
由于本軟件設(shè)置了一塊聲卡,所以只能實現(xiàn)單蹤數(shù)字示波器。本模塊主要完成對聲卡采樣頻率、采樣位數(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è)定好聲卡的音頻格式并啟動了聲卡后,聲卡就可以實現(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)時間兩個旋鈕分別實現(xiàn)波形橫縱坐標(biāo)的變化范圍。頻譜分析測量音頻信號的最大、最小幅值和頻率。采用快速FFT算法,完成頻域信號分析,顯示自功率譜波形。