山 壽 王 鵬
?
科學評價
網絡化遙測數據實時處理軟件設計
山 壽 王 鵬
本文針對C波段網絡化遙測中新增的下行網絡數據傳輸方式,提出了采用多協議融合、多線程并發處理、自動丟包控制的實時數據處理軟件設計方案。為新一代網絡化遙測飛行試驗提供了技術支持。
如付諸現實將改變現有的飛行試驗實時監控體系,極大程度的節省了頻譜資源,并節省了高昂的同步板卡花費。
C波段網絡化遙測在遙測網絡系統中新增了雙向、寬帶射頻網絡數據鏈路(rfNET),大幅提高了飛行試驗數據下行傳輸能力。針對C波段遙測網絡數據處理中遇到的多數據流、多網絡格式、多總線協議等特點,本文采用了數據分流處理、協議整合、數據包擁錯控制以及多線程等方式,并結合某飛行試驗平臺,實現并驗證了該網絡化遙測數據實時處理軟件的正確性和可靠性,為新一代網絡化遙測飛行試驗提供了技術支持。
遙測數據的實時處理是飛行試驗工程中試飛監控的重要環節,對飛行試驗的安全性和有效性有著重要影響。近年來,隨著試飛技術的不斷發展,監控需求的參數不斷增加,航空機載設備的復雜程度不斷增加,傳統PCM流的傳輸方式已經不能滿足當前飛行試驗地面監控的需求。當前,C波段網絡化遙測已經逐步進行小規模的試驗驗證,網絡化遙測數據的實時處理勢必成為未來我國飛行試驗工程的重要組成部分。
本文通過結合某型號網絡化遙測驗證試驗,詳細地介紹了網絡化遙測實時處理軟件的解析過程、架構以及設計邏輯,并有效地解決了網絡數據包丟包錯序、視頻與參數數據同步回放等問題。
結合網絡化遙測數據的特點,并有效的利用機載網絡格式格柵,定義主要包含參數結構與協議解析信息的HEA文件,實現參數數據與視頻數據的有效分流、參數數據的提取以及參數數據與真實物理量的實時轉換,最終實現遙測網絡數據的實時接收處理功能與回放數據功能。
參數結構定義
網絡化遙測數據是由機載測試采集系統對測試參數數據與視頻數據同步進行采集與分發,采集的數據填充至多個網絡數據包中,而網絡數據包的格式又直接依賴于采集器的記錄格式,結合飛行試驗的特征,具體有如下特點。
1)多種數據包協議——由于網絡化測試系統存在多種采集器,目前主要存在IENA與XNET/INET網絡數據包格式。
2)參數多樣分布——機載采集的參數的受制于機載采集設備與協議的定義,具體的參數數據由于字長的不同在數據包中的分布方式也有可能不同,存在機載設備將一個64位的字拆分為4個16位字填充到4個不同的網絡數據包中這樣的可能性。
3)參數數據與視頻數據并存——網絡化遙測機載設備將視頻數據與參數數據同時分布于數據包中,因此在網絡數據包的實時處理過程中必須考慮到視頻數據與參數數據的分流與差異處理。
4)多總線多采樣性——機載設備總線標準眾多,涵蓋了429總線、422總線、CAN總線、1394總線、FC總線以及其他航空機載總線,另外參數的采樣率也不盡相同。
根據網絡數據包的格式以及參數在數據包中的具體位置,并考慮到參數的字長、取位、校準類型以及采樣率等特性,結合網絡化遙測數據的特征,定義參數的具體結構為:

協議解析定義
目前網絡數據包雖然大小不能固定,但其格式主要按照IENA與XNET/INET兩種協議進行數據填充,協議不同其解析的方式也就不同,因此在提取數據時必須同時考慮兩種標準的異同,提取出兩種標準的共同點,方便軟件的設計與實現。

表1 IENA協議數據包格式

表2 XNET/INET協議數據包格式
從表1與表2我們可以看出雖然兩種協議的控制頭不相同,但均具有區別包類型的區別字(KEY,MessageDefineID),包長(SIZE,MessageLength),包序(SEQ_NUM,MessageDefineSequenceNumber) 與時 間 信息(TIME,MessageTimestamp),因此一旦包結構確定我們就能確定當前數據包是參數數據還是視頻數據,以及具體數據的提取方式。
另外,考慮到最大程度的利用數據傳輸帶寬,網絡化遙測數據采用組播的方式進行數據傳輸,實時遙測數據可由多個服務器進行分流實時處理,結合IENA與XNET/ INET兩種協議的特點,定義數據包的格式為:

總體框架
通過機載網絡格柵以及相應的XML接口,結合兩種協議的特點轉換為原始的HEA文件,并在此基礎上添加參數處理、數據提取方式等信息從而最終形成實時處理所需的HEA文件。通過此HEA文件可以知曉當前網絡數據包的協議、參數數量、參數具體解析信息、視頻數據等內容,繼而實現網絡數據包準確的轉換為實時監控所需的數據。HEA文件的定義確保了數據解析的準確性,但在數據處理過程中需要考慮到數據的接收、提取、分發等過程,同時處理好的參數數據與視頻數據要實時的傳送到實時監控軟件客戶端,保證試驗飛行安全,本文采用UDP組播的傳輸方式,將參數名列表、參數數據、視頻數據分路傳輸到局域網中,由于組播地址與端口固定,客戶端監控軟件可以采用統一的設計邏輯,極大的縮短了監控軟件的設計周期,同時由于機載測試數據也是通過組播的方式進行傳輸,并且網絡數據包占用帶寬過高,為避免產生網絡擁塞,通過使用雙網卡實現數據的物理隔離。整體框架結構如圖1所示。
軟件結構
網絡遙測實時處理軟件要同時考慮到實時處理與回放處理兩個功能模塊的設計,盡可能實現代碼的共用,而實時處理與回放處理最大的區別僅限于原始數據是來源于網絡獲取還是文件讀取,因此在數據獲取過程中僅需要通過條件選擇判斷數據源即可。網絡遙測數據實時處理要考慮到數據的接收、解析、分發、處理等過程,通過分析整個處理過程,采用多線程共享內存的設計方式,具體設計為HEA與配置信息處理線程、數據接收線程、數據處理線程、視頻數據發送線程、參數數據發送線程以及參數名發送線程等六個線程,主窗體在打開實時處理HEA文件后,開啟HEA與配置信息處理線程,獲取當前飛機參數處理信息與發送配置信息,轉化為相應的全局信息,關閉當前線程后開啟其他幾個線程,各個線程通過HEA與配置信息處理線程生成的全局信息進行初始化,線程間的交互和處理過程如圖2所示。
關鍵技術
數據包擁錯控制與同步處理
機載測試采集系統每秒可向外發送數千個數據包,由于受到飛機位置、地面干擾、網絡擁塞、連接中斷等因素,會產生一定程度的數據丟包錯序現象, IENA與XNET/ INET協議在整合數據包的過程中,均會按照數據包的生成順序在數據包頭添加包號,其包號在有效范圍具有連續性的特征,數據處理線程針對于數據接收線程分發視頻和參數數據包,首先按照時間戳進行快速粗略劃分,然后再按照數據包內KEY字進行快速精準排序,與此同時在參數數據包按照KEY字排序的過程中,對相同時間戳的數據包個數進行統計,如果某個時間戳內數據包個數少于HEA文件預估的個數,則將這個時間戳下的數據包拋棄,這主要是因為存在參數的高低字分布于不同的數據包中,如果一個丟失某個參數數據包可能導致提取出的部分參數變化過大,影響指揮人員實時監控決策,而針對于視頻數據包采取與參數數據包相同的處理措施,與之不同的是視頻數據包發生丟包時,并不丟棄整個這個時間戳內的數據,采用在視頻實時解析客戶端處理丟包問題。具體處理邏輯如圖3所示。
參數數據與視頻數據同步回放

圖1 總體框架圖
傳統的參數數據與視頻數據由于存儲在不同的文件中,而視頻中添加的時碼信息無法通過圖像識別有效獲取,也就不能同步回放,網絡化遙測的參數數據與視頻數據采用相同的協議填充,通過將實時接收到的兩種數據進行擁錯控制之后存儲在一個數據文件中,在文件讀取時,建立標識鏈表,首先進行預讀取操作,每當查找到的數據包key字與HEA文件中包序為1的key字相同時,記錄當前文件指針信息并保存到標識鏈表之中,在數據回放時,首先確定拖動的進度條位置,進而確定文件讀取指針的當前大致位置,然后查詢標識鏈表,查找到與拖動進度條后確定的文件位置最接近的標識位置,更新為當前文件讀取指針的實際位置,繼而實現了參數與視頻的同步回放。預讀取過程如圖4所示。

圖2 軟件內部線程處理流程圖

圖3 擁錯控制處理流程圖

圖4 預讀取處理流程圖

圖5 軟件運行效果圖
參數名列表擴充機制
理論上IP數據報的最大長度為65535個字節,剔除IP協議與UDP協議數據報文定義,最大僅能支持65507字節,而當前飛行試驗中測試參數已經可以達到上萬個,參數名的定義也越來越復雜,每個參數名即可占用30~40個字節,這種情況下單個IP數據報僅能支持1500~2000個參數名的同時發送,針對參數名列表總長度超過限制的情況,采用分批發送的方式,每個IP數據報最大發送40000個字節,每個參數名占用41個字節,不足時填充字符’#’,定義包含總發送次數與當前發送順序的參數列表,截取參數列表的方式采用以上一個IP數據報中發送的最后一個參數名的結束開始,直至最接近40000字節的那個參數結束,并在分批發送的每個網絡包中添加當前發送的分段列表在真實參數名列表中參數起始順序和結束順序。分批發送參數名列表的結構定義如表3所示。

表3 分批發送參數名列表的結構
軟件運行界面
本軟件在某網絡化遙測試驗平臺上得以驗證,界面主要分為基本配置信息、實時處理、數據回放三個部分,試驗結果表明該軟件能夠實時準確的處理網絡化遙測數據,滿足當前試驗飛行監控的需求,實時處理階段的運行狀態如圖5所示。
該網絡化遙測實時處理軟件目前已在多個型號的試飛中得到驗證,成功確保了多個試飛科目的順利進行,運行結果表明已經可以確保每秒2200個遙測網絡數據包、5000個參數的實時處理,滿足當前網絡化遙測試飛監控需求,為新一代網絡化遙測的發展提供了寶貴的經驗。

山 壽 王 鵬
中國飛行試驗研究院
山壽(1987-)男,陜西省西安市人,助理工程師,碩士。研究方向:遙測數據處理、計算機應用。
10.3969/j.issn.1001-8972.2016.11.026
國防基礎科研項目(A0520132031)