3. 硬件可靠性设计:元器件选择与降额设计、冗余设计、看门狗与电源监控
各位同学,咱们接着聊。上一章讲了软件层面的可靠性,这一章咱们把目光拉回到硬件上。硬件是航天器的骨架和肌肉,它要是出了问题,软件再牛也白搭。我个人觉得,硬件可靠性设计,核心就三件事:选对东西、留够余量、防住意外。
3.1 元器件选择与降额设计
先说选元器件。航天级和工业级、商业级,那完全是两码事。我刚开始做项目时,图便宜选了个商业级的运放,结果高低温箱一跑,参数漂得我都不认识它了。从那以后,我再也不敢在关键路径上省这个钱。
元器件选择的核心原则:
- 优先选用宇航级(Class K / QML-V)或军品级(Class B / QML-Q)。这些器件经过了严格的筛选和考核,比如晶圆批次追溯、100% 老炼测试、辐射加固等。
- 尽量选用成熟货架产品。别用刚流片回来的新片子,除非你做好了当小白鼠的准备。航天项目里,用成熟器件是降低风险最直接的办法。
- 关注关键参数的温度系数和长期稳定性。比如基准电压源,25℃时精度再高,到了-55℃或+125℃时漂了多少?这个数据比常温精度重要得多。
接下来是降额设计。说白了,就是让器件在低于其额定值的条件下工作。你想想看,一个标称能跑100MHz的FPGA,你只让它跑50MHz,它的寿命和可靠性会显著提升。
降额设计的关键参数:
| 参数类型 | 推荐降额系数 | 说明 |
|---|---|---|
| 电压 | ≤ 0.8 | 工作电压不超过额定电压的80% |
| 电流 | ≤ 0.7 | 特别是功率管、LDO等发热器件 |
| 功率 | ≤ 0.5 | 结温每降低10℃,失效率大约减半 |
| 频率 | ≤ 0.8 | 数字电路时钟频率降额 |
| 结温 | ≤ 85℃ | 即使器件标称结温150℃,也建议控制在85℃以下 |
我的个人习惯: 在原理图设计阶段,我会在每颗关键器件的旁边标注其降额后的工作条件。比如“VDD=3.3V (降额至80%)”、“Iout=500mA (降额至70%)”。这样后续审查时一目了然,也方便别人理解你的设计意图。
3.2 冗余设计:冷备、热备与温备
冗余设计,就是给系统多准备几套“备胎”。但备胎怎么用,这里头有讲究。我见过一个项目,为了省电,所有备份都冷着,结果主份失效后,备份上电瞬间电流冲击直接把备份也打坏了。嗯,这就是没处理好冷备的启动问题。
三种冗余模式对比:
| 类型 | 工作状态 | 切换时间 | 功耗 | 典型应用 |
|---|---|---|---|---|
| 冷备 | 完全断电 | 较长(秒级) | 极低 | 非关键数据链路、长期休眠模块 |
| 热备 | 与主份同步运行 | 极短(微秒级) | 高(2倍功耗) | 飞行控制计算机、关键传感器 |
| 温备 | 部分供电,保持状态 | 中等(毫秒级) | 中等 | 通信基带处理、数据存储单元 |
冷备设计要点:
- 必须考虑上电冲击。我建议在备份模块的电源入口加缓启动电路,或者使用带软启动功能的电源开关芯片。
- 冷备切换时,主份和备份之间要做好“三态隔离”,防止备份上电瞬间的毛刺干扰主份。
热备设计要点:
- 热备的核心是“无缝切换”。通常需要硬件投票器(如三模冗余 TMR)或快速检测电路。
- 注意时钟同步。两个热备模块如果时钟不同步,切换时会产生数据不一致。我习惯用同一个锁相环输出的时钟给所有热备模块。
温备设计要点:
- 温备模块通常保持时钟和电源,但输出处于高阻态。这样既能快速响应,又比热备省电。
- 需要定期刷新备份模块的状态。比如每100ms将主份的关键寄存器值同步到温备模块中。
我曾经踩过的坑: 在一个星载计算机项目中,我用了双机热备。结果发现,当主份发生“间歇性故障”(比如每10分钟闪一下)时,系统会频繁切换,导致整个控制周期被打乱。后来我加了“去抖逻辑”——连续检测到3次故障才触发切换。这个经验分享给大家:冗余设计不只是加硬件,还要配合合理的切换策略。
3.3 看门狗与电源监控
看门狗,说白了就是给CPU配个“监工”。CPU得定期跟监工汇报“我还活着”,如果监工没收到汇报,就认为CPU死机了,然后强制复位它。但航天级的看门狗,跟普通单片机上的不太一样。
航天级看门狗设计要求:
- 独立于CPU:看门狗定时器必须使用独立的时钟源和电源。如果跟CPU共用同一个晶振,CPU死机时晶振可能也停了,看门狗也跟着失效。
- 窗口看门狗:不仅不能超时,也不能过早喂狗。如果CPU跑飞后意外地快速喂狗,窗口看门狗也能检测到并触发复位。
- 多级看门狗:我习惯用两级看门狗。第一级是芯片内部的窗口看门狗,超时后先产生中断,让CPU有机会自救。如果中断没处理,第二级外部独立看门狗再触发硬件复位。
// 伪代码示例:两级看门狗喂狗策略
void Watchdog_Feed(void) {
// 第一级:内部窗口看门狗
// 必须在特定时间窗口内喂狗
IWDG_ReloadCounter(); // 喂内部看门狗
// 第二级:外部独立看门狗
// 喂狗信号通过GPIO输出
HAL_GPIO_WritePin(EXT_WDT_GPIO, GPIO_PIN_SET);
delay_us(10); // 产生一个10us的脉冲
HAL_GPIO_WritePin(EXT_WDT_GPIO, GPIO_PIN_RESET);
}
再说电源监控。航天器上的电源,可不是插个插座就完事的。母线电压波动、单粒子效应导致的电源瞬态跌落,都可能让系统复位。电源监控电路就是负责盯着这些的。
电源监控的关键功能:
- 上电/掉电复位:确保系统在电源稳定前保持复位状态。我一般设置复位阈值为额定电压的90%,并且有至少200ms的延迟。
- 欠压检测:当电源电压跌落到阈值以下时,立即产生中断或复位。注意要加迟滞,防止在阈值附近反复触发。
- 电源时序监控:对于多电压系统(比如FPGA需要1.0V、1.8V、3.3V),必须监控所有电压轨的上电顺序。如果1.0V先上电而1.8V还没到,FPGA的IO可能会损坏。
我建议: 使用专用的电源监控芯片(如MAX16025、TPS3808等),而不是用分立元件搭。专用芯片内部有精确的基准电压、比较器和延迟电路,温度稳定性远好于分立方案。而且它们通常有“手动复位”输入,方便调试时强制复位系统。
好了,这一章的内容就这些。硬件可靠性设计,说白了就是“防患于未然”。选好器件、留足余量、做好备份、盯紧电源和CPU,你的系统就能在太空中多撑几年。下一章咱们聊聊软件层面的容错设计,到时候见。