摘 要:基于ARINC661架構(gòu)的顯示系統(tǒng)的最大特點(diǎn)在于將實(shí)現(xiàn)顯示畫面生成功能的應(yīng)用與實(shí)現(xiàn)畫面邏輯控制功能的應(yīng)用徹底隔離,使得系統(tǒng)開發(fā)后期的畫面更改和邏輯更改相互獨(dú)立、互不影響。該文基于對(duì)ARINC661規(guī)范的研究和SCADE開發(fā)工具,提出了一種通用的ARINC661顯示軟件開發(fā)框架,并就其中的UA邏輯構(gòu)建、Widget庫(kù)構(gòu)建、DF文件構(gòu)建、ARINC661運(yùn)行時(shí)通信協(xié)議模塊、網(wǎng)絡(luò)通信協(xié)議模塊、ARINC661內(nèi)核模塊的功能和實(shí)現(xiàn)方式進(jìn)行了介紹,可用于今后基于ARINC661架構(gòu)駕駛艙顯示系統(tǒng)數(shù)字化仿真、顯示軟件開發(fā)提供研究基礎(chǔ)。
關(guān)鍵詞:ARINC661 SCADE 顯示軟件開發(fā) UA
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2015)08(c)-0072-02
綜合航電系統(tǒng)主要包括座艙顯示系統(tǒng)(Cockpit Display System,簡(jiǎn)稱CDS)、飛行管理系統(tǒng)、機(jī)載雷達(dá)與通訊系統(tǒng)、飛機(jī)防撞系統(tǒng)、中央維護(hù)系統(tǒng)等8個(gè)子系統(tǒng)。作為人機(jī)交互的接口,座艙顯示系統(tǒng)將航電、發(fā)動(dòng)機(jī)、飛控等機(jī)載系統(tǒng)綜合成一個(gè)整體,以實(shí)現(xiàn)飛行信息的綜合處理、綜合顯示以及系統(tǒng)工作方式的綜合控制,重要性不言而喻。
文章基于SCADE軟件開發(fā)環(huán)境,提出了一個(gè)通用的ARINC661顯示軟件開發(fā)框架以支持座艙顯示系統(tǒng)軟件的研制流程。
1 ARINC661組成
ARINC66規(guī)范即“駕駛艙顯示系統(tǒng)人機(jī)接口規(guī)范”的發(fā)布為設(shè)計(jì)符合駕駛艙人機(jī)交互需求的顯示系統(tǒng)提供了指導(dǎo)規(guī)范,并逐漸成為目前航空顯示系統(tǒng)設(shè)計(jì)的行業(yè)標(biāo)準(zhǔn)。ARINC661對(duì)顯示系統(tǒng)和需要與顯示系統(tǒng)圖形內(nèi)核進(jìn)行交互以實(shí)現(xiàn)其圖形顯示功能的外部成員系統(tǒng)之間的接口進(jìn)行了規(guī)范,從而實(shí)現(xiàn)了駕駛艙顯示系統(tǒng)的通用性和一致性[1]。
ARINC 661在一個(gè)完整的框架下由幾個(gè)子部件組成。
(1)Widget Library:定義了座艙顯示系統(tǒng)的顯示內(nèi)容,包括基本圖元、圖元的可能組合以及對(duì)于復(fù)雜的地圖管理和支持。
(2)UA:將座艙顯示系統(tǒng)的邏輯與顯示部分完全分開,將邏輯部分配給一個(gè)個(gè)的UA進(jìn)行處理。
(3)ARINC 661內(nèi)核:CDS采用客戶端/服務(wù)器方式,服務(wù)器端叫做ARINC 661內(nèi)核,其主要工作包括渲染ARINC 661中定義的widgets,響應(yīng)用戶輸入,與UA間進(jìn)行信息交互的編碼、解碼工作以及對(duì)于多個(gè)屏幕、窗口和關(guān)注點(diǎn)的管理。
UA與ARINC 661內(nèi)核之間的通信協(xié)議,定義了由于用戶交互產(chǎn)生的傳遞給UA的事件、以及UA對(duì)于座艙顯示系統(tǒng)顯示數(shù)據(jù)變更的請(qǐng)求。
2 SCADE簡(jiǎn)介
SCADE(Safety-Critical Application Development Environment)即高安全性應(yīng)用程序開發(fā)環(huán)境,是實(shí)時(shí)嵌入式系統(tǒng)和電子系統(tǒng)的開發(fā)工具和方法學(xué),是基于模型的開發(fā)工具,運(yùn)用Correct by Construction的概念,從需求分析到代碼生成覆蓋嵌入式軟件開發(fā)的整個(gè)流程。
SCADE軟件提供了用于邏輯建模的SCADE Suite工具和用于圖形開發(fā)的SCADE Display工具,兩個(gè)工具配合使用可進(jìn)行完整的駕駛艙顯示系統(tǒng)軟件的開發(fā)工作。
3 通用顯示軟件開發(fā)框架總體方案
根據(jù)ARINC 661標(biāo)準(zhǔn)的組織結(jié)構(gòu),根據(jù)功能可以將通用顯示框架軟件劃分為以下幾個(gè)主要部分。
(1)UA邏輯構(gòu)建模塊。
(2)Widget庫(kù)構(gòu)建模塊(PC機(jī)、目標(biāo)機(jī))。
(3)Layer構(gòu)建模塊。
(4)二進(jìn)制DF文件構(gòu)建模塊。
(5)ARINC 661運(yùn)行時(shí)通信協(xié)議模塊。
(6)網(wǎng)絡(luò)通信協(xié)議模塊(Ethernet、AFDX)。
(7)ARINC 661內(nèi)核:DF文件解析模塊、DF文件加載模塊、窗口管理模塊、光標(biāo)鍵盤管理模塊、異常處理模塊。
3.1 UA邏輯構(gòu)建模塊
UA邏輯建模主要根據(jù)定義的軟件邏輯方程使用SCADE Suite的數(shù)據(jù)流和狀態(tài)機(jī)的聯(lián)合建模機(jī)制以直觀的方式描述顯示控制邏輯,并且在驗(yàn)證模塊下進(jìn)行模型的仿真和覆蓋率分析以確保構(gòu)建的模型滿足功能的要求,并且確保所有的結(jié)構(gòu)分支已被覆蓋和滿足一定的安全性特征的約束要求[3]。圖1為基于SCADE的邏輯建模例子。
3.2 Widget庫(kù)構(gòu)建模塊
ARINC 661標(biāo)準(zhǔn)里定義的接口依賴于一組基本的圖形用戶接口對(duì)象,稱之為“widget”。Widget的列表參見ARINC 661規(guī)范。通常來說,這些widget與某個(gè)顯示實(shí)體對(duì)應(yīng)。其中一些是“交互widget”,因?yàn)樗麄冎С謾C(jī)組人員通過光標(biāo)控制設(shè)備和鍵盤進(jìn)行交互。機(jī)組人員對(duì)交互widget的操作通常與事件報(bào)告相關(guān)聯(lián),發(fā)送給航電用戶應(yīng)用(UA)。非交互widget則沒有相關(guān)事件。
Widget庫(kù)的構(gòu)建主要可分為Widget圖形設(shè)計(jì)和Widget行為邏輯設(shè)計(jì)兩部分內(nèi)容,其主要開發(fā)流程如下。
(1)SCADE Display圖形設(shè)計(jì)。
(2)服務(wù)器配置。
(3)SCADE Suite行為設(shè)計(jì)。
(4)服務(wù)器生成和編譯。
服務(wù)器測(cè)試。
3.3 DF構(gòu)建模塊
DF構(gòu)建模塊生成主要是將XML格式的SCADE Display模型生成基于ARINC 661的二進(jìn)制文件,并完成對(duì)嵌入式環(huán)境下的移植,DF生成的工作流程如下。
(1)分析SCADE Display.SDF模型。
(2)讀取A661配置文件。
(3)檢查所有widget和它們參數(shù)。
(4)在內(nèi)存中組織并存儲(chǔ)DF的元素。
(5)把內(nèi)存中的DF元素按XML DF的格式輸出到XML文件形成最終的XML DF文件。XML DF文件的格式可參見A661標(biāo)準(zhǔn)。
(6)根據(jù)A661配置文件,把內(nèi)存中的DF元素按二進(jìn)制DF的格式寫到文件形成最終的二進(jìn)制DF文件。
3.4 ARINC 661運(yùn)行時(shí)通信協(xié)議模塊
UA和CDS之間的信息交互通過設(shè)置運(yùn)行時(shí)widget參數(shù)的方式進(jìn)行。這些參數(shù)的傳輸有兩種形式:
(1)應(yīng)用程序內(nèi)容的變化,可能采用定期的參數(shù)傳輸?shù)姆绞健?/p>
(2)對(duì)于一個(gè)widget事件的響應(yīng),采用純異步的方式。
CDS和UA之間的信息交互采用事件驅(qū)動(dòng)的方式,信息傳輸?shù)膬?nèi)容主要是一個(gè)widget或layer的響應(yīng)信息。
ARINC 661運(yùn)行時(shí)通信協(xié)議模塊在程序流程上可以分為兩個(gè)任務(wù)共9個(gè)Module。任務(wù)1與任務(wù)2獨(dú)立運(yùn)行,使用共享全局變量。任務(wù)1負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)的接收,并將接收到的數(shù)據(jù)保存在環(huán)形隊(duì)列中;任務(wù)2負(fù)責(zé)對(duì)環(huán)形隊(duì)列中的數(shù)據(jù)進(jìn)行解析并交由邏輯控制模塊進(jìn)行處理,將處理后的數(shù)據(jù)封裝成A661協(xié)議包并通過網(wǎng)絡(luò)發(fā)送給Server端。其程序流程如圖2所示。
3.5 網(wǎng)絡(luò)通信協(xié)議模塊
3.5.1 PC機(jī)端UDP通信
PC機(jī)平臺(tái)上以太網(wǎng)通信可以采用UDP和TCP/IP兩種通信協(xié)議方式進(jìn)行通信,鑒于UDP方式通信的效率高的特點(diǎn),可以采用UDP方式將UA與CDS之間的數(shù)據(jù)封裝并通過網(wǎng)絡(luò)進(jìn)行傳輸。UDP通信協(xié)議已經(jīng)很成熟,Windows平臺(tái)下也有自己的WINSOCK函數(shù)可以調(diào)用以實(shí)現(xiàn)UDP通信,但考慮到以后平臺(tái)的可移植性,實(shí)現(xiàn)嵌入式下UDP的通信功能,可以采用與平臺(tái)無關(guān)的SOCKET的API函數(shù)來實(shí)現(xiàn)UDP通信。
3.5.2 PC機(jī)端ARINC664網(wǎng)絡(luò)通信
由于目前駐留的航電的網(wǎng)絡(luò)通信結(jié)構(gòu)為ARINC664網(wǎng)絡(luò)聽信架構(gòu),UA與CDS之間的網(wǎng)絡(luò)通信協(xié)議也可以按照ARINC664網(wǎng)絡(luò)進(jìn)行通信,在PC下實(shí)現(xiàn)基于ARINC664網(wǎng)絡(luò)通信主要需要實(shí)現(xiàn)如下功能:(1)端系統(tǒng)屬性配置;(2)ES板卡API調(diào)用;(3)ARINC664通信端口映射配置;虛擬鏈路的配置。
3.6 ARINC 661內(nèi)核模塊
ARINC 661內(nèi)核的功能主要在于管理當(dāng)前渲染的所有widget的同時(shí)還需要能夠監(jiān)控主駕駛或副駕駛通過系統(tǒng)輸入設(shè)備與座艙顯示系統(tǒng)進(jìn)行的交互[2]。其主要功能如下。
(1)底層圖形驅(qū)動(dòng)模塊:主要包括OpenGL驅(qū)動(dòng)、視窗系統(tǒng)模塊,提供相應(yīng)版本嵌入式下OpenGL驅(qū)動(dòng)和視窗系統(tǒng)支持功能。
(2)主執(zhí)行模塊:ARINC661內(nèi)核主模塊,完成內(nèi)存分配、數(shù)據(jù)分發(fā)、進(jìn)程調(diào)度、進(jìn)程管理等功能。
(3)ARINC661內(nèi)核端通信模塊:提供ARINC661規(guī)范定義的通信協(xié)議API實(shí)現(xiàn),完成內(nèi)核與UA之間的數(shù)據(jù)通信。
(4)飛行員輸入控制處理模塊:接收和處理來自外部光標(biāo)、鍵盤的控制指令輸入,并提交給主執(zhí)行模塊以事件的方式發(fā)送給UA。
(5)Widget庫(kù):提供ARINC661規(guī)范定義的標(biāo)準(zhǔn)部件庫(kù)實(shí)現(xiàn)。
(6)DF解析模塊:系統(tǒng)上電時(shí)加載和解析外部DF文件,獲取所有需要顯示的信息定義,進(jìn)而交由主執(zhí)行模塊完成靜態(tài)顯示內(nèi)容的內(nèi)存分配。
(7)窗口配置管理模塊:系統(tǒng)上電時(shí)加載和解析外部的CF文件,獲取顯示器窗口分配定義,進(jìn)而交由主執(zhí)行模塊完成顯示窗口的創(chuàng)建。
4 結(jié)語(yǔ)
該文基于對(duì)ARINC661規(guī)范的研究和SCADE開發(fā)工具,提出了一種通用的ARINC661顯示軟件開發(fā)框架,并就其中主要的軟件模塊功能進(jìn)行了介紹,為今后進(jìn)行基于ARINC661架構(gòu)的駕駛艙顯示軟件開發(fā)提供研究基礎(chǔ)。
參考文獻(xiàn)
[1] ARINC 661 Specification: Cockpit Display System Interfaces To User Systems[S].Aeronautical Radio Inc, 2010.
[2] 姚旭寅,王俊峰,吳健,基于ARINC661規(guī)范的駕駛艙顯示系統(tǒng)設(shè)計(jì)方法研究[J].工業(yè)控制計(jì)算機(jī),2011(11):31-32.
[3] SCADE training courses(Chinese)[S].2009.