APP下载

基于SCADE软件的通用显示软件框架开发

2015-10-22姚旭寅

科技创新导报 2015年24期

摘 要:基于ARINC661架构的显示系统的最大特点在于将实现显示画面生成功能的应用与实现画面逻辑控制功能的应用彻底隔离,使得系统开发后期的画面更改和逻辑更改相互独立、互不影响。该文基于对ARINC661规范的研究和SCADE开发工具,提出了一种通用的ARINC661显示软件开发框架,并就其中的UA逻辑构建、Widget库构建、DF文件构建、ARINC661运行时通信协议模块、网络通信协议模块、ARINC661内核模块的功能和实现方式进行了介绍,可用于今后基于ARINC661架构驾驶舱显示系统数字化仿真、显示软件开发提供研究基础。

关键词:ARINC661 SCADE 显示软件开发 UA

中图分类号:TP311.52 文献标识码:A 文章编号:1674-098X(2015)08(c)-0072-02

综合航电系统主要包括座舱显示系统(Cockpit Display System,简称CDS)、飞行管理系统、机载雷达与通讯系统、飞机防撞系统、中央维护系统等8个子系统。作为人机交互的接口,座舱显示系统将航电、发动机、飞控等机载系统综合成一个整体,以实现飞行信息的综合处理、综合显示以及系统工作方式的综合控制,重要性不言而喻。

文章基于SCADE软件开发环境,提出了一个通用的ARINC661显示软件开发框架以支持座舱显示系统软件的研制流程。

1 ARINC661组成

ARINC66规范即“驾驶舱显示系统人机接口规范”的发布为设计符合驾驶舱人机交互需求的显示系统提供了指导规范,并逐渐成为目前航空显示系统设计的行业标准。ARINC661对显示系统和需要与显示系统图形内核进行交互以实现其图形显示功能的外部成员系统之间的接口进行了规范,从而实现了驾驶舱显示系统的通用性和一致性[1]。

ARINC 661在一个完整的框架下由几个子部件组成。

(1)Widget Library:定义了座舱显示系统的显示内容,包括基本图元、图元的可能组合以及对于复杂的地图管理和支持。

(2)UA:将座舱显示系统的逻辑与显示部分完全分开,将逻辑部分配给一个个的UA进行处理。

(3)ARINC 661内核:CDS采用客户端/服务器方式,服务器端叫做ARINC 661内核,其主要工作包括渲染ARINC 661中定义的widgets,响应用户输入,与UA间进行信息交互的编码、解码工作以及对于多个屏幕、窗口和关注点的管理。

UA与ARINC 661内核之间的通信协议,定义了由于用户交互产生的传递给UA的事件、以及UA对于座舱显示系统显示数据变更的请求。

2 SCADE简介

SCADE(Safety-Critical Application Development Environment)即高安全性应用程序开发环境,是实时嵌入式系统和电子系统的开发工具和方法学,是基于模型的开发工具,运用Correct by Construction的概念,从需求分析到代码生成覆盖嵌入式软件开发的整个流程。

SCADE软件提供了用于逻辑建模的SCADE Suite工具和用于图形开发的SCADE Display工具,两个工具配合使用可进行完整的驾驶舱显示系统软件的开发工作。

3 通用显示软件开发框架总体方案

根据ARINC 661标准的组织结构,根据功能可以将通用显示框架软件划分为以下几个主要部分。

(1)UA逻辑构建模块。

(2)Widget库构建模块(PC机、目标机)。

(3)Layer构建模块。

(4)二进制DF文件构建模块。

(5)ARINC 661运行时通信协议模块。

(6)网络通信协议模块(Ethernet、AFDX)。

(7)ARINC 661内核:DF文件解析模块、DF文件加载模块、窗口管理模块、光标键盘管理模块、异常处理模块。

3.1 UA逻辑构建模块

UA逻辑建模主要根据定义的软件逻辑方程使用SCADE Suite的数据流和状态机的聯合建模机制以直观的方式描述显示控制逻辑,并且在验证模块下进行模型的仿真和覆盖率分析以确保构建的模型满足功能的要求,并且确保所有的结构分支已被覆盖和满足一定的安全性特征的约束要求[3]。图1为基于SCADE的逻辑建模例子。

3.2 Widget库构建模块

ARINC 661标准里定义的接口依赖于一组基本的图形用户接口对象,称之为“widget”。Widget的列表参见ARINC 661规范。通常来说,这些widget与某个显示实体对应。其中一些是“交互widget”,因为他们支持机组人员通过光标控制设备和键盘进行交互。机组人员对交互widget的操作通常与事件报告相关联,发送给航电用户应用(UA)。非交互widget则没有相关事件。

Widget库的构建主要可分为Widget图形设计和Widget行为逻辑设计两部分内容,其主要开发流程如下。

(1)SCADE Display图形设计。

(2)服务器配置。

(3)SCADE Suite行为设计。

(4)服务器生成和编译。

服务器测试。

3.3 DF构建模块

DF构建模块生成主要是将XML格式的SCADE Display模型生成基于ARINC 661的二进制文件,并完成对嵌入式环境下的移植,DF生成的工作流程如下。

(1)分析SCADE Display.SDF模型。

(2)读取A661配置文件。

(3)检查所有widget和它们参数。

(4)在内存中组织并存储DF的元素。

(5)把内存中的DF元素按XML DF的格式输出到XML文件形成最终的XML DF文件。XML DF文件的格式可参见A661标准。

(6)根据A661配置文件,把内存中的DF元素按二进制DF的格式写到文件形成最终的二进制DF文件。

3.4 ARINC 661运行时通信协议模块

UA和CDS之间的信息交互通过设置运行时widget参数的方式进行。这些参数的传输有两种形式:

(1)应用程序内容的变化,可能采用定期的参数传输的方式。

(2)对于一个widget事件的响应,采用纯异步的方式。

CDS和UA之间的信息交互采用事件驱动的方式,信息传输的内容主要是一个widget或layer的响应信息。

ARINC 661运行时通信协议模块在程序流程上可以分为两个任务共9个Module。任务1与任务2独立运行,使用共享全局变量。任务1负责网络数据的接收,并将接收到的数据保存在环形队列中;任务2负责对环形队列中的数据进行解析并交由逻辑控制模块进行处理,将处理后的数据封装成A661协议包并通过网络发送给Server端。其程序流程如图2所示。

3.5 网络通信协议模块

3.5.1 PC机端UDP通信

PC机平台上以太网通信可以采用UDP和TCP/IP两种通信协议方式进行通信,鉴于UDP方式通信的效率高的特点,可以采用UDP方式将UA与CDS之间的数据封装并通过网络进行传输。UDP通信协议已经很成熟,Windows平台下也有自己的WINSOCK函数可以调用以实现UDP通信,但考虑到以后平台的可移植性,实现嵌入式下UDP的通信功能,可以采用与平台无关的SOCKET的API函数来实现UDP通信。

3.5.2 PC机端ARINC664网络通信

由于目前驻留的航电的网络通信结构为ARINC664网络听信架构,UA与CDS之间的网络通信协议也可以按照ARINC664网络进行通信,在PC下实现基于ARINC664网络通信主要需要实现如下功能:(1)端系统属性配置;(2)ES板卡API调用;(3)ARINC664通信端口映射配置;虚拟链路的配置。

3.6 ARINC 661内核模块

ARINC 661内核的功能主要在于管理当前渲染的所有widget的同时还需要能够监控主驾驶或副驾驶通过系统输入设备与座舱显示系统进行的交互[2]。其主要功能如下。

(1)底层图形驱动模块:主要包括OpenGL驱动、视窗系统模块,提供相应版本嵌入式下OpenGL驱动和视窗系统支持功能。

(2)主执行模块:ARINC661内核主模块,完成内存分配、数据分发、进程调度、进程管理等功能。

(3)ARINC661内核端通信模块:提供ARINC661规范定义的通信协议API实现,完成内核与UA之间的数据通信。

(4)飞行员输入控制处理模块:接收和处理来自外部光标、键盘的控制指令输入,并提交给主执行模块以事件的方式发送给UA。

(5)Widget库:提供ARINC661规范定义的标准部件库实现。

(6)DF解析模块:系统上电时加载和解析外部DF文件,获取所有需要显示的信息定义,进而交由主执行模块完成静态显示内容的内存分配。

(7)窗口配置管理模块:系统上电时加载和解析外部的CF文件,获取显示器窗口分配定义,进而交由主执行模块完成显示窗口的创建。

4 结语

该文基于对ARINC661规范的研究和SCADE开发工具,提出了一种通用的ARINC661显示软件开发框架,并就其中主要的软件模块功能进行了介绍,为今后进行基于ARINC661架构的驾驶舱显示软件开发提供研究基础。

参考文献

[1] ARINC 661 Specification: Cockpit Display System Interfaces To User Systems[S].Aeronautical Radio Inc, 2010.

[2] 姚旭寅,王俊峰,吳健,基于ARINC661规范的驾驶舱显示系统设计方法研究[J].工业控制计算机,2011(11):31-32.

[3] SCADE training courses(Chinese)[S].2009.