關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于以太網的虛擬示波器設計

        基于以太網的虛擬示波器設計

        作者: 時間:2011-01-18 來源:網絡 收藏


        具體示波器程序中發送和接收數據信息都是由套接字完成。嵌入式系統作為客戶機端,上位機則作為服務器端,其連接過程可以分為3個步驟:服務器監聽,客戶端請求,連接確認。成功連接之后,作為客戶機端的嵌入式系統在收到上位機發送的數據發送命令后,將被測信號數據打包通過發送至上位機。在監測網絡連接方面,嵌入式系統與上位機之間通過心跳幀連接,當網絡連接出現故障時嵌入式系統發出的心跳幀中斷。上位機可及時發現并退出網絡進行報警。通信運行機制如圖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個部分。其中控制區域根據儀器功能需要設有:通道選擇、刻度選擇、波形存儲、頻譜分析、計算等各類控制按鍵。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 浦江县| 彰武县| 祁东县| 揭西县| 澳门| 顺平县| 巴楚县| 丰城市| 台江县| 苏尼特右旗| 桓仁| 金华市| 河池市| 德钦县| 类乌齐县| 堆龙德庆县| 政和县| 杭锦旗| 石柱| 揭西县| 西平县| 张家口市| 望奎县| 扎鲁特旗| 通江县| 海宁市| 金堂县| 湖北省| 布尔津县| 商城县| 龙陵县| 尚志市| 万山特区| 扎赉特旗| 平阳县| 高平市| 三明市| 东乌珠穆沁旗| 巴南区| 临澧县| 陆丰市|