姜琳琳,赵博龙
(中航工业西安航空计算技术研究所,陕西 西安 710119)
小型通用飞机一般是指最大起飞重量小于5 700公斤的飞机,在国外被广泛用于私人飞行、商业运输、空中游览、航空摄影、抢险救灾等方面。飞行显示器是小型通用飞机航电系统的核心部件,是飞行员与飞机最重要的人机接口。在飞行状态中,飞行显示器必须保证飞行员能在较短的时间内准确地获取所需要的信息,以进行及时、安全的操纵[1]。随着航空电子技术的发展,飞行显示器需要以更灵活的方式向飞行员提供适合、及时和准确的数据,并为飞行员的安全提供必要的提示。
在飞行过程中,飞行显示器需要向飞行员显示飞行、驾驶、导航、动力装置等系统工作状态;同时根据不同飞行任务的特点,还需要实现三维地图、视景增强等显示功能,这就要求飞行显示器具有非常强的数据处理能力。同时,小型通用飞机由于机身尺寸、发动机功率和成本等诸多因素的限制,驾驶座舱一般没有空调系统,所以飞行显示器还应具有功耗低、发热量小的特点。
小型通用飞机一般选择低成本航电系统,各种机载设备(如音频控制器、大气数据计算机、S模式应答机,甚高频电台、气象雷达等)分别通过 RS422、RS485、ARINC429/702、ARINC708/453等接口直接与飞行显示器交联,所以飞行显示器应具有丰富的机载设备接口。同时,为适应不同航电系统架构的需求,飞行显示器还需要具备一定的扩展性,满足不同用户可定制的需求。
小型通用飞机座舱尺寸较小,机载设备安装空间有限。机身尺寸和重量的增加就需要增大发动机率,同时直接导致飞机油耗的上升。飞行显示器在满足既定功能的前提下,体积应尽量小,重量应尽量轻,10.4英寸LCD显示器是目前国外小型通用飞机航电系统的主流配置。
随着机载计算机技术的不断发展,开放式航电系统架构在小型通用飞机中得以广泛应用。开放式的航电系统构型灵活,易于升级,安全性、可靠性更高,维护性更好,同时有更多的商用货架产品可选择。飞行显示器应采用统一的模块化、标准化设计技术,满足统一开放的航电系统标准,形成通用化、系列化的货架产品,降低设计制造和后期维护的成本。
小型通用飞机航电系统架构中,飞行显示器与多个机载设备交联,是航电系统的核心部件。飞行显示器系统结构按照功能定义,供电单元负责为飞行显示器提供二次电源;数据处理单元实现飞行显示器的任务管理、数据处理和图像显示功能,实时采集交联设备数据,进行数据融合后,将数据送到显示处理单元进行2D/3D硬件加速处理,然后按照系统规范在LCD显示组件中进行显示。图1为小型通用飞机飞行显示器系统结构。
图1 飞行显示器系统结构
数据处理单元采用双处理器结构,主处理器采用高性能嵌入式PowerPC处理器,完成数据处理、任务管理和图像显示功能;智能IO处理器采用高性能DSP处理器,完成与机载设备的数据通信功能。双处理器之间通过大容量 DPRAM(双口存储器),以共享内存的方式进行数据交换[2]。图2为数据处理单元硬件结构框图。
高性能、低功耗的嵌入式处理器的选用能有效提高飞行显示器的能耗比。飞行显示器数据处理单元主处理器采用MPC8270。MPC8270是Freescale公司PowerQUICCⅡ系列的一款高性能超标量嵌入式处理器,主要由G2_LE内核、系统接口单元(SIU)和通信处理模块(CPM)组成[3]。
主处理器设计中,MPC8270时钟配置采用PCI host模式,CPU/CPM/BUS频率分别配置为 400 MHz、200 MHz和100 MHz,该配置下MPC8270典型功耗仅为2.1 W。在MPC8270的60X总线上配置了多种存储器,其中NVSRAM用于飞行显示器故障数据的记录。
图2 数据处理单元硬件结构框图
飞行显示器与多个机载设备交联,如果由主处理器直接管理外部接口,频繁地响应外部接口事务,会导致主处理器运行效率低下,所以数据处理单元设计了一个智能IO处理器专门用于处理交联设备数据。飞行显示器智能IO处理器采用TMS320F2812。TMS320F2812是TI公司的32位高性能、低功耗DSP处理器,采用先进的哈佛总线结构,处理能力达150 MIPS[4]。
智能IO设计中,TMS320F2812主频配置为120 MHz,XINTF总线频率配置为30 MHz,采用处理器内部集成的存储器作为接口处理软件的存储空间和运行空间。智能IO处理器负责完成所有外部接口的数据通信,对接收到的数据进行解析处理,将处理后的数据写到DPRAM中。主处理器根据飞行显示任务的需要,随时通过DPRAM对外部接口进行访问,这样就显著提高了主处理器的运行效率。
飞行显示器配置了大容量的IDE电子盘和SD卡。IDE电子盘和SD卡均通过主处理器的PCI总线访问,在FPGA中实现PCI总线到IDE接口和SD卡接口的桥接功能。两种存储设备均配置FAT32文件系统和支持数据加卸载。IDE电子盘的读访问采用PIO或DMA方式,写访问采用PIO方式,IDE电子盘用于存放数字地图数据。SD卡作为移动存储设备,读写访问均采用DMA方式,用于在飞行任务结束后下载飞行显示器记录的发动机参数数据。
数据处理单元提供丰富的外部接口,用于与外部机载设备进行数据通信。数据处理单元外部接口设计包括以下4部分:
(1)PCI总线接口:数据处理单元通过PCI总线与显示处理单元通信,显示处理单元采用高性能GPU处理器,完成显示图像的2D/3D加速处理;
(2)串行通信接口:数据处理单元提供 6路RS422接口与14路ARINC429接口,用于飞行显示器与各机载设备进行数据通信,其中1路RS422接口用于数据处理单元与LCD显示组件的周边按键通信;
(3)离散量接口:数据处理单元提供 12路输入/输出离散量接口,信号特性可配置,用于与机载设备进行离散量通信;
(4)A/D转换接口:数据处理单元提供4路A/D转换接口,用于在数字地图导航任务中实现X、Y方向坐标定位等类似功能。
数据处理单元需要在FPGA中实现大量的协议转换、总线桥接和接口控制功能,要求选用的FPGA器件逻辑规模足够大,引脚数量足够多。同时,考虑到飞行显示器的设计需求,FPGA要选用低功耗、低成本器件,并且在逻辑单元数量上应留有一定的余量,以备后期进行功能升级。XC6SLX100是 Xilinx公司 Spartan-6 LX系列的 FPGA,该系列FPGA采用可靠的低功耗45 nm 9层金属布线双层氧化工艺技术生产,比前一代Spartan系列功耗降低多达65%,主要针对需要低功耗、低成本的产品应用[5]。
数据处理单元FPGA设计采用1片XC6SLX100芯片,主要实现以下6部分功能:
(1)时钟倍频功能:将外部晶振输入的25 MHz时钟4倍频到100 MHz,提供给主处理器和SDRAM使用;
(2)主处理器配置功能:实现主处理器的上电复位配置、看门狗控制、中断配置、内部状态寄存器等功能;
(3)60X总线地址译码功能:实现主处理器的60X总线译码以及Flash、NVSRAM的访问控制等功能;
(4)总线桥接功能:实现PCI总线到DPRAM接口、PCI总线到IDE接口和PCI总线到SD卡接口的总线桥接功能;
(5)XINTF总线地址译码功能:实现智能IO处理器的XINTF总线地址译码以及串行通信接口、离散量接口和A/D转换接口的访问控制功能;
(6)协议转换功能:实现RS422接口、ARINC429接口的协议转换功能。
图3为数据处理单元可编程逻辑设计框图。
飞行显示器数据处理单元软件架构包括三部分:地面支持软件、主处理器上运行的系统显示控制软件和智能IO处理器上运行的外部接口处理软件。图4为数据处理单元软件架构。
图3 数据处理单元可编程逻辑设计框图
图4 数据处理单元软件架构
地面支持软件包括在线编程工具、Tornado集成开发环境和CCS集成开发环境。这些软件均安装在软件开发设备中,完成软件的编辑、编译、连接、加载、调试和固化等工作,并通过集成的调试工具对数据处理单元的软硬件状态进行监控。
显示控制软件包括主处理器板级支持软件、应用支持软件和应用软件。应用支持软件是位于板级支持软件与应用软件之间的中间层软件,主要为应用程序提供多种开发支持,如显示控制(字体库、OpenGL图形库等)、地图导航、软件升级、数据加卸载等;应用软件根据系统功能需求,负责完成飞行状态、参数的综合处理、显示与控制、显示器周边按键处理、网络通信、周期性自检、故障告警与异常处理功能以及数据加卸载、系统维护等辅助功能[6]。
接口处理软件包括智能IO处理器板级支持软件和通信处理软件。通信处理软件完成RS422、ARINC429、离散量和A/D转换接口的数据通信,并根据ICD(接口控制文件)文件的要求,完成对从各个机载设备接收到的数据包的解析处理和控制命令的发送工作。
数据处理单元软件设计中,板级支持软件是介于底层硬件与上层软件之间的底层软件开发包,为上层应用提供统一的软件接口[7]。
主处理器板级支持软件主要包括处理器硬件初始化、操作系统引导、实时操作系统、必要的硬件BIT测试及提供相应设备的驱动软件。操作系统设计开发中,对VxWorks 5.5内核进行功能剪裁,实现的功能包括:快速实时响应、多任务调度、支持高速缓存、动态存储器管理、提供同步信号量和互斥信号量、消息队列管理、系统时钟和辅助时钟支持、用户API接口、C/C++运行环境、网络功能组件等。
智能IO处理器板级支持软件主要包括接口处理软件的自引导、处理器硬件初始化、必要的硬件BIT测试及提供外部接口的驱动软件。外部接口驱动软件的设计开发中,在XINTF总线的大容量DPRAM空间按照功能划分为若干区域,分别作为主处理器命令区、智能IO状态区、外部接口数据缓冲区、BIT测试结果保存区等。系统上电后,主处理器通过DPRAM发送相应命令,通知智能IO处理器完成外部接口的初始化、硬件BIT测试,启动外部接口通信处理软件,同时通过状态区监测智能IO的运行状态。
数据处理单元在VxWorks 5.5操作系统下实现了OpenGL图像库的移植,通过典型的主飞行显示界面的实现来验证数据处理单元的功能。图5为典型的主飞行显示界面。
主飞行显示界面的上半部分为速度指示、高度指示和姿态指示;下半部分为罗盘指示。根据飞行员对显示器周边按键的操作或系统认定的重要度,主飞行显示界面还可以显示升降速度、仪表着陆引导、电台频率、发动机参数、GPS导航、故障告警、机身状态、数字地图导航等信息。
针对小型通用飞机飞行显示器的设计需求,本文创新地设计了飞行显示器数据处理单元的软硬件架构。数据处理单元基于双处理器架构,采用模块化的设计思想,选用高性能、低功耗处理器和大规模FPGA,提供多路机载设备接口,降低了研发和维护成本,同时为以后功能升级提供了良好的基础。实现结果表明,该飞行显示器数据处理单元在通用航空领域具有广泛的应用前景。
图5 典型的主飞行显示界面
[1]陈东林.航空概论[M].北京:国防工业出版社,2008.
[2]李彦迪,金伟正,王丹.基于FPGA的HD-SDI编解码技术的研究和开发[J].电子技术应用,2012,38(12):48-50.
[3]Freescale Semiconductor Inc.MPC8280 PowerQUICCⅡfamily reference manual[EB/OL].(2007)[2014].http://www.freescale.com.
[4]Texas Instruments Inc.TMS320F2812 digital signal processors data manual[EB/OL].(2005)[2014].http://www.ti.com.
[5]Xilinx Inc.Spartan-6 family overview[EB/OL].http://www.xilinx.com,2010.
[6]刘硕,林荣超.综合座舱显示控制系统的设计与实现[J].现代电子技术,2010(15):160-162.
[7]凌约雷,邱爱华,席隆,等.国产高可靠控制器BM3803MG的 BSP 设计[J].电子技术应用,2012,38(1):24-27.