葉上華,李雪源,陳朋瑞
(航空工業(yè)西安航空計(jì)算技術(shù)研究所,陜西 西安 710068)
隨著綜合模塊化航電子系統(tǒng)(Intergrated Modular Avionics,IMA)的發(fā)展,軟件加卸載和更新維護(hù)的需求日益增加,因此ARINC615A數(shù)據(jù)加載通信協(xié)議規(guī)定了航空電子系統(tǒng)數(shù)據(jù)加卸載行為,其中包括查找信息、上傳以及下載功能涉及的通信過(guò)程和格式,但通信協(xié)議缺乏對(duì)所上傳數(shù)據(jù)進(jìn)行校驗(yàn)的機(jī)制,因此航空電子系統(tǒng)中運(yùn)行的軟件可能會(huì)存在與機(jī)上軟硬件不兼容的風(fēng)險(xiǎn),造成航空電子系統(tǒng)運(yùn)行故障,甚至導(dǎo)致安全事故[1]。本文提出基于ARINC615A數(shù)據(jù)加載通信協(xié)議的數(shù)據(jù)加載軟硬件兼容性校驗(yàn)方法,該方法針對(duì)IMA系統(tǒng)中的通用處理模塊(General Processing Module,GPM)設(shè)計(jì)了一種可加載映射表,利用可加載映射表改進(jìn)上傳通信過(guò)程使其具有校驗(yàn)機(jī)制,最后實(shí)現(xiàn)了軟件核心功能[2]。改進(jìn)后的上傳通信通過(guò)識(shí)別出與航空電子系統(tǒng)不兼容的數(shù)據(jù)文件拒絕其上傳,進(jìn)一步保障航空電子系統(tǒng)運(yùn)行的可靠性和安全性。
綜合模塊化航空電子系統(tǒng)是一個(gè)分布式的計(jì)算平臺(tái),由機(jī)柜和標(biāo)準(zhǔn)化的硬件模塊組成,包括GPM、交換機(jī)模塊以及遠(yuǎn)程數(shù)據(jù)集中器。系統(tǒng)中的設(shè)備通過(guò)實(shí)時(shí)可靠的航空電子全雙工交換式以太網(wǎng)(Avionics Full Duplex Switched Ethernet,AFDX)進(jìn)行通信,其中GPM模塊支持?jǐn)?shù)據(jù)計(jì)算功能,交換機(jī)模塊支持?jǐn)?shù)據(jù)傳輸功能,遠(yuǎn)程數(shù)據(jù)集中器將傳感器等設(shè)備信號(hào)經(jīng)由交換機(jī)傳至GPM進(jìn)行數(shù)據(jù)計(jì)算。IMA系統(tǒng)的駐留應(yīng)用軟件運(yùn)行在GPM模塊上,GPM采用實(shí)時(shí)操作系統(tǒng)為駐留應(yīng)用軟件提供可計(jì)算的資源。隨著應(yīng)用規(guī)模的不斷擴(kuò)大,一個(gè)航空電子駐留應(yīng)用往往由運(yùn)行在不同GPM中的多個(gè)軟件功能構(gòu)成,這些應(yīng)用軟件功能按照空間和時(shí)間2個(gè)因素進(jìn)行分區(qū),因此駐留應(yīng)用又稱為分區(qū)應(yīng)用[3]??臻g分區(qū)指每個(gè)分區(qū)由模塊集成者根據(jù)空間分隔需求為每個(gè)分區(qū)分配最大數(shù)量的資源;時(shí)間分區(qū)通過(guò)配置表為每個(gè)模塊中的軟件功能靜態(tài)分配時(shí)間片。時(shí)間片的分配具有周期性和固定性,因此每個(gè)分區(qū)應(yīng)用功能都在特定時(shí)間周期內(nèi)執(zhí)行。
數(shù)據(jù)加載分區(qū)應(yīng)用軟件采用ARINC615A數(shù)據(jù)加載通信協(xié)議滿足IMA系統(tǒng)對(duì)維護(hù)軟件的加卸載要求。ARINC615A數(shù)據(jù)加載通信協(xié)議是由運(yùn)行在AFDX網(wǎng)絡(luò)中的地面端加載器和目標(biāo)機(jī)即GPM模塊組成。地面端加載器運(yùn)行數(shù)據(jù)加載客戶端軟件,GPM模塊運(yùn)行數(shù)據(jù)加載分區(qū)應(yīng)用軟件。數(shù)據(jù)加載客戶端軟件和數(shù)據(jù)加載分區(qū)應(yīng)用軟件根據(jù)ARINC615A數(shù)據(jù)加載通信協(xié)議的規(guī)定進(jìn)行大量的消息通信,共同完成以下功能。
(1)查詢功能。數(shù)據(jù)加載分區(qū)應(yīng)用軟件接收數(shù)據(jù)加載客戶端軟件的查詢請(qǐng)求,獲取目標(biāo)機(jī)硬件信息并組織查詢應(yīng)答包發(fā)送給數(shù)據(jù)加載客戶端軟件,以完成加載器對(duì)目標(biāo)機(jī)的查找。
(2)信息功能。數(shù)據(jù)加載分區(qū)應(yīng)用軟件接收數(shù)據(jù)加載客戶端軟件的信息請(qǐng)求,通過(guò)信息功能來(lái)告知當(dāng)前目標(biāo)機(jī)名稱、序列號(hào)以及軟件名稱等相關(guān)設(shè)備信息。
(3)上傳功能。數(shù)據(jù)加載分區(qū)應(yīng)用軟件接收數(shù)據(jù)加載客戶端軟件的上傳請(qǐng)求后,從該請(qǐng)求包中得到加載器所要上傳的文件列表,通過(guò)解析文件列表,數(shù)據(jù)加載分區(qū)應(yīng)用軟件依次請(qǐng)求數(shù)據(jù)加載客戶端軟件上傳的數(shù)據(jù)文件,從而實(shí)現(xiàn)獲取數(shù)據(jù)文件的目的。
(4)下載功能。數(shù)據(jù)加載分區(qū)應(yīng)用軟件接收數(shù)據(jù)加載客戶端軟件的下載請(qǐng)求后,通過(guò)向加載器發(fā)送目標(biāo)機(jī)所有的文件列表,由數(shù)據(jù)加載客戶端軟件對(duì)需要下載的文件進(jìn)行選擇,或者由目標(biāo)機(jī)直接接收數(shù)據(jù)加載客戶端軟件所需要下載的文件列表請(qǐng)求,而后數(shù)據(jù)加載分區(qū)應(yīng)用軟件將需要下載的數(shù)據(jù)文件發(fā)送給數(shù)據(jù)加載客戶端軟件。
數(shù)據(jù)加載分區(qū)應(yīng)用軟件為IMA系統(tǒng)提供軟件更新維護(hù)的功能,使得GPM模塊可以上傳和下載數(shù)據(jù)。本小節(jié)提出可加載映射表的設(shè)計(jì)思想,將其作為兼容性校驗(yàn)的標(biāo)準(zhǔn),通過(guò)判斷待上傳的加載項(xiàng)是否與GPM模塊軟硬件兼容,從而決定是否允許其進(jìn)行上傳通信。利用可加載映射表對(duì)上傳通信進(jìn)行改進(jìn),使上傳通信具有校驗(yàn)機(jī)制。
可加載映射表針對(duì)IMA系統(tǒng)的GPM模塊設(shè)計(jì),包含一個(gè)模塊可兼容的所有加載項(xiàng)信息。每個(gè)加載項(xiàng)均具有多種屬性,如加載項(xiàng)名稱、描述和所占存儲(chǔ)空間大小等。本文經(jīng)過(guò)梳理,提煉出7個(gè)屬性作為兼容性校驗(yàn)的關(guān)鍵屬性,分別是硬件兼容碼和可加載項(xiàng)配置信息。硬件兼容碼包含機(jī)柜位置和模塊位置2個(gè)關(guān)鍵屬性,根據(jù)機(jī)柜位置和模塊位置可以確定可加載映射表所在模塊的相關(guān)信息,凡是不滿足該硬件屬性的加載項(xiàng)均被拒絕上傳??杉虞d項(xiàng)配置信息包含5個(gè)屬性,分別是可加載項(xiàng)名稱、可加載項(xiàng)ID、可加載項(xiàng)的平臺(tái)主版本號(hào)、平臺(tái)次版本號(hào)以及應(yīng)用程序版本號(hào)。其中,可加載項(xiàng)名稱和可加載項(xiàng)ID可以唯一識(shí)別一個(gè)特定的可加載項(xiàng),其余的3個(gè)關(guān)鍵屬性則可以依次得出平臺(tái)版本和應(yīng)用版本的控制信息。
GPM模塊的可加載映射表是由硬件兼容碼和多個(gè)可加載項(xiàng)配置信息2個(gè)部分內(nèi)容組成的二進(jìn)制文件,結(jié)構(gòu)如圖1所示。
圖1 可加載映射表結(jié)構(gòu)
對(duì)于每個(gè)待上傳的加載項(xiàng),其必須符合可加載軟件飛機(jī)零部件(Loadable Software Airplane Parts,LSAP)的格式規(guī)定。LSAP包含1個(gè)頭文件和1個(gè)或多個(gè)數(shù)據(jù)文件,根據(jù)使用需求選擇是否提供支持文件,支持文件包含數(shù)據(jù)文件的配置信息。IMA系統(tǒng)要求必須提供支持文件。根據(jù)所提出的關(guān)鍵屬性,結(jié)合支持文件和可加載映射表,對(duì)于特定的加載項(xiàng),GPM模塊的數(shù)據(jù)加載分區(qū)應(yīng)用軟件利用支持文件中的加載項(xiàng)信息和可加載映射表對(duì)比,就可以確定該加載項(xiàng)是否被目標(biāo)機(jī)兼容。
根據(jù)所提出的可加載映射表,對(duì)ARINC615A通信協(xié)議的上傳通信進(jìn)行改進(jìn)。上傳通信就是從地面端數(shù)據(jù)加載器到目標(biāo)機(jī)數(shù)據(jù)加載分區(qū)應(yīng)用軟件上傳文件的消息通信過(guò)程,本文利用可加載映射表使其能夠識(shí)別出不符合GPM模塊軟硬件兼容的加載項(xiàng)并拒絕上傳。為方便表述,將改進(jìn)后的上傳通信稱為可校驗(yàn)上傳通信。
ARINC615A通信協(xié)議的上傳功能包括3個(gè)階段,如圖2所示。初始化階段用于目標(biāo)機(jī)與地面端加載器的通信狀態(tài)初始化,目標(biāo)機(jī)應(yīng)根據(jù)其當(dāng)前狀態(tài)決定是否接受上傳通信請(qǐng)求,并將結(jié)果發(fā)送給地面端加載器。列表傳輸階段目標(biāo)機(jī)應(yīng)獲取地面端加載器的上傳文件列表,表中包含地面端加載器給目標(biāo)機(jī)的上傳文件名。文件傳輸階段目標(biāo)機(jī)應(yīng)接收地面端加載器發(fā)送給目標(biāo)機(jī)的數(shù)據(jù)文件[4]。
圖2 ARINC615A協(xié)議上傳通信過(guò)程
上傳通信的3個(gè)階段都會(huì)產(chǎn)生相應(yīng)的消息,地面端加載器和目標(biāo)機(jī)數(shù)據(jù)加載分區(qū)應(yīng)用軟件通過(guò)大量的協(xié)議文件交互完成此功能。可校驗(yàn)上傳通信在列表傳輸階段添加軟硬件校驗(yàn)機(jī)制,列表傳輸階段目標(biāo)機(jī)接收到頭文件以后進(jìn)行解析,按照ARINC615A協(xié)議的規(guī)定,此時(shí)需要獲取數(shù)據(jù)文件的名稱,然后依次向地面端加載器發(fā)起數(shù)據(jù)文件傳輸請(qǐng)求,但改進(jìn)后的列表傳輸階段則會(huì)通過(guò)解析頭文件獲取支持文件的名稱,通過(guò)向地面端加載器請(qǐng)求支持文件獲取加載項(xiàng)的配置信息,而后對(duì)支持文件進(jìn)行解析。首先,支持文件中加載項(xiàng)的機(jī)柜位置、模塊位置應(yīng)與可加載映射表中可加載項(xiàng)的硬件兼容碼相同;其次,支持文件中加載項(xiàng)的主平臺(tái)版本號(hào)應(yīng)與可加載映射表中可加載項(xiàng)的主平臺(tái)版本號(hào)相同,所有加載項(xiàng)都應(yīng)具有相同的主平臺(tái)版本號(hào);再次,支持文件中加載項(xiàng)的次平臺(tái)版本號(hào)應(yīng)小于或等于可加載映射表中可加載項(xiàng)的次平臺(tái)版本號(hào),每個(gè)可加載項(xiàng)的次平臺(tái)版本號(hào)可能具有差異;最后,支持文件中加載項(xiàng)的應(yīng)用程序版本號(hào)應(yīng)等于可加載映射表中可加載項(xiàng)的應(yīng)用程序版本號(hào)。通過(guò)解析支持文件和可加載映射表,當(dāng)所有加載項(xiàng)滿足兼容條件時(shí)才會(huì)進(jìn)入文件傳輸階段,否則本次上傳通信因存在軟硬件不兼容的加載項(xiàng)而結(jié)束。
為了驗(yàn)證可校驗(yàn)上傳通信功能的可行性,本文對(duì)目標(biāo)端數(shù)據(jù)加載分區(qū)應(yīng)用軟件的基本功能進(jìn)行實(shí)現(xiàn)。數(shù)據(jù)加載分區(qū)應(yīng)用軟件采用分層設(shè)計(jì)的邏輯架構(gòu),通過(guò)對(duì)數(shù)據(jù)加載分區(qū)應(yīng)用軟件功能的分析,對(duì)其進(jìn)行結(jié)構(gòu)化劃分,最終完成整個(gè)應(yīng)用的設(shè)計(jì)。軟件架構(gòu)如圖3 所示[5]。
圖3 數(shù)據(jù)加載分區(qū)應(yīng)用軟件架構(gòu)
數(shù)據(jù)加載分區(qū)應(yīng)用軟件自頂向下分為應(yīng)用層和協(xié)議層。應(yīng)用層通過(guò)調(diào)用協(xié)議層接口完成任務(wù)啟動(dòng)終止以及各類協(xié)議和軟件的初始化、目標(biāo)機(jī)配置管理接口調(diào)用等。協(xié)議層包括ARINC615A通信協(xié)議、ARINC 665 協(xié)議以及簡(jiǎn)單文件傳輸協(xié)議(Trivial File Transfer Protocol,TFTP)[6,7]。TFTP 協(xié)議是實(shí)現(xiàn)文件傳輸所遵循的規(guī)定,包括讀文件請(qǐng)求、寫文件請(qǐng)求、發(fā)送文件以及接收文件等。數(shù)據(jù)加載分區(qū)應(yīng)用軟件和加載端軟件進(jìn)行通信的文件格式定義遵循ARINC665協(xié)議,包含對(duì)通信過(guò)程中文件的結(jié)構(gòu)體定義、生成、解析以及文件生成后或解析時(shí)用到的數(shù)據(jù)完整性、正確性的校驗(yàn)算法等。通信過(guò)程核心功能的實(shí)現(xiàn)則符合ARINC615A協(xié)議的規(guī)定,包括實(shí)現(xiàn)應(yīng)用層調(diào)用所需的接口、對(duì)數(shù)據(jù)加載通信協(xié)議流程的處理以及上傳通信及其他功能的實(shí)現(xiàn)。
在此對(duì)可校驗(yàn)的上傳通信涉及到的函數(shù)接口進(jìn)行介紹,如表1所示。
表1 可校驗(yàn)的上傳通信函數(shù)接口說(shuō)明
整個(gè)過(guò)程中,接口函數(shù)互相配合調(diào)用來(lái)保證數(shù)據(jù)通信完整正確的執(zhí)行。實(shí)驗(yàn)結(jié)果表明,數(shù)據(jù)加載分區(qū)應(yīng)用軟件功能正常、運(yùn)行穩(wěn)定,滿足預(yù)期設(shè)計(jì)。
通過(guò)研究ARINC615A數(shù)據(jù)加載通信協(xié)議的上傳通信過(guò)程,設(shè)計(jì)出適用于IMA系統(tǒng)的可加載映射表,改進(jìn)了ARINC615A數(shù)據(jù)加載通信協(xié)議的上傳通信,使其具有數(shù)據(jù)加載兼容性校驗(yàn)功能,實(shí)現(xiàn)了整個(gè)數(shù)據(jù)加載分區(qū)應(yīng)用軟件,充分保證了綜合模塊化航空電子系統(tǒng)上傳文件的可用性和正確性,提高了系統(tǒng)的可靠性和安全性。在今后的研究中還需繼續(xù)探索,進(jìn)一步優(yōu)化數(shù)據(jù)加載校驗(yàn)方法的性能。