基于以太網(wǎng)的虛擬示波器設計
具體虛擬示波器程序中發(fā)送和接收數據信息都是由套接字完成。嵌入式系統作為客戶(hù)機端,上位機則作為服務(wù)器端,其連接過(guò)程可以分為3個(gè)步驟:服務(wù)器監聽(tīng),客戶(hù)端請求,連接確認。成功連接之后,作為客戶(hù)機端的嵌入式系統在收到上位機發(fā)送的數據發(fā)送命令后,將被測信號數據打包通過(guò)以太網(wǎng)發(fā)送至上位機。在監測網(wǎng)絡(luò )連接方面,嵌入式系統與上位機之間通過(guò)心跳幀連接,當網(wǎng)絡(luò )連接出現故障時(shí)嵌入式系統發(fā)出的心跳幀中斷。上位機可及時(shí)發(fā)現并退出網(wǎng)絡(luò )進(jìn)行報警。以太網(wǎng)通信運行機制如圖4所示。
虛擬示波器通信設計充分發(fā)揮以太網(wǎng)數據量大、傳輸速度快的優(yōu)點(diǎn),提高了虛擬示波器波形顯示的實(shí)時(shí)性,使其更加接近真實(shí)示波器顯示的波形。
2.2 通道選擇及數據坐標計算模塊
嵌入式系統向上位機發(fā)送的UDP數據包包含有6種被測信號的數據信息,共計60個(gè)采樣點(diǎn),360個(gè)數據點(diǎn)。程序中通過(guò)建立數組NUM[6][60]將其分別保存并寫(xiě)入上位機緩存區,同時(shí)虛擬示波器界面使用復選框控件設定6個(gè)顯示通道,從而實(shí)現同時(shí)顯示6通道波形的功能。當通道C(C=1~6)被選中時(shí),其對應的復選框控件所關(guān)聯(lián)的成員變量值由FALSE變?yōu)門(mén)RUE,調用當前NUM[C][60]數據,逐個(gè)計算數據點(diǎn)對應的坐標并將其顯示在波形顯示窗口中。對于數字示波器來(lái)說(shuō),不僅需要超高速實(shí)時(shí)采樣速率,還需要有較高的波形分析細節,因此本文的虛擬示波器采用線(xiàn)性插值算法進(jìn)行恢復和重建原始信號,所謂線(xiàn)性插值就是在兩個(gè)采樣點(diǎn)之間插入一點(diǎn),用直線(xiàn)將采樣點(diǎn)和插值點(diǎn)連接起來(lái)。采樣點(diǎn)數據坐標Pi(xi,yi)和插值點(diǎn)數據坐標計算方法如下:
式中,left為屏幕最左端數據點(diǎn)坐標,cnt為當前數據點(diǎn)的編號,即示波器接收到的第幾個(gè)數據點(diǎn)。而xvalue則是兩點(diǎn)之間間隔的距離。yvalue為縱軸幅值系數,yoffset為當前所選縱軸偏移量,插值點(diǎn)選取相鄰兩采樣點(diǎn)的中點(diǎn)。
2.3 觸發(fā)模塊
為使掃描信號與被測信號同步,可以設定一些條件,將被測信號不斷地與這些條件相比較,只有當被測信號滿(mǎn)足這些條件時(shí)才啟動(dòng)掃描,從而使得掃描的頻率與被測信號相同或存在整數倍的關(guān)系,也就是同步。觸發(fā)的目的在于使每次顯示的初始時(shí)刻都從波形的同一位置開(kāi)始,確保波形穩定顯示。
程序中主線(xiàn)程不斷地接收分線(xiàn)程發(fā)送來(lái)的數據,首先判斷當前數據點(diǎn)是否大于它之前的5個(gè)數據點(diǎn),如果判斷為真,則說(shuō)明當前為波形上升沿,之后數據點(diǎn)與預先設定好的觸發(fā)電平相比較;如果相等或在允許的誤差帶內,則確定該數據點(diǎn)為觸發(fā)點(diǎn),由于使用軟件實(shí)現觸發(fā)功能,因此虛擬示波器“掛起時(shí)間”即重新準備觸發(fā)的時(shí)間很短,錯失波形中重要事件的幾率極低。
2.4 波形存儲回放模塊
虛擬示波器程序通過(guò)建立分線(xiàn)程來(lái)接收數據,同時(shí)還兼顧保存數據的任務(wù)。程序初始化時(shí)創(chuàng )建2個(gè)文件。
1)歷史頁(yè)面文件,當用戶(hù)點(diǎn)擊“開(kāi)始保存”控件時(shí)程序啟動(dòng)保存功能,將以太網(wǎng)發(fā)送的數據全部寫(xiě)入歷史頁(yè)面文件;
2)歷史頁(yè)面信息文件,用來(lái)保存數據在一次保存操作中的各類(lèi)信息,例如:本次數據保存的起始和結束時(shí)間、保存的數據量、符合觸發(fā)條件的數據點(diǎn)的位置等。
當需要實(shí)現波形的回放時(shí),程序根據歷史頁(yè)面信息文件保存的信息,從歷史頁(yè)面文件中篩選出指定時(shí)間段內的數據,計算各數據點(diǎn)坐標并將其顯示于示波器屏幕內。
2.5 參數計算模塊
虛擬示波器在波形正常顯示的同時(shí),根據接收到的數據實(shí)時(shí)地計算當前信號的各類(lèi)指標。其中信號的平均值、有效值以及頻率的算法如下:
式中,n是預先給定的參與計算的數據點(diǎn)數,NUM[c][m]是保存數據的數組,tmax1-tmax2的含義是波形相鄰的兩個(gè)最值之間的平均時(shí)間,定義為波形的周期。
2.6 前面板設計
與文獻使用LabVIEW開(kāi)發(fā)工具設計的虛擬示波器前面板相比,本文虛擬示波器前面板控件類(lèi)型更加豐富、美觀(guān),通過(guò)模擬實(shí)際示波器的各項操作,顯示處理結果,其設計如圖5所示。界面包括波形顯示窗口和控制區域2個(gè)部分。其中控制區域根據儀器功能需要設有:通道選擇、刻度選擇、波形存儲、頻譜分析、計算等各類(lèi)控制按鍵。
評論