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