2. 星载计算机体系结构基础

要理解冗余管理与故障切换,必须先看清星载计算机“长什么样、由什么组成、冗余资源插在系统的哪个位置”。星载计算机(On-Board Computer,OBC)本质上是把地面计算机的算力、存储与接口能力,压缩进一个必须长期在辐射、真空、剧烈温变和单粒子效应下可靠工作的封闭系统。它的体系结构决定了冗余能放在哪一层、切换要切什么、切换代价有多大。

一、星载计算机的组成

一台典型的星载计算机由处理器模块、存储器模块、总线与接口模块、供电与时钟模块、以及冗余管理逻辑五大部分构成。处理器模块通常采用抗辐射加固的 SPARC、PowerPC 或 ARM 内核,例如 LEON 系列或 RAD750,主频一般在几十到几百兆赫兹,远低于地面同代产品,这是为抗辐照与功耗做的取舍。存储器分为程序存储(PROM/EEPROM/Flash)、运行内存(SRAM/SDRAM)和大容量数据存储(NAND Flash 或 MRAM),其中程序存储往往保留多份镜像,用于在程序区被单粒子翻转污染后重新加载。

接口模块负责与星务、姿轨控、载荷、测控等分系统通信,常见总线包括 CAN、1553B、SpaceWire 和 RS-422。供电与时钟模块提供多路电源与看门狗时钟,是冗余切换能否“干净执行”的物理基础。冗余管理逻辑则负责监控、判决与切换,它可能由独立 FPGA/CPLD 实现,也可能由主处理器软件实现,二者的可靠性和切换速度差别很大。

二、总线结构:冗余切换的“公共通道”

总线是星载计算机内部各模块之间、以及计算机与外部分系统之间的公共通道。它的拓扑直接决定了冗余资源的接入方式。常见的三种结构是:单总线共享结构、双总线并行结构和交叉开关结构。单总线结构简单、成本低,但总线本身是单点故障;双总线结构让主备机各挂一条总线,通过总线控制器仲裁;交叉开关结构则允许任意处理器访问任意存储或接口,切换时只需重定向路由,代价最小但实现最复杂。

需要特别注意的是,总线上的冗余不只是“多一根线”。当主处理器失效时,如果备机仍挂在同一条被污染或短路的物理总线上,切换也无法恢复。因此工程上常把总线控制器、总线收发器和终端匹配电阻一并纳入冗余设计,形成“处理器+总线接口”成对切换的粒度。

星载计算机体系结构与冗余资源位置 主份处理器模块 CPU + 本地SRAM 看门狗 / 时钟 备份处理器模块 CPU + 本地SRAM 看门狗 / 时钟 冗余管理逻辑 监控 / 判决 / 切换 FPGA 或 软件实现 主总线 A(1553B / SpaceWire) 总线控制器 + 收发器 + 终端匹配 备份总线 B(1553B / SpaceWire) 总线控制器 + 收发器 + 终端匹配 程序存储 多镜像 PROM/Flash 数据存储 NAND/MRAM EDAC 保护 外部分系统接口 星务 / 姿轨控 / 载荷 / 测控

三、处理器与存储组织

处理器组织关注的是“算力如何被组织成可切换的单元”。常见做法有两种:一是双机热备,主备处理器同时运行同一份程序,备机处于同步跟随状态,主份失效时备机立即接管;二是冷备或温备,备机平时不运行或只运行监控程序,切换时需要重新加载程序镜像,恢复时间较长。热备切换时间可做到毫秒级,冷备则可能达到秒级甚至更久,这直接决定了故障对任务的影响程度。

存储组织则要解决“程序和数据放在哪、如何防止被翻转污染”。程序存储通常采用三模冗余或双镜像加校验,运行内存使用 EDAC(纠错码)保护,数据存储使用 Reed-Solomon 或 BCH 编码。以一段 32 位 SRAM 为例,若采用 SECDED(单纠错双检错)编码,每 32 位数据需要附加 7 位校验位,总位宽变为 39 位,代价约 22% 的存储开销,但可以纠正一位翻转、检测两位翻转。这个开销是否可接受,取决于卫星对可靠性和资源预算的权衡。

四、冗余资源在系统中的位置与接口

冗余资源不是“多放一套设备”那么简单,它的位置决定了切换的边界。按粒度从细到粗,可以分为:器件级冗余(如抗辐射加固芯片内部的三模冗余触发器)、模块级冗余(双 CPU 板、双电源板)、通道级冗余(双总线、双接口)、以及系统级冗余(整机双机热备)。粒度越细,切换越快、代价越小,但覆盖的故障类型也越有限;粒度越粗,覆盖越全面,但切换代价和资源开销越大。

接口层面,冗余资源需要与监控电路、切换开关和仲裁逻辑连接。监控电路采集处理器心跳、电源电压、总线误码率等信号;仲裁逻辑根据预设阈值判断是否切换;切换开关则负责把主份的输入输出通道切换到备份。这里有一个容易被忽视的细节:切换开关本身也必须是高可靠的,否则它会成为新的单点故障。工程上常用继电器或固态开关,并对其驱动电路做冗余。

判断冗余设计是否合理,可以问三个问题:故障被覆盖了吗?切换时会不会引入新的故障?切换后系统状态是否一致?这三个问题分别对应覆盖性、切换安全性和状态同步性。

五、一个简化的参数示例

假设某星载计算机采用双机热备结构,主备处理器通过双端口 RAM 同步关键状态,总线采用双 1553B 通道。设定心跳检测周期为 100 ms,连续 3 次心跳丢失判定主份失效,则最坏情况下故障检测时间为 300 ms;切换开关动作时间约 20 ms,备机接管并恢复任务约 50 ms,总切换时间约 370 ms。若任务对中断时间的要求是小于 500 ms,则该设计满足要求;若要求小于 200 ms,则需要缩短心跳周期或改用更快的切换机制。这个例子说明,冗余管理的参数不是孤立的,它们共同决定了系统能否满足任务的时间约束。

理解星载计算机的组成、总线结构、处理器与存储组织,以及冗余资源的位置与接口,是后续学习故障检测、判决与切换策略的基础。只有先看清系统“长什么样”,才能准确判断故障发生在哪一层、切换应该切什么、以及切换后如何验证系统真的恢复了。