2 虛擬儀器軟件開發工具LabVIEW介紹
LabVIEW是一種基于G語言(Graphical programming language)的可視化(圖形化)優秀開發平臺,主要用于數據的采集、分析、處理和表達,總線接口、VXI儀器以及GPIB與串口儀器的驅動程序編制和驅動虛擬儀器。它與C、Pascal等傳統編程語言有著諸多相似之處,如相似的數據類型、數據流控制結構、程序調試工具等。與傳統編程語言的區別是LabVIEW使用圖形語言(即各種圖標、圖形符號、連線等),以框圖的形式編寫程序。
一個LabVIEW程序包括三個主要部分:前面板、框圖程序、圖標/接線端口。前面板是交互式圖形化用戶界面,用于設置輸入數值和觀察輸出量。框圖程序是利用圖形語言對前面板的控制量和指示量進行控制。圖標/接線端口用于把LabVIEW程序定義成一個子程序,以便在其它程序中加以調用[1]。
3 虛擬示波器的設計與實現
本虛擬數字示波器主要由普通的聲卡和相應的軟件組成。其操作與顯示主面板如圖1所示。
圖1 虛擬示波器前面板圖
3.1數據采集的實現
在一塊聲卡上有晶振、AD/DA轉換芯片和數字信號處理芯片及其他輔助電路。因此,它可以作為數據采集卡使用,不過被采信號的頻率被限制在音頻范圍之內。設定了采樣頻率、采樣位數、緩沖區大小之后,再利用聲卡的DMA方式進行數據采集工作[2]。本文在LabVIEW環境下,借助硬件驅動程序對聲卡的采樣頻率、采樣位數、緩沖區大小等分別進行控制,根據用戶的需要調整波形顯示,進行波形分析,從而構成功能強大的虛擬存儲示波器。
本虛擬示波器所能測量的信號全部為弱電,大約為1 VAC以下的信號(一般由聲卡的性能決定),如果需要測量更大的信號,需要將信號衰減到量程以內。
3.2 軟件設計
虛擬示波器主要由軟件控制完成參數的設置,信號的采集、處理和顯示。系統軟件總體上包括音頻參數的設置,音頻信號的采集、波形顯示、頻譜分析及波形存儲和回放等五大模塊,功能結構框圖如圖2所示。
3.2.1 音頻格式設置模塊
由于本軟件設置了一塊聲卡,所以只能實現單蹤數字示波器。本模塊主要完成對聲卡采樣頻率、采樣位數、緩沖區大小等參數的設置。其中:
·采樣頻率(Hz):8000、11025、22050、44100
·采樣位數:8位、16位
3.2.2 數據采集模塊
LabVIEW環境下的功能模板中提供了聲卡的相關VIs,如SI Config、SI Start、SI Read、SI Stop等。當設定好聲卡的音頻格式并啟動了聲卡后,聲卡就可以實現數據采集,采集到的數據通過DMA傳送到內存中指定的緩沖區,當緩沖區滿后,再通過查詢或中斷機制通知CPU執行顯示程序顯示緩沖區數據的波形。數據采集的部分G代碼如圖3所示。
圖3 數據采集的部分G代碼
3.2.3 波形顯示和頻譜分析模塊
通過幅值和基準時間兩個旋鈕分別實現波形橫縱坐標的變化范圍。頻譜分析測量音頻信號的、最小幅值和頻率。采用快速FFT算法,完成頻域信號分析,顯示自功率譜波形。