基于 FT2000/4 处理器的健康管理硬件设计
2023-08-23邱凯强王轩包文帆
邱凯强,王轩,包文帆
(航空工业西安航空计算技术研究所,陕西西安,710065)
随着技术的发展和航空飞行器功能需求的日益增加,作为飞行器数据处理中枢的航电计算机其复杂度越来越高,计算机内部硬件设计的功能集成度和布板密集度大幅度提高,导致高故障率问题也随之而来[1]。一方面,高密度的元器件排布使得硬件产品在恶劣的使用环境下更容易出现各种故障问题。这些故障往往在常温中难以复现,需要花费大量人力物力模拟恶劣环境进行测试和故障定位。另一方面,航电计算机产量需求的大幅度增加对于硬件产品的批量化生产提出了更高的时间。但批量生产时难免产生个例差错或者批量问题。因此,如何缩短排故周期,如何在保证快速批量生产的前提下提高产品的稳定性以及面对故障如何快速定位故障信息成为硬件设计时不得不考虑的因素[2]。
通常在硬件设计中多采用预留测试点的方式以支持后续的排故工作。在故障出现时,采用示波器和万用表对测试点数值进行测量,并与标准设计参考值进行比对,或利用示波器进行时序捕捉分析,对比设计手册进行设计合理性分析,进行硬件故障信息定位和汇总,排查出产生异常的元器件或者硬件控制逻辑。但这样的测试手段存在以下问题:(1)此方法对于测试操作人员的要求较高,容易出现由于测试操作人员造成定位不准确的现象;(2)随着硬件产品设计复杂度的提高,预留的测试点对于故障定位的准确性会大幅度降低;(3)此方法排故周期漫长,无法满足快速批量化生产的要求。
因此,本文针对现阶段航电计算机中硬件产品的复杂特性,以采用FT2000/4处理器的航电计算机数据处理单元为例,提出了一种针对 FT2000/4 处理器及其周边资源的健康管理设计方法。该设计方法主要依靠独立于数据处理单元的单片机(MCU)对产品进行状态检测,充分利用MCU的DC采集接口、GPIO(General Purpose I/O Ports)接口、串口以及SPI(Schedule Performance Index)接口对数据处理单元的基础输入资源进行检测和分析,从而可以改善产品的故障定位手段和提供提前预警故障手段。故本文首先对该数据处理单元中各硬件资源接口的具体设计进行了阐述,之后对每个接口的监测手段进行介绍。本文提出的方法很好地应用于航电计算机硬件产品的设计中,大幅缩短了硬件产品的排故周期,为其高质量高效率批量化生产提供保证。
1.硬件系统整体设计
■1.1 整体框架设计
本文所述的航电计算机数据处理单元整体框架如图1所示。基于 F2000/4 处理器的最小数据处理单元主要硬件资源和接口组成部分包括了内存,FLASH,PCIE,以太网,控制逻辑,供电和时钟。该数据处理单元的性能主要包括了:提供了主频不低于 1GHZ,数据处理不低于 16 Gips 的算力;存储空同包括:4GB的内存、1024MB的FLASH、512KB的 NVRAM 的存储空间;对外接口包括:一路千兆以太网,一路最大波特率为115200bps的调试串口,两路5.0Gbps的PCIEx4接口。最小的数据处理单元的正常工作需要11种基础输入,其中共需要七种电源,四种时钟基础输入,电源其中包括了为内存供电的输出缓冲供电电压(VDDQ)和参考电源(VTT),为处理器供电的接口电和核电,为控制逻辑(FPGA)供电的核电以及共用的 3.3V 和 1.8V 电源,时钟其中包括了为以太网 PHY芯片和 FPGA提供的25M时钟,以及为处理器提供的工作48M 时钟和 100M PCIE差分时钟。
图1 整体框架
■1.2 DDR3内存设计
FT2000/4处理器集成2个DDR3控制器,DDR3 控制理器具有72位数据宽度(64位数据宽度,8位的ECC校验宽度):支持8个Bank,最高DDR3-1600MT/s。设计中FT2000/4处理器使用两个DDR通道,每个通道挂接5片DDR3芯片。
■1.3 FLASH设计
每个FT2000/4处理处理器配置FLASH存储器的总容量为1024MB,支持整片擦写和扇区擦写等操作。FT2000/4提供一个QSPI接口和两个SPI接口,且接口电平1.8V。FLASH芯片选用SPI接口FLASH,工作电压为1.8V±10%。FT2000/4的QSPI接口作为其启动的唯一接口,首先必须通过QSPI接口连接4片FLASH,之后通过SPI接口连接4片FLASH。
■1.4 PCIe接口设计
FT2000/4处理器支持6个PCIe控制器,其中包括两个x16和两个x1,x16支持可以分为两个x8或者两个x4。PCIe速率可以支持PCIe 3.0。最小数据处理单元设计中通常使用两路x4,分别连接FC(光纤通道协议)网络通信设备和NvME电子盘设备。
■1.5 FPGA设计
FPGA(Field Programmable Gate Array)实现局部总线的地址译码、看门狗、内部寄存器和中断控制、电平转化等功能电路。局部总线的地址译码实现SPI片选的译码,从设备主要包括NvRAM、离散量、看门狗、测试接口、内部寄存器。中断控制主要包括外部电源PFAIL中断、看门口狗中断。电平转换主要包括NvRAM的3.3V接口和处理器的1.8V接口电平转换,处理器串口和串口驱动器3.3V电平转换等。其他功能包括了上电,复位等时序控制。
■1.6 以太网设计
FT2000/4处理器集成以太网RGMII接口,采用PHY芯片将RGMII信号转换为UTP信号之后通过变压器再接入RJ-45,对外输出一路以太网信号。
■1.7 NvRAM设计
FT2000/4处理器采用SPI接口的NvRAM,由于其第二路SPI接口中的可用片选只有两个和当前市面上NvRAM的IO电平为3.3V,故采用FPGA进行电平转换和片选译码,从而连接4片NvRAM,每一片容量为128KB,总存储容量为512KB。
NvRAM在系统掉电时,通过使用存储在较小电容中的电能(该电容与器件的 VCAP 引脚相连),SRAM 中的数据被自动传输到非易失性单元内。在下次通电期间,非易失性单元中的数据被自动回读到 SRAM 阵列内,以便提供给用户,通常在航电系统中利用其进行故障信息的存储。
■1.8 MCU设计
MCU电路设计是独立于数据处理单元的部分电路,其功能电路作为数据处理单元的健康监测数据处理和信息传输部分。采用了成都华微电子有限公司的HWD32F103MLQFP64,该单片机集成了定时器,CAN总线接口,16个DC(模数转换器),SPI接口,I2C接口,USB,串口等多种对外接口,方便设计人员进行使用[3]。
2 健康管理设计
健康管理的硬件设计框架如图2所示,主要包含三个部分分别为:处理器,MCU和可编程控制逻辑。处理器与MCU之间通过串口进行连接,处理器与控制逻辑通过SPI接口进行连接,MCU与控制逻辑通过SPI接口进行连接。
图2 健康管理设计架构
(1)MCU的GPIO管脚和DC采集管脚进行电平和时钟信号获取;
(2)处理器将故障信息通过SPI接口上报控制逻辑;
(3)MCU通过SPI接口从控制逻辑获取故障信息;
(4)MCU通过CAN总线与外部进行上报数据处理单元故障信息。
健康管理的硬件设计主体手段主要是从监测环节进行设计,通过预留硬件检测接口,后续采用检测软件读取寄存器、检测接口电平状态以及DC采集等方式获取实时硬件状态与预期设计目标值进行比对,从而获得当前产品的硬件状态。
其次是对故障信息的上报,MCU功能电路上报方式有两种,一种方式为将其读出的寄存器信息通过串口上报给数据处理单元,另一种方式为将故障信息通过CAN总线上传给系统。
最后是FT2000/4处理器对其周边接口资源的初始化,这直接将反映在串口打印上提供给设计人员进行故障分析。
■2.1 电源检测
电源的不正常输出经常会导致的故障十分繁杂,比如高低温复位重启、电源过压烧毁后续设备,电源电压不足无法启动,电源输出电流不足无法驱动等,故监测电源的正确输出是整个数据处理单元的基础。
基于FT2000/4的最小数据处理单元,从图一中可以看出其中包含了七种不同电源,将电源连接至MCU的DC采集管脚,通过在软件中提前设置的目标值进行比对,从而进行判断电源是否在正常工作。由于MCU支持的最大IO电压为3.3V,故在采集较大的电压时,如下图所示利用电阻分压的方式进行分压采集[4]。
■2.2 时钟检测
参考时钟的稳定运行是数据处理单元的前提。当参考时钟发生故障,例如误差变大甚至停止时,会影响到硬件系统的正确运行,导致预定的运行时间发生变化,甚至硬件停止运行等。由图一中可以看出数据单元中共包含了四种时钟输入,其中三种为低速时钟信号,一种为高速差分时钟信号。由于时钟信号的特殊性,通常在产品EDA(Electronic design automation)综合布线时进行点对点走线,并不能直接引出分叉信号进行信号采集,因为这样容易造成信号反射,影响信号完整性,造成更重大的问题。
对于低速时钟信号,在EDA设计走线时,可以通过在时钟信号分叉后的每路都设置匹配电阻,匹配电阻靠近时钟芯片,这样的方式可以避免或者减轻信号反射。
对于高速时钟信号,该数据处理单元需要进行同源时钟设计,最多共需要9路100M差分时钟,分别提供给FT2000/4 三路参考时钟,以及PCIe从设备六路(FT2000/4支持六个PCIe控制器),百兆差分晶振经过西安翔腾微电子时钟驱动器HKA6110,提供十路百兆PCIe差分时钟,剩余的一路接入信号采集接口。
■2.3 接口资源监测
在MCU对数据处理单元中的电源和时钟的信息判断为合格时,通过数据处理单元的启动过程包括如下步骤,FT2000/4处理器第一步,进行SPI接口的初始化,将启动FLASH中的BOOT(启动软件)读取到处理器本身的缓存中进行后续的初始化准备;第二步,之后将初始化QSPI接口,根据BOOT中对QSPI接口的参数(读写时钟频率),将FLASH的读写速率提高;第三步,进行DDR3接口的初始化,根据BOOT中DDR3接口的参数(时钟频率,通道数以及是否具有ECC);第四步,进行PCIe接口的初始化,根据BOOT中PCIe接口的参数(主从节点,通道数);第五步,在板级支持软件中初始化以太网接口,主要包含了对PHY芯片的初始化,配置PHY的工作模式以及传输速度。
上述描述可以通过两种方式进行故障信息查看和展示,一方面启动界面中可以显示启动BOOT程序的过程中就是FT2000/4处理器对于接口资源初始化的过程,当任何一个接口资源存在问题时,其串口打印就将会停在初始化的地方不再打印,故可以通过打印信息判断。
另一方面,首先FT2000/4与控制逻辑通过SPI总线进行通信,针对每一步启动步骤对应FPGA中启动寄存器,初始化完成每一步,则将其对应的寄存器位置为高[5];其次,MCU根据预先设置的启动时间间隔对启动寄存器进行访问,超出预期的启动时间之后,若还是低电平信号,则为启动停止位置;最后,MCU通过CAN总线向整体进行上报启动状态。
3 总结
本文提出了基于FT2000/4处理器的健康管理硬件设计方法,通过充分利用MCU自身接口特性对数据处理单元的周边基本支持资源接口进行了监控,从启动准备,启动时,以及工作时三种产品状态进行分析和管理,得到大量的产品状态信息。这些状态信息一方面可以提供给调试人员在故障发生时进行故障定位,另一方面可以将故障信息在提前预警给整机,为其备选方案提供了准备时间。伴随着嵌入式硬件的设计复杂度的一步步提高,对于未来后续其他的新研产品的设计,应该在设计之初充分地考虑到该产品在健康检测方面的设计,为后续的检测预留充分的检测手段和接口,而该设计方法的可拓展性和实时性为产品的未来发展提供了更高的发展空间,也同时提高了产品的鲁棒性和安全性。进一步为未来的大批量生产和调试提前做好了充足的设计铺垫,是产品未来自动化或半自动化的发展必走之路。