一种基于PowerPC的双余度远程接口单元设计
2021-12-24范新明陈亚玲
范新明,王 梅,艾 莉,陈亚玲,庞 鹏
(1.航空工业西安航空计算技术研究所,陕西 西安 710068;2.北京计算机技术及应用研究所,北京 100854)
0 引言
飞机机电系统是飞机中执行飞行保障功能子系统的总称,是保障飞机各项功能发挥的必要条件和基础条件,其可靠性和技术的先进性直接影响着飞机的整体性能,同时对飞机的安全性产生重要影响[1-7]。远程接口单元作为目前飞机架构中机电系统参数采集、集中解算和控制输出的终端,在飞机中扮演着越来越重要的角色。不同飞机对于远程接口单元的需求不同,在一些飞机架构中,仅仅将远程接口单元作为数据采集和控制输出的执行终端,远程接口单元将采集到的数据通过总线传给飞管计算机,飞管计算机经解算处理后,再通过总线下发输出控制指令,远程接口单元执行相应的输出动作。有些飞机架构,将远程接口单元作为机电系统的大脑,远程接口单元不仅仅完成机电系统数据采集功能,而且机电系统的数据处理、余度表决等功能也在远程接口单元中完成,同时远程接口单元还兼顾完成机电系统的健康管理功能,实时监测机电系统的运行状况。该架构下,飞机对于远程接口单元的计算性能要求相对较高,针对该需求,本文以PowerPC作为处理器,设计了一种双余度远程接口单元(简称DRIU)。该DRIU采用PowerPC作为处理器,采用国产天脉2实时多任务分区操作系统,不同的分区处理不同的任务,各分区使用端口通信方式进行信息交互,共同完成机电系统的控制和健康管理功能。
1 DRIU架构
DRIU以PowerPC作为处理器,选用FPGA作为IO接口管理单元,处理器采用PCIe总线与FPGA进行通讯。PowerPC处理器,主频800 MHz,配置2 GB的DDR3 SDRAM、256 MB的NOR Flash以及温控芯片等外设,同时处理器提供1 000/100/10 MHz以太网、RS232等对外接口,方便产品调试。DRIU架构见图1。
图1 双余度远程接口单元架构
2 CCDL方案设计
CCDL功能主要用于DRIU内部双通道之间的数据交互,是余度之间沟通的重要桥梁,由于双通道位于同一机箱内部,CCDL设计应尽量满足简单、可靠,且当通道故障时应将故障隔离,防止故障蔓延。DRIU采用双CCDL设计和CCDL自动转发技术以满足高效和可靠性要求,RS422总线通过数字隔离器与对方通道RS422驱动器进行交互并进行隔离,SPI总线通过数字隔离器实现双通道之间的隔离。CCDL的主要功能组成如图2所示。
图2 CCDL功能组成
CCDL采用RS422总线和SPI总线两种总线进行实现,RS422总线实现CPU发起的CCDL传输任务;SPI总线实现采集数据的自动转发。自动转发技术的实现使得CPU对底层数据的访问实现透明化操作,通道内FPGA采集到所有数据后,按照固定周期将数据自动发送到对方通道,这样每个通道的CPU均可以访问到两个通道的所有数据。由于SPI总线可以实现10 M到20 M的传输速率,根据现有的接口数据量,传输周期可以达到0.5 ms,这样双通道数据异步度可以保持在0.5 ms,可以满足系统实时性要求。
3 软件设计
DRIU软件层次结构由下到上主要包括系统软件层、资源管理层、数据管理层、数据转换层、调度控制层和应用管理软件六大部分,如图3所示。
图3 双余度远程接口单元软件架构
系统支持软件层需要提供标准硬件驱动软件,向产品提出标准的硬件接口同时形成规范。系统支持软件层以上由应用软件开发人员进行设计,设计原则是底层应尽量设计为可配置软件,这样可以使得开发人员的精力更多集中到更高层的业务逻辑中;同时各层次之间的接口应定义清楚,定义原则是由高层决定接口需求。
3.1 系统支持层
系统软件层主要负责访问硬件底层交互,资源管理通过系统软件实现与对计算机资源的管理。系统软件应实现为标准化接口,由上层资源管理模块根据需要配置为不同的接口功能。
3.2 资源管理层
资源管理层根据各计算机所具有的能力实现对不同资源的分类管理,主要应包括资源初始化、数据读取操作、数据写入操作和工作状态监测。该部分应设计为可配置通用模块,对于硬件资源的变化部分应设计为可配置参数,软件实现部分通过可变参数实现相应功能,这样根据不同的资源需求可以通过配置参数实现快速开发应用。
3.3 数据管理层
数据管理层分为四大类数据:总线数据、接口数据、余度数据和故障数据。总线数据(HB6096总线数据、1394B总线数据、CCDL数据)需根据总线通讯协议定义相关数据结构,调用资源管理数据读取操作获取输入数据,同时根据数据管理中各数据以及应用管理的解算数据进行数据组包,调用资源管理数据写操作输出数据;接口数据(离散量数据和模拟量数据)需根据接口资源定义相应数据结构,该部分功能应调用资源管理接口实现数据采集、接口数据解析(针对输入数据)和组包(针对输出数据)、数据的滤波、调用资源管理进行数据输出等;该部分中数据滤波模块应设计成通用模块,建立索引号和配置表,对需要滤波的信号在配置表中修改滤波参数即可实现快速应用。余度数据主要实现对双余度输入数据和输出数据的余度管理功能,需根据系统需求定义双余度输入输出信号,通过调用接口数据和CCDL数据实现对余度数据的比较并将比较数据供上层应用使用;该部分应将比较模块设计成通用模块,主要包括离散量输入比较模块、模拟量输入比较模块和离散量输出比较模块三大部分,建立余度信号索引号和配置表,将需要变化的部分设置为可配置参数,代码实现重复利用,以实现快速开发。故障数据主要实现对资源故障和应用故障进行管理,并根据这些数据实现系统重构功能。故障数据需向应用管理提供相应标准接口(主要是MFL、PFL、语音告警等)设置相应故障,同时可以获取资源管理中的故障信息。
3.4 数据转换层
数据转换主要实现应用层数据和数据管理层数据的相互转换功能。
3.5 调度控制层
调度控制层主要实现对任务的调度运行功能,实现对软件各模块的运行控制。
3.6 应用管理层
应用管理主要实现各分系统应用逻辑、控制率的解算功能以及各分系统的健康管理功能,通过数据管理获取输入数据,解算完成后调用数据管理相应接口实现对数据的输出功能。
4 结束语
本文设计了一种基于PowerPC的双余度远程接口单元,该远程接口单元计算性能强,工作稳定可靠,不仅能够完成机电系统的数据采集、解算、处理以及控制输出功能,同时作为机电系统健康管理功能的控制中心,可以实时对机电系统的运行状况进行健康监测,具备一定的工程实用价值。