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