4. 星务计算机双机热备切换原理
星务计算机是整星平台管理的核心,承担遥测采集、遥控分发、姿态控制指令生成、载荷管理与星地通信调度等任务。一旦主份计算机失效而备份不能及时接管,整星可能进入安全模式甚至失控。双机热备(Hot Standby)正是为解决这一问题而设计的冗余架构:两台星务计算机同时上电运行,一台作为主份对外输出控制,另一台作为备份持续跟踪主份状态,随时准备接管。理解双机热备,关键要抓住五个要点:主备角色如何定义、仲裁逻辑如何判定、切换开关如何动作、总线如何隔离、切换瞬态与数据一致性如何保证。
主备角色定义
双机热备中,两台计算机在硬件上通常完全对称,角色并非固化在硬件里,而是由运行状态和仲裁结果动态确定。常见的角色状态包括:
- 主机(Master):拥有对外总线控制权,周期输出控制指令、遥测帧与星地通信数据,是整星当前唯一“说话”的一方。
- 备机(Slave/Standby):不驱动对外总线,仅监听主机的状态广播、同步数据与心跳,保持自身状态与主机一致,处于“热”待命状态。
- 离线(Offline):本机自检失败、被隔离或处于复位过程中,不参与仲裁,也不输出任何总线信号。
角色定义的核心是“唯一性”:任一时刻只能有一台主机对外输出,否则会出现双主冲突,导致总线数据混乱。因此角色必须由仲裁逻辑统一裁决,而不是由各机自行宣布。
仲裁逻辑
仲裁逻辑决定谁当主、谁当备,以及何时切换。工程上常用的仲裁依据包括:
- 心跳与健康状态:主机周期向备机发送心跳帧,备机在超时窗口内未收到心跳,即认为主机失效。
- 自检结果:CPU、内存、看门狗、电源、总线接口自检异常时,本机主动降级为离线。
- 优先级与固定标识:两机同时上电或同时健康时,用固定优先级(如机号小者优先)避免争抢。
- 人工/地面指令:地面可通过遥控指令强制指定主机,用于在轨维护或故障处置。
仲裁通常采用“健康优先、优先级兜底”的策略:先看谁健康,健康者优先当主;若两者都健康,则按固定优先级决定;若两者都不健康,则进入安全模式。仲裁结果通过角色寄存器或状态字对外可见,便于地面判读。
切换开关与总线隔离
主备切换最终要落到硬件动作上,核心是“切换开关”和“总线隔离”。切换开关负责把对外总线(如1553B、CAN、SpaceWire或自定义串行总线)的驱动权从主机切换到备机;总线隔离则保证非主机一侧的接口处于高阻或断开状态,不干扰总线电平。
典型实现方式有两种:
- 硬件切换开关:由仲裁逻辑驱动继电器或模拟开关,物理上把总线收发器使能端切换到当前主机。优点是隔离彻底,缺点是动作有机械/电气延迟。
- 三态门隔离:每台计算机的总线驱动器都带三态使能,只有主机使能输出,备机输出高阻。优点是切换快,缺点是对使能信号完整性要求高。
无论哪种方式,都必须满足“先隔离、后接管”的顺序:备机在确认主机已释放总线后,才使能自己的总线驱动,避免瞬间双驱动造成总线冲突。
切换瞬态与数据一致性
切换不是瞬间完成的,存在一段“瞬态”窗口。在这段时间里,主机已停止输出,备机尚未完全接管,对外总线可能出现短暂空闲或数据不连续。工程上要关注三个指标:
- 切换时间:从主机失效到备机开始输出有效数据的时间,通常要求控制在毫秒级到百毫秒级。
- 数据一致性:备机接管后,其内部状态(如遥测缓存、控制积分量、模式字、时间基准)必须与主机失效前保持一致,否则会出现控制跳变或遥测错乱。
- 瞬态可观测性:切换期间的总线空闲、状态字变化、切换计数应被记录并下传,供地面分析。
为保证数据一致性,主机需要周期向备机同步关键状态。同步方式分为全量同步和增量同步:全量同步在切换后一次性拷贝全部状态,适合状态量小的系统;增量同步则周期发送变化量,适合状态量大、实时性要求高的系统。同步周期要与切换时间指标匹配,周期过长会导致备机状态滞后,周期过短则增加总线与CPU负担。
切换过程示意
下图给出双机热备从正常运行到备机接管的信号与状态关系,重点表现心跳、仲裁、总线使能与状态同步之间的时序配合。
切换判据与工程参数示例
下面给出一组用于教学说明的示例参数,帮助理解各环节如何配合。这些数值属于合理假设,实际型号需按任务要求与硬件能力确定。
| 参数 | 示例值 | 说明 |
|---|---|---|
| 心跳周期 | 100 ms | 主机周期发送心跳帧 |
| 心跳超时阈值 | 300 ms | 连续3个周期未收到即判失效 |
| 状态同步周期 | 50 ms | 备机状态最大滞后50 ms |
| 总线隔离时间 | ≤10 ms | 主机释放总线驱动 |
| 备机使能时间 | ≤20 ms | 确认隔离后使能备机驱动 |
| 切换总时间 | ≤100 ms | 从判失效到备机有效输出 |
| 切换计数 | 累计记录 | 下传供地面分析 |
判读切换是否成功,主要看三点:一是备机是否在指标时间内开始输出有效数据;二是切换后遥测帧、模式字、时间基准是否连续;三是切换计数与瞬态记录是否正常下传。若切换后出现控制跳变或遥测错乱,应优先检查状态同步周期是否过长、同步内容是否完整、总线隔离是否彻底。
综上,星务计算机双机热备切换不是单一动作,而是“角色定义—仲裁判定—开关动作—总线隔离—状态同步”协同工作的结果。设计时要把切换时间、数据一致性和瞬态可观测性作为核心指标,并在硬件互锁与软件仲裁之间形成双重保障,才能让备机在主机失效时真正“接得住、接得稳”。