虛擬儀器是利用高性能模塊化硬件,結合高效靈活的軟件,在通用的計算機平臺上,根據用戶需求設計儀器的測試功能.實現對信號的處理、計算、分析以及波形顯示。近年來,隨著微電子與計算機技術的飛速發展,以及測量技術與計算機的深層次相結合,虛擬儀器已成為國內外學者研究的熱點問題之一。
文獻提出的虛擬示波器" title="虛擬示波器">虛擬示波器是以PCI采集卡硬件為基礎,極大地限制了其連接和加載性能;文獻使用的串行接口傳輸采集設備傳輸速率不高,實時性也不理想;文獻所提出的虛擬示波器采用USB接口" title="USB接口">USB接口數據采集設備,雖然其技術日趨成熟,但其穩定性、數據吞吐量、傳輸速率與傳輸距離,均遜色于工業以太網" title="以太網">以太網技術。因此,將虛擬儀器技術與以太網技術相結合,在VC環境下利用其輔助開發包MFC開發出一種新型網絡化虛擬示波器,界面友好、數據準確,不但包含傳統虛擬示波器數據計算、頻譜分析和波形顯示等常規功能,還可實現波形的快速存儲、回放及遠程多機操控功能。
1 虛擬示波器硬件設計
虛擬示波器硬件系統結構如圖1所示。底層硬件采用基于DSP的嵌入式系統,該系統集成了信號調理電路、A/D轉換模塊以及網絡接口器件,完成對被測信號的采集、處理及發送功能:信號調理電路對各種不同的輸入模擬信號進行電壓轉換,使被采樣信號電壓幅值的變化范圍滿足A/D轉換模塊的要求,同時還對輸入信號進行濾波處理,減少信號失真和噪聲,阻止帶外頻率引入的虛假信號。A/D轉換模塊是嵌入式系統中最為重要的單元,選用TM320F2812DSP中的A/D轉換模塊具有12位精度,16通道最高采樣帶寬達12.5 MS/s。
圖1 虛擬示波器硬件系統結構
其優異的動態性能足以滿足虛擬示波器的要求。而系統網絡接口器件則選用以太網控制器LAN91C111,并將其作為外圍設備與MCU連接,該器件支持100/10 Mb/s的傳輸速率。嵌入式系統與上位機建立網絡連接之后通過以太網將數據傳輸至上位機,使用上層軟件完成數據的波形顯示,計算和相關分析等功能。
2 虛擬示波器軟件設計
為提高虛擬示波器程序的運行效率,編程采用多線程思想,所謂多線程就是將程序分割成相互獨立運行的子任務,其中包括主線程和分線程,利用CPU分時機制,每個線程都能循環地獲得自己的CPU時間,由于輪詢速度非常快,使得所有線程都像是在同時運行一樣。該虛擬示波器程序主線程進行數據處理,波形顯示;分線程則獨立完成接收UDP數據報、保存數據并向主線程發送消息的功能。虛擬示波器程序流程圖如圖2所示。
圖2 虛擬示波器程序流程圖
2.1 以太網數據通信設計
虛擬示波器采用分布式以太網接入技術,即將以太網控制模塊嵌入在嵌入式中,使設備能直接連接到以太網。嵌入式系統將包含被測信號數據信息的以太網數據幀發送到局域網內的上位機時。需要根據48 b的以太網硬件地址來確定目的接口。地址解析協議ARP為以太網硬件地址和IP地址提供映射。虛擬示波器運行時嵌入式系統向目的上位機發送ARP請求,預先設定好IP地址的上位機接收到報文后,識別出這是發送端在詢問它的硬件地址,則發送一個包含自身的IP地址和硬件地址的ARP應答,嵌入式系統收到應答之后便可向目的上位機發送數據報了。
嵌入式系統與上位機建立網絡連接之后要進行以太網通信還需要實現TCP/IP協議族以完成對數據的封裝和分用,在應用層、運輸層、網絡層、鏈路層4層協議系統中每層主要負責與其他機器上的對等層進行通信。其中鏈路層主要包括物理層和數據鏈路層。完成物理上的接口連結協議,設計中采用Ethemet(IEEE802.3)確保數據傳輸量;運輸層協議主要包括TCP和UDP 2種,TCP協議雖然具有更高的可靠性,但是其在軟件上實現復雜,程序冗長,并且校驗時占用大量網絡流量;相比之下,UDP協議對于減小DSP資源消耗,提高網絡傳輸效率方面更有優勢。為了增強UDP協議的可靠性,在實際的通信協議中,對于關鍵的量值通過回傳校驗機制保證其可靠傳輸。這種方法將UDP協議的簡潔性和TCP協議的可靠性相結合,同時也節省了大量用來校驗的網絡流量,增強了網絡的實時性,因此運輸層協議上選擇的是UDP協議。以太網數據發送/接收流程圖如圖3所示。
圖3 以太網流程圖
具體虛擬示波器程序中發送和接收數據信息都是由套接字完成。嵌入式系統作為客戶機端,上位機則作為服務器端,其連接過程可以分為3個步驟:服務器*,客戶端請求,連接確認。成功連接之后,作為客戶機端的嵌入式系統在收到上位機發送的數據發送命令后,將被測信號數據打包通過以太網發送至上位機。在監測網絡連接方面,嵌入式系統與上位機之間通過心跳幀連接,當網絡連接出現故障時嵌入式系統發出的心跳幀中斷。上位機可及時發現并退出網絡進行報警。以太網通信運行機制如圖4所示。
圖4 以太網通信運行機制
虛擬示波器通信設計充分發揮以太網數據量大、傳輸速度快的優點,提高了虛擬示波器波形顯示的實時性,使其更加接近真實示波器顯示的波形。
2.2 通道選擇及數據坐標計算模塊
嵌入式系統向上位機發送的UDP數據包包含有6種被測信號的數據信息,共計60個采樣點,360個數據點。程序中通過建立數組NUM[6][60]將其分別保存并寫入上位機緩存區,同時虛擬示波器界面使用復選框控件設定6個顯示通道,從而實現同時顯示6通道波形的功能。當通道C(C=1~6)被選中時,其對應的復選框控件所關聯的成員變量值由FALSE變為TRUE,調用當前NUM[C][60]數據,逐個計算數據點對應的坐標并將其顯示在波形顯示窗口中。對于數字示波器來說,不僅需要超高速實時采樣速率,還需要有較高的波形分析細節,因此本文的虛擬示波器采用線性插值算法進行恢復和重建原始信號,所謂線性插值就是在兩個采樣點之間插入一點,用直線將采樣點和插值點連接起來。采樣點數據坐標Pi(xi,yi)和插值點數據坐標計算方法如下:
式中,left為屏幕最左端數據點坐標,cnt為當前數據點的編號,即示波器接收到的第幾個數據點。而xvalue則是兩點之間間隔的距離。yvalue為縱軸幅值系數,yoffset為當前所選縱軸偏移量,插值點選取相鄰兩采樣點的中點。
2.3 觸發模塊
為使掃描信號與被測信號同步,可以設定一些條件,將被測信號不斷地與這些條件相比較,只有當被測信號滿足這些條件時才啟動掃描,從而使得掃描的頻率與被測信號相同或存在整數倍的關系,也就是同步。觸發的目的在于使每次顯示的初始時刻都從波形的同一位置開始,確保波形穩定顯示。
程序中主線程不斷地接收分線程發送來的數據,首先判斷當前數據點是否大于它之前的5個數據點,如果判斷為真,則說明當前為波形上升沿,之后數據點與預先設定好的觸發電平相比較;如果相等或在允許的誤差帶內,則確定該數據點為觸發點,由于使用軟件實現觸發功能,因此虛擬示波器“掛起時間”即重新準備觸發的時間很短,錯失波形中重要事件的幾率極低。
2.4 波形存儲回放模塊
虛擬示波器程序通過建立分線程來接收數據,同時還兼顧保存數據的任務。程序初始化時創建2個文件。
1)歷史頁面文件,當用戶點擊“開始保存”控件時程序啟動保存功能,將以太網發送的數據全部寫入歷史頁面文件;
2)歷史頁面信息文件,用來保存數據在一次保存操作中的各類信息,例如:本次數據保存的起始和結束時間、保存的數據量、符合觸發條件的數據點的位置等。
當需要實現波形的回放時,程序根據歷史頁面信息文件保存的信息,從歷史頁面文件中篩選出指定時間段內的數據,計算各數據點坐標并將其顯示于示波器屏幕內。
2.5 參數計算模塊
虛擬示波器在波形正常顯示的同時,根據接收到的數據實時地計算當前信號的各類指標。其中信號的平均值、有效值以及頻率的算法如下:
式中,n是預先給定的參與計算的數據點數,NUM[c][m]是保存數據的數組,tmax1-tmax2的含義是波形相鄰的兩個最值之間的平均時間,定義為波形的周期。
2.6 前面板設計
與文獻使用LabVIEW開發工具設計的虛擬示波器前面板相比,本文虛擬示波器前面板控件類型更加豐富、美觀,通過模擬實際示波器的各項操作,顯示處理結果,其設計如圖5所示。界面包括波形顯示窗口和控制區域2個部分。其中控制區域根據儀器功能需要設有:通道選擇、刻度選擇、波形存儲、頻譜分析、計算等各類控制按鍵。
圖5 虛擬示波器前面板
3 運行結果與分析
3.1 多通道波形顯示功能
啟動虛擬示波器使用復選框控件同時選擇CH1和CH2兩個通道,其中CH1為正弦波,CH2為方波,波形顯示如圖6所示。
圖6 多通道波形顯示
3.2 波形存儲回放功能
當點擊界面中“打開”控件時,彈出如圖7所示對話框,對話框顯示內容為之前已經成功保存的各時間段歷史波形,選擇其中一個點擊“打開波形”虛擬示波器屏幕上就會顯示這個時間段的數據波形如圖8所示。
圖7 波形回放選擇對話框
圖8 歷史波形回放功能
3.3 波形計算功能
當被測信號的波形正常顯示時,通過點擊“計算”控件可彈出計算結果顯示對話框。以圖8中CH2方波為例,其峰峰值為6.002 06 V,有效值為3.001 03 V,最大值為3.001 03 V,最小值為-3.001 03 V,頻率為27.777 78 Hz,占空比為O.5。如圖9所示。
圖9 計算結果顯示對話框
4 結論
本文介紹的虛擬示波器速度快、精度高、可擴展性強、開發成本低,不僅具備實際示波器的各項基本功能,同時充分發揮了計算機的強大優勢和軟件設計的靈活性,實現了波形的顯示、存儲、回放以及參數計算、頻譜分析等。目前已經實際運用于文獻所述的新型城市軌道交通牽引供電系統的監測平臺中,用以實時監測供電系統的各項參數并顯示波形。此虛擬示波器通過結合以太網通訊技術進行數據傳輸,發揮以太傳輸距離遠、傳輸數據量大、信號可靠性高的優點,增加了傳輸的數據量和監視距離,滿足了實際系統中的應用要求,具有良好的發展前景。