APP下载

基于ARINC615A协议的通用软件架构设计与优化

2021-04-01孙永林

计算机与网络 2021年2期

孙永林

摘要:提出一种基于ARINC615A协议的通用软件架构设计方案,在ARINC615A协议实现上,提出了软件分层设计思想,将核心业务内容与平台及物理介质间实现了完全解耦合。在协议包传输过程中,驱动层采用序列化及反序列化方式,中间数据收发层采用协议包对象整体处理,省去了协议包格式频繁解析及转换操作。同时,在ARINC615A协议认知上,设计了双文件存储数据方式及动态调整Data包大小方式,提升了数据文件烧写安全可靠性。对ARINC615A协议软件实现提供了一种高效解决方案,同时该软件架构的设计思想对于复杂系统及总线网络软件架构设计具有一定参考价值。

关键词:ARINC615A协议;通用软件架构;软件分层设计;双文件存储

中图分类号:TP391.4文献标志码:A文章编号:1008-1739(2021)02-60-5

0引言

机载ARINC615A是一种具有高可靠性和高稳定性的机载数据传输协议,广泛应用于民机及部分军机程序加载过程。机载ARINC615A系统能够高效完成基于数据总线的程序加载及程序管控要求。目前已成功应用于AFDX网络、FC网络、以太网等机载网络总线上[1],但不同网络总线间软件协议与传输方式差别巨大。因此,基于ARINC615A协议设计一款通用的软件架构能够快速实现软件协议层互联互通。

1系统方案

基于机载数据总线ARINC615A系统,采用C/S服务架构设计,通过高速机载数据总线,能够实现机载产品目标码快速集中加载及卸载操作。

1.1方案设计

设计基于ARINC615A协议实现,系统方案设计如图1所示。

PC端显控软件主要起到人机交互作用,ARINC615A协议成员组成包括管理机和目标机,管理机和目标机配合完成设备识别操作、信息管理操作、上传操作及下载操作等[2]。

管理机通常作用于机载高速总线管理端或维护端,例如:FC总线的NC节点、1553总线的BC节点等,目标机作用于特定设备,例如综合射频、雷达、光电检测等,主要完成目标码文件传输及烧写工作。

管理机端控制管理数据总线中目标机端节点升级及版本维护工作,通过数据总线将程序文件及流程控制命令发送至目标机,目标机依据协议文件对控制命令解析并上传控制结果。目标机接收加载管理端传输的程序文件,对文件校验后,将程序固化至自身系统相应Flash文件中,完成数据文件上传操作[3]。

下载操作主要包含媒介者模式及操作者模式。目标机读取配置项文件目标码信息,按照对应协议文件将目标码数据文件传输至管理机端,管理机负责处理解析协议文件,获取数据文件并上传至PC显控软件,负责配置项管理工作。

1.2软件设计

PC端显控软件使用QT协议框架,搭建应用程序界面,主要实现各个目标机文件配置管理操作。软件框架基于状态机管理实现目标机加载申请、文件传输、加载状态回传及配置项目标码获取操作。

目标机及管理机基于嵌入式平台开发,目前能够兼容主流操作系统Linux、VxWorks等,目标机与管理机数据传输基于严格问答机制实现,保证数据稳定传输。数据传送依赖简单文件传输协议(TFTP)实现,继承其超时时间设置、CRC16校验和消息重传等机制,确保文件传输完整性[4]。其中,协议文件是为了实现数据文件的最终传输和维护传输的安全可靠而定义的包含一组特殊格式和信息的文件,数据文件是真实传输内容。目标机与管理机数据交互流程如图2所示。

目标机与管理机基于ARINC615A协议实现协议文件及数据文件传送。加载端是数据的发起者,加载端接收用户的各种命令,如上传、下载、搜寻、控制等,把命令转换成符合ARINC615A协议的数据传输流程,目标端是数据传输的接收端,目标应用程序接收符合ARINC615A协议的命令和内容,并转换成消息传输给用户。

2通用软件架构设计

ARINC615A协议目标机及管理机软件架构基于通用框架,能够实现跨平台数据交互及多种数据总线兼容,同时,软件分层设计思想能够应用于其他复杂机载系统中。

2.1软件设计层次划分

由于ARINC615A协议是机载网络服务系统与航线可更换单元(LRU)之间数据加卸载标准,因此,在软件设计时独立于现有功能软件服务架构。与此同时,数据加卸载模块基于开放式软件设计思想实现多型号、多总线、多平台兼容[5]。软件架构设计依据数据传送阶段,软件设计分层如图3所示。

軟件架构设计中跨平台驱动层和总线协议转换层分别完成软件运行平台通用化及总线协议通用化处理。ARINC615A协议层部分实现加载数据流程,完成协议文件及数据文件收发。用户接口层主要完成数据加卸载模块初始化、文件固化及加载结果反馈等操作。

ARINC615A协议基于TFTP包格式进行数据传输。TFTP协议定义了6种类型的数据,不同类型数据采用操作码区分[6]。为了实现协议类型集中统一处理,数据收发接口及总线协议转换层实现了数据格式转换,完成了字节流到协议包序列化和反序列化操作。

2.2协议包架构设计

ARINC615A核心层处理流程包含数据接收及数据发送,数据接收及处理流程如图4所示。

协议格式转换处理主要解决了不同总线传输协议格式不一致问题,兼容不同数据总线软件协议。在接收到的原始数据中筛选出不同操作码对应的数据包格式,反序列化操作是将接收的数据做进一步处理及筛选,包括数据有效性判定、数据格式包转换为标准结构体格式数据对象。如果数据内容无效或非等待接收操作码信息,返回错误信息至上层接口接收层完成后续操作。

在发送协议数据包时,通用软件架构依然能够实现数据协议包对象集中处理,完成基于ARINC615A协议的数据分发任务,数据解析及发送端处理流程如图5所示。

数据发送及处理软件架构设计也是基于开发式标准ARINC615A协议,能够做到流程与数据文件完全解耦合。数据发送过程不仅能够完成数据校验操作,还可以根据不同协议类型完成序列化操作。

2.3 TFTP文件操作架构设计

目标机和管理机所有协议包的数据传输均基于TFTP协议。ARINC615A协议以TFTP协议为传输方式,定义了一系列协议文件和数据文件的传输内容和传输时序,从而保证文件传输的正确可控。由于不同文件系统及硬件介质文件读写速率差别较大,为了实现软件设计通用化目的,文件传输采用独立现场集中读写,避免由于文件读写时间过长造成协议包数据传输超时[7]。文件传输过程中读写操作故障或流程处理不一致,上报对应故障码信息及错误描述。TFTP文件读写操作软件设计流程图如图6所示。

2.4读写请求架构设计

标准ARINC615A协议中规定,管理机和目标机均可发起读请求与写请求,完成文件传输。文件读写请求是ARINC615A协议传输起点,同时也是ARINC615A协议实现的灵魂。目标机与管理机依托匹配的ARINC615A协议版本完成文件传送,读写请求发起端软件设计流程如图7所示。

读写请求设计流程中,目标机和管理机按照对应协议格式完成文件解析操作。除FIND操作外,其他传输阶段、目标机及管理机都具有随时发送及读取对方发送状态信息功能,管理机收集加卸载状态上传至显控软件,完成软件加卸载要求。

3 ARINC615A协议提升改进

为了能够更稳定高效地完成数据加卸载功能,实际软件开发过程中,在ARINC615A协议上增加了冗余处理、动态自适应调节交互长度、安全性验证方面进行了尝试。

3.1双文件存储技术

在程序文件烧写固化过程中,由于电源稳定性、Flash芯片使用寿命等原因,存在一定概率程序燒写失败问题。为了解决上述问题,通用软件架构平台采用双文件存储技术,能够有效避免由于烧写失败造成的系统异常等问题。双文件存储技术软件设计流程如图8所示。

双文件存储技术主要实现方法是在Flash芯片规划出2块物理地址空间,系统默认从A区域启动操作地址及功能模块,如果A区域启动失败,自动调整至B区域完成启动工作,同时将B区域内容复制至A区域。在程序烧写过程中,采用A区烧写,B区保存上一个程序版本。该技术能够有效避免外场维修升级过程中,由于操作错误或烧写失败造成功能缺失等问题。

3.2动态自适应传输特性

由于芯片制造工艺等原因,在嵌入式系统中不同Flash芯片烧写速率不同,即使同种芯片不同批次Flash芯片也存在烧写差异性。

在数据加卸载软件过程中,读写请求发出后等待接收OACK包,OACK包中携带了单次数据文件传输最大字节数。为了应对Flash芯片擦写差异性,通用软件架构设计了测试物理链路协议。采用测试数据文件动态传输过程中多态调整单包数据文件大小,计算出该通路下BLKSIZE值。在数据传输后续阶段,基于计算BLKSIZE值,保证数据传输稳定高效。

4实验验证

为了验证通用软件架构设计实验效果,分别采用FC总线、以太网总线和AFDX网络总线验证数据加卸载系统软件设计。

为了验证不同机载总线软件设计通用性,基于相同硬件平台PPC8280板卡,操作系统分别为VxWorks5.5.1和Llinux2.7,基于相同测试文件alt.bin进行数据加卸载。部分实验结果如图9所示。

通过上述实验验证,证明了通用软件架构能够实现基于ARINC615A协议的软件开发。

4结束语

实现了基于ARINC615A协议的通用软件架构设计方案,通过软件分层设计理念,完成了ARINC615A协议跨平台、通用化软件架构设计。与此同时,针对ARINC615A协议实际应用中,文件烧写及存储方面提出了优化方法,并成功应用于航电系统数据加卸载模式设计中。本文对ARINC615A协议理论研究及软件实现具有一定指导意义,也能够对通用化平台软件建设提供一些方法。

参考文献

[1] Airlines Electronic Engineering Committee.ARINC Report615-3-2007,Software Data Loader Using Ethernet Interface[S].USA:Aeronautical Radio.INC.,2007.

[2]熊华钢,王中华.先进航空电子综合技术[M].北京:国防工业出版社,2009.

[3] Airlines Electronic Engineering Committee.ARINC 653-1, Avionics Application Software Standard Interface[S].USA: Aeronautical Radio.INC.,Airlines Electronic Engineering Committee, 2006.

[4]周江,王伟平,孟丹,等.面向大数据分析的分布式文件系统关键技术[J].计算机研究与发展,2014,51(2):382-394.

[5]张磊,林荣超,牛文生.小型飛机航空电子系统容错技术研究[J].航空计算技术,2011,41(1):106-110.

[6] Airlines Electronic Engineering Committee.ARINC Report 615A-3-2007,Software Data Loader Using Ethernet Interface[S].USA:Aeronautical Radio.INC,2007.

[7] ROLAND W.综合化模块化航空电子系统的分布式平台[M].牛文生,译.北京:航空工业出版社,2015.