<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 基于TCP/IP的多數據流傳輸測控系統的設計與實(shí)現

基于TCP/IP的多數據流傳輸測控系統的設計與實(shí)現

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

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

b.jpg


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

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

d.jpg


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

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




關(guān)鍵詞: TCP 數據流 傳輸 測控系統

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>