基于ARINC661 的座舱显示软件设计方法研究
2020-05-20王锐鑫赵中华沈国荣
王锐鑫 赵中华 沈国荣 于 杰
(苏州长风航空电子有限公司,苏州 215151)
1 研究背景
飞机座舱显示系统是人机界面,飞行员通过该系统了解飞行航向、高度、真/磁航向以及飞机姿态和发动机状态的信息,并对飞机发出指挥控制指令。从早期的分立仪表发展到目前的综合显控,座舱显示系统向综合化、小型化、人机界面友好方向发展[1]。
ARINC661 是座舱显示系统人机接口规范,该规范将画面显示和画面逻辑部分隔离,这样在座舱显示系统的后期应用过程中,画面显示部分的变更和画面控制的更改就不会产生耦合。ARINC661为这两部分建立了通讯协议和接口,形成了开放的体系[2]。
2 ARINC661 规范简介
ARINC661规范就是将飞机座舱显示系统切分为两个互相独立的子系统:用户应用程序(User Application,UA)和驾驶舱显示系统(Cockpit Display System,CDS),两个子系统之间通过规定的接口和通信格式进行通讯。ARINC661规范从产品的全寿命周期考虑,降低画面生成与画面控制逻辑的耦合。ARINC661规范采用窗体和图层(Layer)的概念,它将显示系统分成多个显示单元,每个单元分成数个显示窗口,每个窗口由多个图层组成,而图层由窗体(Widget)构成。因此,窗体是显示系统的最基本元素。画面显示过程中,以图层进行显示,只需要通过各个图层的接口对其所属窗体进行控制[3]。
3 UA 软件框架研究
3.1 UA 如何实现与CDS 通讯
ARINC661规范包含用户应用程序和驾驶舱显示系统两部分以及通讯协议。在初始阶段对显示系统的画面进行初始化,在运行过程中,CDS 显示控制软件与UA 根据ARINC 规范约定的消息格式进行通讯。
在系统运行过程中,用户应用程序主要有两部分功能,第一,通过指令控制CDS 显示控制软件,从而驱动画面显示;第二,接收CDS 显示控制软件的命令完成参数设置,实现按键以及显示器屏幕控制操作[4],如图1所示。
UA 与CDS 之间通过握手指令完成Layer 激活,首先由UA发送请求,CDS 显示控制软件响应请求,图层激活后通知UA,若Layer 属性为不可见,UA 需发出请求,CDS 将该Layer 属性设置为可见,该图层所属画面具备显示条件了。然后,UA 发送运行指令,CDS 显示控制软件解析运行指令并完成画面渲染工作。飞行员对显示器的周边按键及屏幕进行操作,CDS 显示控制软件将窗体事件发给UA,UA 产生相应的相应。
图1 UA和CDS通讯示意图
在座舱显示系统运行过程中,UA 发给CDS 显示控制软件的指令如下所示。
Struct A661_Block_RT{
uchar A661_bigin_block; //起始关键字
uchar Layerldent; //图层号
ushort Context_number; //上下文号
ulong Block_size; //消息块大小
ulong A661_run_comd; //指令序列组;
uchar A661_end_block; //结束关键字
ushort Unusedpad; //附加信息
}
上述指令采用图层号作为标识,UA 根本职能是控制图层信息,图层信息包括图层以及其下属的窗体部件的相关参数信息,包含在{ A661_Run_comd }+部分中,通过数据块变更图层信息,从而实现画面的渲染。
3.2 UA 功能与软件框架
模型-视图-控制器模式使画面显示、数据和控制逻辑相分离,本文中的UA 软件采供该模式。
座舱显示系统接通后,由UA 程序生成数据逻辑数据包,发送给CDS。数据逻辑包括设置图层中窗体的参数,还需配置响应事件所需参数,当CDS 收到窗体事件时,对相应的窗体以及图层进行设置。逻辑数据设置框图如图2所示,界面是用户的界面,用户通过它来发出更改请求,控制器收到请求后,更改逻辑配置[5]。
图2 UA软件功能框图
设置逻辑数据包之后,在系统运行阶段,UA 将数据包发送给CDS 显示控制软件,同时接受CDS 消息,通过上述过程来实现CDS 显示控制软件与UA 的通讯。
4 CDS 显示控制软件框架研究
4.1 显示控制软件的工作机理
CDS 显示控制软件从根本上来说就是通过一些描述文件和运行指令对显示器的画面进行解释,以达到动态渲染的目的。同时CDS 显示控制软件还需获取飞行员的按键或触控等信息,发送给UA,经过UA 处理后接受处理结果。CDS 软件的工作机理如图3所示。
图3 CDS软件工作机理
CDS 显示控制软件可以读取本地固化的定义文件(DF)文件启动,也可以通过UA 加载的定义文件启动。获取定义文件后,CDS 显示控制软件开展对对文件的解析工作,生成一棵描述树,该描述树包括全部窗体,还生成图形数据链表和symbol 描述链表各一个。完成上述工作后,系统进入运行态,CDS 显示控制软件负责维护显示器画面的动态渲染、获取用户操作和解析UA 指令,最终完成显示器画面的显示[6]。
4.2 显示控制软件功能分析
通过对显示控制软件的功能原理进行分析,可以确保该软件的各项特性,并了解其工作流程。在工作过程中可以根据具体目的,灵活地配置这些功能。
在显示控制软件功能中,维系其运行的最基础功能配置如下:
(1)能够加载本地固化的定义文件或者网络传输的定义文件。
(2)能够提供symbol 库和窗体部件库。
(3)能够在指定显示器上渲染窗体部件。
(4)能够解析UA 的指令。
(5)在系统运行过程中可以输出调试信息。
(6)能够提供操作系统。
(7)能够对显示控制软件的错误进行分析、处理。
上述功能,从最基本范畴上确保了CDS 显示控制软件对定义文件进行读取、解析、错误处理并对显示画面进行渲染,再加上对基本的UA 指令解释并进行参数设置,可以满足系统的运行和基本应用。但是对于一个完善的系统功能还需包括如下部分:
(1)具有font,styleset 等的定义功能,可以灵活设置个性化风格。
(2)可以提供预定义数据和图片支持。
(3)可以捕捉按键、触摸等外部输入,并转换成CDS 文件发送给UA。
(4)可以实现功能配置,对功能模块进行增加删除调整工作,优化代码数量。
4.3 显示控制软件组成模块
本文研究的CDS 显示控制软件模块层次和软件接口规范,并包含丰富功能的软件模块。采用面向过程的方法,模块间的逻辑清楚,也符合嵌入式软件设计思路。本文研发的 CDS 显示控制软件组成模块如图4所示。
图4 CDS显示控制软件组成模块图
由图4可知,显示控制软件是独立的软件包,它与软件环境和硬件环境无关,它通过4个驱动接口来适配不同的环境,因此具有良好的移植性。显示控制软件包括两个组成部分:
(1)基础库模块。该模块定义了符号库、字体库、图片库、显示风格以及窗体部件。用户可以通过修改上述定义和显示风格满足自身个性化的要求。软件研发人员可以根据协议要求修改symbol/widget 库。
(2)功能部分。模块由五个部分组成:UA 指令解析,CDS调度,事件处理,异常处理和实时渲染,上述功能为系统运行时功能。此外,还包括功能配置部分,该部分按照用户的配置选择性开展编译工作。异常处理是用来处理定时器溢出、指令错误、资源紧张等各中异常。显示控制软件调度器作为上层应用,控制多个功能模块,协调模块运行,维护重要数据结构。在没有操作系统的情况下,由CDS 调度器调用各个功能模块形成循环结构,在有操作系统的情况下,由操作系统来调度各个模块,控制对资源管理。
5 结束语
本文在对ARINC661规范的研究的基础上,提出了一种基于ARlNC661架构的飞机座舱用户应用程序和显示系统的软件架构设计方法,相信可为国内座舱航电显示系统的研究设计工作提供有效参考。