2. 星载计算机体系结构与掉电影响

要理解星载计算机为什么会在掉电后“失忆”或“行为异常”,必须先看清它的供电结构。星载计算机并不是一个整体接在同一路电源上的黑盒,而是由处理器、存储器、总线和外设等多个功能单元组成,每个单元往往挂在不同的供电域上。供电域划分决定了掉电时“谁先死、谁后死、谁还能撑住”,也决定了恢复时“从哪里重新开始”。

典型的星载计算机供电域可以粗分为四类。第一类是处理器域,通常由一次电源经DC-DC变换后提供1.0V~1.2V核心电压和3.3V I/O电压,核心电压最先建立、最后掉电,对电压跌落最敏感。第二类是存储器域,包括SRAM、SDRAM、NOR Flash、NAND Flash和EEPROM,其中SRAM和SDRAM属于易失性存储,掉电即丢数据;NOR/NAND/EEPROM属于非易失性存储,掉电后内容保留,但写入过程中掉电可能造成页损坏。第三类是总线域,包括处理器本地总线、SpaceWire、CAN、I2C、1553B等,总线收发器通常有独立供电或使能控制,掉电时可能出现“一端有电、一端无电”的悬空状态。第四类是外设域,包括AD/DA、看门狗、复位芯片、时钟晶振、FPGA、星敏感器接口、反作用飞轮接口等,它们可能由独立LDO供电,也可能由处理器域经负载开关分配。

供电域划分的核心原则是:关键状态存储单元必须与处理器域解耦,或具备独立后备供电。例如,MRAM或FRAM这类非易失存储器常被放在独立供电域,即使处理器域掉电,它仍能保存最近一次任务上下文;而看门狗和复位芯片通常由常电域供电,保证在处理器掉电时仍能输出复位信号,避免处理器在电压不足时执行错误指令。

星载计算机供电域划分与掉电影响示意 一次电源母线 (28V) DC-DC 变换与配电 处理器域 CPU 核心 1.0V I/O 3.3V 时钟 / PLL 掉电敏感:指令流中断 存储器域 SRAM / SDRAM(易失) NOR / NAND / EEPROM MRAM / FRAM(非易失) 掉电敏感:数据丢失/页损坏 总线域 SpaceWire / CAN I2C / 1553B 收发器使能控制 掉电敏感:悬空/误码 外设域 看门狗 / 复位芯片 AD/DA / FPGA 星敏/飞轮接口 掉电敏感:状态丢失/误动作 掉电对指令流、数据流与时序的影响链 指令流 取指→译码→执行中断 PC指针丢失,可能跑飞 复位后从Boot ROM重新取指 数据流 寄存器/缓存/队列数据丢失 DMA传输中途断裂 非易失区保留最后检查点 时序 电压跌落→时钟失锁 总线建立/保持时间违例 复位释放需等待电源稳定

掉电对指令流的影响最为直接。处理器正常运行时,程序计数器PC按顺序推进,取指、译码、执行、访存、写回形成流水线。当核心电压从1.0V跌落到0.8V以下时,触发器可能进入亚稳态,流水线中的指令结果不可信;若电压继续跌落,PC值可能随机跳变,处理器执行到未定义地址,触发总线错误或直接“跑飞”。此时如果没有外部复位,处理器可能反复执行错误代码,甚至误写关键寄存器。因此,星载计算机通常配置欠压复位芯片,当电源低于阈值(例如3.3V轨低于2.9V)时强制拉低复位,使处理器在电压恢复后从Boot ROM的固定入口重新取指。

掉电对数据流的影响体现在三个层面。第一层是寄存器与缓存:CPU内部通用寄存器、Cache、DMA描述符在掉电后全部丢失,恢复后无法直接续接原任务。第二层是主存:SDRAM需要定期刷新,掉电后电荷泄漏,内容在毫秒级内消失;SRAM虽然不需要刷新,但供电消失后同样无法保持。第三层是非易失存储:NOR Flash和EEPROM在写入过程中掉电,可能导致目标页处于“半写”状态,校验和失败;NAND Flash则可能出现坏块标记异常。工程上常用的做法是检查点机制:任务运行过程中周期性将关键上下文写入MRAM或FRAM,掉电恢复后从最近检查点继续,而不是从头开始。

掉电对时序的影响常被忽视,却往往是隐蔽故障的根源。电源跌落时,晶振输出幅度下降,PLL可能失锁,时钟频率偏移甚至停振;总线收发器在供电不足时输出电平不再满足VIH/VIL门限,接收端可能采到错误数据;复位释放如果早于电源稳定,处理器可能在电压未达标时就开始取指,导致启动失败。因此,电源域的上电时序通常要求:核心电压先建立,I/O电压后建立,复位在电源稳定并经过设定延时后释放。例如,某星载计算机要求3.3V轨建立后延时10ms再释放复位,1.0V核心轨建立后延时5ms再释放PLL复位,确保时钟稳定后再让处理器运行。

供电域划分的工程检查要点:① 易失性存储与处理器是否同域?若同域,掉电后两者同时丢失,恢复只能靠非易失区;② 非易失存储写入时是否有掉电保护?建议采用“先写备份页、再写目标页、最后更新校验”的顺序;③ 总线收发器是否有独立使能?掉电时应将收发器置为高阻,避免悬空;④ 复位芯片是否由常电域供电?若与处理器同域,掉电时复位信号可能失效。

从恢复角度看,供电域划分直接决定了“掉电后还剩什么”。如果处理器域和SRAM域同时掉电,那么恢复时只能依赖非易失存储中的启动代码和检查点数据;如果MRAM独立供电,则可以在处理器掉电期间继续保存最新状态,甚至由看门狗触发一次“紧急保存”后再断电。实际设计中,常把关键任务上下文、故障标志、复位计数三类数据放在独立供电的非易失区,把大容量图像、科学数据放在普通NAND Flash,通过掉电中断服务程序在电源跌落前完成关键数据落盘。这样,即使掉电发生在任务中途,恢复后也能通过读取非易失区判断“上次执行到哪、是否正常结束、是否需要重试”。