飞机机电综合系统软件架构设计研究

/ 4

飞机机电综合系统软件架构设计研究

陈彦强于春海

陕西飞机工业有限责任公司设计研究院

要:针对飞机机电综合系统软件高安全和高可靠要求,研究国内外典型开放式系统软件结构,对比分析了GOA框架、ASAAC系统架构以及ARINC653软件结构,提出了适用于飞机机电综合系统的软件框架设计思路,为机载机电综合系统软件设计提供一定技术支撑。

关键词:软件架构、开放式、分层、安全性设计

1 前言

    开放式系统软件架构技术的研究在欧美及俄罗斯已进行多年,宝石台、宝石柱等计划也是业内人士耳熟能详的研究领域,但欧美国家不只进行了理论研究,在很多军机项目中都将开放式系统软件架构进行了深入的应用;基于“宝石柱”计划的开放式航空电子系统架构,在 F-35 飞机中的成功应用,使系统软件结构和软件设计概念进一步提升。             

2 机电综合系统软件架构设计需求

    飞机机电综合系统是各机电系统的控制管理与信息处理中心,是飞机实现机电综合管理的技术平台,是机电系统综合概念中实现信息综合、控制综合的重要系统,其通常采用多台分布式计算机组网形成其主要系统结构;机电综合涉及液压、环控、防除冰、燃油、供电、起落架、防火、照明等机电子专业,各机电子专业系统功能主要通过应用软件进行定义,尤其是作为飞机平台系统,考虑后续系列化发展,机电综合系统软件架构设计需采用开放式软件架构形式。

    在软件功能和结构越发复杂的情况下,软件的可靠性和安全性凸显,因此机电综合系统开放式软件架构设计的主要需求可归纳以下几个方面:

a)实现应用软件与硬件,操作系统与底层软件之间的隔离,便于系统功能升级,软件移植以及硬件更换;

b)采用通用和专用软件模块实现系统和子系统任务功能;实现各模块的高度综合和小型化; 

c)实现各个功能区间的综合;

d)高可靠性和安全性;

e)支持分布式控制和管理;

f)具备健康监控等系统管理能力。

3 开放式软件架构分析

3.1 开放式软件系统架构

(1)通用开放式结构(GOA)框架

    SAE AS4893《通用开放式结构(GOA)框架》标准是一项重要的开放式系统结构标准。GOA 模型概念主要是软件架构的分层和接口分类,模型框架如图1所示,GOA框架规定了软件、硬件和接口的结构共4层,以便在不同应用领域中实现系统功能。

图1 GOA架构示意图

GOA 的4层结构模型如下:

a)应用软件层:处在最高层,包括具体功能应用的平台,它可以包括多个软件应用组件,不同应用组件之间的通信要求是逻辑接口;

b)系统服务层:提供了应用软件层的公共服务,系统服务层至少包括操作系统组件,扩展操作系统是操作系统外在系统服务层的其他组件,并提供了扩展操作系统与操作系统之间的接口服务;

c)资源访问服务层:直接访问硬件的软件组件,包括映射 IO 定义的设备驱动器、存储器等,并提供系统服务层和资源访问层之间的直接接口,以允许访问的独立性和不同目标平台的可移植性;

d)物理资源层:处于最低层,提供不同物理组件之间的接口。这些接口包括了总线的物理定义和数据链定义,直接接口定义电气/机械要求,逻辑接口定义译码。

(2)ASAAC 软件系统架构

    鉴于美国在开放式航电系统架构研究和工程应用上的成功实践,欧洲成立了标准航空电子系统结构联合委员会(ASAAC),并制定了包括软件、通信/网络、公用功能模块和系统结构等标准。ASAAC在IMA架构中,将软件系统架构分为功能应用层、操作系统层和模块支持层三层。各层软件与飞行任务和硬件之间的依赖关系如下:

表1软件层次与任务、硬件依赖关系

软件层

与任务依赖关系

与硬件依赖关系

应用软件层

依赖

独立

操作系统层

独立

独立

模块支持层

独立

依赖

图2 ASAAC软件架构模型

ASAAC 软件系统架构模型中包含以下三个主要组成部分:

a)两个层次的系统管理

    应用系统管理在应用软件层,通过系统应用消息实现对应用的管理和功能的实现;通用系统管理功能在操作系统层,通过高权限的任务管理和直接访问操作系统接口的方式实现对软件本体以及整个系统运行状态的管理;

b)运行时蓝图

    即运行时使用的配置数据,在 ASAAC 软件体系中,蓝图配置文件包含通用系统管理(GSM)所需要的配置数据,由 GSM 负责根据配置数据进行软件管理和资源管理;

c)虚拟通道

    此处的“虚拟通道”与 ARINC653 扩展的“虚端口”接近,但不完全相同;在 ASAAC 软件架构中的虚拟通道强调的是逻辑上与网络链路无关的、基于消息收发处理的通信方式。

    在此分层的基础上,ASAAC 架构中的软件接口被分为直接接口和逻辑接口两类。在直接接口中定义了应用层/操作系统层接口(APOS)、模块支持层/操作系统层接口(MOS)、系统管理/蓝图间接口(SMBP)和系统管理/操作系统接口(SMOS)四种接口;在逻辑接口中定义了操作系统逻辑接口(OLI)、通用系统管理逻辑接口(GLI)、系统管理逻辑接口(SMLI)和模块逻辑接口(MLI)四种接口。

    ASAAC 系统软件规范提供了IMA环境下的系统软件架构及资源管理方案,通过软件的分层管理和跨物理网络的逻辑通信,实现分布式系统应用软件与操作系统及底层硬件的隔离。同时,通过运行时蓝图的数据配置,可以在应用软件不做修改的情况下,通过修改配置数据实现对系统软件功能的变更,完成系统功能重构。

(3)ARINC653 软件系统架构

    ARINC653 规范是专为航空电子系统应用而定义的软件规范,该规范的目的是为安全系统提供一个执行平台。ARINC653 的核心概念就是空间和时间的分区隔离。 ARINC653 将航空计算机软件系统分为应用软件层和核心处理软件层两大部分。应用软件层是由核心模块支持下的与航空电子应用有关的部分;核心处理软件层为应用软件执行提供公共的标准运行框架,包括操作系统以及硬件接口系统两部分。

    基于 ARINC653 规范的软件架构设计,使用时间片轮循的调度逻辑,借助应用层软件的空间隔离技术,实现了应用软件之间的解耦,提高整个系统软件的安全性。而这种安全性的大幅提高付出的代价之一,是应用软件对中断处理实时性的降低,在ARINC653操作系统之上的应用软件对外部中断主要是通过虚中断的方式来实现的。

    在使用ARINC653操作系统提高单 CPU 内软件安全性的同时,基于ARINC653端口通信原理的“虚端口”通信,也已经成为符合ARINC653规范的操作系统产品所支持的一项扩展功能,为分布式系统使用 ARINC653 操作系统提供了更为广阔的应用空间。基于ARINC653 软件系统架构如图3所示。

图3 ARINC653软件架构

    上述三种架构通过不同的方式,在不同程度上实现了航空电子软件软硬隔离、可移植性、可扩展性、高可靠性和高安全性的要求。三种架构各有其优势,在机电综合系统软件设计过程中,需进行综合借鉴,最优化实现软件功能需求。

3.2 开放式软件架构对比分析

(1)软件架构的分层设计及优化

    GOA软件架构和ASAAC软件架构都提出了软件分层架构的概念,以达到应用软件对底层隔离的目的,实现软件的解耦和功能的独立性。虽然GOA和ASAAC对软件层次定义的名称不同,但其逻辑功能基本接近,其软件层次划分对比见表2。

表2 GOA分层与ASAAC分层对比

软件层次

GOA

ASAAC

1

应用软件层

应用软件层

2

系统服务层

操作系统层

3

资源访问服务层

模块支持层

    GOA在系统服务层中将操作系统服务进行了进一步的逻辑划分,从而在定义各层次之间的接口时,使得GOA和ASAAC的接口有一定差异,但两者的共同思想都是在层次划分的基础上,通过定义相邻层次之间的接口,实现分层隔离,达到软件独立性要求和移植性要求。

    在软件分层的基础上,ASAAC进一步对系统管理提出了应用和软件两个层次的划分,即将应用功能的“系统管理”和底层“软件系统的管理”进行区分,将平台和资源管理的底层功能软件剥离出来,由软件管理来实现。这种划分方式从软件逻辑上进一步强化了应用软件的功能独立性。而在GOA体系架构中,系统管理和软件管理同属于“应用层”,即它们都是运行于操作系统层上的应用软件。所以,从一个系统整体的架构设计而言,ASAAC在逻辑的设计上体现的管理细节更多,其逻辑架构更适合于分布式系统的实际应用。

(2)应用软件部署及优化

    ARINC653 架构的核心是时间空间隔离,以及通过时间片分时调度,其架构的初衷是解决单CPU 内一个操作系统上的软件的高可靠性。虽然基于虚端口通信有一些功能的扩展,但是并没有对某个系统架构进行设计和划分,也没有对底层硬件的接口进行抽象。更简单的说,ARINC653是一种立足于“独善其身”的软件架构,采用该架构,可以最大限度地提高单机软件的安全性、独立性和可靠性。

    ASAAC软件架构则提出了整个系统级的解决方案,从系统级视角来看,ASAAC架构比 ARINC653 更系统、开放和完整。但是ASAAC对应用层软件设计的细节上没有考虑,对架构本身而言,ASAAC 软件架构的应用层软件(包括系统管理和软件管理软件)的设计更多的是从逻辑层次上的划分,在技术方面的设计提出了概念和功能要求,如资源管理、蓝图等,但没有对实施的方式和运行模式等进行详细描述。

    鉴于ASAAC和ARINC653软件架构分别从整体和局部对软件架构进行了周密的考虑,在软件架构设计中将两者的设计进行结合,则可以使整个软件系统最大程度获益。即采用ASAAC软件架构作为基础,其操作系统层采用满足ARINC653标准的操作系统,相应应用软件则驻留于操作系统的各个独立的分区之中;ASAAC 架构中的系统管理和软件管理,也通过分别驻留于不同的分区,达到逻辑和物理上的解耦和隔离;ASAAC软件架构中的虚拟通道,则为ARINC653下的分区间端口通信提供了良好的数据通信服务。

    通过将两者结合,对应用软件部署进行优化,一方面可以借鉴各个体系架构的特点,使整个系统软件的逻辑结构更加的清晰完整;另一方面将最小的资源划分从常规的CPU细化到了分区,在实现上进一步提高了软件系统的综合程度,同时保证了系统的安全性和稳定性。

4机电综合系统软件架构设计

4.1 系统软件整体架构

    根据上述论证和分析,飞机机电综合系统软件架构整体遵循ASAAC标准,包括功能应用层、操作系统层、模块支持层以及硬件层。各层之间相互隔离并通过标准的接口实现调用,两个对等软件结构层之间通过逻辑接口通讯,系统软件架构见图 4;局部软件(单机软件)采用ARINC653标准,实现时空隔离,确保应用软件的安全性、可靠性、扩展性与可移植性。

a)应用层:包括各功能分区或任务(信息综合处理分区、各机电分系统功能应用分区)、与应用相关的系统管理软件(健康监控分区)和输入输出隔离层(如配置表驱动及IO分区);输入输出隔离层主要为功能应用与外部接口解耦,并为功能应用提供高可靠数据接口服务;

b)操作系统层:由核心操作系统、通用系统管理及配置数据组成。核心操作系统采用满足ARINC653标准的嵌入式实时操作系统,为复杂综合化机电系统提供分区管理、分区调度、分区间通信、系统故障监控以及系统内部资源和设备管理等操作系统的服务;通用系统管理负责管理整个分布式系统,在系统出现故障时,实现系统的容错、余度配置与重构管理;配置数据定义了各种资源需求、状态信息、通讯配置信息、故障处理信息等,这些信息服务于分布式操作系统;

c)模块支持层:是与硬件资源密切相关的软件,包括板级配置、BIT软件、应用接口驱动、总线子卡驱动、SSPC驱动等;

d)硬件层:包括中央处理器(CPU)、存储器、通用及专用资源、SSPC驱动模块、硬件逻辑模块、总线通讯部件等,是整个系统软件运行的基础。

       图4 飞机机电综合系统软件架构示意

4.2操作系统选型设计

    高度综合是机电管理系统的发展趋势,依靠源代码或库进行软件综合的方式存在耦合性强,软件异常时彼此影响等问题。采用符合ARINC653标准的操作系统为综合化系统中应用软件设计提供分区、调度、通信、故障监控等功能,基于时空隔离,有效降低不同应用间的相互干扰,确保应用系统的安全运行。

    天脉操作系统由我国自主研制的面向机载设备应用需求的嵌入式强实时领域操作系统,包括天脉1 通用强实时操作系统、天脉2 分区式实时操作系统,以及天脉3多核操作系统。

   (1)天脉1操作系统

    天脉1 嵌入式实时操作系统是满足嵌入式系统的强实时操作系统软件,具有高安全性、高可靠性、实时性强、内核规模小的特点,支持国内外多型处理器芯片,主要适用于单应用的嵌入式强实时系统,具有实时多任务管理、任务间通讯、中断异常管理、存储管理、高速缓存(cache)管理等核心处理功能。根据天脉1操作系统的功能和特点,天脉1操作系统适用于架构中机电专用控制器等功能相对独立的控制器,但机电专用控制器也可根据功能的复杂程度和控制实时性需求不采用操作系统,直接由FPGA等核心处理器实现独立控制功能。

   (2)天脉2操作系统

    天脉2 分区式实时操作系统是专为综合化、模块化的系统架构而设计、开发的,支持多应用任务子系统,具备分区功能的强实时操作系统,适用于对综合化有较高要求的嵌入式系统。天脉2操作系统是符合ARINC653标准的国产分区实时操作系统,面向多应用,多任务的使用场景。在空间方面,天脉2通过存储器管理单元(MMU)实现多个应用软件的空间隔离,既保证了核心中数据不被非法访问,也保证了分区应用间数据访问的安全性。在时间方面,严格按照分区调度表进行时间片轮转,各分区在分配的时间窗口内独占CPU,保证了运行时间的确定性。

    天脉2 操作系统软件由核心操作系统(CoreOS)、分区操作系统(Partition OS)、可配置组件和模块支持层(MSL)四部分组成,结构如图5所示。

图5 天脉2 操作系统软件结构

    其中,核心操作系统实现系统内资源管理和设备管理,以及分区管理、分区调度、分区间通信、系统故障监控等;分区操作系统驻留于每个分区,实现分区内调度和管理;可配置组件为满足特定功能需求开发的功能模块,可自行根据需求进行配置选择;MSL 提供硬件资源的访问支持。根据天脉2操作系统的功能和特点,天脉2操作系统适用于综合化、模块化架构的机电综合管理计算机。

    (3)天脉3操作系统

    天脉3 嵌入式实时操作系统包含单应用多核(非分区多核)和多应用多核(分区多核)两种配置模式,分别面向嵌入式系统的非综合化、综合化设备环境,通过能力配置可满足不同应用场景的使用要求。天脉3 嵌入式实时操作系统的核心能力可完全覆盖天脉2操作系统,因此同样适用于综合化、模块化架构的机电核心机。但在满足机电系统软件需求的同时,其经济性成本高、资源利用率低(单核即可满足系统需求,多核造成资源浪费),因此操作系统建议选用天脉2分区式实时操作系统。

4.3 安全性分析与设计

    机电综合系统软件的安全性设计主要基于天脉2操作系统严格的时空隔离机制,在空间方面,天脉2通过系统态和用户态的两态管理和独立的上下文空间映射,使应用分区内进程不能访问其他分区及核心系统的地址空间,既保证了核心数据不被非法访问,也保证了分区应用间数据访问的安全性,实现了分区及操作系统存储空间的隔离、保护,防止故障蔓延;在时间方面,严格按照分区调度表进行时间片轮转,各分区在分配的时间窗口内独占CPU,应用分区的运行不会影响到其他分区及操作系统,提高了整个系统运行的确定性。

    此外,在天脉2操作系统时空隔离安全机制基础上,针对关键信号和外部接口访问异常两方面,开展软件高安全性设计,拟采取的设计思路如下:

(1)关键信号软件高安全性设计

    对于机电系统采集的离散量信号由于外界干扰等原因会导致“0/1”单粒子翻转的情况,对于关键信号将会存在很大的安全隐患。软件设计中需考虑对关键信号可进行如下处理,保证数据采集及传输的正确性:

a)为防止关键信号单粒子翻转效应,设计关键信号双Bit位的离散量访问模式,整机对外输出的离散量和采集的离散量信息,每一接口可使用2个Bit位表示,在二进制表示下00与11无效,01代表逻辑0,10代表逻辑1;

b)增加通信校验,发送数据包按照系统ICD封装后,增加累加和校验,确保整包数据有效。接收过程同理。

(2)外部接口访问异常软件安全性设计

    由于外界干扰等原因会导致部分外部接口访问异常。软件设计过程中,对于外部接口失效安全性设计主要体现在:

a)尽量使用状态寄存器判断,减少使用延时等待进行状态机的跳转,防止出现因为元器件使用时间长引起的等待时间延长的情况;

b)增加看门狗功能,预防寄存器访问异常的情况。

5结论

    本文在国内外开放式软件架构对比分析的基础上,提出了适用于飞机机电综合系统的软件框架,并给出了操作系统选型建议;同时针对机电综合系统常见软件故障模式给出了软件安全性设计思路,具备一定工程应用价值。