基于PXI總線的虛擬數字示波器軟件設計
虛擬數字示波器應用軟件設計
LabWindows/CVI是NI公司開發的基于C語言的軟件開發平臺,選用LabWindows/CVI用于虛擬示波器開發主要是基于LabWindows/CVI適用于各種測試、控制、故障分析及信息處理軟件的開發,尤其是大型、復雜的測試軟件,使用LabWindows/CVI開發可獲得優良的測試性能[3]。為方便用戶,設計的示波器面板使用方式與通用示波器無異,所有操作都與通用示波器類似,如圖2所示,它包含如下內容:
(1) 控制設置區:可由用戶控制相應控件設置時基、量程、測量通道、觸發方式、觸發極性、觸發電平、觸發位置、觸發通道、耦合方式和是否平滑和反相顯示波形,另外還專門有一個自動設置按鈕,按下此按鈕,軟件將自動為用戶設定合適的以上參數。
(2) 波形顯示區:軟面板左上部分按照標準示波器顯示規范,橫向分為10格,縱向分為8格;有可移動的兩個光標,可供用戶在波形顯示區任意拖動。

圖2示波器面板
(3) 光標及測量結果顯示區:分別可顯示光標1、2位置,光標相對位置及相應的時間/幅度差值。另外,還顯示出所測量信號的周期、頻率、峰峰值、有效值和平均值5個量值。
整個系統軟件總體模塊如圖3所示,主要包括:初始化模塊、結束程序模塊、控件消息處理模塊、波形數據采集處理顯示模塊、光標及測量結果顯示模塊。其中后兩部分軟件模塊嚴格說來也屬于一種特殊控件的消息處理。在CVI中有一類特殊控件稱為定時器(Timer),它在用戶界面上是隱藏的,根據預先設置的時間間隔不斷產生消息,利用其消息回調函數處理需要重復執行的代碼。波形采集處理顯示程序和數據顯示程序分別為20 ms和1.2 s周期循環執行。在執行這兩部分循環程序的同時,如果示波器面板上有控件被操作,應用程序將在兩次循環中間處理控件消息,如需要還將調用底層驅動程序對硬件進行相應的設置,例如用戶通過鼠標改變量程控件檔位時,對該控件消息的處理是根據改變后的量程檔位設置數據采集板上模擬調理通道上相應的衰減率。初始化模塊包括定位和開啟數據采集板、初始化用戶界面和設置相應初始硬件參數,然后可開始采集數據。另外,軟面板右下角有一個特殊按鍵“退出程序”,按下它則結束上述循環,退出應用程序。

圖3程序總框圖
要完成如圖2所示示波器功能,最終顯示波形和數據,波形數據采集處理和顯示是最重要的過程。當面板上“RUN/STOP”鍵狀態為“RUN”后,調用驅動程序開始數據采集過程,首先要根據觸發通道的不同和觸發方式的不同,選取不同的數據采集方式,同時根據用戶設置的觸發電平和觸發位置的不同也應該選擇采集不同時間段的被測數據。得到的數據在送做顯示之前,采集回來的波形數據根據需要可能還要經過一定的處理,如平滑、插值、防抖等。由于示波器的數字存儲功能、實時采樣特點,以及其單次觸發、滾動顯示、自動時基量程、波形停留、自動光標測量等特點,決定了此部分程序模塊時序復雜、分支龐多,是設計和調試的重點。
結束語
本文所述虛擬數字存儲示波器技術已運用在某自動測試系統中,其實現的示波器可雙通道同時工作于100MHz采樣頻率,檢測輸入范圍在10 mV~100V的信號(靈敏度為10mV)。該自動測試系統基于測試領域最先進的PXI總線技術,體積小巧、使用方便,抗干擾能力強,能滿足軍用研究所、基地維修中心等需要。
評論