鄭 瀾,王運盛
(中電科航空電子有限公司,成都 611731)
適用于民機IMA的通用機載軟件開發平臺
鄭 瀾,王運盛
(中電科航空電子有限公司,成都 611731)
針對目前國內民用飛機在綜合模塊化航電系統(IMA)集成應用技術的發展,參考國外民用飛機航電系統的IMA體系結構和IMA集成應用技術,結合分區操作系統的特點,給出了在分區操作系統下開發BSP和AFDX驅動移植的方法。利用這些方法可以構建一種滿足民用飛機的通用機載軟件開發平臺,為民用飛機中IMA上的駐留功能軟件開發提供基礎實驗環境和驗證平臺。
民用飛機;綜合模塊化航電系統;AFDX驅動;分區操作系統;軟件開發平臺
從20世紀90年代起,技術的進步促使航電系統從聯合式結構轉向綜合模塊化航電系統(Integrated Modular Avionics,IMA),以外場更換模塊(Lined ReplacedModule,LRM)為基本系統單元,系統實現高度的物理綜合和功能綜合。
目前在民用飛機,特別是大型客機A380和B7E7上都采用綜合模塊化航空電子體系結構,都是以ARINC 653為基礎的操作系統,將飛機上大量的功能處理放入模塊化的輸入/輸出和通用處理硬件資源中。這種標準化的硬件和軟件結構方法能夠減少采購成本,減輕資源壓力,同時也保證了系統的可靠性和軟件的安全性。
但是,目前國外供應商對基礎開發平臺的提供較為保守,短期內難以提供相應的開發平臺,這就需要我們采用通用的硬件處理資源,研究ARINC 653分區操作系統的特點,自主構建適合于民用飛機的IMA綜合模塊化通用機載軟件開發平臺,從而在實踐中不斷提高自身的技術水平。
通用機載軟件開發平臺的研究結合國外民用飛機航電系統的IMA體系結構,采用PowerPC系列處理器,突破分區操作系統BSP開發、AFDX驅動移植等關鍵技術,提供一套適合于民用飛機的通用機載軟件開發平臺,用于支撐IMA上的駐留功能軟件的開發。
為了降低民用飛機航電系統的成本,滿足未來民用飛機對航空電子系統高靈活性、高可靠性、高安全性以及便于升級換代等要求,當前在民用飛機航電系統中采用綜合模塊化的航空電子體系架構,即IMA系統架構。IMA是一種在軟件控制下的高度綜合化的航空電子體系,其目標之一是實現模塊的標準化、重復使用和可互換性,通過嚴格定義和控制各模塊的軟硬件及接口,達到用少量幾種模塊支持當前和未來多種航空電子系統功能的目標。
民機的機載設備軟件的研發必須滿足DO-178B標準規定的軟件開發過程,這樣才能確保研發的軟件在功能上正確,在安全上可信,才能達到適航的要求。在IMA系統中,多個應用軟件運行在同一個處理器上,每個應用具有不同的DO-178B安全等級要求,這對航電系統開發提出了新的要求。這種不同安全等級的混合應用需要操作系統為每個應用程序提供獨立的運行環境,包括時間上及空間上的隔離。
為適應IMA的應用需求,ARINC Inc.于20世紀90年代中期發布了ARINC 653規范。ARINC 653規定每個應用具有私有的處理器時間片,且不能被其他應用中斷;每個應用具有私有的運行空間,不能被其他應用訪問。因此,對于IMA系統,ARINC 653規范實現了不同應用軟件之間的隔離,使具有不同安全等級的DO-178B認證的應用程序可以運行在同一處理器上。從另一個角度來講,符合ARINC 653規范,是IMA駐留軟件通過DO-178B認證的一個步驟。
VxWorks 653是Wind River公司提供的符合ARINC 653規范并通過DO-178B A級認證的操作系統。采用VxWorks 653,開發人員可以靈活地將以不同標準編寫的現有應用程序與其他不同安全和危急程度的應用程序結合在一起。這種靈活的應用程序在使用特性上極大地縮短了開發時間,并保留了這些應用程序原有的可靠性和健壯性。
通用機載軟件開發平臺組成如圖1所示,虛線框內的部分即為通用機載軟件開發平臺。

圖1 通用機載軟件開發平臺組成Fig.1 General airborne software development platform composition
為保證通用機載軟件開發平臺的硬件體系和架構模型的先進性和前瞻性,在平臺的構建中采用通用的處理資源[1],單板計算機采用PowerPC系列的MPC 7447A處理器作為CPU主板;AFDX終端網卡采用一款高性能的PMC接口板卡,支持ARINC664規范[2];板級支持包(BSP)和AFDX驅動程序支持VxWorks 653分區操作系統,構成了以VxWorks 653為主體的軟件開發環境,支持時間和空間分區,為駐留的應用程序開發提供調試平臺和運行環境,同時提供AFDX接口,應用程序可以通過AFDX接口與其他航電系統進行數據交互。
通用機載軟件開發平臺必須能夠為各種應用提供穩定的運行環境,并且IMA中的操作系統直接關系到應用功能的開發和最終功能的實現。結合民用飛機航電系統的特點,考慮到民用飛機的安全性和機載軟件適航的要求[3],因此在通用機載軟件開發平臺中采用VxWorks 653分區操作系統,提供在分區操作系統下進行系統設計和軟件開發的環境。由于在通用機載軟件開發平臺中采用的單板計算機和AFDX終端網卡只提供了VxWorks5.5下的BSP支持包和AFDX驅動程序,并沒有提供VxWorks 653下的BSP支持包和AFDX驅動程序,所以需要將該單板計算機的BSP和AFDX驅動程序移植到VxWorks 653分區操作系統下。
VxWorks 653與VxWorks 5.5在驅動程序和編譯環境上有很多不同,我們應充分利用VxWorks 5.5下的BSP源代碼,通過修改其中的文件結構和形式,包括修改部分源程序、添加部分文件,使其結構和形式符合VxWorks653的編譯環境,進一步利用編譯器將修改過的BSP包進行編譯,使編譯出的結果能在單板計算機上運行。
VxWorks 653 BSP的開發過程可分為以下4個階段。
第一階段為創建配置文件階段。首先在Vx-Works 653 BSP目錄下,創建BSP包目錄,在這里可以名稱為xxx_bsp,并將原VxWorks 5.5下的BSP的內容拷貝至該目錄下,同時修改makefile文件,創建配置文件00region.sdf,00bootkernel.ddf,00kernel.ddf,00certkernel.ddf,00bsp.cdf,config.cdf,xxx-bsp.xml,xxx-bsp-default.xml,并根據實際的資源定義每個文件的內容。
第二階段是修改代碼,并編譯出bootrom。這個階段的目標是編譯出bootrom文件,并使bootrom可以驅動串口。這個階段過程比較繁瑣,因為環境的變化,需要修改的文件可能會很多。實現的方法是用VxWorks653的編譯命令來編譯BSP包,具體的命令為make RELEASE=prj-bootApp,編譯環境會在target proj目錄下創建bootrom工程,并編譯工程。編譯時,會出現錯誤提示,依照錯誤提示逐條修改。修改代碼時,可只保留核心驅動和串口驅動程序,對于其他的驅動程序可暫不移植,以后再做處理,這樣可簡化移植過程。
第三階段是修改代碼,并編譯CoreOS。這個階段的目標是編譯出CoreOS文件,具體的命令為make release,此階段需將網絡相關程序、PCI總線驅動程序移植完成。
第四階段為測試階段。這個階段的目標是編譯完整的VxWorks 653工程,并進行網絡、PCI接口等的測試工作。
根據ARINC 653規范[4],當分區與外界其他模塊進行通信時,應該通過虛端口(Pseudo-Ports)進行。
在CoreOS中的最底層,通過與AFDX硬件相關的驅動程序完成AFDX數據的收發控制;然后在上層實現適配于Pseudo-Driver Layer的AFDX Pseudo-Driver,該驅動將完成虛端口上消息接收和發送的操作與AFDX數據收發的關聯控制。
圖2是適用于ARINC 653操作系統的AFDX驅動程序運行模型。

圖2 AFDX驅動程序運行模型Fig.2 AFDX driver running model
位于不同模塊上的兩個分區之間進行通信的過程如圖3所示。

圖3 不同模塊上的兩個分區之間的通信Fig.3 Different modules on the communication between two partitions
結合圖3,解釋分區1上的消息如何通過AFDX驅動程序發送至分區2:
(1)分區1上的應用通過SEND-QUEUE-MESSAGE服務,將消息發送至Src A-1端口;
(2)AFDX Pseudo-Driver觀察Dst A-2端口是否可用;
(3)如果Dst A-2端口不可用,等到調度至該分區,再通過端口可用查詢接口,檢查該端口是否可用;如果該端口可用,則激活端口發送任務,通過調用與底層硬件相關的數據發送接口將數據發送出去;
(4)系統在調度至分區2時將通過端口查詢接口檢查該Src B-1端口是否有數據;
(5)當有數據時,Dst B-2端口變為可用狀態;
(6)當分區2上的應用通過RECEIVE-QUEUEMESSAGE服務接收數據時,系統將通過調用與底層硬件相關的數據接收接口獲取數據,并將數據通過Dst B-2端口交給應用。
在整個過程中,AFDX終端網卡驅動對于APEX分區應用是不可見的。APEX分區應用程序只需要調用標準的ARINC 653 APEX接口進行數據包的收發,實際過程完全由虛分區和CoreOS的驅動完成。
VxWorks 653系統下AFDX移植過程至少需要完成如下工作:
(1)在相應的單板計算機的BSP包中需要實現VxWorks 653操作系統對AFDX網卡初始化的代碼;
(2)在移植AFDX終端網卡驅動到VxWorks 653操作系統中時,需要考慮如何將AFDX終端網卡的XML格式配置表和APEX分區應用中創建的端口進行關聯,以及如何加載此配置表到VxWorks 653操作系統中;
(3)CoreOS層的驅動移植實現,需要充分考慮VxWorks 653系統結構,將AFDX終端網卡驅動設計融合到CoreOS,需要實現CoreOS運行的數據收發任務以及和虛分區通信的任務;
(4)虛分區通信過程的實現,需要充分考慮虛分區與APEX分區應用如何進行通信,同時還需要考慮與CoreOS如何進行數據交互;
(5)APEX應用分區例程如何完成AFDX數據收發,實現APEX分區調用通用數據通信接口收發AFDX數據幀。
綜合模塊化航電系統架構正在取代傳統的聯合式航電系統架構而成為今后民用飛機的主要架構方式。采用本文給出的分區操作系統BSP開發和AFDX驅動移植的方法,能夠構建一種適合于民機IMA的通用機載軟件開發平臺,從而支持IMA上的功能軟件的開發,有助于驗證民用飛機的IMA體系架構。在實驗過程中積累的經驗將為民用飛機航電系統IMA項目實施的規劃、執行、合作提供重要參考,為后續工作的開展積累經驗,從而為IMA的國產化奠定基礎。
[1]TSO-C153,IntegratedModular AvionicsHardware Elements[S].
[2]ARINC 664p7,Avionics Full Duplex Switched Ethernet(AFDX)Network[S].
[3]DO-178B,Software Considerations in Airborne System and equipment Certification[S].
[4]ARINC 653,Avionics Application Software Standard Interface[S].
ZHENG Lan was born in Chengdu,Sichuan Province,in 1976.He received the M.S.degree in 2007.He is now an engineer.His research concerns avionics technology,design and research of airborne software.
Email:xhl-zl@163.com
王運盛(1979—),男,甘肅人,碩士,工程師,主要研究方向為綜合模塊化航空電子及SCA通信體系結構。
W ANG Yun-sheng was born in Gansu Province,in 1979.He is now an engineer with the M.S.degree.His research interests include integrated modular avionics and SCA communication architecture.
A General Airborne Software Development Platform for Civil Aircraft IMA
ZHENG Lan,WANG Yun-sheng
(China Electronics Technology Avionics Co.,Ltd.,Chengdu 611731,China)
According to the development of domestic civil aircrafts in IMA(Integrated Modular Avionics)integrated application technology,with reference to foreign civil aircraft avionics system architecture and integrated application technology of IMA,combined with characteristics of partition operating system,the methods of BSP development and AFDX drive transplantation in partition operating system are given.These methods can be used to build general airborne software development platform for civil aircrafts,and to provide basis experimental environment and verification platform for IMA hosted function software development.
civil aircraft;IMA;AFDX driver;partition OS;software development platform
TP399;V243
A
10.3969/j.issn.1001-893x.2012.06.040
1001-893X(2012)06-1027-04
2011-12-08;
2012-02-28
鄭 瀾(1976—),男,四川成都人,2007年獲碩士學位,現為工程師,主要從事航空電子技術、機載軟件的設計與研究;