2. 星载计算机可靠性测试对象剖析
要对星载计算机做可靠性测试自动化,第一步不是写脚本,而是把"被测对象"拆清楚。星载计算机不是一块普通单板,而是一个在辐射、真空、极端温度与单点供电约束下长期自主运行的嵌入式系统。它的可靠性测试对象至少包含五个层次:体系结构、关键模块、故障模式、可靠性指标,以及由指标反推出来的测试需求。只有把这五层对齐,自动化测试才有明确的激励对象、观测点和判据。
一、体系结构:从整机到可观测边界
典型星载计算机采用"双机热备 + 看门狗 + 独立复位"的容错架构。以某类低轨遥感卫星的星务计算机为例,其结构可概括为:
- 处理核心:CPU(如 SPARC V8 架构的 AT697 或国产 BM3803),运行星务管理软件;
- 存储层次:PROM 存放引导程序,EEPROM 存放默认参数,SRAM 作为运行内存,MRAM/Flash 存放程序与日志;
- 总线接口:内部通过 AHB/APB 连接外设,外部通过 1553B、CAN 或 SpaceWire 与星上其他分系统通信;
- 监控与复位:独立看门狗、电源监控芯片、复位逻辑;
- 供电与时钟:DC/DC 模块、晶振与时钟分配网络。
测试自动化的第一步,是明确"可观测边界":哪些信号可以引出到测试台,哪些只能通过遥测下传,哪些必须通过软件注入才能观测。例如,CPU 内部寄存器无法直接探测,但可以通过 JTAG 调试口读取;1553B 总线上的消息可以通过总线监视器捕获;看门狗溢出则可以通过复位计数遥测间接判断。
二、关键模块与故障模式
星载计算机的故障模式可按"物理层—器件层—功能层"展开。物理层包括焊点开裂、连接器接触不良、PCB 分层;器件层包括单粒子翻转(SEU)、单粒子锁定(SEL)、总剂量效应(TID)、位移损伤;功能层包括程序跑飞、看门狗误复位、总线通信超时、存储位翻转、电源瞬态跌落。
以 SRAM 型 FPGA 为例,SEU 会导致配置位翻转,进而改变内部逻辑功能。测试时通常采用两种方式:一是通过 JTAG 回读配置帧,统计翻转位数;二是注入错误后观察功能输出是否偏离预期。对于 CPU 寄存器,则可通过软件注入错误值,再检查程序是否进入异常处理分支。
| 故障模式 | 典型诱因 | 可观测信号 | 测试注入方式 |
|---|---|---|---|
| SRAM 位翻转 | 高能粒子 | EDAC 纠错计数、校验错误 | JTAG 回读 + 软件写错 |
| 看门狗误复位 | 程序跑飞 | 复位计数、复位原因寄存器 | 停止喂狗 / 强制跳转 |
| 1553B 通信超时 | 总线冲突、终端故障 | 消息响应时间、错误状态字 | 总线错误注入、终端模拟 |
| 电源瞬态跌落 | 负载突变、DC/DC 失效 | 电压纹波、复位阈值 | 可编程电源拉偏 |
| 时钟失锁 | 晶振老化、辐照 | 频率偏差、锁相环状态 | 频率偏移注入 |
三、可靠性指标与测试需求的映射
可靠性指标不是抽象数字,而是测试需求的直接来源。例如,整机 MTBF 要求为 10 万小时,分解到 CPU 模块可能要求 30 万小时,分解到电源模块可能要求 50 万小时。这些指标进一步转化为:
- 故障率 λ:用于确定测试样本量与测试时间;
- 单粒子翻转率:用于确定 SEU 注入频次与纠错能力验证;
- 恢复时间:用于确定看门狗超时阈值与复位后重启时间;
- 误码率:用于确定总线通信的容错重传次数。
测试需求通常来自六个方面:可靠性指标分解、FMEA 分析结果、在轨异常历史、元器件降额与辐照数据、软件需求规格、总体测试大纲。自动化测试脚本的激励向量和判据,正是从这些来源中提取出来的。
四、从对象剖析到自动化测试的衔接
完成对象剖析后,自动化测试的框架就清晰了:激励层负责产生故障注入信号(如 JTAG 配置帧改写、电源拉偏、总线错误帧);采集层负责捕获观测点数据(如遥测帧、总线监视日志、复位计数);判据层负责将采集数据与预期范围比较,输出通过/失败结论。
以看门狗测试为例,自动化脚本可以这样组织:先通过串口发送"停止喂狗"命令,等待看门狗超时,然后读取复位原因寄存器,确认复位原因为"看门狗溢出",并记录从停止喂狗到复位发生的时间。若该时间落在设计阈值范围内(例如 1.0~1.2 秒),则判为通过。整个过程无需人工干预,可重复执行上百次,用于统计复位时间的分布。
需要强调的是,星载计算机的测试对象具有"不可完全复现"的特点:在轨辐射环境无法在地面完全模拟,因此自动化测试更强调"故障注入的覆盖性"和"判据的鲁棒性",而不是追求与在轨完全一致的复现。测试需求来源中的在轨异常历史,正是用来补充地面试验无法覆盖的边界条件。
综上,星载计算机可靠性测试自动化的第一步,是把体系结构、关键模块、故障模式、可靠性指标和测试需求来源这五个层次逐一拆解,并建立它们之间的映射关系。只有对象清晰、观测点明确、判据可量化,后续的自动化脚本、测试执行和结果分析才有可靠的基础。