山 壽 王 鵬
?
科學(xué)評價
網(wǎng)絡(luò)化遙測數(shù)據(jù)實時處理軟件設(shè)計
山 壽 王 鵬
本文針對C波段網(wǎng)絡(luò)化遙測中新增的下行網(wǎng)絡(luò)數(shù)據(jù)傳輸方式,提出了采用多協(xié)議融合、多線程并發(fā)處理、自動丟包控制的實時數(shù)據(jù)處理軟件設(shè)計方案。為新一代網(wǎng)絡(luò)化遙測飛行試驗提供了技術(shù)支持。
如付諸現(xiàn)實將改變現(xiàn)有的飛行試驗實時監(jiān)控體系,極大程度的節(jié)省了頻譜資源,并節(jié)省了高昂的同步板卡花費。
C波段網(wǎng)絡(luò)化遙測在遙測網(wǎng)絡(luò)系統(tǒng)中新增了雙向、寬帶射頻網(wǎng)絡(luò)數(shù)據(jù)鏈路(rfNET),大幅提高了飛行試驗數(shù)據(jù)下行傳輸能力。針對C波段遙測網(wǎng)絡(luò)數(shù)據(jù)處理中遇到的多數(shù)據(jù)流、多網(wǎng)絡(luò)格式、多總線協(xié)議等特點,本文采用了數(shù)據(jù)分流處理、協(xié)議整合、數(shù)據(jù)包擁錯控制以及多線程等方式,并結(jié)合某飛行試驗平臺,實現(xiàn)并驗證了該網(wǎng)絡(luò)化遙測數(shù)據(jù)實時處理軟件的正確性和可靠性,為新一代網(wǎng)絡(luò)化遙測飛行試驗提供了技術(shù)支持。
遙測數(shù)據(jù)的實時處理是飛行試驗工程中試飛監(jiān)控的重要環(huán)節(jié),對飛行試驗的安全性和有效性有著重要影響。近年來,隨著試飛技術(shù)的不斷發(fā)展,監(jiān)控需求的參數(shù)不斷增加,航空機載設(shè)備的復(fù)雜程度不斷增加,傳統(tǒng)PCM流的傳輸方式已經(jīng)不能滿足當前飛行試驗地面監(jiān)控的需求。當前,C波段網(wǎng)絡(luò)化遙測已經(jīng)逐步進行小規(guī)模的試驗驗證,網(wǎng)絡(luò)化遙測數(shù)據(jù)的實時處理勢必成為未來我國飛行試驗工程的重要組成部分。
本文通過結(jié)合某型號網(wǎng)絡(luò)化遙測驗證試驗,詳細地介紹了網(wǎng)絡(luò)化遙測實時處理軟件的解析過程、架構(gòu)以及設(shè)計邏輯,并有效地解決了網(wǎng)絡(luò)數(shù)據(jù)包丟包錯序、視頻與參數(shù)數(shù)據(jù)同步回放等問題。
結(jié)合網(wǎng)絡(luò)化遙測數(shù)據(jù)的特點,并有效的利用機載網(wǎng)絡(luò)格式格柵,定義主要包含參數(shù)結(jié)構(gòu)與協(xié)議解析信息的HEA文件,實現(xiàn)參數(shù)數(shù)據(jù)與視頻數(shù)據(jù)的有效分流、參數(shù)數(shù)據(jù)的提取以及參數(shù)數(shù)據(jù)與真實物理量的實時轉(zhuǎn)換,最終實現(xiàn)遙測網(wǎng)絡(luò)數(shù)據(jù)的實時接收處理功能與回放數(shù)據(jù)功能。
參數(shù)結(jié)構(gòu)定義
網(wǎng)絡(luò)化遙測數(shù)據(jù)是由機載測試采集系統(tǒng)對測試參數(shù)數(shù)據(jù)與視頻數(shù)據(jù)同步進行采集與分發(fā),采集的數(shù)據(jù)填充至多個網(wǎng)絡(luò)數(shù)據(jù)包中,而網(wǎng)絡(luò)數(shù)據(jù)包的格式又直接依賴于采集器的記錄格式,結(jié)合飛行試驗的特征,具體有如下特點。
1)多種數(shù)據(jù)包協(xié)議——由于網(wǎng)絡(luò)化測試系統(tǒng)存在多種采集器,目前主要存在IENA與XNET/INET網(wǎng)絡(luò)數(shù)據(jù)包格式。
2)參數(shù)多樣分布——機載采集的參數(shù)的受制于機載采集設(shè)備與協(xié)議的定義,具體的參數(shù)數(shù)據(jù)由于字長的不同在數(shù)據(jù)包中的分布方式也有可能不同,存在機載設(shè)備將一個64位的字拆分為4個16位字填充到4個不同的網(wǎng)絡(luò)數(shù)據(jù)包中這樣的可能性。
3)參數(shù)數(shù)據(jù)與視頻數(shù)據(jù)并存——網(wǎng)絡(luò)化遙測機載設(shè)備將視頻數(shù)據(jù)與參數(shù)數(shù)據(jù)同時分布于數(shù)據(jù)包中,因此在網(wǎng)絡(luò)數(shù)據(jù)包的實時處理過程中必須考慮到視頻數(shù)據(jù)與參數(shù)數(shù)據(jù)的分流與差異處理。
4)多總線多采樣性——機載設(shè)備總線標準眾多,涵蓋了429總線、422總線、CAN總線、1394總線、FC總線以及其他航空機載總線,另外參數(shù)的采樣率也不盡相同。
根據(jù)網(wǎng)絡(luò)數(shù)據(jù)包的格式以及參數(shù)在數(shù)據(jù)包中的具體位置,并考慮到參數(shù)的字長、取位、校準類型以及采樣率等特性,結(jié)合網(wǎng)絡(luò)化遙測數(shù)據(jù)的特征,定義參數(shù)的具體結(jié)構(gòu)為:
協(xié)議解析定義
目前網(wǎng)絡(luò)數(shù)據(jù)包雖然大小不能固定,但其格式主要按照IENA與XNET/INET兩種協(xié)議進行數(shù)據(jù)填充,協(xié)議不同其解析的方式也就不同,因此在提取數(shù)據(jù)時必須同時考慮兩種標準的異同,提取出兩種標準的共同點,方便軟件的設(shè)計與實現(xiàn)。
表1 IENA協(xié)議數(shù)據(jù)包格式
表2 XNET/INET協(xié)議數(shù)據(jù)包格式
從表1與表2我們可以看出雖然兩種協(xié)議的控制頭不相同,但均具有區(qū)別包類型的區(qū)別字(KEY,MessageDefineID),包長(SIZE,MessageLength),包序(SEQ_NUM,MessageDefineSequenceNumber) 與時 間 信息(TIME,MessageTimestamp),因此一旦包結(jié)構(gòu)確定我們就能確定當前數(shù)據(jù)包是參數(shù)數(shù)據(jù)還是視頻數(shù)據(jù),以及具體數(shù)據(jù)的提取方式。
另外,考慮到最大程度的利用數(shù)據(jù)傳輸帶寬,網(wǎng)絡(luò)化遙測數(shù)據(jù)采用組播的方式進行數(shù)據(jù)傳輸,實時遙測數(shù)據(jù)可由多個服務(wù)器進行分流實時處理,結(jié)合IENA與XNET/ INET兩種協(xié)議的特點,定義數(shù)據(jù)包的格式為:
總體框架
通過機載網(wǎng)絡(luò)格柵以及相應(yīng)的XML接口,結(jié)合兩種協(xié)議的特點轉(zhuǎn)換為原始的HEA文件,并在此基礎(chǔ)上添加參數(shù)處理、數(shù)據(jù)提取方式等信息從而最終形成實時處理所需的HEA文件。通過此HEA文件可以知曉當前網(wǎng)絡(luò)數(shù)據(jù)包的協(xié)議、參數(shù)數(shù)量、參數(shù)具體解析信息、視頻數(shù)據(jù)等內(nèi)容,繼而實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包準確的轉(zhuǎn)換為實時監(jiān)控所需的數(shù)據(jù)。HEA文件的定義確保了數(shù)據(jù)解析的準確性,但在數(shù)據(jù)處理過程中需要考慮到數(shù)據(jù)的接收、提取、分發(fā)等過程,同時處理好的參數(shù)數(shù)據(jù)與視頻數(shù)據(jù)要實時的傳送到實時監(jiān)控軟件客戶端,保證試驗飛行安全,本文采用UDP組播的傳輸方式,將參數(shù)名列表、參數(shù)數(shù)據(jù)、視頻數(shù)據(jù)分路傳輸?shù)骄钟蚓W(wǎng)中,由于組播地址與端口固定,客戶端監(jiān)控軟件可以采用統(tǒng)一的設(shè)計邏輯,極大的縮短了監(jiān)控軟件的設(shè)計周期,同時由于機載測試數(shù)據(jù)也是通過組播的方式進行傳輸,并且網(wǎng)絡(luò)數(shù)據(jù)包占用帶寬過高,為避免產(chǎn)生網(wǎng)絡(luò)擁塞,通過使用雙網(wǎng)卡實現(xiàn)數(shù)據(jù)的物理隔離。整體框架結(jié)構(gòu)如圖1所示。
軟件結(jié)構(gòu)
網(wǎng)絡(luò)遙測實時處理軟件要同時考慮到實時處理與回放處理兩個功能模塊的設(shè)計,盡可能實現(xiàn)代碼的共用,而實時處理與回放處理最大的區(qū)別僅限于原始數(shù)據(jù)是來源于網(wǎng)絡(luò)獲取還是文件讀取,因此在數(shù)據(jù)獲取過程中僅需要通過條件選擇判斷數(shù)據(jù)源即可。網(wǎng)絡(luò)遙測數(shù)據(jù)實時處理要考慮到數(shù)據(jù)的接收、解析、分發(fā)、處理等過程,通過分析整個處理過程,采用多線程共享內(nèi)存的設(shè)計方式,具體設(shè)計為HEA與配置信息處理線程、數(shù)據(jù)接收線程、數(shù)據(jù)處理線程、視頻數(shù)據(jù)發(fā)送線程、參數(shù)數(shù)據(jù)發(fā)送線程以及參數(shù)名發(fā)送線程等六個線程,主窗體在打開實時處理HEA文件后,開啟HEA與配置信息處理線程,獲取當前飛機參數(shù)處理信息與發(fā)送配置信息,轉(zhuǎn)化為相應(yīng)的全局信息,關(guān)閉當前線程后開啟其他幾個線程,各個線程通過HEA與配置信息處理線程生成的全局信息進行初始化,線程間的交互和處理過程如圖2所示。
關(guān)鍵技術(shù)
數(shù)據(jù)包擁錯控制與同步處理
機載測試采集系統(tǒng)每秒可向外發(fā)送數(shù)千個數(shù)據(jù)包,由于受到飛機位置、地面干擾、網(wǎng)絡(luò)擁塞、連接中斷等因素,會產(chǎn)生一定程度的數(shù)據(jù)丟包錯序現(xiàn)象, IENA與XNET/ INET協(xié)議在整合數(shù)據(jù)包的過程中,均會按照數(shù)據(jù)包的生成順序在數(shù)據(jù)包頭添加包號,其包號在有效范圍具有連續(xù)性的特征,數(shù)據(jù)處理線程針對于數(shù)據(jù)接收線程分發(fā)視頻和參數(shù)數(shù)據(jù)包,首先按照時間戳進行快速粗略劃分,然后再按照數(shù)據(jù)包內(nèi)KEY字進行快速精準排序,與此同時在參數(shù)數(shù)據(jù)包按照KEY字排序的過程中,對相同時間戳的數(shù)據(jù)包個數(shù)進行統(tǒng)計,如果某個時間戳內(nèi)數(shù)據(jù)包個數(shù)少于HEA文件預(yù)估的個數(shù),則將這個時間戳下的數(shù)據(jù)包拋棄,這主要是因為存在參數(shù)的高低字分布于不同的數(shù)據(jù)包中,如果一個丟失某個參數(shù)數(shù)據(jù)包可能導(dǎo)致提取出的部分參數(shù)變化過大,影響指揮人員實時監(jiān)控決策,而針對于視頻數(shù)據(jù)包采取與參數(shù)數(shù)據(jù)包相同的處理措施,與之不同的是視頻數(shù)據(jù)包發(fā)生丟包時,并不丟棄整個這個時間戳內(nèi)的數(shù)據(jù),采用在視頻實時解析客戶端處理丟包問題。具體處理邏輯如圖3所示。
參數(shù)數(shù)據(jù)與視頻數(shù)據(jù)同步回放
圖1 總體框架圖
傳統(tǒng)的參數(shù)數(shù)據(jù)與視頻數(shù)據(jù)由于存儲在不同的文件中,而視頻中添加的時碼信息無法通過圖像識別有效獲取,也就不能同步回放,網(wǎng)絡(luò)化遙測的參數(shù)數(shù)據(jù)與視頻數(shù)據(jù)采用相同的協(xié)議填充,通過將實時接收到的兩種數(shù)據(jù)進行擁錯控制之后存儲在一個數(shù)據(jù)文件中,在文件讀取時,建立標識鏈表,首先進行預(yù)讀取操作,每當查找到的數(shù)據(jù)包key字與HEA文件中包序為1的key字相同時,記錄當前文件指針信息并保存到標識鏈表之中,在數(shù)據(jù)回放時,首先確定拖動的進度條位置,進而確定文件讀取指針的當前大致位置,然后查詢標識鏈表,查找到與拖動進度條后確定的文件位置最接近的標識位置,更新為當前文件讀取指針的實際位置,繼而實現(xiàn)了參數(shù)與視頻的同步回放。預(yù)讀取過程如圖4所示。
圖2 軟件內(nèi)部線程處理流程圖
圖3 擁錯控制處理流程圖
圖4 預(yù)讀取處理流程圖
圖5 軟件運行效果圖
參數(shù)名列表擴充機制
理論上IP數(shù)據(jù)報的最大長度為65535個字節(jié),剔除IP協(xié)議與UDP協(xié)議數(shù)據(jù)報文定義,最大僅能支持65507字節(jié),而當前飛行試驗中測試參數(shù)已經(jīng)可以達到上萬個,參數(shù)名的定義也越來越復(fù)雜,每個參數(shù)名即可占用30~40個字節(jié),這種情況下單個IP數(shù)據(jù)報僅能支持1500~2000個參數(shù)名的同時發(fā)送,針對參數(shù)名列表總長度超過限制的情況,采用分批發(fā)送的方式,每個IP數(shù)據(jù)報最大發(fā)送40000個字節(jié),每個參數(shù)名占用41個字節(jié),不足時填充字符’#’,定義包含總發(fā)送次數(shù)與當前發(fā)送順序的參數(shù)列表,截取參數(shù)列表的方式采用以上一個IP數(shù)據(jù)報中發(fā)送的最后一個參數(shù)名的結(jié)束開始,直至最接近40000字節(jié)的那個參數(shù)結(jié)束,并在分批發(fā)送的每個網(wǎng)絡(luò)包中添加當前發(fā)送的分段列表在真實參數(shù)名列表中參數(shù)起始順序和結(jié)束順序。分批發(fā)送參數(shù)名列表的結(jié)構(gòu)定義如表3所示。
表3 分批發(fā)送參數(shù)名列表的結(jié)構(gòu)
軟件運行界面
本軟件在某網(wǎng)絡(luò)化遙測試驗平臺上得以驗證,界面主要分為基本配置信息、實時處理、數(shù)據(jù)回放三個部分,試驗結(jié)果表明該軟件能夠?qū)崟r準確的處理網(wǎng)絡(luò)化遙測數(shù)據(jù),滿足當前試驗飛行監(jiān)控的需求,實時處理階段的運行狀態(tài)如圖5所示。
該網(wǎng)絡(luò)化遙測實時處理軟件目前已在多個型號的試飛中得到驗證,成功確保了多個試飛科目的順利進行,運行結(jié)果表明已經(jīng)可以確保每秒2200個遙測網(wǎng)絡(luò)數(shù)據(jù)包、5000個參數(shù)的實時處理,滿足當前網(wǎng)絡(luò)化遙測試飛監(jiān)控需求,為新一代網(wǎng)絡(luò)化遙測的發(fā)展提供了寶貴的經(jīng)驗。
山 壽 王 鵬
中國飛行試驗研究院
山壽(1987-)男,陜西省西安市人,助理工程師,碩士。研究方向:遙測數(shù)據(jù)處理、計算機應(yīng)用。
10.3969/j.issn.1001-8972.2016.11.026
國防基礎(chǔ)科研項目(A0520132031)