宋丫 許亞星 李慶楠 中國航空工業(yè)集團公司西安航空計算技術研究所
大型通信網絡普遍采用分布式結構,即各個功能組件分布在不同的服務器或計算機上,彼此之間通過消息傳遞進行協(xié)調。與集中式結構相比,分布式結構可以在一定程度上降低成本,提高工程實施效率,并且能有效分散風險,增強系統(tǒng)的安全性能。
分布式通信網絡在提高系統(tǒng)安全等級的同時也帶來了新的問題,轉換、傳輸、處理等中間環(huán)節(jié)繁多,故障發(fā)生時難以定位,需要對各個環(huán)節(jié)進行數(shù)據(jù)監(jiān)測。目前在實際工程中,總線監(jiān)測已經有很多成熟的工具,然而在有些時候現(xiàn)場不具備實施條件,或實施困難,耗損較大,此時就需要一種便捷通用的傳輸監(jiān)測方法。
RS232總線在嵌入式產品中廣泛應用,資源豐富,通過該接口輸出,可以將數(shù)據(jù)在外部計算機直觀顯示,方便技術人員分析排查,且作為一項常用調試手段,RS232接口的輸出幾乎沒有損耗?;诖吮疚奶岢隽艘环N通信網絡數(shù)據(jù)傳輸監(jiān)測方法,利用RS232總線選擇性地監(jiān)測各個環(huán)節(jié)的數(shù)據(jù),并實時動態(tài)顯示,該方法靈活,交互性強,通用可移植,同時方便工程人員操作。
以某型航空機電系統(tǒng)采集裝置為例,如圖1所示,采集裝置與中央計算機直接相連,負責采集并轉換各個子系統(tǒng)設備的數(shù)據(jù),匯總處理后統(tǒng)一發(fā)送至中央計算機,不同采集裝置之間也可能互相通信。在采集裝置A中,同時存在多個類型的總線接口,包括RS422、429總線、CAN總線、1553總線等,設備原始數(shù)據(jù)經過幾輪轉換傳送至中央計算機,在故障發(fā)生時,作為中轉環(huán)節(jié),采集裝置A需要對各個接口進行數(shù)據(jù)監(jiān)測。
圖1 機電系統(tǒng)采集裝置通信網絡
圖2所示為數(shù)據(jù)傳輸監(jiān)測流程,在不影響正常通信功能的前提下,周期接收RS232總線輸入,此時可通過配置調試計算機的串口,進行鍵盤輸入。當鍵盤輸入字符時,開啟指令接收任務,并停止當前周期顯示的數(shù)據(jù),便于操作者查看自己輸入的指令。接收到的字符依次存儲在數(shù)組Task232_Recv中,并記錄有效數(shù)據(jù)長度,當輸入的字符數(shù)大于設定的上限值時,指令清空并顯示溢出警告,監(jiān)測任務復位,等待下一次輸入,防止因鍵盤持續(xù)誤操作造成干擾。
操作者須輸入特定的指令,包括密鑰和待監(jiān)測數(shù)據(jù)通道,當識別到回車字符時,完成一次指令錄入,并將指令及其長度保存為全局變量,以便后續(xù)解析。為了提高運行效率,避免誤操作,需要對獲取到的指令進行解密,解密成功則進入數(shù)據(jù)顯示任務,否則監(jiān)測任務復位,顯示鎖定警告。
圖2 數(shù)據(jù)傳輸監(jiān)測流程
本節(jié)詳細介紹指令接收任務,首先讀取RS232總線接收狀態(tài)寄存器,判斷當前接收FIFO是否為空,若一直為空則保持當前的數(shù)據(jù)顯示,全局標志ScreenStart保持置1。當輸入字符,狀態(tài)寄存器非空時,停止數(shù)據(jù)顯示,ScreenStart置0,并連續(xù)存儲輸入的指令字符為Task232_Recv,同時將長度保存為全局標量Length。
在鍵盤輸入同步存儲的過程中,實時顯示當前的輸入狀態(tài),設置必要的操作步驟提醒。由于不同平臺對回車字符的轉換可能存在差異,當讀取到字符‘ ’或‘ ’時,即可認為完成了一次指令輸入,此時需要將Length的值減1,剔除最后一次的回車輸入。至此,指令Task232_Recv和長度Length在本輪數(shù)據(jù)監(jiān)測流程中保持不變,直到下一次鍵盤輸入。若出現(xiàn)一次性輸入字符過多,鍵盤誤操作的情況,則進入數(shù)據(jù)溢出處理,清空全局變量Task232_Recv和Length,全局標志Lock上鎖,不再進入解鎖流程。
數(shù)據(jù)顯示與指令接收分別為兩個獨立的任務,在運行正常通信任務時,周期檢測全局標志ScreenStart,標志為1時表明指令接收已完成,此時將開啟數(shù)據(jù)顯示流程。在表示待監(jiān)測數(shù)據(jù)通道時,本文采用字母數(shù)字組合的形式,例如‘X01’,約定X為總線類型,01為道排序。
針對不同的應用需求,數(shù)據(jù)顯示具備一定的可配置性和可裁剪性,同時支持單次顯示及周期顯示,并能根據(jù)動態(tài)性能要求,設置顯示周期。
針對分布式通信網絡數(shù)據(jù)監(jiān)測操作困難,耗損較大等問題,本文提出了一種靈活通用的數(shù)據(jù)監(jiān)測方法。該方法基于RS232總線傳輸,通過人機交互選擇并顯示待監(jiān)測的數(shù)據(jù),且不會對系統(tǒng)的正常通信功能產生干擾。該方法同時具備良好的可配置、可剪裁性,適用于不同類型的平臺環(huán)境,移植方便,復用率高,對于通信系統(tǒng)故障排查具有一定的應用價值。