3. 飞行控制计算机(FCC):处理器选型、架构设计、冗余策略

飞行控制计算机,我们内部常叫它FCC。这东西是导弹的大脑,所有控制律的解算、导航数据的融合、舵机的指令,全得靠它。说白了,导弹飞得好不好,能不能命中目标,FCC是核心中的核心。

我这些年经手过好几个型号的FCC设计,从早期的8位单片机到现在的多核DSP+FPGA架构,踩过的坑不少。今天咱们就聊聊处理器怎么选、架构怎么搭、冗余怎么做。

3.1 处理器选型:不是越强越好

很多人一上来就问:用i7行不行?我的回答是:行,但你得先问问导弹的电源和散热答不答应。

导弹上的处理器选型,有几个硬指标:

  • 功耗:一般控制在5W以内,超过10W就得考虑主动散热,这在导弹上很难实现
  • 温度范围:军品级要求-55°C到+125°C,工业级根本扛不住
  • 实时性:控制周期通常是1ms-5ms,中断响应得在微秒级
  • 抗辐射:高空飞行时宇宙射线多,单粒子翻转能把程序跑飞

我个人习惯把处理器分成三类:

类型 代表型号 适用场景 我踩过的坑
高性能DSP TMS320C6678 复杂控制律、多传感器融合 散热没做好,飞了一半过热保护
FPGA+软核 Xilinx Kintex-7 + MicroBlaze 需要硬件加速、接口种类多 时序约束没做严,上电就跑飞
ARM Cortex-R TI TMS570 安全关键、需要锁步核 这个系列我比较放心,很少出问题

我的建议:别盲目追新。我见过有人用最新的Zynq UltraScale+,结果开发周期拖了一年,因为驱动库不成熟。选成熟的、经过验证的芯片,比什么都重要。

3.2 架构设计:模块化是王道

FCC的架构,我习惯分成三个模块:

  1. 采集模块:负责读IMU、GPS、气压计等传感器数据
  2. 解算模块:跑控制律、导航算法、制导律
  3. 输出模块:生成舵机指令、控制发动机

这三个模块,我建议用不同的处理器或核来跑。为什么?

你想想看,如果采集和解算混在一起,采集任务卡住了,解算也跟着停。导弹在空中,控制周期一断,后果你懂的。

下面这张图是我常用的FCC架构:

飞行控制计算机(FCC)典型架构 采集模块 IMU接口 GPS接口 气压计接口 解算模块 控制律解算 导航算法 制导律计算 输出模块 舵机指令生成 发动机控制 遥测数据打包 传感器数据 控制指令 冗余管理单元 三模冗余表决 / 故障切换 图例: 采集模块 解算模块 输出模块 冗余管理 监控/管理链路 注:各模块之间通过高速串行总线(如RapidIO)通信,保证实时性

经验之谈:我建议采集模块用FPGA做,因为它可以并行处理多个传感器接口,延迟低。解算模块用DSP,浮点运算快。输出模块用ARM,接口丰富,方便和舵机通信。

3.3 冗余策略:别让单点故障毁了任务

导弹飞出去,不可能回来修。所以FCC必须考虑冗余。我常用的策略有三种:

3.3.1 三模冗余(TMR)

三个一模一样的FCC同时运行,输出结果通过表决器取多数。这是最可靠的方案,但成本也最高。

我曾经在一个项目中用过TMR,三个C6678并行跑。结果发现一个问题:三个板子同时上电,电流冲击太大,电源直接保护了。后来加了软启动电路才解决。

注意:TMR不是简单的三份拷贝。三个模块必须同步,时钟要同源,否则表决器会疯掉。我见过有人用三个独立晶振,结果三个模块的时钟漂移不一样,表决结果全是错的。

3.3.2 双机热备

主FCC工作,备FCC待机。主FCC故障时,备FCC无缝切换。这种方案成本适中,但切换时间是个问题。

我记得有一次测试,主FCC挂了,备FCC切换花了50ms。对于控制周期1ms的导弹来说,50ms足够它翻好几个跟头了。后来我们优化了切换逻辑,把时间压到了2ms以内。

3.3.3 异构冗余

用不同架构的处理器做冗余。比如一个用DSP,一个用FPGA+ARM。这样即使一种处理器有设计缺陷,另一种还能工作。

我个人比较喜欢这种方案。虽然开发工作量翻倍,但安全性确实高。而且不同处理器的故障模式不一样,不会同时失效。

3.4 避坑指南

这些年我总结了几条FCC设计的教训:

  • 电源设计别省钱:FCC对电源纹波很敏感,我见过因为电源纹波大,ADC采集值跳变,导致控制律输出抖动的案例
  • 看门狗要独立:别用处理器内部的看门狗,它自己挂了看门狗也没用。用外部独立看门狗芯片
  • 代码要防跑飞:我习惯在代码里加软件陷阱,所有未使用的中断向量都指向复位函数
  • 通信要加校验:CAN总线、串口通信,一定要加CRC校验。我遇到过电磁干扰导致通信数据错一位,舵机直接打到极限位置的情况

最后说一句:FCC设计没有完美的方案,只有最适合的。你得在性能、成本、可靠性之间找平衡。多听听老工程师的经验,少走弯路。


公众号:蓝海资料掘金营,微信deep3321