2. 星务系统可靠性架构与冗余粒度

星务系统承担星上遥测采集、遥控分发、任务调度、姿态与能源管理等关键职能,一旦失效往往导致整星不可用。因此,可靠性架构的核心问题不是"如何让单机永不出错",而是"当某个部件出错时,系统还能否在可接受的时间内继续提供正确服务"。围绕这一问题,工程上形成了双机热备、冷备、温备、三模冗余等典型架构,并配合故障检测与隔离单元(FDI)完成"发现—隔离—切换—恢复"的闭环。冗余粒度则决定了这套闭环的作用范围:是整机切换,还是板卡、通道、任务级切换。

一、四种典型冗余架构的工作机理

双机热备指两台星务计算机同时上电、同时运行同一套软件,主份输出有效,备份处于"热跟随"状态:它持续接收主份的同步数据(如任务队列、关键变量、时间基准),但不驱动执行机构。主份故障时,备份在毫秒到百毫秒级接管。其代价是功耗与资源翻倍,且必须解决双机同步与"双主"冲突问题。

冷备是备份机不加电或仅维持最小监控电路,主份失效后才上电、自检、加载程序并接管。切换时间通常在秒级到分钟级,期间服务中断。冷备的优点是功耗低、寿命损耗小,适合对中断时间不敏感、但要求长寿命的载荷管理单元。

温备介于两者之间:备份机上电并运行自检与初始化,但不参与实时任务,也不接收高频同步数据。切换时需重新加载任务上下文,时间通常在百毫秒到秒级。温备在功耗与切换速度之间取得折中。

三模冗余(TMR)由三个相同模块并行执行同一任务,通过多数表决输出结果。单模块故障时,表决结果仍正确,系统可"带故障运行",实现容错而非仅容错切换。TMR 的关键在于表决器本身必须可靠,且三模之间的时钟与输入需保持同步,否则会出现共模失效。

二、故障检测与隔离单元的作用

无论哪种冗余架构,若不能及时、准确地判定"谁坏了",切换就无从谈起。FDI 单元通常综合以下判据:看门狗超时、心跳报文丢失、CPU 自检异常、内存 ECC 纠错计数超限、电源电压越限、总线通信 CRC 错误率等。判据分为硬故障(立即触发)与软故障(连续 N 次或时间窗内 M 次触发),以避免瞬态干扰引起误切换。

隔离动作包括:切断故障机输出使能、将其从总线摘除、标记故障状态并禁止其重新抢占主控权。隔离必须"先隔离、后切换",否则两台设备同时驱动总线会造成数据冲突,反而扩大故障范围。

三、冗余粒度对切换与恢复的影响

冗余粒度可分为整机级、板卡级、通道级和任务级。粒度越粗,实现越简单、切换逻辑越清晰,但切换影响面大、恢复时间长;粒度越细,可只重启受影响的任务或通道,恢复快、影响小,但对软件架构、状态管理和故障定位的要求显著提高。

以整机级热备为例,切换后备份机需要重建任务上下文,若同步周期为 100 ms,则最多丢失 100 ms 内的状态更新;而任务级冗余只需重启单个任务,恢复时间可压缩到毫秒级,但要求任务间状态解耦清晰。工程上常采用"整机热备 + 关键任务级监控"的混合粒度:整机保证基本可用性,任务级监控减少不必要的整机切换。

冗余架构与故障检测隔离闭环 主份计算机 运行任务 / 驱动输出 周期同步 100 ms 备份计算机 热跟随 / 温备 / 冷备 待接管 状态同步 FDI 故障检测与隔离 看门狗 / 心跳 / ECC CRC 错误率 / 电压越限 硬故障立即 / 软故障计数 健康状态 隔离 + 切换指令 三模冗余表决器 A / B / C 三模并行 多数表决输出 模A 模B 模C 表决结果输出 冗余粒度对切换与恢复的影响 粒度 切换时间 影响范围 恢复代价 整机级 100 ms ~ 秒级 全部任务中断 高,需重建上下文 板卡级 十毫秒 ~ 百毫秒 该板卡相关功能 中,需重载板卡 任务级 毫秒级 仅该任务 低,状态解耦要求高

四、架构选型与参数示例

选型时需综合任务中断容忍度、功耗预算、质量约束与研制成本。以下为一组教学示例参数(非实测数据),用于说明不同架构的取舍:

架构切换时间功耗代价典型适用场景
双机热备10 ~ 100 ms约 2 倍姿态控制、关键遥测
温备100 ms ~ 1 s约 1.3 ~ 1.5 倍载荷管理、非实时调度
冷备秒级 ~ 分钟级接近 1 倍长寿命、低功耗单元
三模冗余无需切换(带故障运行)约 3 倍以上高可靠关键计算

以双机热备为例,若同步周期为 100 ms,主份在两次同步之间发生故障,备份接管后最多丢失 100 ms 内的状态更新。若任务对状态连续性要求更高,可将同步周期缩短至 20 ms,但总线负载和 CPU 开销随之上升。工程上需在"状态丢失窗口"与"同步开销"之间做定量权衡。

实践提示:切换逻辑应遵循"先隔离、后切换、再恢复"的顺序。隔离动作包括切断故障机输出使能、将其从总线摘除并标记故障状态;切换动作将主控权移交备份;恢复动作则重建任务上下文、重新同步时间基准并逐步恢复输出。任何一步顺序颠倒,都可能造成总线冲突或双主输出。
常见误区:认为"有了备份就万事大吉"。若 FDI 判据过于灵敏,瞬态干扰会引发频繁误切换;若判据过于迟钝,故障已扩散才被识别。软故障计数阈值、时间窗长度和硬故障清单必须结合具体单机的失效模式逐项确定,并通过故障注入试验验证。

综上,可靠性架构解决"用多少冗余换多少可用性"的问题,FDI 解决"如何可靠地发现并隔离故障"的问题,冗余粒度解决"切换影响多大范围、恢复需要多长时间"的问题。三者共同决定星务系统在故障条件下的实际表现,也是后续切换策略与状态恢复设计的基础。