鄭 瀾,王運盛
(中電科航空電子有限公司,成都 611731)
適用于民機(jī)IMA的通用機(jī)載軟件開發(fā)平臺
鄭 瀾,王運盛
(中電科航空電子有限公司,成都 611731)
針對目前國內(nèi)民用飛機(jī)在綜合模塊化航電系統(tǒng)(IMA)集成應(yīng)用技術(shù)的發(fā)展,參考國外民用飛機(jī)航電系統(tǒng)的IMA體系結(jié)構(gòu)和IMA集成應(yīng)用技術(shù),結(jié)合分區(qū)操作系統(tǒng)的特點,給出了在分區(qū)操作系統(tǒng)下開發(fā)BSP和AFDX驅(qū)動移植的方法。利用這些方法可以構(gòu)建一種滿足民用飛機(jī)的通用機(jī)載軟件開發(fā)平臺,為民用飛機(jī)中IMA上的駐留功能軟件開發(fā)提供基礎(chǔ)實驗環(huán)境和驗證平臺。
民用飛機(jī);綜合模塊化航電系統(tǒng);AFDX驅(qū)動;分區(qū)操作系統(tǒng);軟件開發(fā)平臺
從20世紀(jì)90年代起,技術(shù)的進(jìn)步促使航電系統(tǒng)從聯(lián)合式結(jié)構(gòu)轉(zhuǎn)向綜合模塊化航電系統(tǒng)(Integrated Modular Avionics,IMA),以外場更換模塊(Lined ReplacedModule,LRM)為基本系統(tǒng)單元,系統(tǒng)實現(xiàn)高度的物理綜合和功能綜合。
目前在民用飛機(jī),特別是大型客機(jī)A380和B7E7上都采用綜合模塊化航空電子體系結(jié)構(gòu),都是以ARINC 653為基礎(chǔ)的操作系統(tǒng),將飛機(jī)上大量的功能處理放入模塊化的輸入/輸出和通用處理硬件資源中。這種標(biāo)準(zhǔn)化的硬件和軟件結(jié)構(gòu)方法能夠減少采購成本,減輕資源壓力,同時也保證了系統(tǒng)的可靠性和軟件的安全性。
但是,目前國外供應(yīng)商對基礎(chǔ)開發(fā)平臺的提供較為保守,短期內(nèi)難以提供相應(yīng)的開發(fā)平臺,這就需要我們采用通用的硬件處理資源,研究ARINC 653分區(qū)操作系統(tǒng)的特點,自主構(gòu)建適合于民用飛機(jī)的IMA綜合模塊化通用機(jī)載軟件開發(fā)平臺,從而在實踐中不斷提高自身的技術(shù)水平。
通用機(jī)載軟件開發(fā)平臺的研究結(jié)合國外民用飛機(jī)航電系統(tǒng)的IMA體系結(jié)構(gòu),采用PowerPC系列處理器,突破分區(qū)操作系統(tǒng)BSP開發(fā)、AFDX驅(qū)動移植等關(guān)鍵技術(shù),提供一套適合于民用飛機(jī)的通用機(jī)載軟件開發(fā)平臺,用于支撐IMA上的駐留功能軟件的開發(fā)。
為了降低民用飛機(jī)航電系統(tǒng)的成本,滿足未來民用飛機(jī)對航空電子系統(tǒng)高靈活性、高可靠性、高安全性以及便于升級換代等要求,當(dāng)前在民用飛機(jī)航電系統(tǒng)中采用綜合模塊化的航空電子體系架構(gòu),即IMA系統(tǒng)架構(gòu)。IMA是一種在軟件控制下的高度綜合化的航空電子體系,其目標(biāo)之一是實現(xiàn)模塊的標(biāo)準(zhǔn)化、重復(fù)使用和可互換性,通過嚴(yán)格定義和控制各模塊的軟硬件及接口,達(dá)到用少量幾種模塊支持當(dāng)前和未來多種航空電子系統(tǒng)功能的目標(biāo)。
民機(jī)的機(jī)載設(shè)備軟件的研發(fā)必須滿足DO-178B標(biāo)準(zhǔn)規(guī)定的軟件開發(fā)過程,這樣才能確保研發(fā)的軟件在功能上正確,在安全上可信,才能達(dá)到適航的要求。在IMA系統(tǒng)中,多個應(yīng)用軟件運行在同一個處理器上,每個應(yīng)用具有不同的DO-178B安全等級要求,這對航電系統(tǒng)開發(fā)提出了新的要求。這種不同安全等級的混合應(yīng)用需要操作系統(tǒng)為每個應(yīng)用程序提供獨立的運行環(huán)境,包括時間上及空間上的隔離。
為適應(yīng)IMA的應(yīng)用需求,ARINC Inc.于20世紀(jì)90年代中期發(fā)布了ARINC 653規(guī)范。ARINC 653規(guī)定每個應(yīng)用具有私有的處理器時間片,且不能被其他應(yīng)用中斷;每個應(yīng)用具有私有的運行空間,不能被其他應(yīng)用訪問。因此,對于IMA系統(tǒng),ARINC 653規(guī)范實現(xiàn)了不同應(yīng)用軟件之間的隔離,使具有不同安全等級的DO-178B認(rèn)證的應(yīng)用程序可以運行在同一處理器上。從另一個角度來講,符合ARINC 653規(guī)范,是IMA駐留軟件通過DO-178B認(rèn)證的一個步驟。
VxWorks 653是Wind River公司提供的符合ARINC 653規(guī)范并通過DO-178B A級認(rèn)證的操作系統(tǒng)。采用VxWorks 653,開發(fā)人員可以靈活地將以不同標(biāo)準(zhǔn)編寫的現(xiàn)有應(yīng)用程序與其他不同安全和危急程度的應(yīng)用程序結(jié)合在一起。這種靈活的應(yīng)用程序在使用特性上極大地縮短了開發(fā)時間,并保留了這些應(yīng)用程序原有的可靠性和健壯性。
通用機(jī)載軟件開發(fā)平臺組成如圖1所示,虛線框內(nèi)的部分即為通用機(jī)載軟件開發(fā)平臺。
圖1 通用機(jī)載軟件開發(fā)平臺組成Fig.1 General airborne software development platform composition
為保證通用機(jī)載軟件開發(fā)平臺的硬件體系和架構(gòu)模型的先進(jìn)性和前瞻性,在平臺的構(gòu)建中采用通用的處理資源[1],單板計算機(jī)采用PowerPC系列的MPC 7447A處理器作為CPU主板;AFDX終端網(wǎng)卡采用一款高性能的PMC接口板卡,支持ARINC664規(guī)范[2];板級支持包(BSP)和AFDX驅(qū)動程序支持VxWorks 653分區(qū)操作系統(tǒng),構(gòu)成了以VxWorks 653為主體的軟件開發(fā)環(huán)境,支持時間和空間分區(qū),為駐留的應(yīng)用程序開發(fā)提供調(diào)試平臺和運行環(huán)境,同時提供AFDX接口,應(yīng)用程序可以通過AFDX接口與其他航電系統(tǒng)進(jìn)行數(shù)據(jù)交互。
通用機(jī)載軟件開發(fā)平臺必須能夠為各種應(yīng)用提供穩(wěn)定的運行環(huán)境,并且IMA中的操作系統(tǒng)直接關(guān)系到應(yīng)用功能的開發(fā)和最終功能的實現(xiàn)。結(jié)合民用飛機(jī)航電系統(tǒng)的特點,考慮到民用飛機(jī)的安全性和機(jī)載軟件適航的要求[3],因此在通用機(jī)載軟件開發(fā)平臺中采用VxWorks 653分區(qū)操作系統(tǒng),提供在分區(qū)操作系統(tǒng)下進(jìn)行系統(tǒng)設(shè)計和軟件開發(fā)的環(huán)境。由于在通用機(jī)載軟件開發(fā)平臺中采用的單板計算機(jī)和AFDX終端網(wǎng)卡只提供了VxWorks5.5下的BSP支持包和AFDX驅(qū)動程序,并沒有提供VxWorks 653下的BSP支持包和AFDX驅(qū)動程序,所以需要將該單板計算機(jī)的BSP和AFDX驅(qū)動程序移植到VxWorks 653分區(qū)操作系統(tǒng)下。
VxWorks 653與VxWorks 5.5在驅(qū)動程序和編譯環(huán)境上有很多不同,我們應(yīng)充分利用VxWorks 5.5下的BSP源代碼,通過修改其中的文件結(jié)構(gòu)和形式,包括修改部分源程序、添加部分文件,使其結(jié)構(gòu)和形式符合VxWorks653的編譯環(huán)境,進(jìn)一步利用編譯器將修改過的BSP包進(jìn)行編譯,使編譯出的結(jié)果能在單板計算機(jī)上運行。
VxWorks 653 BSP的開發(fā)過程可分為以下4個階段。
第一階段為創(chuàng)建配置文件階段。首先在Vx-Works 653 BSP目錄下,創(chuàng)建BSP包目錄,在這里可以名稱為xxx_bsp,并將原VxWorks 5.5下的BSP的內(nèi)容拷貝至該目錄下,同時修改makefile文件,創(chuàng)建配置文件00region.sdf,00bootkernel.ddf,00kernel.ddf,00certkernel.ddf,00bsp.cdf,config.cdf,xxx-bsp.xml,xxx-bsp-default.xml,并根據(jù)實際的資源定義每個文件的內(nèi)容。
第二階段是修改代碼,并編譯出bootrom。這個階段的目標(biāo)是編譯出bootrom文件,并使bootrom可以驅(qū)動串口。這個階段過程比較繁瑣,因為環(huán)境的變化,需要修改的文件可能會很多。實現(xiàn)的方法是用VxWorks653的編譯命令來編譯BSP包,具體的命令為make RELEASE=prj-bootApp,編譯環(huán)境會在target proj目錄下創(chuàng)建bootrom工程,并編譯工程。編譯時,會出現(xiàn)錯誤提示,依照錯誤提示逐條修改。修改代碼時,可只保留核心驅(qū)動和串口驅(qū)動程序,對于其他的驅(qū)動程序可暫不移植,以后再做處理,這樣可簡化移植過程。
第三階段是修改代碼,并編譯CoreOS。這個階段的目標(biāo)是編譯出CoreOS文件,具體的命令為make release,此階段需將網(wǎng)絡(luò)相關(guān)程序、PCI總線驅(qū)動程序移植完成。
第四階段為測試階段。這個階段的目標(biāo)是編譯完整的VxWorks 653工程,并進(jìn)行網(wǎng)絡(luò)、PCI接口等的測試工作。
根據(jù)ARINC 653規(guī)范[4],當(dāng)分區(qū)與外界其他模塊進(jìn)行通信時,應(yīng)該通過虛端口(Pseudo-Ports)進(jìn)行。
在CoreOS中的最底層,通過與AFDX硬件相關(guān)的驅(qū)動程序完成AFDX數(shù)據(jù)的收發(fā)控制;然后在上層實現(xiàn)適配于Pseudo-Driver Layer的AFDX Pseudo-Driver,該驅(qū)動將完成虛端口上消息接收和發(fā)送的操作與AFDX數(shù)據(jù)收發(fā)的關(guān)聯(lián)控制。
圖2是適用于ARINC 653操作系統(tǒng)的AFDX驅(qū)動程序運行模型。
圖2 AFDX驅(qū)動程序運行模型Fig.2 AFDX driver running model
位于不同模塊上的兩個分區(qū)之間進(jìn)行通信的過程如圖3所示。
圖3 不同模塊上的兩個分區(qū)之間的通信Fig.3 Different modules on the communication between two partitions
結(jié)合圖3,解釋分區(qū)1上的消息如何通過AFDX驅(qū)動程序發(fā)送至分區(qū)2:
(1)分區(qū)1上的應(yīng)用通過SEND-QUEUE-MESSAGE服務(wù),將消息發(fā)送至Src A-1端口;
(2)AFDX Pseudo-Driver觀察Dst A-2端口是否可用;
(3)如果Dst A-2端口不可用,等到調(diào)度至該分區(qū),再通過端口可用查詢接口,檢查該端口是否可用;如果該端口可用,則激活端口發(fā)送任務(wù),通過調(diào)用與底層硬件相關(guān)的數(shù)據(jù)發(fā)送接口將數(shù)據(jù)發(fā)送出去;
(4)系統(tǒng)在調(diào)度至分區(qū)2時將通過端口查詢接口檢查該Src B-1端口是否有數(shù)據(jù);
(5)當(dāng)有數(shù)據(jù)時,Dst B-2端口變?yōu)榭捎脿顟B(tài);
(6)當(dāng)分區(qū)2上的應(yīng)用通過RECEIVE-QUEUEMESSAGE服務(wù)接收數(shù)據(jù)時,系統(tǒng)將通過調(diào)用與底層硬件相關(guān)的數(shù)據(jù)接收接口獲取數(shù)據(jù),并將數(shù)據(jù)通過Dst B-2端口交給應(yīng)用。
在整個過程中,AFDX終端網(wǎng)卡驅(qū)動對于APEX分區(qū)應(yīng)用是不可見的。APEX分區(qū)應(yīng)用程序只需要調(diào)用標(biāo)準(zhǔn)的ARINC 653 APEX接口進(jìn)行數(shù)據(jù)包的收發(fā),實際過程完全由虛分區(qū)和CoreOS的驅(qū)動完成。
VxWorks 653系統(tǒng)下AFDX移植過程至少需要完成如下工作:
(1)在相應(yīng)的單板計算機(jī)的BSP包中需要實現(xiàn)VxWorks 653操作系統(tǒng)對AFDX網(wǎng)卡初始化的代碼;
(2)在移植AFDX終端網(wǎng)卡驅(qū)動到VxWorks 653操作系統(tǒng)中時,需要考慮如何將AFDX終端網(wǎng)卡的XML格式配置表和APEX分區(qū)應(yīng)用中創(chuàng)建的端口進(jìn)行關(guān)聯(lián),以及如何加載此配置表到VxWorks 653操作系統(tǒng)中;
(3)CoreOS層的驅(qū)動移植實現(xiàn),需要充分考慮VxWorks 653系統(tǒng)結(jié)構(gòu),將AFDX終端網(wǎng)卡驅(qū)動設(shè)計融合到CoreOS,需要實現(xiàn)CoreOS運行的數(shù)據(jù)收發(fā)任務(wù)以及和虛分區(qū)通信的任務(wù);
(4)虛分區(qū)通信過程的實現(xiàn),需要充分考慮虛分區(qū)與APEX分區(qū)應(yīng)用如何進(jìn)行通信,同時還需要考慮與CoreOS如何進(jìn)行數(shù)據(jù)交互;
(5)APEX應(yīng)用分區(qū)例程如何完成AFDX數(shù)據(jù)收發(fā),實現(xiàn)APEX分區(qū)調(diào)用通用數(shù)據(jù)通信接口收發(fā)AFDX數(shù)據(jù)幀。
綜合模塊化航電系統(tǒng)架構(gòu)正在取代傳統(tǒng)的聯(lián)合式航電系統(tǒng)架構(gòu)而成為今后民用飛機(jī)的主要架構(gòu)方式。采用本文給出的分區(qū)操作系統(tǒng)BSP開發(fā)和AFDX驅(qū)動移植的方法,能夠構(gòu)建一種適合于民機(jī)IMA的通用機(jī)載軟件開發(fā)平臺,從而支持IMA上的功能軟件的開發(fā),有助于驗證民用飛機(jī)的IMA體系架構(gòu)。在實驗過程中積累的經(jīng)驗將為民用飛機(jī)航電系統(tǒng)IMA項目實施的規(guī)劃、執(zhí)行、合作提供重要參考,為后續(xù)工作的開展積累經(jīng)驗,從而為IMA的國產(chǎn)化奠定基礎(chǔ)。
[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通信體系結(jié)構(gòu)。
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年獲碩士學(xué)位,現(xiàn)為工程師,主要從事航空電子技術(shù)、機(jī)載軟件的設(shè)計與研究;