4. 星载计算机测试环境自动化搭建

星载计算机的可靠性测试不是“把板子接上、点一下运行”这么简单。一次完整的测试环境通常同时包含目标板、仿真器/调试探针、总线接口设备、可编程电源、时钟源、环境监控与数据采集单元。自动化搭建的核心,是把这些分散的仪器和板卡组织成一个可被测试脚本统一调度、状态可观测、异常可回滚的整体。本节围绕“如何集成”展开,重点说明各部分的角色、连接关系、控制通道以及集成时的关键实现方法。

一、测试环境的组成与信号/控制关系

从系统角度看,测试环境可以分成两条并行的链路:一条是被测链路,即电源→目标板→总线接口→仿真器/负载,负责给被测对象供电、加载程序、施加激励并采集响应;另一条是控制与监控链路,即上位机通过 LAN、USB、GPIB 或串口等通道,对电源、时钟、总线设备、环境传感器进行参数设置和状态读取。两条链路通过上位机测试软件汇聚,形成“配置—激励—采集—判定”的闭环。

集成时首先要明确每个设备的控制接口和可编程能力。例如,可编程电源需要支持电压/电流设定与回读,仿真器需要支持脚本化的下载、复位、断点与内存访问,总线接口设备需要支持报文收发与错误注入,时钟源需要支持频率切换与使能控制。只有具备可编程接口的设备,才能被纳入自动化流程;否则只能作为人工环节,成为自动化链路上的断点。

星载计算机测试环境自动化集成关系图 上位机测试软件 脚本调度 / 参数配置 / 数据判定 控制与监控链路 被测与激励链路 可编程电源 电压/电流设定与回读 时钟源 频率切换/使能控制 环境监控单元 温度/湿度/电压采集 总线接口设备 1553B/CAN/RS422 仿真器/调试探针 下载/复位/断点/内存 星载计算机目标板 CPU / FPGA / 存储器 / 总线控制器 / 看门狗 被测对象(DUT) 供电 时钟 环境 总线 调试 负载模拟器 / 激励源 模拟敏感器、执行机构、总线终端 状态回读与结果反馈 控制/监控设备 被测目标板 负载/激励 状态反馈

二、目标板与仿真器的自动化接入

目标板是测试的核心对象,自动化接入的第一步是建立稳定的调试通道。以常见的 JTAG/SWD 调试为例,仿真器通过调试接口与目标板 CPU 相连,上位机通过仿真器厂商提供的命令行工具或 API 完成程序下载、复位、运行控制和内存读写。集成时建议把常用操作封装成原子命令,例如:

# 示例:仿真器命令行封装(参数为教学示例)
probe connect --chain-position 1 --adapter-speed 4000
probe load --file app.elf --verify
probe reset --type system
probe run
probe read-mem --addr 0x40000000 --len 64 --out mem.bin

这些命令应被测试脚本按顺序调用,并在每一步后检查返回码。若下载校验失败或复位后无法读取预期寄存器值,应立即停止后续激励,避免在未知状态下继续测试。目标板的供电、时钟和复位信号也应纳入同一时序控制,例如先使能时钟、再上电、最后释放复位,顺序错误可能导致 CPU 锁死或总线挂起。

三、总线接口与电源、时钟的协同控制

总线接口设备负责模拟星上总线上的其他终端,向目标板发送遥控指令、接收遥测数据,或注入错误帧以验证总线控制器的容错能力。自动化集成时,需要把总线设备的报文配置与电源、时钟状态关联起来。例如,在 1553B 总线测试中,目标板作为 RT(远程终端),总线接口设备作为 BC(总线控制器)。测试脚本可以先通过电源设置目标板为 5V,等待电流稳定在示例值 0.8A 左右,再使能 16MHz 时钟,最后启动 BC 发送方式指令。若电流异常偏高,说明目标板可能存在短路或配置错误,此时不应继续发送总线报文。

电源和时钟的自动化控制通常通过 SCPI 命令或厂商 API 实现。下面是一个电源控制的示例片段:

# 示例:可编程电源 SCPI 控制(参数为教学示例)
PSU.SetVoltage(5.0)      # 设定 5.0V
PSU.SetCurrentLimit(1.5) # 限流 1.5A
PSU.OutputOn()
v = PSU.MeasureVoltage() # 回读电压
i = PSU.MeasureCurrent() # 回读电流
if abs(v - 5.0) > 0.1 or i > 1.2:
    raise TestAbort("电源状态异常")

时钟控制同样需要回读确认。部分时钟芯片支持通过 I2C 配置输出频率,测试脚本写入分频系数后,应读取状态寄存器确认锁定标志置位,再释放目标板复位。若时钟未锁定就启动 CPU,可能导致程序跑飞,后续所有测试结果都不可信。

四、环境监控与异常回滚

环境监控单元通常包括温度传感器、湿度传感器和电压监测点。自动化集成时,监控数据不应只用于记录,而应参与实时判定。例如,设定目标板表面温度上限为 70℃,当采集值超过 65℃ 时触发预警,超过 70℃ 时自动切断电源并记录现场数据。这种“监控—判定—动作”的闭环,可以避免被测板在异常条件下持续运行而损坏。

异常回滚是自动化搭建中容易被忽视但非常关键的一环。当测试脚本检测到电源过流、时钟失锁、总线超时或温度超限时,应按预定顺序执行安全动作:停止总线激励→暂停仿真器→关闭时钟→切断电源→保存日志。这个顺序与上电顺序相反,目的是让目标板回到安全状态。回滚动作本身也应被记录,便于事后分析是设备故障还是被测板缺陷。

集成时建议为每个设备定义统一的“设备对象”,包含连接参数、初始化命令、状态查询命令和安全关闭命令。测试脚本只操作设备对象,不直接拼接底层命令,这样更换仪器型号时只需修改设备对象,不影响测试逻辑。

五、集成检查要点

  • 控制通道唯一性:每台设备只由一个控制通道管理,避免上位机和手动面板同时操作导致状态冲突。
  • 上电/下电顺序:时钟→电源→复位释放为上电顺序,反之为下电顺序,顺序应在脚本中固化。
  • 状态回读:电源电压/电流、时钟锁定、总线状态、温度值都必须可回读,不能只写不读。
  • 超时与重试:每个设备操作设置合理超时,超时后进入回滚流程,而不是无限等待。
  • 日志关联:所有设备操作和回读值带时间戳写入同一日志,便于复现问题。

把上述环节组织起来后,测试环境就不再是一堆孤立仪器的堆叠,而是一个可编程、可观测、可回滚的整体。后续的测试用例只需关注“施加什么激励、采集什么数据、如何判定”,底层设备控制由集成框架统一承担,从而显著提高星载计算机可靠性测试的效率和一致性。