客户化AOC应用的设计研究
2019-04-01宁艳艳
宁艳艳 袁 野
(中电科航空电子有限公司 四川 成都 611731)
0 引 言
目前民用飞机上主要的航电系统设备及软件大都由国外供应商如柯林斯、霍尼韦尔、GE等提供。随着C919和琨龙600国产大飞机的首飞成功,国内的民机产业发展迅速,民用机载软件的研制也得到越来越多的重视。民用机载软件的研制具有高安全性和高可靠性的要求,RTCA DO-178C[2]标准根据系统安全性的要求对机载软件进行了等级划分并为不同等级的软件提出了不同数量的研制和审查目标。
随着民用航电系统的集成化和模块化的发展促使综合模块化航空电子(IMA)系统架构的产生,将机载软件驻留在IMA平台也成为了航电系统发展的主要趋势。此外,基于ARINC 661规范的座舱显示系统的发展解决了传统机载航电系统的人机交互存在的界面友好型差、操作繁琐的问题,成为当前主流的座舱显示技术[3]。
机载数据链应用AOC主要用于航空公司管理飞机运行、气象、延误、维护以及其他相关的运营活动,业务种类繁多,并且支持航空公司自行定义。典型的AOC报文包括:OOOI报、飞行状态、延误及变更报、气象报请求、维护报文、客舱服务请求等[4]。本文通过分析AOC应用软件的功能,结合DO-178C标准的要求,针对AOC软件架构的设计进行研究。
1 AOC应用功能简介
通过分析飞行机组及航空公司及对AOC应用软件的需求得出,通常AOC应用支持三种触发逻辑发起与地面航空公司的消息交互[5]:
1) 周期性触发 AOC应用按照配置的时间周期发送下链消息。最常见的就是飞机位置报,通过飞机周期性下发的飞机位置数据, 航空公司可以掌握飞机的活动状态以及飞机位置。因此,AOC应用需具备数据库加载和飞行状态监控的功能。
2) 事件触发 AOC应用在特定事件发生时发送下链消息。通常用于航空公司掌握飞机飞行状态的变化,将飞机的飞行状态变化事件与特定的报文生成逻辑绑定,达到及时掌握飞行关键事件和关键参数的目的,如飞机滑出、起飞、着陆逻辑与OOOI报文生成绑定。因此,AOC应用需具备事件管理和事件触发动作处理的功能。
3) 手动触发 飞行机组通过HMI界面操作向地面请求或通知某种信息、事件。如气象请求报、延误报、预计到达时间报等。因此,AOC应用需具备响应界面操作的功能。
AOC应用的主要功能包括:
1) 通过ACARS空-地数据链系统在飞行机组和航空公司间进行上/下链消息交互,包括典型的AOC报文和客户化的上/下链消息。
2) 为飞行机组提供信息显示和人机操作界面,并响应机组操作指令。
3) 支持客户化数据库的加载,根据用户配置进行客户化处理,以满足航空公司的特殊要求。
2 设计描述
2.1 设计考虑
2.1.1 软件概述
为了满足不同航空公司的需求,AOC应用软件需具备航空公司客户化功能。为满足该需求,AOC应用的实现需包含机载AOC应用软件和客户化数据库两部分。在地面基于航空公司需求通过地面支持工具(客户化数据库生成工具)完成配置生成客户化数据库。机载AOC应用软件加载客户化数据库,完成AOC消息的传输及机组界面操作的响应处理。
2.1.2 软件等级确定
按照RTCA DO-178C的软件设计等级定义,AOC应用软件的故障不影响飞机的安全、不会增加机组人员的工作负担。因此,在数据链系统设计时将AOC应用软件的设计保障等级定为E级。
2.1.3 分区考虑
按照RTCA DO-178C的架构考虑,机载数据链系统的设计采用IMA体系架构,AOC应用软件运行在一个独立的ARINC 653分区中。这样可保证AOC应用软件的运行不受运行在其他分区中软件运行的影响,且对AOC软件的更改不影响系统安全。
2.2 架构设计
2.2.1 功能模块划分
按照AOC应用的功能要求,可将AOC应用软件划分为以下五大功能模块:
1) 显示管理模块 基于ARINC661规范提供A661事件处理机制,负责HMI界面的显示及响应用户操作。
2) 控制管理模块 基于消息生成逻辑负责下链消息的生成和发送,上链消息的接收、解析及显示等处理,收集并存储网络上的飞机参数,为HMI界面提供显示数据和动作处理方法。
3) 协议层 提供AOC软件的通信接口,包括与CDS间的ARINC661接口、与通信管理单元间的ARINC619接口[6]以及AFDX接口。
4) 数据库管理模块 存储客户化的数据库并为控制管理模块提供访问数据库的接口。
2.2.2 MVC框架
为做到业务逻辑、数据和界面显示的分离,AOC应用软件的架构设计采用MVC框架[7]。在MVC框架中,Model作为AOC应用软件的核心处理模块,负责业务逻辑处理、存储业务数据并为View提供业务数据访问接口以及AOC数据库访问接口;View负责响应界面操作并基于Model提供的数据进行界面显示;Controller为View提供基于ARINC661的显示机制。
2.2.3 设计模式
AOC软件架构的设计中使用了如下两种设计模式:
1) 单例模式[8](Singleton) 单例模式用于确保整个应用程序中只有一个类实例,并提供一个访问该实例的全局访问点。
2) 观察者模式[8](Observer Pattern) 观察者模式是定义对象间的一种依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知被自动更新。观察者(Observer)作为消息的接收端,目标(Object)作为消息的发送端。该设计模式用于AOC应用各组件间的消息交互,消息的发送与接收是通过注册-通知(Register-Notify)的方式实现的。在软件初始化阶段,各组件根据预先设计的消息路由数据字典向目标端注册各自关心的消息,软件运行过程中如果产生消息,则会传递给注册的观察者。
adcresultb0[SampleCount-1]=adc[8]; //将ADCINB0数据存入数组adcresultb0[]中
除单例模式和观察者模式外,AOC软件的设计还用到了运行时(Runnable)对象的设计思想。Runnable对象作为软件运行时的一个调度单元,被主程序直接调度。每个Runnable对象都提供了一个被主程序的接口,并不是所有的组件都是Runnable对象。
2.2.4 逻辑架构设计
基于AOC应用软件的功能模块的划分和设计考虑,AOC应用软件的逻辑架构设计如图1所示。
图1 AOC软件架构
各组件的功能描述如表1所示。
表1 组件功能描述
各组件使用的设计模式如表2所示。
表2 组件设计说明
2.2.5 控制逻辑
图2为AOC软件各组件间的控制逻辑关系图。
图2 控制逻辑关系
1) 当AOC软件从网络上收到通过CMU转发的来自地面的上链消息后,AFDX层根据消息类型将上链消息路由给A619层;A619层根据ARINC 619规范进行上链消息解析,并将解析后的数据路由给上链消息处理模块;上链消息处理模块根据具体的消息Label进行消息参数解析处理,并将解析得到的参数更新。参数管理模块为其他模块提供了访问参数的接口。
2) 当某一事件的产生触发一条下链消息的发送时,动作处理模块通知下链消息处理模块进行消息参数封装、消息格式化等处理;下链消息处理模块根据消息的优先级将待发送的消息路由给A619模块;A619模块根据ARINC 619规范将消息封装成A619消息并路由给AFDX层,经由AFDX层发送到网络上。
3) 当某一事件的产生触发更新HMI界面时,动作处理模块会通知HMI页面管理模块,该模块获取页面参数并通过ARINC661 Framework封装为标准ARINC661消息后路由给AFDX层,经由AFDX层发送给座舱显示系统CDS;当收到来自CDS的命令时,AFDX层将ARINC661消息路由给A661层,该层将消息路由给A661Framework模块进行解析,得到命令或数据类型,并将命令/数据发送给HMI页面管理模块进行页面更新。
2.3 基于ARINC 661的界面设计
飞机飞行过程中机组与航空公司交互的信息众多,设计简单易操作的人机界面对提高飞行安全、降低机组工作压力具有重要意义。
飞机整个飞行过程可以划分为航前(Preflight)、航中(En-route)和航后(Post-Flight)三个阶段,在不同的飞行阶段机组与航空公司交互的信息不同,按照交互类型可将典型应用分为请求、报告和飞行日志三种类型。此外,AOC应用还提供了消息日志显示、系统配置等功能。
结合AOC应用功能的分类,本文基于ARINC661容器控件提供DF的树形结构,采用分层架构设计AOC应用的人机界面。AOC应用的基础界面布局和层次化结构所使用的容器类控件如图3所示,每个页面(Panel)包含了实现该页面功能的所有控件(Widget)。
图3 AOC应用界面布局
为支持AOC界面的客户化,将页面布局及使用的Widget信息存储到客户化数据库中。数据库中每个Widget的属性包括Widget类型、Widget标识、父控件标识,以及Widget运行时可修改的属性。AOC应用软件在加载数据库后将控件列表构建成Widget树,每个Widget称为一个树节点。Widget类别用于将所有控件划分为容器类、非容器类两种类型。父节点Widget表示当前Widget的父节点的引用,子节点Widget列表包含该容器控件下的所有子Widget的引用[10]。
AOC应用界面的客户化流程包括三个步骤:
1) 基于图3所设计的页面布局,通过DF生成工具绘制DF文件,本文采用SCADE Display工具生成DF文件;
2) 客户化数据库生成工具加载DF文件并解析,存储界面控件列表到数据库中,并导出二进制数据库文件;
3) AOC应用软件加载数据库文件读取用户客户化界面控件信息,并根据配置进行显示处理。
3 应用效果
基于本文的设计,将AOC应用软件驻留到IMA硬件单元中,通过AFDX网络与通信管理系统CMU、座舱显示系统CDS及其他机载航电设备进行信息交互。为验证AOC应用软件设计的正确性、合理性,在实验室中搭建了一套基于测试环境,如图4所示。
图4 AOC应用软件测试环境
1) 上航电参数仿真器 主要用于为AOC应用软件提供所需的飞机参数;
2) CDS仿真器 用于仿真CDS(座舱显示单元)设备,加载DF文件,完成界面显示和与AOC应用(UA)的消息交互处理;
3) CMU仿真器 主要用于模拟基于ARINC 618[11]协议的消息处理和消息路由;
4) RDIU 用于AFDX数据与ARINC 429数据格式的转换;
5)AIRTEL MTP200 用于模拟地面电台及DSP的收发消息处理功能。
AOC应用软件在初始化阶段完成客户化数据库的加载,与CDS仿真器建立连接完成初始化界面显示,能够响应用户操作并进行界面显示更新。同时,AOC应用软件还通过CMU仿真器、机载VHF电台与地面建立数据通信链路,可以收发上/下链消息并进行处理。为验证设计的正确性和完整性,本次测试分为三部分:一是上链消息的处理和显示;二是用户操作触发下链消息处理;三是事件触发的下链消息处理。
3.1 上链消息处理与显示
1) 测试输入:通过地面仿真软件发送AOC上链消“Rpt XXXXXXXXX/1THE WEATHER IS RAINING WITH SOME STORM”,如图5中消息a所示。
图5 地面仿真软件消息日志
2) 测试结果:AOC软件收到上链消息并在CDS仿真器上显示,如图6所示。
图6 AOC软件上链消息界面显示
3) 结果分析:AOC软件可正确接收、处理并显示上链消息。
3.2 用户操作触发下链消息处理
1) 测试输入:模拟飞行机组在AOC界面上输入起飞机场、目的机场、飞行机组等必要信息,点击“SEND”按键发送航班初始化下链消息,如图7所示。
图7 用户操作触发下链消息
2) 测试结果:地面仿真软件收到航班初始化下链消息“M08AUV00003G01 INIT ------/21 SCTU/SSZH/------/”,如图5中消息b所示。
3) 结果分析:AOC软件可正确接收处理用户输入信息并响应用户操作成功发送下链消息。
3.3 事件触发的下链消息处理
1) 测试输入:提供AOC客户化数据库配置周期性下发气象信息。
2) 测试结果:AOC软件成功发送气象报告下链消息到地面仿真软件,如图8和图5中消息c所示。
图8 事件触发发送下链消息
3) 结果分析:AOC软件可正确处理周期事件并可基于配置正确处理下链消息的发送。
测试结果表明,AOC应用软件能够通过ACARS空-地数据链系统与地面航空公司交互上下链消息,能够为用户提供友好的人机界面,可响应用户界面操作成功触发下链消息,支持基于用户配置进行周期性下链消息和事件触发的下链消息处理。
4 结 语
本文通过对AOC应用的功能分析,设计了一套基于MVC框架的软件架构。同时基于ARINC 661的层次化结构,设计了一套易操作、用户友好的人机界面。测试结果表明本文设计合理,能够满足用户需求。
随着民用机载航电系统的发展,数据链技术得到越来越广泛的应用,尤其是在面向航空公司的应用方面,数据链技术的应用具有提高航空公司运行效率、降低运营成本的重要意义。然而目前国外相关企业在民用数据链领域占据垄断地位,我国在民用数据链领域的研究刚刚起步。随着国产化大飞机的发展,深入研究民用数据链AOC应用软件对研制满足适航要求的国产化机载软件具有重要的意义。