吕广喆,李亚晖,刘 陶
(中国航空工业集团公司西安航空工业计算所,陕西 西安 710068)
飞机间混合编队协同作战是未来空战的重要形式。为了更好地完成无人机间、无人机与有人机间的“协同”,需要航电系统的公共资源进行统一规划和布署,形成一种“统一平台”,用以支持飞机间角色分配、任务下达、编队协同等作战计划。根据目前的航电系统划分,航电系统的核心处理计算机接收各传感器、雷达、电子对抗系统、容器网络接口(Container Network Interface,CNI)等分系统的数据,对各分系统的数据进行处理,并对整个航电系统的任务进行解算、分析和处理,再将计算后的结果通过航电总线传回各个分系统。由于各个分系统属于智能终端设备,具备数据处理、信号处理、总线数据解算处理的能力,因此将这3 个部分集中到核心处理计算机进行处理,提升了平台的资源利用率。为了实现系统综合,软件架构上需参考软件通信架构(Software Communication Architecture,SCA)实现硬件设备与应用软件的解耦,如图1 所示[1]。
图1 SCA 软件架构
SCA 是一种基于服务化和软件组件化思想提出的信号处理领域的可扩展软件架构。基于SCA 架构开发的软件无线电设备系统具备以下特点:信号处理硬件设备与软件解耦,升级维护简单,应用采用组件化开发方式,能够有效降低成本。目前,装备领域应用最为广泛的SCA2.2.2 规范在小型软件无线电设备研发方面面临许多问题,如SCA 架构太过复杂、功耗过不能适应嵌入式应用场景、CORBA 中间件实时性差等一系列问题。2012 年再次发布的SCA4.0 标准在系统升级、轻量化方面做了更多的考虑,重新描述了操作系统、通信中间件、核心框架和应用之间的关系。现在不少SCA 的开源软件、货架产品开始遵循SCA4.0 标准进行开发[2]。
SCA 核心框提供标准的接口和服务支持应用程序运行,控制、管理波形应用的安装、加卸载以及配置。它的核心框架通过对底层软件和硬件的抽象,实现了自动装配、智能化管理的统一接口,包括应用管理接口、框架接口、框架服务接口、域配置文件等几个部分[3]。
应用管理接口包括端口、端口提供者、生命周期管理接口、可测试对象、属性集、资源和资源工厂,实现应用组件的生命周期管理。端口包括应用组件对外提供的接口以及组件需要调用的接口;端口提供者为所有提供了端口的组件提供端口获取操作;生命周期管理接口为组件数据和资源提供初始化和释放操作;可测试对象实现组件的测试;属性集支持对组件属性进行访问;资源是指根据核心框架定义的基本接口实现的波形组件,该类接口可以操作波形组件;资源工厂用于创建和撤销资源。
框架接口提供对信号处理系统的控制能力,提供对应用、设备和设备管理器的注册、注销等控制接口。
框架服务接口提供分布式文件访问能力,具备读、写、创建、删除、复制文件等功能,包括文件、文件系统、文件管理器等。
域配置文件描述了信号处理系统中硬件设备、应用组件的关键特征,支持资源通过组合的方式实现应用。在启动、初始化、安装应用组件时需要获取配置文件的信息。
SCA 的启动过程如下:首先进行系统加电,完成各个硬件模块的初始化,直到SCA 核心框架的加载和初始化完成。通常先启动的是域管理器所在的节点,然后才是其他节点。
系统加电后启动操作系统,然后运行SCA 框架,读取配置文件,启动核心框架的服务注册功能;接着加载设备管理模块,初始化文件系统,为设备管理器和设备提供存储支持;接下来启动通信中间件,支持发布订阅的异步通信机制;之后,设备管理器会启动日志服务,日志服务提供一个短期的内存日志,用来记录系统消息、软硬件的错误和警告信息;启动后设备管理器会创建域管理器,管理系统中的硬件和软件资源,创建、控制波形;各个设备以组件形式注册到核心框架中[4]。SCA 启动过程如图2 所示。
图2 SCA 启动过程
波形安装过程:调用域管理器安装应用的接口,创建应用工厂,应用工厂实例化、初始化、配置波形应用的每个组件,创建组件间连接,最后实例化波形应用。
波形卸载过程:卸载波形应用程序时,首先调用应用组件释放对象的接口,断开程序间的连接、释放系统资源、卸载应用程序文件,如果此波形应用的应用工厂无其他波形实例,可以调用域管理器卸载应用的接口,卸载应用工厂[5]。
当前机载系统多采用IMA 系统架构,随着技术的发展更加强调低功耗、实时、容错能力。而传统的SCA 架构中,CORBA 中间件定义的约束较多、传输实时性有限,已经不能完全满足未来机载系统的要求。此外,SCA 架构对系统容错能力的考虑不足。因此,本文将针对机载系统的应用特点重新设计SCA 架构,如图3 所示。
该架构包括应用程序、通用服务软件层、操作系统层、硬件层。
应用程序:实现系统特定应用功能,包括资源管理、无线电波处理、波形参数管理、信息加工及利用等功能。
通用服务软件层:提供多处理器间互联互通服务,包括物理总线管理、处理器及其应用软件间通信机制、日志服务、文件管理、在线升级、系统管理等平台服务。平台软件层采用数据分发服务软件和硬件抽象层为应用提供通信,封装物理总线及硬件部件接口的协议细节,采用系统管理支持系统的容错处理,使用分布式文件系统支持远程文件的访问操作。
操作系统层:提供软件运行环境,包括物理总线管理、处理器及外设资源管理、接口资源驱动等设备适配层软件,分别部署在主处理器上,协处理器可根据情况考虑是否部署操作系统。
硬件层:提供支持信号处理的硬件单元,主控处理使用CPU,协处理器可采用数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等设备。
SCA 通信中间件分为2 个部分,一部分解决不同硬件之间的通信问题,采用DDS 软件实现;另一部分解决主处理器与协处理器之间的通信问题,采用MHAL 逻辑软件实现。
DDS 为应用提供发布订阅接口,支持发布订阅、自发现、消息队列,通过操作系统适配层可支持多种操作系统,如Linux、Windows、FreeRTOS、VxWorks 等,通过网络传输插件支持不同的网络协议;提供可配置的服务质量适应不同的应用场景;提供2 种端点发现机制:静态发现和动态发现,其中动态发现在可信赖的通信通道完成自动的端点信息交换,对用户透明。发布订阅软件架构如图4 所示。
图4 发布订阅软件架构
主处理器与协处理器之间的通信需要解决接口定义、消息序列化、消息路由、底层传输协议适配的问题。该通信机制需要分别在通用处理器、信号处理、现场可编程门阵列设备上实现,提高单个系统内部的易集成性和互操作性。
接口定义为上层业务提供了通信接口定义方法;消息序列化实现消息封装与解析,消息路由实现发送源到目的地址之间的链路;底层传输协议针对不同硬件层的传输协议进行了适配,适配不同的通信协议、通信接口,使得不同类型的处理器和操作系统的差异不再对外暴露。对于特定设备的传输协议、硬件平台,通过传输机制协议适配层的修改,可实现平台扩展。
本文选择MHAL 为机载软件无线电系统上基于消息通信机制的波形应用组件提供一致的通信接口。该接口应支持部署在通用处理器、数字信号处理器、FPGA 上的波形组件通信。波形侧接口由MHAL API提供。MHAL 平台侧接口由硬件平台根据其特定架构进行定义。
计算单元可以通过MHAL 通信函数提供的路由能力访问其他任意单元,所有MHAL CE 的消息格式相同。MHAL 的参考模型如图5 所示。MHAL 接口规定了不同计算单元间的通信协议接口。
图5 MHAL 参考模型
硬件抽象层通信服务由通信函数联合接口组件提供。接口组件为应用提供消息传输能力,通信函数为应用提供消息路由能力。波形应用使用硬件通信服务获取不同硬件模块的数据消息和控制消息。
接口组件由软件驱动或FPGA 接口组成。软件驱动通过操作宿主平台特定传输方式来提供消息传输功能,而FPGA 接口则是建立针对平台物理接口的一套消息传输机制。
信源通过MHAL 通信函数发送消息,信宿通过MHAL 通信函数对它的调用来接收消息。信源和信宿间由通信服务提供异步可变长度的消息服务,可在相同或不同硬件模块上,同一硬件模块内组件间的通信不要求采用通信函数通信。
本文结合未来装备发展的趋势分析了现有软件通信架构存在的问题,结合机载领域的应用特点设计了具备轻量化、容错功能的软件通信架构,实现了软硬件平台解耦、屏蔽底层硬件差异性。突破了SCA架构中通信中间件技术,使用DDS、MHAL 解决了模块间、模块内的通信问题,对于提升信号处理的扩展性及综合化能力具有重要意义。