<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于TCP/IP的多數(shù)據(jù)流傳輸測控系統(tǒng)的設(shè)計與實現(xiàn)

          基于TCP/IP的多數(shù)據(jù)流傳輸測控系統(tǒng)的設(shè)計與實現(xiàn)

          作者: 時間:2012-05-31 來源:網(wǎng)絡(luò) 收藏

          1.3 遠程控制臺模塊
          遠程控制臺負責(zé)對數(shù)傳與實時處理模塊、控制臺模塊的網(wǎng)絡(luò)喚醒和網(wǎng)絡(luò)監(jiān)控,以及完成對遠程設(shè)備電源的相關(guān)操作。遠程控制臺接收相鄰模塊的網(wǎng)絡(luò)數(shù)據(jù)幀(包括數(shù)傳與實時處理模塊對多進行整合的數(shù)據(jù)幀和控制臺模塊轉(zhuǎn)發(fā)的單片機采集數(shù)據(jù)幀),對控制臺發(fā)送網(wǎng)絡(luò)控制幀(完成參數(shù)設(shè)置、系統(tǒng)開啟關(guān)閉、板卡操作、串口操作等任務(wù)),采用UDP協(xié)議進行通信。
          1.4 控制臺設(shè)備模塊
          控制臺設(shè)備模塊由CPCI工控計算機和繼電器板卡組成。供電電源繼電器卡采用NI PXI-2564 16路5 A SPST開關(guān)模塊,它是大功率繼電器卡,可進行電源輸入和電源備份;斷電及轉(zhuǎn)電控制信號繼電器卡采用ADLINK PXI-7901 16路通用SPDT開關(guān)模塊,可進行電源的控制切換。系統(tǒng)結(jié)構(gòu)及外部接口關(guān)系如圖3所示。

          b.jpg


          系統(tǒng)采用Agilent N6700系列模塊電源供電,控制臺由RS 422串行通信接口連接到單片機測控模塊、網(wǎng)絡(luò)連接到遠程控制臺。為通信的穩(wěn)定可靠,控制臺與遠程控制臺間的千兆以太網(wǎng)通過光電轉(zhuǎn)換器轉(zhuǎn)為光纖連接。控制臺接受遠程控制臺的控制,對來自單片機采集模塊的數(shù)據(jù)進行解碼及顯示并傳向遠程控制臺,通信采用UDP協(xié)議。

          2 軟件設(shè)計與實現(xiàn)
          2.1 多重事件方式實現(xiàn)網(wǎng)口及串口通信
          控制臺模塊需要接收遠程控制臺的遠程控制命令幀和來自RS 422串行通信接口(與單片機采集模塊相連)的串行數(shù)據(jù),并把串行數(shù)據(jù)打包成既定格式UDP數(shù)據(jù)幀轉(zhuǎn)發(fā)送到遠程控制臺,為此控制臺軟件需建立后臺管理器(CTConManager)來開啟網(wǎng)絡(luò)監(jiān)控線程、串口監(jiān)控線程兩個獨立線程進行監(jiān)控網(wǎng)口和串行口。二者流程圖如圖4所示。

          d.jpg


          軟件需要把串口數(shù)據(jù)進行協(xié)議轉(zhuǎn)換為UDP數(shù)據(jù)幀發(fā)送,所以網(wǎng)絡(luò)監(jiān)控線程采用等待多重事件的方式來處理由WSACreateEvent函數(shù)創(chuàng)建的網(wǎng)絡(luò)事件(m_evtNetWork)和串口事件(m_evtOverlappedSeira1),串口監(jiān)控流程采用異步事件模式監(jiān)控串行口的數(shù)據(jù)接收。網(wǎng)絡(luò)事件由WSAEvent Select函數(shù)與當前的socket接口綁定,串口事件由串口接收一個完整數(shù)據(jù)幀后設(shè)置到網(wǎng)絡(luò)監(jiān)控線程。當控制臺網(wǎng)絡(luò)可以接收到遠程控制臺的網(wǎng)絡(luò)幀(即有網(wǎng)絡(luò)事件發(fā)生)時,線程調(diào)用ProcessNetworkEvent函數(shù)來處理這個事件(即開始解析遠程命令幀),相應(yīng)串口事件調(diào)用網(wǎng)絡(luò)監(jiān)控線程的ProcessSerialEvent函數(shù)來處理這個事件(即發(fā)送數(shù)據(jù)幀)。線程中的網(wǎng)絡(luò)超時事件(WSA_WAIT_TIME OUT)處理超時任務(wù)(ProcessTimeOut Event)包括串口和板卡狀態(tài)的循環(huán)檢測以及狀態(tài)數(shù)據(jù)包的發(fā)送。
          軟件采用這種機制能及時響應(yīng)多重事件,實現(xiàn)了串口和網(wǎng)絡(luò)接口的對接,節(jié)省了設(shè)備資源,使系統(tǒng)效率得到了提高。
          2.2 整合同步處理
          根據(jù)系統(tǒng)要求,數(shù)傳與實時處理模塊將多個流的相同或不同字段的數(shù)據(jù)進行提取并整合為一個UDP數(shù)據(jù)報文并發(fā)送至遠程控制臺。
          由于多個發(fā)送過程中很可能會出現(xiàn)某個數(shù)據(jù)流到達時間相對其他數(shù)據(jù)流有延遲,這就會造成在整合為UDP數(shù)據(jù)報文的過程中數(shù)據(jù)的不同步。為解決這個問題,軟件采用基于數(shù)據(jù)隊列的方式實現(xiàn)碼流同步。首先將多個既定長度的TCP流數(shù)據(jù)(TCPDataValue)加入(push)多個相應(yīng)隊列(CDataQueue),當所有隊列的長度大于等于1,即所有隊列有元素時,將隊列中的第一個(即最先壓入隊列)元素彈出(GetFirstDa ta),然后進行碼流的數(shù)據(jù)提取。

          tcp/ip相關(guān)文章:tcp/ip是什么




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();