摘 要 本文介紹了某型直升機模擬器綜合顯示系統軟件的模塊設計和實現方法,該綜合顯示系統仿真軟件基于Visual Studio和GL Studio平臺采用C++語言開發,軟件的兩個主要模塊移植自機載任務機和多功能顯示器的軟件,在原有機載軟件基礎上對1553B和422總線驅動機制進行適配性修改,利用GL Studio軟件生成多功能顯示器畫面,經試飛驗證該綜合顯示系統能夠實現系統設計要求的全部功能。
【關鍵詞】直升機 模擬器 綜合顯示系統 仿真
1 引言
隨著虛擬顯示技術的發展,模擬訓練已經廣泛應用于各行各業,比如汽車模擬駕駛、固定翼飛行模擬和大型工程機械設備的模擬操作等。隨著模擬器相關的開發技術越來越成熟,直升機模擬器具備易維護、低成本和高安全性等特點,使用直升機模擬器進行訓練,可以不受外界氣象環境、飛行場地和空域管理的限制,能夠較好地解決直升機使用方在戰術對抗、戰法演練和協同作戰等方面提出的新的要求,直升機飛行模擬技術已逐漸成為研究飛行和實現飛行訓練目的的最佳途徑。作為一種安全、經濟有效的訓練助手,飛行模擬器引起了各國軍方以及民航的高度關注,不斷加大研制和采購力度。飛行模擬器一般包括飛機模擬座艙、飛控模擬系統、發動機模擬系統、航電模擬系統、視景系統、音效系統等。近些年在飛行模擬器音效系統聲源提取、多功能顯示器建模與仿真、視景系統等領域有很多研究。
本文介紹的直升機模擬器綜合顯示系統需要模擬綜合顯示與控制設備,提供基本飛行導航信息的綜合顯示;需要模擬接收處理電視等傳感器圖像完成視頻的疊加及顯示;需要模擬數字地圖生成顯示;需要模擬發動機綜合參數、機電系統狀態參數的備份顯示等等。
本文針對該型直升機模擬器的研發工作,系統總結了模擬器綜合顯示系統的總體架構和軟件開發集成的經驗。探索如何設計綜合顯示仿真系統架構以便該型模擬器的軟件和硬件架構能夠復用到將來其他型號模擬器的研發工作,在此前提下研究復用現有機載軟件代碼的方法,以保證仿真系統的功能最大程度地與機載系統保持一致。
2 模擬器綜合顯示系統與其他子系統交聯關系
本文介紹的綜合顯示系統是航空電子模擬仿真系統的一部分。航空電子模擬仿真系統包括綜合顯示系統仿真軟件、備飛顯示器仿真軟件、機電參數顯示器仿真軟件、數據采集和邏輯仿真軟件、航空電子硬件模擬集成子系統等。航空電子硬件模擬集成子系統包括多功能顯示器、機電參數顯示器、CNI(Communication Navigation Identification,通信導航識別系統)顯示控制盒、ICU(Integrated Control Unit,綜合控制單元)等儀表板設備、中央操縱臺設備、左右操縱臺設備和頂部操縱臺等設備。如圖1所示。
本文介紹的綜合顯示系統由相關的硬件和軟件組成,硬件通過半實物仿真實現,軟件包括多功能顯示器仿真軟件和任務管理仿真子系統等其他模塊。綜合顯示系統通過以太網與模擬器其他航電仿真設備交聯,數據仿真和邏輯仿真軟件從各分系統仿真計算機獲取直升機模擬器的姿態、航向、高度、速度等信號數據,同時綜合多功能顯示器、機電參數顯示器、CNI顯示控制盒、ICU、駕駛桿等模擬硬件采集到的駕駛員操作指令。綜合顯示系統綜合上述信息,實現航電與電氣操作邏輯控制;多功能顯示器仿真軟件接受來自任務管理子系統的相關數據,按要求生成顯示指令DF(Definition File,定義文件)發送給相關顯示模塊解析后繪制機載顯示圖像。
3 綜合顯示系統軟件模塊設計
綜合顯示系統軟件集成了機載OFP(Operation Flight Program,操作飛行程序)軟件和機載MFD(Multi Function Display,多功能顯示器)軟件。主要包括初始化及主調度控制模塊、數據交互服務模塊、OFP軟件模塊、航電子系統控制模塊、事件調度模塊、MFD主控模塊和MFD顯示模塊等,如圖2所示。
3.1 綜合顯示系統工作流程
如圖3所示,綜合顯示系統軟件是整個模擬器航空電子仿真系統的核心,軟件完成初始化后開始執行周期為50毫秒的任務,OFP主任務移植于機載OFP軟件,用于模擬機載任務機的主任務;MFD主任務移植于機載MFD軟件,用于模擬機載MFD軟件的主任務;MFD主任務執行過程中調用DF數據生成模塊生成顯示指令DF數據,OFP主任務和MFD主任務執行完后,通過以太網將DF數據發送至多功能顯示器仿真軟件;OFP主任務執行完后會產生任務機到各航電子系統的1553B消息事件,調用航電子系統的任務調度模塊處理相關1553B消息,用于模擬航電子系統的數據接口轉換和部分邏輯仿真;綜合顯示系統軟件采用基于事件消息的驅動機制,軟件運行過程中各模塊會觸發定時器等各種消息事件,“定時器及其他事件處理”子流程負責處理這些消息事件;以上所有流程完成后,調用數據交互服務模塊將各航電子系統發送給OFP軟件的1553B消息發送給OFP軟件仿真模塊,結束整個周期任務。
3.2 數據交互服務模塊的設計
數據交互服務模塊負責完成各軟件模塊之間的接口適配。機載環境中各系統通過1553B和422總線進行交互,模擬器對各設備的外部交聯關系進行了更改,變成以太網連接方式為主,綜合顯示系統部分模塊之間采用內存緩存的形式進行數據交互。為此,綜合顯示系統軟件需要開發數據收發服務模塊,管理整個仿真系統的數據交互工作,交聯關系變更后的數據流圖如圖4、圖5所示。
3.2.1 以太網數據收發模塊
綜合顯示系統與數據仿真軟件通過以太網進行通信,數據仿真軟件將各分系統的仿真數據通過以太網發送給綜合顯示系統軟件,綜合顯示系統軟件的數據交互服務模塊收到分系統的仿真數據后進行接口轉換工作,按照機載軟件ICD(Interface Control Document,接口控制文件)規定,分別賦值給相應的航電子系統仿真數據塊。
如圖4所示,MFD主控模塊和顯MFD顯示模塊之間的DF數據發送通過以太網完成,圖5中,當OFP軟件模塊和ICU仿真軟件之間需要收發422數據時,將通過以太網進行接口適配。
3.2.2 1553B數據收發模塊
本文對綜合顯示系統內部通信和外部通信的不同1553B數據收發模塊進行分開處理。綜合顯示系統內部,比如OFP軟件模塊和MFD主控模塊之間的通信方式由1553B變更為通過讀寫內存數據完成,綜合顯示系統與航電子系統原有的通信方式由1553B變更為以太網。
OFP軟件模塊和MFD主控軟件模塊之間通過1553B總線通信,在模擬器開發時,為簡化硬件系統的交聯,將機載MFD軟件劃分為MFD主控模塊和MFD顯示模塊,同時將OFP模塊與MFD主控模塊集成到同一個軟件中,MFD顯示模塊使用GL Studio單獨開發,充分發揮GL Studio開發顯示軟件的長處。本文中的模擬器綜合顯示系統軟件的OFP模塊、MFD主控模塊、航電子系統控制模塊分別對應著機載OFP軟件、MFD軟件和各航電子系統的邏輯控制模塊,將這些軟件模塊集成到同一個應用程序,數據交互通過讀寫內存數據完成,不再使用1553B數據總線,但是保留原有機載軟件的數據收發接口。
如圖4所示,當OFP軟件模塊需要發送1553B數據給MFD主控模塊時,調用1553B數據發送函數,發送函數讀取邏輯塊號,根據邏輯塊號將發送的數據寫入對應的內存緩存區,并將對應的更新標識置為TRUE;當運行航電子系統主任務調度模塊時,查詢1553B數據更新標識是否為TRUE,如果為TRUE,則從緩存區讀取數據,讀取后將邏輯塊對應的更新標識置為FALSE。
圖5 所示的OFP軟件模塊與航電子系統控制模塊之間1553B數據收發流程同圖4所示的OFP軟件模塊與MFD主控模塊之間1553B數據收發流程。
3.2.3 422數據收發模塊
機載MFD軟件給OFP軟件發送的按鍵操作消息和ICU軟件給OFP軟件發送的按鍵操作消息通過422數據總線進行傳輸,模擬器取消了機載環境中的422數據總線。本文模擬器采用半實物仿真的模式,多功能顯示器本身不再運行任何應用程序,而是作為仿真計算機的外界輸出設備。多功能顯示器上的按鍵由專門的數據采集程序完成,數據采集程序采集到按鍵消息后由數據采集和邏輯仿真軟件通過以太網轉發給綜合顯示系統的OFP軟件模塊。
機載OFP軟件與ICU軟件的422接口改用以太網替換422板卡進行通信,大大簡化模擬器硬件架構。出于數據收發協議的可靠性和可移植性考慮,各仿真軟件之間的通信通過網絡端口號和設備ID號兩種方式進行識別。為此,需要對機載422數據的協議進行修改,在原有通信協議的第一個字節增加設備ID號定義,移植機載軟件時,需要在數據發送接口函數增加設備ID號,同時在接收接口函數增加ID號識別單元,根據設備ID號識別數據源后按原有協議進行數據解析。
3.3 機載OFP軟件的移植與集成
機載綜合顯示系統由任務機和四個多功能顯示器組成,OFP軟件運行在任務機中,MFD軟件運行在多功能顯示器中。綜合顯示系統的主要功能是負責全機的綜合任務管理和航電子系統控制,為保持與真實機載設備顯示與邏輯控制的一致性,綜合顯示系統OFP模塊采用機載源代碼在Visual Studio 平臺下使用C++語言進行移植,在保持原有代碼框架的前提下,對1553B總線、422總線消息的收發和讀取進行內部處理,基于事件驅動機制,實現與真實機載設備同樣的處理邏輯。OFP軟件模塊接收數據仿真軟件轉發的導航、大氣、通信、機電等仿真計算機模擬的數據,用于驅動MFD軟件中各顯示畫面。
機載OFP程序采用動態鏈接庫封裝的形式移植,對外開放三個軟件接口:任務初始化函數,周期任務函數和1553B上下線中斷函數。任務初始化函數在綜合顯示系統軟件初始化時調用;綜合顯示系統軟件每個任務周期調用一次OFP模塊的周期任務函數,完成OFP子系統的任務處理;1553B上下線中斷函數則用于模擬RT子系統的上下線過程。
3.4 機載MFD軟件的移植與開發
MFD是一種多功能信息顯示器,通過周邊按鍵管理和切換其顯示信息,主要為飛行員提供直觀的飛行顯示畫面,管理和控制基本航空電子系統狀態信息以及給飛行員駕駛提供告警等提示信息。機載多功能顯示器運行MFD軟件,為最大程度地確保仿真軟件和機載軟件的一致性,提高軟件代碼的可復用性,減少開發工作量,將機載MFD軟件代碼分割為兩大模塊:MFD主控模塊和MFD顯示模塊。
3.4.1 移植MFD主控模塊
MFD主控模塊執行周期任務,該模塊主要負責顯示指令的生成并將生成的DF數據發送給MFD顯示模塊,MFD主控軟件模塊移植后以動態鏈接庫的形式對外開放兩個軟件接口:初始化接口、周期任務接口。移植機載MFD軟件時,將原有的圖形繪制函數替換為DF指令生成模塊的相應函數,生成對應的圖形繪制指令。關于顯示指令DF的生成技術,有很多文獻進行了相關研究。
以生成一條直線的DF指令為例,設計如表1的數據結構。
將機載MFD軟件中的直線繪制函數的函數體進行替代,將直線的起點和終點的坐標數據賦給直線繪制的DF數據結構中,并打包發送給DF指令解析和顯示模塊。
3.4.2 MFD顯示模塊的設計
MFD顯示模塊實現顯示端仿真功能,使用GL Studio開發圖形顯示庫,可以供多型機的顯示端軟件共用。MFD顯示模塊通過以太網接收MFD主控模塊生成的DF,經解析后調用GL Studio圖形和符號庫進行顯示。GL Studio支持C++代碼的自動生成,基于面向對象技術,賦予四個顯示器對象不同的ID號,方便地實現四個顯示器畫面從同一塊顯卡輸出,極大地簡化了模擬器的硬件架構。MFD顯示模塊主要負責接收來自MFD主控模塊的的DF指令數據并進行解析,得到DF指令名稱和相關繪制控制的參數,按照控制參數生成對應的顯示畫面,DF指令解析的步驟如下:
(1)解析DF頭指令,獲取文件的長度
(2)遍歷所有數據字,獲取圖形繪制的指令和相應的參數,調用相應的指令控制類,將參數賦值,繪制相應的圖形;
(3)GL Studio圖形顯示模塊執行周期任務,刷新頁面,完成相關的顯示操作。
MFD顯示模塊承擔顯示指令DF解析和圖形顯示的功能,具有較好的可復用性和擴展性,當需要擴展顯示功能時,只需要增加對應的DF接口指令并在GL Studio平臺開發對應的顯示圖形。
以上一節的繪制直線為例,當解析到名稱為DF_LINE指令時,繼續從DF數據中解析出X1、Y1、X2、Y2等參數,將解析出的參數完成所需繪制直線的參數賦值,GL Studio圖形顯示模塊直線周期任務時刷新頁面,顯示出繪制的直線圖形。
4 結束語
本文提出的直升機模擬器綜合顯示系統的設計與實現方法在充分利用現有機載OFP和MFD等軟件的基礎上,完成了由1553B和422數據總線向以太網通信的轉換,大大簡化了系統的硬件結構并縮減了項目的開發成本,具有較好的實用性和經濟性。利用先進的人機接口(HMI)開發工具GL Studio生成儀表顯示頁面,具有開發效率高、開發質量好的特點,項目研制的MFD顯示模塊能夠較好地被其他型號的模擬器綜合顯示系統復用。經用戶試飛驗證本文研制的綜合顯示系統穩定可靠,能夠較好地滿足模擬器研制的用戶方和飛行員的需求。
參考文獻
[1]衡寧波,汪沛.直升機模擬器的現狀和發展趨勢研究[J].裝備制造技術,2011(05):98-100.
[2]韓紅偉,黨淑雯,何法江.飛行模擬器的結構設計與仿真研究[J].計算機工程與應用,2016,52(13):254-258.
[3]郭小和,焦宗夏,王少萍,王曉東.基于混合網絡環境的航電模擬器的設計與實現[J].系統仿真學報,2007,19(05):3419-3421.
[4]韓晨,劉超彗,陳雪英.關于GL Studio在某型飛行模擬器多功能顯示器建模與仿真中機電關鍵問題的探究[J].船舶電子工程,2005,36(11):20-24.
[5]鄧晴鶯,李國翬,王寶奇,姚建銓.某飛行模擬器視景系統的設計與實現[J].兵工自動化,2016,35(08):75-78.
[6]錢雪佳,孫永榮,袁磊,鄭澄,王巖.基于ARINC661的座艙顯示系統通信機制研究[J].測控技術,2013,32(10):105-108.
[7]袁磊,孫永榮,周曉達,徐剛,曹猛.基于ARINC661的DF文件設計平臺研究與實現[J].現代電子技術,2012,35(05):156-159.
作者簡介
程新滿(1985-),男,碩士學位。工程師。主要研究方向為機載軟件開發。
作者單位
中國直升機設計研究所 江西省景德鎮市 333001