寧艷艷 袁 野
(中電科航空電子有限公司 四川 成都 611731)
目前民用飛機上主要的航電系統(tǒng)設備及軟件大都由國外供應商如柯林斯、霍尼韋爾、GE等提供。隨著C919和琨龍600國產(chǎn)大飛機的首飛成功,國內(nèi)的民機產(chǎn)業(yè)發(fā)展迅速,民用機載軟件的研制也得到越來越多的重視。民用機載軟件的研制具有高安全性和高可靠性的要求,RTCA DO-178C[2]標準根據(jù)系統(tǒng)安全性的要求對機載軟件進行了等級劃分并為不同等級的軟件提出了不同數(shù)量的研制和審查目標。
隨著民用航電系統(tǒng)的集成化和模塊化的發(fā)展促使綜合模塊化航空電子(IMA)系統(tǒng)架構(gòu)的產(chǎn)生,將機載軟件駐留在IMA平臺也成為了航電系統(tǒng)發(fā)展的主要趨勢。此外,基于ARINC 661規(guī)范的座艙顯示系統(tǒng)的發(fā)展解決了傳統(tǒng)機載航電系統(tǒng)的人機交互存在的界面友好型差、操作繁瑣的問題,成為當前主流的座艙顯示技術[3]。
機載數(shù)據(jù)鏈應用AOC主要用于航空公司管理飛機運行、氣象、延誤、維護以及其他相關的運營活動,業(yè)務種類繁多,并且支持航空公司自行定義。典型的AOC報文包括:OOOI報、飛行狀態(tài)、延誤及變更報、氣象報請求、維護報文、客艙服務請求等[4]。本文通過分析AOC應用軟件的功能,結(jié)合DO-178C標準的要求,針對AOC軟件架構(gòu)的設計進行研究。
通過分析飛行機組及航空公司及對AOC應用軟件的需求得出,通常AOC應用支持三種觸發(fā)邏輯發(fā)起與地面航空公司的消息交互[5]:
1) 周期性觸發(fā) AOC應用按照配置的時間周期發(fā)送下鏈消息。最常見的就是飛機位置報,通過飛機周期性下發(fā)的飛機位置數(shù)據(jù), 航空公司可以掌握飛機的活動狀態(tài)以及飛機位置。因此,AOC應用需具備數(shù)據(jù)庫加載和飛行狀態(tài)監(jiān)控的功能。
2) 事件觸發(fā) AOC應用在特定事件發(fā)生時發(fā)送下鏈消息。通常用于航空公司掌握飛機飛行狀態(tài)的變化,將飛機的飛行狀態(tài)變化事件與特定的報文生成邏輯綁定,達到及時掌握飛行關鍵事件和關鍵參數(shù)的目的,如飛機滑出、起飛、著陸邏輯與OOOI報文生成綁定。因此,AOC應用需具備事件管理和事件觸發(fā)動作處理的功能。
3) 手動觸發(fā) 飛行機組通過HMI界面操作向地面請求或通知某種信息、事件。如氣象請求報、延誤報、預計到達時間報等。因此,AOC應用需具備響應界面操作的功能。
AOC應用的主要功能包括:
1) 通過ACARS空-地數(shù)據(jù)鏈系統(tǒng)在飛行機組和航空公司間進行上/下鏈消息交互,包括典型的AOC報文和客戶化的上/下鏈消息。
2) 為飛行機組提供信息顯示和人機操作界面,并響應機組操作指令。
3) 支持客戶化數(shù)據(jù)庫的加載,根據(jù)用戶配置進行客戶化處理,以滿足航空公司的特殊要求。
2.1.1 軟件概述
為了滿足不同航空公司的需求,AOC應用軟件需具備航空公司客戶化功能。為滿足該需求,AOC應用的實現(xiàn)需包含機載AOC應用軟件和客戶化數(shù)據(jù)庫兩部分。在地面基于航空公司需求通過地面支持工具(客戶化數(shù)據(jù)庫生成工具)完成配置生成客戶化數(shù)據(jù)庫。機載AOC應用軟件加載客戶化數(shù)據(jù)庫,完成AOC消息的傳輸及機組界面操作的響應處理。
2.1.2 軟件等級確定
按照RTCA DO-178C的軟件設計等級定義,AOC應用軟件的故障不影響飛機的安全、不會增加機組人員的工作負擔。因此,在數(shù)據(jù)鏈系統(tǒng)設計時將AOC應用軟件的設計保障等級定為E級。
2.1.3 分區(qū)考慮
按照RTCA DO-178C的架構(gòu)考慮,機載數(shù)據(jù)鏈系統(tǒng)的設計采用IMA體系架構(gòu),AOC應用軟件運行在一個獨立的ARINC 653分區(qū)中。這樣可保證AOC應用軟件的運行不受運行在其他分區(qū)中軟件運行的影響,且對AOC軟件的更改不影響系統(tǒng)安全。
2.2.1 功能模塊劃分
按照AOC應用的功能要求,可將AOC應用軟件劃分為以下五大功能模塊:
1) 顯示管理模塊 基于ARINC661規(guī)范提供A661事件處理機制,負責HMI界面的顯示及響應用戶操作。
2) 控制管理模塊 基于消息生成邏輯負責下鏈消息的生成和發(fā)送,上鏈消息的接收、解析及顯示等處理,收集并存儲網(wǎng)絡上的飛機參數(shù),為HMI界面提供顯示數(shù)據(jù)和動作處理方法。
3) 協(xié)議層 提供AOC軟件的通信接口,包括與CDS間的ARINC661接口、與通信管理單元間的ARINC619接口[6]以及AFDX接口。
4) 數(shù)據(jù)庫管理模塊 存儲客戶化的數(shù)據(jù)庫并為控制管理模塊提供訪問數(shù)據(jù)庫的接口。
2.2.2 MVC框架
為做到業(yè)務邏輯、數(shù)據(jù)和界面顯示的分離,AOC應用軟件的架構(gòu)設計采用MVC框架[7]。在MVC框架中,Model作為AOC應用軟件的核心處理模塊,負責業(yè)務邏輯處理、存儲業(yè)務數(shù)據(jù)并為View提供業(yè)務數(shù)據(jù)訪問接口以及AOC數(shù)據(jù)庫訪問接口;View負責響應界面操作并基于Model提供的數(shù)據(jù)進行界面顯示;Controller為View提供基于ARINC661的顯示機制。
2.2.3 設計模式
AOC軟件架構(gòu)的設計中使用了如下兩種設計模式:
1) 單例模式[8](Singleton) 單例模式用于確保整個應用程序中只有一個類實例,并提供一個訪問該實例的全局訪問點。
2) 觀察者模式[8](Observer Pattern) 觀察者模式是定義對象間的一種依賴關系,當一個對象的狀態(tài)發(fā)生改變時,所有依賴它的對象都得到通知被自動更新。觀察者(Observer)作為消息的接收端,目標(Object)作為消息的發(fā)送端。該設計模式用于AOC應用各組件間的消息交互,消息的發(fā)送與接收是通過注冊-通知(Register-Notify)的方式實現(xiàn)的。在軟件初始化階段,各組件根據(jù)預先設計的消息路由數(shù)據(jù)字典向目標端注冊各自關心的消息,軟件運行過程中如果產(chǎn)生消息,則會傳遞給注冊的觀察者。
adcresultb0[SampleCount-1]=adc[8]; //將ADCINB0數(shù)據(jù)存入數(shù)組adcresultb0[]中
除單例模式和觀察者模式外,AOC軟件的設計還用到了運行時(Runnable)對象的設計思想。Runnable對象作為軟件運行時的一個調(diào)度單元,被主程序直接調(diào)度。每個Runnable對象都提供了一個被主程序的接口,并不是所有的組件都是Runnable對象。
2.2.4 邏輯架構(gòu)設計
基于AOC應用軟件的功能模塊的劃分和設計考慮,AOC應用軟件的邏輯架構(gòu)設計如圖1所示。
圖1 AOC軟件架構(gòu)
各組件的功能描述如表1所示。
表1 組件功能描述
各組件使用的設計模式如表2所示。
表2 組件設計說明
2.2.5 控制邏輯
圖2為AOC軟件各組件間的控制邏輯關系圖。
圖2 控制邏輯關系
1) 當AOC軟件從網(wǎng)絡上收到通過CMU轉(zhuǎn)發(fā)的來自地面的上鏈消息后,AFDX層根據(jù)消息類型將上鏈消息路由給A619層;A619層根據(jù)ARINC 619規(guī)范進行上鏈消息解析,并將解析后的數(shù)據(jù)路由給上鏈消息處理模塊;上鏈消息處理模塊根據(jù)具體的消息Label進行消息參數(shù)解析處理,并將解析得到的參數(shù)更新。參數(shù)管理模塊為其他模塊提供了訪問參數(shù)的接口。
2) 當某一事件的產(chǎn)生觸發(fā)一條下鏈消息的發(fā)送時,動作處理模塊通知下鏈消息處理模塊進行消息參數(shù)封裝、消息格式化等處理;下鏈消息處理模塊根據(jù)消息的優(yōu)先級將待發(fā)送的消息路由給A619模塊;A619模塊根據(jù)ARINC 619規(guī)范將消息封裝成A619消息并路由給AFDX層,經(jīng)由AFDX層發(fā)送到網(wǎng)絡上。
3) 當某一事件的產(chǎn)生觸發(fā)更新HMI界面時,動作處理模塊會通知HMI頁面管理模塊,該模塊獲取頁面參數(shù)并通過ARINC661 Framework封裝為標準ARINC661消息后路由給AFDX層,經(jīng)由AFDX層發(fā)送給座艙顯示系統(tǒng)CDS;當收到來自CDS的命令時,AFDX層將ARINC661消息路由給A661層,該層將消息路由給A661Framework模塊進行解析,得到命令或數(shù)據(jù)類型,并將命令/數(shù)據(jù)發(fā)送給HMI頁面管理模塊進行頁面更新。
飛機飛行過程中機組與航空公司交互的信息眾多,設計簡單易操作的人機界面對提高飛行安全、降低機組工作壓力具有重要意義。
飛機整個飛行過程可以劃分為航前(Preflight)、航中(En-route)和航后(Post-Flight)三個階段,在不同的飛行階段機組與航空公司交互的信息不同,按照交互類型可將典型應用分為請求、報告和飛行日志三種類型。此外,AOC應用還提供了消息日志顯示、系統(tǒng)配置等功能。
結(jié)合AOC應用功能的分類,本文基于ARINC661容器控件提供DF的樹形結(jié)構(gòu),采用分層架構(gòu)設計AOC應用的人機界面。AOC應用的基礎界面布局和層次化結(jié)構(gòu)所使用的容器類控件如圖3所示,每個頁面(Panel)包含了實現(xiàn)該頁面功能的所有控件(Widget)。
圖3 AOC應用界面布局
為支持AOC界面的客戶化,將頁面布局及使用的Widget信息存儲到客戶化數(shù)據(jù)庫中。數(shù)據(jù)庫中每個Widget的屬性包括Widget類型、Widget標識、父控件標識,以及Widget運行時可修改的屬性。AOC應用軟件在加載數(shù)據(jù)庫后將控件列表構(gòu)建成Widget樹,每個Widget稱為一個樹節(jié)點。Widget類別用于將所有控件劃分為容器類、非容器類兩種類型。父節(jié)點Widget表示當前Widget的父節(jié)點的引用,子節(jié)點Widget列表包含該容器控件下的所有子Widget的引用[10]。
AOC應用界面的客戶化流程包括三個步驟:
1) 基于圖3所設計的頁面布局,通過DF生成工具繪制DF文件,本文采用SCADE Display工具生成DF文件;
2) 客戶化數(shù)據(jù)庫生成工具加載DF文件并解析,存儲界面控件列表到數(shù)據(jù)庫中,并導出二進制數(shù)據(jù)庫文件;
3) AOC應用軟件加載數(shù)據(jù)庫文件讀取用戶客戶化界面控件信息,并根據(jù)配置進行顯示處理。
基于本文的設計,將AOC應用軟件駐留到IMA硬件單元中,通過AFDX網(wǎng)絡與通信管理系統(tǒng)CMU、座艙顯示系統(tǒng)CDS及其他機載航電設備進行信息交互。為驗證AOC應用軟件設計的正確性、合理性,在實驗室中搭建了一套基于測試環(huán)境,如圖4所示。
圖4 AOC應用軟件測試環(huán)境
1) 上航電參數(shù)仿真器 主要用于為AOC應用軟件提供所需的飛機參數(shù);
2) CDS仿真器 用于仿真CDS(座艙顯示單元)設備,加載DF文件,完成界面顯示和與AOC應用(UA)的消息交互處理;
3) CMU仿真器 主要用于模擬基于ARINC 618[11]協(xié)議的消息處理和消息路由;
4) RDIU 用于AFDX數(shù)據(jù)與ARINC 429數(shù)據(jù)格式的轉(zhuǎn)換;
5)AIRTEL MTP200 用于模擬地面電臺及DSP的收發(fā)消息處理功能。
AOC應用軟件在初始化階段完成客戶化數(shù)據(jù)庫的加載,與CDS仿真器建立連接完成初始化界面顯示,能夠響應用戶操作并進行界面顯示更新。同時,AOC應用軟件還通過CMU仿真器、機載VHF電臺與地面建立數(shù)據(jù)通信鏈路,可以收發(fā)上/下鏈消息并進行處理。為驗證設計的正確性和完整性,本次測試分為三部分:一是上鏈消息的處理和顯示;二是用戶操作觸發(fā)下鏈消息處理;三是事件觸發(fā)的下鏈消息處理。
1) 測試輸入:通過地面仿真軟件發(fā)送AOC上鏈消“Rpt XXXXXXXXX/1THE WEATHER IS RAINING WITH SOME STORM”,如圖5中消息a所示。
圖5 地面仿真軟件消息日志
2) 測試結(jié)果:AOC軟件收到上鏈消息并在CDS仿真器上顯示,如圖6所示。
圖6 AOC軟件上鏈消息界面顯示
3) 結(jié)果分析:AOC軟件可正確接收、處理并顯示上鏈消息。
1) 測試輸入:模擬飛行機組在AOC界面上輸入起飛機場、目的機場、飛行機組等必要信息,點擊“SEND”按鍵發(fā)送航班初始化下鏈消息,如圖7所示。
圖7 用戶操作觸發(fā)下鏈消息
2) 測試結(jié)果:地面仿真軟件收到航班初始化下鏈消息“M08AUV00003G01 INIT ------/21 SCTU/SSZH/------/”,如圖5中消息b所示。
3) 結(jié)果分析:AOC軟件可正確接收處理用戶輸入信息并響應用戶操作成功發(fā)送下鏈消息。
1) 測試輸入:提供AOC客戶化數(shù)據(jù)庫配置周期性下發(fā)氣象信息。
2) 測試結(jié)果:AOC軟件成功發(fā)送氣象報告下鏈消息到地面仿真軟件,如圖8和圖5中消息c所示。
圖8 事件觸發(fā)發(fā)送下鏈消息
3) 結(jié)果分析:AOC軟件可正確處理周期事件并可基于配置正確處理下鏈消息的發(fā)送。
測試結(jié)果表明,AOC應用軟件能夠通過ACARS空-地數(shù)據(jù)鏈系統(tǒng)與地面航空公司交互上下鏈消息,能夠為用戶提供友好的人機界面,可響應用戶界面操作成功觸發(fā)下鏈消息,支持基于用戶配置進行周期性下鏈消息和事件觸發(fā)的下鏈消息處理。
本文通過對AOC應用的功能分析,設計了一套基于MVC框架的軟件架構(gòu)。同時基于ARINC 661的層次化結(jié)構(gòu),設計了一套易操作、用戶友好的人機界面。測試結(jié)果表明本文設計合理,能夠滿足用戶需求。
隨著民用機載航電系統(tǒng)的發(fā)展,數(shù)據(jù)鏈技術得到越來越廣泛的應用,尤其是在面向航空公司的應用方面,數(shù)據(jù)鏈技術的應用具有提高航空公司運行效率、降低運營成本的重要意義。然而目前國外相關企業(yè)在民用數(shù)據(jù)鏈領域占據(jù)壟斷地位,我國在民用數(shù)據(jù)鏈領域的研究剛剛起步。隨著國產(chǎn)化大飛機的發(fā)展,深入研究民用數(shù)據(jù)鏈AOC應用軟件對研制滿足適航要求的國產(chǎn)化機載軟件具有重要的意義。