陳寧 吳云 陳福 王佳明
摘 要:航電系統(tǒng)的綜合化和模塊化程度越來越高,機(jī)載網(wǎng)絡(luò)技術(shù)也日趨復(fù)雜,一方面這使得航電系統(tǒng)中的加載數(shù)據(jù)的數(shù)量急劇增多,另一方面,對(duì)數(shù)據(jù)加載的質(zhì)量提出了更高的要求,目前的數(shù)據(jù)加載軟件已無法滿足要求。通過分析數(shù)據(jù)加載工具軟件的需求,采用分層設(shè)計(jì)的方法設(shè)計(jì)了系統(tǒng)的總體結(jié)構(gòu)邏輯。闡述了主機(jī)端軟件和目標(biāo)機(jī)端軟件的設(shè)計(jì)思路,并且進(jìn)行了軟件實(shí)現(xiàn)和驗(yàn)證。結(jié)果表明,該機(jī)載通用數(shù)據(jù)加載工具具有良好的配置性和通用性,且能夠保證數(shù)據(jù)一致性和安全性。
關(guān)鍵詞:航電系統(tǒng);機(jī)載數(shù)據(jù)通信;數(shù)據(jù)加載
中圖分類號(hào):V243;TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.3969/j.issn.1003-6970.2021.03.031
本文著錄格式:陳寧,吳云,陳福,等.機(jī)載通用數(shù)據(jù)加載工具軟件的設(shè)計(jì)和實(shí)現(xiàn)[J].軟件,2021,42(03):110-113+138
Design and Implementation of Airborne General Data Loading Software
CHEN Ning, WU Yun, CHEN Fu, WANG Jiaming
(Xi'an Aeronautical Computing Technique Research Institute,AVIC, Xi'an? Shaanxi? 710068)
【Abstract】:Avionics system is becoming more and more comprehensive and modular,and airborne network technology is more complex.On the one hand, it makes the quantity of loading data increase sharply, on the other hand, it puts forward higher requirements for the quality of data loading.The current data loading software can not meet the requirements.By analyzing the requirements of data loading software, the overall structure logic of the system is designed by using hierarchical design method. The design ideas of host software and target software are described, and the software implementation and verification are carried out. The results show that the airborne general data loading tool has good configuration and versatility, and can ensure data consistency and security.
【Key words】:avionics system;airborne data communication;data loading
0 引言
隨著綜合模塊化航空電子的發(fā)展,復(fù)雜IMA架構(gòu)[1]下的軟件規(guī)模越來越大,數(shù)量也越來越多,在研制和使用維護(hù)過程中需要快速、安全的在線加載工具軟件的需求已日益突出。而當(dāng)前使用的在線加載工具種類繁多,存在數(shù)據(jù)一致性缺少保證、通用性差等問題,給軟件開發(fā)人員和外場(chǎng)維護(hù)人員帶來了極大的不便。因此,開發(fā)一種通用性強(qiáng)的、能保障數(shù)據(jù)完整一致的、支持快速批量固化的加載工具十分必要。針對(duì)這些問題,本文對(duì)加載工具的需求進(jìn)行分析,以通用性為目標(biāo),設(shè)計(jì)總體架構(gòu),提供針對(duì)全系統(tǒng)的批量并行數(shù)據(jù)加載能力,支持串口、以太網(wǎng)、AFDX[2-3]等多種類型的數(shù)據(jù)總線協(xié)議,支持多種加載協(xié)議。設(shè)計(jì)了加載文件的版本管理和操作日志管理。通過多種方式保證系統(tǒng)的通用性和易用性。
1概述
通用數(shù)據(jù)加載工具是地面開發(fā)調(diào)試和升級(jí)保障設(shè)備,可通過標(biāo)準(zhǔn)串口、以太網(wǎng)、機(jī)載網(wǎng)絡(luò)AFDX等網(wǎng)絡(luò)進(jìn)行軟件和配置數(shù)據(jù)的升級(jí)。通用數(shù)據(jù)加載工具設(shè)備組成圖如圖1所示。
1.1 功能需求
通用數(shù)據(jù)加載工具軟件的主要功能需求如下:
數(shù)據(jù)加載功能。支持多種加載協(xié)議,如串口加載協(xié)議、ARINC615A-2、ARINC615A-3協(xié)議[4]等;支持應(yīng)用軟件、配置數(shù)據(jù)、操作系統(tǒng)、可編程邏輯、系統(tǒng)工作參數(shù)等多種格式文件的加載。
信息保護(hù)功能。設(shè)置管理員權(quán)限、開發(fā)者權(quán)限和外場(chǎng)權(quán)限三種權(quán)限。其中管理員/開發(fā)者擁有軟件所有操作權(quán)限,外場(chǎng)權(quán)限只能進(jìn)行待加載數(shù)據(jù)文件導(dǎo)入以及對(duì)數(shù)據(jù)文件的加載功能。
網(wǎng)絡(luò)拓?fù)渥R(shí)別與顯示。能夠自動(dòng)識(shí)別目標(biāo)機(jī)的目標(biāo)節(jié)點(diǎn)拓?fù)湫畔?,從而顯示整個(gè)目標(biāo)機(jī)的網(wǎng)絡(luò)構(gòu)成。
操作日志。提供加載日志和系統(tǒng)操作日志兩種日志管理。
可靠性保證。通過傳輸過程的CRC校驗(yàn)和加載文件的MD5校驗(yàn)功能保證加載過程的可靠性和一致性。
1.2 接口需求
通用數(shù)據(jù)加載工具軟件的主要接口需求:
(1)系統(tǒng)需要提供人機(jī)界面接口,人機(jī)界面接口用于設(shè)備使用人員進(jìn)行各項(xiàng)工程、任務(wù)操作及實(shí)時(shí)顯示;系統(tǒng)需要提供串口接口、以太網(wǎng)接口、AFDX驅(qū)動(dòng)接口等用于主機(jī)端與被加載的設(shè)備間的通信。
(2)內(nèi)部軟件接口包括配置文件接口、加載協(xié)議接口和加載控制接口。配置文件接口用于待加載數(shù)據(jù)管理。加載協(xié)議接口用于實(shí)現(xiàn)加載協(xié)議的加卸載。加載控制接口用于實(shí)現(xiàn)加載的設(shè)備選擇、狀態(tài)檢測(cè)、過程控制等。
2 系統(tǒng)物理架構(gòu)設(shè)計(jì)
通過對(duì)機(jī)載通用數(shù)據(jù)加載工具的系統(tǒng)需求進(jìn)行分析,將通用數(shù)據(jù)加載工具的系統(tǒng)結(jié)構(gòu)按層進(jìn)行分類。工具主要分為主機(jī)端軟件和目標(biāo)機(jī)端軟件兩部分。其中主機(jī)端軟件采用分層分析[5],分為用戶層、界面層、協(xié)議層和網(wǎng)絡(luò)層,層次結(jié)構(gòu)如圖2所示。目標(biāo)機(jī)端軟件為駐留在目標(biāo)機(jī)中的駐留應(yīng)用。主機(jī)端和目標(biāo)機(jī)端之間通過網(wǎng)絡(luò)連接。
3 主機(jī)端軟件設(shè)計(jì)
3.1 系統(tǒng)工作流程
主機(jī)端軟件主要完成配置文件的管理、加載方式和協(xié)議的設(shè)置、用戶權(quán)限管理、目標(biāo)機(jī)網(wǎng)絡(luò)拓?fù)涔芾?、?shù)據(jù)加載等工作。為了保護(hù)數(shù)據(jù)安全以及防止破壞系統(tǒng)重要區(qū)域的數(shù)據(jù),根據(jù)不同用戶權(quán)限可分為兩種工作流程。
管理員、開發(fā)者的工作場(chǎng)景按流程上可分為六個(gè)階段:用戶登錄、編輯配置表、加載數(shù)據(jù)包的制作、Flash空間地址規(guī)劃、網(wǎng)絡(luò)連接配置、加載,如圖3所示。
外場(chǎng)人員沒有配置表的編輯權(quán)限,只能導(dǎo)入開發(fā)人員事先編輯好的配置表,然后選擇加載項(xiàng),進(jìn)行加載,其工作流程如圖4所示。
3.2 配置表設(shè)計(jì)
為了適應(yīng)多種場(chǎng)景,設(shè)計(jì)了包含多種信息的配置表,配置文件的內(nèi)容包括系統(tǒng)名(如IPC)、模塊名、待加載的二進(jìn)制文件名、待加載的二進(jìn)制文件的物理地址、Flash加載地址、加載協(xié)議、加載方式和通信配置信息。為了能在多模塊使用配置表數(shù)據(jù),設(shè)計(jì)了以下數(shù)據(jù)模型對(duì)配置表數(shù)據(jù)進(jìn)行轉(zhuǎn)化和存儲(chǔ),該數(shù)據(jù)模型用于權(quán)限管理、Flash地址空間規(guī)劃、網(wǎng)絡(luò)拓?fù)鋱D、數(shù)據(jù)加載模塊。
圖5中的數(shù)據(jù)模型包含以下節(jié)點(diǎn):
NodeModel:目標(biāo)機(jī)節(jié)點(diǎn)類,包括目標(biāo)機(jī)的ID、是否在線、網(wǎng)絡(luò)配置等信息;
FileModel:待加載文件模型類,包括待加載文件名、文件燒寫地址等信息;
FlashModelFlash:地址空間規(guī)劃模型類:
ProtectEntry:系統(tǒng)預(yù)留Flash規(guī)劃項(xiàng),包含系統(tǒng)可規(guī)劃區(qū)域的位置和大小;
FlashEntry:燒寫區(qū)Flash規(guī)劃項(xiàng);
Connection:網(wǎng)絡(luò)通信抽象接口,獲取網(wǎng)絡(luò)通信所使用的傳輸協(xié)議;
ARINC664、SerialPort、Ethernet:為ARINC664網(wǎng)絡(luò)、串口通信和以太網(wǎng)通信;
Protocal:傳輸協(xié)議抽象接口,包含多種命令,如查找、加載、備份、恢復(fù)等命令;
CustomSerial、CustomEthernet、ARINC 615A-2、ARINC615A-3:本系統(tǒng)支持的傳輸協(xié)議。
3.3 網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì)
為了直觀的展現(xiàn)目標(biāo)機(jī)端網(wǎng)絡(luò)結(jié)構(gòu)和網(wǎng)絡(luò)配置情況,設(shè)置網(wǎng)絡(luò)拓?fù)淠K。根據(jù)當(dāng)前IMA系統(tǒng)的結(jié)構(gòu),每個(gè)系統(tǒng)中可包含多個(gè)模塊,每個(gè)模塊中可包含多個(gè)節(jié)點(diǎn)。網(wǎng)絡(luò)拓?fù)鋱D展示當(dāng)前主機(jī)端和目標(biāo)機(jī)中多個(gè)模塊、節(jié)點(diǎn)的關(guān)系。每個(gè)計(jì)算節(jié)點(diǎn)都有可能包含加載需求,在網(wǎng)絡(luò)拓?fù)鋱D上可顯示當(dāng)前節(jié)點(diǎn)部署的軟件及其屬性(含燒寫地址、MD5、燒寫時(shí)間、版本)以及目標(biāo)機(jī)駐留軟件版本信息。
網(wǎng)絡(luò)拓?fù)淠K可用來獲取目標(biāo)機(jī)節(jié)點(diǎn)狀態(tài)。通過向局域網(wǎng)中發(fā)送UDP廣播包,當(dāng)局域網(wǎng)中的目標(biāo)機(jī)節(jié)點(diǎn)收到數(shù)據(jù)包后,返回應(yīng)答消息,則網(wǎng)絡(luò)拓?fù)淠K將該設(shè)備置為在線狀態(tài)。
3.4 Flash地址空間規(guī)劃
目標(biāo)機(jī)的Flash中存在關(guān)鍵數(shù)據(jù)區(qū),一般固化著操作系統(tǒng)、系統(tǒng)引導(dǎo)程序等關(guān)鍵程序,為了對(duì)目標(biāo)機(jī)的關(guān)鍵數(shù)據(jù)區(qū)進(jìn)行數(shù)據(jù)保護(hù),設(shè)計(jì)了Flash地址空間規(guī)劃。該功能用于管理每個(gè)目標(biāo)機(jī)Flash地址的讀寫權(quán)限,其中權(quán)限共有三種(只讀、只寫、可讀可寫)。
管理員或者開發(fā)者需提前設(shè)定目標(biāo)機(jī)Flash地址空間的可分配范圍,之后才可在該范圍內(nèi)進(jìn)行地址空間規(guī)劃,每個(gè)規(guī)劃項(xiàng)需包含4個(gè)輸入項(xiàng):Flash起始地址、Flash結(jié)束地址、Flash地址權(quán)限、備注信息。圖6所示為某個(gè)目標(biāo)機(jī)節(jié)點(diǎn)的Flash地址空間規(guī)劃視圖。
4 目標(biāo)機(jī)端軟件設(shè)計(jì)
目標(biāo)機(jī)端軟件是部署在目標(biāo)機(jī)上的應(yīng)用。設(shè)計(jì)以下功能:
串口通信功能:主機(jī)端與目標(biāo)機(jī)端可通過串口通信,并可接受主機(jī)端請(qǐng)求、接受文件列表信息和數(shù)據(jù)文件,還需要負(fù)責(zé)向主機(jī)端返回操作結(jié)果、主機(jī)端已加載文件信息、目標(biāo)機(jī)端駐留軟件版本號(hào)和文件下載/燒寫進(jìn)度等狀態(tài)信息。
以太網(wǎng)通信功能:具備使主機(jī)端與目標(biāo)機(jī)端通過以太網(wǎng)通信的能力。其他功能與串口相同。
ARINC-664通信功能:具備使主機(jī)端與目標(biāo)機(jī)端通過以AFDX網(wǎng)絡(luò)通信的能力。其他功能與串口相同。
請(qǐng)求處理:目標(biāo)機(jī)端接收到主機(jī)端請(qǐng)求后需要解析請(qǐng)求,并根據(jù)不同的請(qǐng)求內(nèi)容執(zhí)行相應(yīng)的操作或返回?cái)?shù)據(jù),以此達(dá)到主機(jī)端對(duì)目標(biāo)機(jī)的管理。
數(shù)據(jù)文件MD5校驗(yàn):目標(biāo)機(jī)完成數(shù)據(jù)文件的接收后,需要對(duì)數(shù)據(jù)文件進(jìn)行MD5校驗(yàn),以確保該數(shù)據(jù)文件傳輸完整并且未被篡改。
LSAP文件解析:目標(biāo)機(jī)需要支持ARINC665標(biāo)準(zhǔn),能夠?qū)ζ渌枋龅腖SAP文件進(jìn)行解析,并根據(jù)解析出來的信息更新目標(biāo)機(jī)文件。
文件燒寫:支持對(duì)接收到的多種格式的文件進(jìn)行燒寫。
日志記錄:目標(biāo)機(jī)通過日志記錄駐留軟件的運(yùn)行信息,日志內(nèi)容包括:當(dāng)前時(shí)間、日志等級(jí)、日志位置和日志詳情。
5 通用數(shù)據(jù)加載工具軟件實(shí)現(xiàn)
通用數(shù)據(jù)加載工具軟件主頁面如圖7所示。
其中區(qū)域1為配置表顯示和編輯界面,區(qū)域2為網(wǎng)絡(luò)拓?fù)鋱D顯示界面,區(qū)域3為操作日志顯示區(qū)。將配置表信息完善后,加載數(shù)據(jù)包和Flash地址空間規(guī)劃完成后,進(jìn)行網(wǎng)絡(luò)配置,配置界面如圖8所示。
網(wǎng)絡(luò)配置設(shè)置完成后,進(jìn)行數(shù)據(jù)加載。選取了串口、以太網(wǎng)、AFDX三種通信介質(zhì),測(cè)試了對(duì)應(yīng)的多種加載協(xié)議,測(cè)試結(jié)果如表1所示。
從表1可看出,工具可實(shí)現(xiàn)多種方式多種加載協(xié)議下的加載需求。滿足多種應(yīng)用場(chǎng)景,具有良好的通用性。
6 結(jié)語
本文首先介紹了通用數(shù)據(jù)加載工具的功能需求和接口需求,然后使用分層分析,設(shè)計(jì)了系統(tǒng)的物理結(jié)構(gòu)。介紹了工具的主機(jī)端軟件設(shè)計(jì)和目標(biāo)機(jī)端軟件設(shè)計(jì)和實(shí)現(xiàn)方案,最后驗(yàn)證了工具的多種加載場(chǎng)景,表明工具具有良好的通用性。
參考文獻(xiàn)
[1] 褚文奎,張鳳鳴,樊曉光.綜合模塊化航空電子系統(tǒng)軟件體系結(jié)構(gòu)綜述[J].航空學(xué)報(bào),2009,30(10):1912-1917.
[2] 王羽,洪沛,閆樂,等.基于FC的航電數(shù)據(jù)加載服務(wù)系統(tǒng)的設(shè)計(jì)研究[J].航空電子技術(shù),2017,48(4):20-26.
[3] 張軍才,茹偉,胡宇凡.機(jī)載近距數(shù)據(jù)通信系統(tǒng)方案設(shè)計(jì)和驗(yàn)證[J].電光與控制,2020,27(1):17-20.
[4] 王曉華,李斌,楊媛媛.航空電子數(shù)據(jù)加載中間件的設(shè)計(jì)與實(shí)現(xiàn)[J].航空計(jì)算技術(shù),2020,50(5):103-106.
[5] 楊淵.基于MBSE的民機(jī)數(shù)據(jù)加載系統(tǒng)建模及模型驗(yàn)證[D].成都:電子科技大學(xué),2020.