曾明崗,賴萬昌,毛 偉,王廣西
(成都理工大學 核技術與自動化工程學院,四川 成都 610059)
示波器是現今電子行業測量最常用的儀器之一。盡管隨著現代科學技術的發展,傳統的示波器從外型笨重及功能單一,發展到了現在功能比較復雜的數字示波器。但是由于制作工藝水平的原因,導致示波器的價格比較昂貴。虛擬儀器技術的出現,改變了現狀,我們可以利用虛擬儀器技術開發出操作界面友好操作簡單實用的廉價的虛擬示波器。針對于成本問題,文中采用的聲卡代替專業數據卡對數據進行采集,開發出一款虛擬示波器,完全能應付實驗室教學。
聲卡本身就是一個很有優秀的數據采集系統,它同時兼有A/D和D/A轉換功能,不僅價格低廉,而且性能穩定,靈活通用。現如今市面上的聲卡多的采樣位數多為16位,高級一點的聲卡的采樣位甚至達到了32位。聲卡采用左右聲道的雙聲道設計方式,可以同時采集兩路信號,當要實現多通道采集數據時,可以考慮采用高級一些是聲卡或者配置多塊聲卡。特別注意的是聲卡的輸入端最高電壓限制為1 V,對于高于1 V的信號可以通過衰減電路度后輸入,這樣一來就能適合多種場合的需要。
LabVIEW(laboratory virtual instrument engineering work beneh—實驗室虛擬儀器工程平臺)是美國國家儀器公司(NI公司)推出的一種基于“圖形”方式的集成化程序開發環境,它是NI司開發的面向儀器與測控過程的圖形化開發平臺,它的概念,是直觀的前面板與流程圖式的編程方法的結合。本設計中采用最新版的LabVIEW2011。系統軟件總體上包括數據采集、波形顯示、參數測量、頻譜分析、功率譜分析以及數據存儲和讀取、截圖。
數據采集是虛擬示波器器軟件的核心部分,文中是主要實現對聲卡進行數據采集的配置以及數據的獲取。利用Labview2011自帶的豐富是數據采集函數 (位于Function-Programming AGaphic&Sound sound子模板中)實現本課題的數據采集任務。調用了Acquire.vi,configure.vi,等函數實現信號的采集。為了防止在連續采集過程中數據的丟失,這里設置了一個緩沖區對才具的數據進行暫存。因為對于X86系列處理器而言,在保護模式下,內存以8KB為單位被分成很多頁。對內存的任意訪問都是按頁進行的,CPU保證了在讀寫8 kB長度的內存緩沖區是,速度足夠快,并且一般不會被外來事件中斷。通常設置8 192字節或者其倍數(例如32 768字節)大小的緩存,可以較好的保證聲卡與CPU的協調工作。
虛擬示波器的觸發控制模塊的輸入端有兩路波形數據輸入(通道 A、通道 B)、觸發極性(正觸發、負觸發)、觸發電平、觸發源輸入(立即觸發、通道A、通道B)。程序運行時,很據用戶觸發源的選擇分別執行相應的case,該過程運用到了子程序“觸發電平.vi”。

圖1 觸發電平.vi Fig.1 Trigger level.vi
在虛擬示波器中,時基的設置是為了保證對輸入信號采集到足夠數量的采樣值,并且每個采樣值取的正確的時刻。根據:
采樣速率=1/采樣間隔
采樣間隔=實際設置(s/格)/采樣點數
設置每個采樣點數,即可得到時基設置值。這里設置了5 ns/格,10 ns/格,20 ns/格,50 ns/格,20 ns/格,20 ns/格,5 ms/格,10 ms/格,20 ms/格。
在測量過程中,操作者往往需要觀察信號某一段幅值的細節變化,就需要細化幅值刻度,這里設置了2 mV/格,5 mV/格 ,10 mV/格 ,20 mV/格 ,50 mV/格 ,100 mV/格 ,200 mV/格 ,500 mV/格,1 V/格,2 V/格,5 V/格。
參數測量模塊包括峰峰值、頻率以及實現雙通道信號采集時的相位差測量并顯示結果。

圖2 參數測量Fig.2 Parameters measurement
程序利用case結構,實現單通道A,單通道B以及雙通道A&B 3種顯示方式的切換。然后將處理后的波形數據按序使用Bundle節點打包直接輸入波形顯示控件Waveform Graph,實現單通道波形顯示。對于雙通道顯示,采用Build Array節點把兩個通道的波形數據組成一個二維數組后再送入波形顯示控件Waveform Graph,從而實現雙通道波形的同時顯示。
因為時域分析工具較少,對于測量時采集到的時域信號,常常轉換到頻域進行處理。信號的頻域分析,即根據信號的頻域來估計和分析信號的組成及其特征量。通常頻域分析包括頻譜分析(Spectral Measurements.VI)、功率譜分析(FFT Power Spectrum.VI)以及相干函數分析。

圖3 通道選擇Fig.3 Channel selection
為了方便事后對測量結果的分析,本軟件分別設計了獨立的存儲和回讀功能。
保存按鈕:實現波形數據的存盤。LabVIEW支持兩種文件類型的保存方式:流文件(Byte Steam File)和塊記錄文件(Datalog File)。流文件的優點在于除了G語言之外,使用任何文本編輯器都可以進行查看。塊記錄是LabVIEW獨有的一種文件形式,是將數據作為由相同結構的記錄組成的一個序列來保存。每一行是一個記錄(record),每一個記錄都必須包含相同的數據結構。LabVIEW把每一個記錄作為一個簇寫入文件,記錄每一個組成元素可以使任何類型的。
數據回讀按鈕:從存儲的波形數據文件中讀取獲得歷史波形進行分析。
截圖按鈕:可以方便的捕捉到信號波形圖,方便事后快捷查看歷史波形的形狀進行初步分析。

圖4 捕捉波形Fig.4 Capture of waveform
文中采用圖形化編程語言LabVIEW和面向對象編程技術設計出了一款虛擬示波器,不僅能具有一般示波器的功能,而且實現了高級示波器上才有的頻譜分析充分發揮了PC機的強大功能,軟件的擴展性強,只需要通過對軟件簡單的的升級和擴展,示波器就可瞬間變成掃描儀等,大大縮短了研發周期,同時使原有的投入的資源被遺棄,減少了不必要的浪費,可替代實驗室傳統的示波器進行一般的實驗教學,從能節省實驗室的傳統設備資金投入,擁有很好的應用前景。
[1]楊樂平.LabVIEW高級程序設計[M].北京:清華大學出版社,2003.
[2]鄭繼明.聲卡在數據采集中的應用[J].國外電子測量技術,2000(5):28-29.
ZHENG Ji-ming.Sound card application in data acquisition[J].Foretgn Electronig Measurement Technology,2000(5):28-29.
[3]楊高科.LabVIEW虛擬儀器項目開發與管理[M].北京:機械工業出版社,2012.
[4]趙海龍.給LabVIEW中的對象添加自動打印功能[J].微計算機信息,2001,17(12):32-34.
ZHAO Hai-long.Adding automatically print function for objects in LabVIEW[J].MicroComputer Information,2001,17(12):32-34.
[5]王懷興.基于Labview的示波器仿真實驗程序設計[J].湖北第二師范學院學報,2008(8):80-81+92.
WANG Huai-xing.Simulation programming of oscillograph based on Labview[J].Journal of Hubei University of Education,2008(28):80-81+92.
[6]張立學.基于LabVIEW的虛擬數字示波器設計[J].長沙大學學報,2008(5):66-68.
ZHANG Li-xue.Simulation programming of virtual digital oscillograph based on Labview[J].Journal ofChangsha University,2008(5):66-68.