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