王 云,鄒 慶,黃祖丹,楊衍舒
(航空工業(yè)洪都,江西 南昌,330024)
飛行模擬器能夠在地面逼真地再現(xiàn)飛機的飛行特征,是航空工業(yè)發(fā)展必不可少的一項設(shè)備,無論是前期的技術(shù)驗證,還是后期對飛行員的培養(yǎng),飛行模擬器都扮演著重要角色。運用飛行模擬器對飛行員進行訓練,既經(jīng)濟又安全,同時不受天氣、機場等條件限制[1]。飛行模擬器具有可控性、無破壞性、經(jīng)濟性、可靠性等優(yōu)點。
在飛行模擬器的設(shè)計中,要求大量的信息能夠快速有效地在飛行模擬器的各個分系統(tǒng)之間進行高速傳遞,這就需要一定的通信接口協(xié)議來實現(xiàn)數(shù)據(jù)的交互。 目前,飛行模擬器通常采用基于C/S 模型通訊架構(gòu),在各個分系統(tǒng)之間均建立一對一的服務(wù)器/客戶端網(wǎng)絡(luò)通道。 這種方式不僅通訊通道多、通訊方式繁雜、數(shù)據(jù)重復(fù)傳輸,造成網(wǎng)絡(luò)負擔重,而且可兼容性、靈活性不高,不容易對網(wǎng)絡(luò)數(shù)據(jù)進行全面、實時的監(jiān)視,為系統(tǒng)聯(lián)調(diào)、故障定位等問題增加難度。
本文分析了飛行模擬器現(xiàn)用數(shù)據(jù)交互技術(shù)存在的問題,在此基礎(chǔ)上,基于可靠適用的原則開展網(wǎng)絡(luò)數(shù)據(jù)動態(tài)交互技術(shù)研究,架構(gòu)了新的系統(tǒng)網(wǎng)絡(luò),并以某型飛機飛行模擬器為平臺進行測試,驗證了技術(shù)的優(yōu)越性。
現(xiàn)用的飛行模擬器采用千兆以太網(wǎng)組建數(shù)據(jù)網(wǎng)絡(luò),所有計算機通過交換機接入本地局域網(wǎng)。各通信軟件之間采用UDP 或TCP 協(xié)議建立通訊通道,以嚴格按照事先約定的接口定義和通訊方式進行數(shù)據(jù)交互。
目前采用的數(shù)據(jù)交互方式雖然滿足了飛行模擬器各系統(tǒng)交聯(lián)的數(shù)據(jù)需求和實時性要求,但仍存在以下問題:
1) 通訊通道多,數(shù)據(jù)監(jiān)視困難?,F(xiàn)用的通過飛機仿真計算機與其他系統(tǒng)建立一對一或一對多的多條服務(wù)器/客戶端網(wǎng)絡(luò)通道,且發(fā)送網(wǎng)絡(luò)及接收網(wǎng)絡(luò)各不同,構(gòu)成了復(fù)雜的網(wǎng)絡(luò)通訊,需約定多個網(wǎng)絡(luò)地址及端口。若需監(jiān)視整個網(wǎng)絡(luò)數(shù)據(jù),在現(xiàn)用通訊方式的基礎(chǔ)上是無法實現(xiàn)的;
2) 數(shù)據(jù)重復(fù)傳輸,增加網(wǎng)絡(luò)負擔?,F(xiàn)用的系統(tǒng)數(shù)據(jù)流大多由飛機仿真計算機發(fā)送,造成了大量數(shù)據(jù)重復(fù)發(fā)送,如各系統(tǒng)需要的飛行位置、姿態(tài),聲音及顯控/任務(wù)模擬系統(tǒng)需要的機載系統(tǒng)工作狀態(tài)。 顯控/任務(wù)模擬系統(tǒng)需要的座艙操縱信號需通過飛機仿真計算機接收數(shù)據(jù)采集控制器數(shù)據(jù)后進行轉(zhuǎn)發(fā),平顯模擬計算機需要的任務(wù)數(shù)據(jù)需通過飛機仿真計算機接收顯控/任務(wù)模擬系統(tǒng)數(shù)據(jù)后進行轉(zhuǎn)發(fā)。 這都大大增加了交互數(shù)據(jù)量,一定程度浪費了網(wǎng)絡(luò)資源;
3) 耦合性差,通訊關(guān)系不夠靈活?,F(xiàn)用的通訊方式中數(shù)據(jù)的流轉(zhuǎn)只限制在約定的兩者或三者之間。 若模擬器加入新的參訓設(shè)備,必須在數(shù)據(jù)發(fā)送方和需求方之間約定新的數(shù)據(jù)接口,明確雙方通訊關(guān)系,建立新的網(wǎng)絡(luò)通道。這種方式不能靈活地接收參與方進入網(wǎng)絡(luò);
4) 兼容性差,不便于軟件移植。不同型號飛機飛行模擬器的參訓設(shè)備是不同的,從而導(dǎo)致網(wǎng)絡(luò)中交互的數(shù)據(jù)是不同的。 軟件移植后,網(wǎng)絡(luò)接口需要重新設(shè)計,因此按照現(xiàn)有的雙方約定固定數(shù)據(jù)接口的方式無法兼容不同模擬器,軟件不能通用,可移植性不高。
針對上述存在的問題,提出一種“以數(shù)據(jù)為中心、各司其職、各取所需”的松耦合數(shù)據(jù)交互機制。對交互的數(shù)據(jù)進行裁剪, 采用數(shù)據(jù)動態(tài)封裝及分包傳輸方式,減少了數(shù)據(jù)量,實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)動態(tài)交互,基本思想為:
1) 采用組播通信方式, 數(shù)據(jù)發(fā)送方只需按數(shù)據(jù)交互規(guī)則發(fā)布數(shù)據(jù), 數(shù)據(jù)需求方只需按需求接收數(shù)據(jù),均不需要明確發(fā)送/接收的對象;
2) 篩選出各系統(tǒng)重疊所需的數(shù)據(jù),進行整合,降低網(wǎng)絡(luò)負擔;
3) 發(fā)送/接收的數(shù)據(jù)能夠動態(tài)進入或退出,且不影響整體網(wǎng)絡(luò)通訊的運行。為進一步減少交互數(shù)據(jù)量,對數(shù)據(jù)封裝時進行發(fā)送時機判斷;
4) 對超過1472 字節(jié)的數(shù)據(jù)包設(shè)計分包發(fā)送機制。
注:當UDP 包中的數(shù)據(jù)多于1472 字節(jié)時,發(fā)送方IP 層需要分片進行傳輸,而接收方IP 層則需要進行數(shù)據(jù)包重組。由于UDP 是不可靠傳輸協(xié)議,如果分片丟失導(dǎo)致重組失敗,將導(dǎo)致UDP 數(shù)據(jù)包被丟棄。因此普通局域網(wǎng)環(huán)境下,UDP 數(shù)據(jù)最大為1472 字節(jié)最好,避免分片重組[2]。
數(shù)據(jù)交互規(guī)則為:
1) 發(fā)送方和接收方按數(shù)據(jù)需求,分別編制接口文件。以“一個數(shù)據(jù)一條目”的固定格式寫入數(shù)據(jù)接口信息,其中以主編號ID 和子編號SubID 組合作為每個數(shù)據(jù)接口的唯一標識,文件以TXT 格式保存。 為保證ID 和SubID 組合的唯一標識,避免接收方數(shù)據(jù)解析混淆和錯誤,對各系統(tǒng)內(nèi)發(fā)送的數(shù)據(jù)約定ID 和SubID 使用范圍,相同數(shù)據(jù)的接口信息在發(fā)送方和接收方必須一致;
2) 根據(jù)ID、SubID 組合的唯一性,為每一個數(shù)據(jù)建立地址映射,形成一個完整的數(shù)據(jù)映射表;
3) 數(shù)據(jù)發(fā)送前對數(shù)據(jù)包進行封裝,遍歷數(shù)據(jù)映射表,判斷數(shù)據(jù)狀態(tài)是否更新。若有變化,判斷數(shù)據(jù)包是否超過1472 字節(jié),若未超過將數(shù)據(jù)按固定格式存入數(shù)據(jù)包,若超過則將數(shù)據(jù)存入新的數(shù)據(jù)包,更新數(shù)據(jù)包頭信息,直至遍歷完成映射表中所有數(shù)據(jù)。 每個數(shù)據(jù)包均由固定長度的數(shù)據(jù)包頭和不定長度的數(shù)據(jù)包體構(gòu)成,數(shù)據(jù)包頭包括數(shù)據(jù)包版本、數(shù)據(jù)包體個數(shù)及數(shù)據(jù)包體長度;
4) 接收到數(shù)據(jù)后對數(shù)據(jù)包進行解析,以固定長度從數(shù)據(jù)包首位置截取數(shù)據(jù)包頭。判斷數(shù)據(jù)包版本是否正確, 數(shù)據(jù)包體個數(shù)及數(shù)據(jù)包體總長度是否為非0,若不符合則舍棄該數(shù)據(jù)包,否則以固定長度按順序截取,獲得數(shù)據(jù)ID、SubID 及數(shù)據(jù)。 遍歷映射表,從中查詢一致的ID 和SubID,更新對應(yīng)數(shù)據(jù)。
基于上述設(shè)計的網(wǎng)絡(luò)數(shù)據(jù)動態(tài)交互技術(shù),以某型教練機飛行訓練模擬器為平臺,搭建驗證環(huán)境,各系統(tǒng)數(shù)據(jù)交互的發(fā)送方和接收方關(guān)系如圖1 所示。
圖1 數(shù)據(jù)通訊圖
由于圖形生成計算機為定制接口,通訊方式無法更改,但其網(wǎng)絡(luò)數(shù)據(jù)量不大,不會影響測試結(jié)論,因此保持原有架構(gòu)。其他系統(tǒng)的通訊方式按網(wǎng)絡(luò)數(shù)據(jù)動態(tài)交互方式設(shè)計。
計算在相同飛行狀態(tài)下采用動態(tài)交互方式和現(xiàn)用交互方式的網(wǎng)絡(luò)數(shù)據(jù)量,以地面待飛狀態(tài)和武器攻擊狀態(tài)為例,兩種方式的數(shù)據(jù)量對比情況見表1、表2。
表1 地面待飛狀態(tài)的網(wǎng)絡(luò)數(shù)據(jù)量
表2 火箭彈對地攻擊的網(wǎng)絡(luò)數(shù)據(jù)量
通過比較表1、表2 的數(shù)據(jù)量可以看出,在飛機狀態(tài)變化較小的地面待飛時刻和變化較明顯的武器攻擊時刻,采用動態(tài)交互的方式,網(wǎng)絡(luò)數(shù)據(jù)量均遠遠小于現(xiàn)用交互的方式。
飛行模擬器是基于數(shù)據(jù)交互的復(fù)雜系統(tǒng),通過分析數(shù)據(jù)交互現(xiàn)狀,在“滿足實時性、以數(shù)據(jù)為中心、各取所需、降低網(wǎng)絡(luò)負擔”的基本思想下,設(shè)計了數(shù)據(jù)動態(tài)交互技術(shù)。經(jīng)過平臺驗證,考核該技術(shù)的可行性和適用性,證明該技術(shù)較好地滿足了各系統(tǒng)數(shù)據(jù)需求,保證實時性的同時,很大程度降低了網(wǎng)絡(luò)負擔。