1. 课程导入与全景认知
卫星在轨运行期间,地面测控站与卫星之间持续交换两类关键信息:遥测(Telemetry,TM)是卫星下行的状态数据,反映星上各分系统的工作情况;遥控(Telecommand,TC)是地面上行的指令数据,用于控制卫星完成特定动作。围绕这两类信息开展的测试工作,就是遥测遥控测试。当测试过程中的激励生成、响应采集、判据比对、报告输出等环节由软件自动完成时,便构成了卫星遥测遥控自动化测试。
理解这一概念,需要抓住三个要素。第一是被测对象,可能是星载测控分机、综合电子单元、整星测控链路,也可能是地面测控基带设备或星地对接回路。第二是测试接口,包括射频接口、中频接口、LVDS/RS-422 等数字接口,以及遥控指令注入、遥测帧解析等协议层接口。第三是自动化引擎,它负责按测试用例驱动激励设备、监听遥测流、按判据判定通过或失败,并生成可追溯的测试记录。三者缺一不可,缺少被测对象则测试无的放矢,缺少接口则无法建立信号通路,缺少自动化引擎则退化为人工逐条操作。
从工程实践看,卫星遥测遥控自动化测试的典型场景主要有四类。其一是单机验收测试,例如对一台测控应答机进行发射功率、接收灵敏度、遥控指令译码正确率、遥测帧格式合规性等指标的自动遍历测试。其二是分系统联试,将测控分机与综合电子、电源、姿控等分系统连接,验证遥控指令能否正确分发、遥测参数能否正确汇聚。其三是整星综合测试,在卫星总装完成后,通过地面测控设备与星上测控链路建立闭环,自动执行数百至数千条遥控指令,并同步监视遥测参数变化。其四是星地对接与在轨支持,在地面模拟真实测控站与卫星的交互时序,验证捕获、跟踪、解调、译码全链路,并为在轨异常复现提供自动化脚本支持。
这些场景对自动化测试提出了共同要求:时序精确、判据明确、数据可追溯、异常可复现。以遥控指令发送为例,一条指令从地面发出到星上执行,涉及帧同步、地址识别、指令译码、执行确认等多个环节,每个环节都有时间窗口和状态约束。人工操作难以保证毫秒级的一致性,而自动化脚本可以精确控制发送间隔、等待超时和重试策略。再以遥测判据为例,某个温度参数在遥控加热指令发出后应在规定时间内上升并稳定在指定区间,自动化测试可以持续采样、计算斜率、判断稳定时间,并在越界时立即记录原始数据。
要真正掌握自动化测试,需要建立一条清晰的能力路线。本课程围绕“协议理解—工具操作—脚本开发—系统集成—问题定位”五个层次展开。前几章先建立遥测遥控的基本概念和帧格式认知,包括 PCM 遥测帧结构、遥控指令格式、CCSDS 分包标准等;随后进入测试工具与平台的使用,例如 STK、LabVIEW、Python 测试框架或专用测控测试软件;再深入到自动化脚本的设计,包括用例参数化、断言编写、异常处理、日志记录;最后通过整星综合测试案例,把单点技能串联为完整工程能力。
学习目标可以归纳为四点。第一,能够读懂遥测帧和遥控指令的格式定义,知道每个字段的含义和约束。第二,能够独立搭建一个最小自动化测试回路,用脚本控制激励设备发送指令并采集遥测响应。第三,能够针对给定测试需求设计用例,明确输入条件、操作步骤、预期结果和判据。第四,能够对测试失败进行初步定位,区分是激励问题、链路问题、被测对象问题还是判据问题。
下面给出一个最小化的遥控指令发送与遥测响应验证示例,用于建立直观认识。假设被测对象是一台测控应答机,测试目的是验证“遥控指令 A 发出后,遥测参数 T 应在 500 ms 内从 0 变为 1”。在自动化脚本中,这一过程可以表达为:先订阅遥测参数 T 的实时值,确认当前为 0;然后通过遥控接口发送指令 A;随后以 50 ms 为周期采样 T 的值,最多等待 500 ms;若在超时前检测到 T 等于 1,则判定通过,否则判定失败并记录最后一次采样值和时间戳。
# 示例:遥控指令发送与遥测响应验证(伪代码)
tm_value = subscribe_telemetry("T") # 订阅遥测参数 T
assert tm_value.current == 0, "初始状态异常"
send_telecommand("CMD_A") # 发送遥控指令 A
deadline = now() + 500ms # 设定 500ms 超时
while now() < deadline:
if tm_value.current == 1:
record_pass("T 在超时前变为 1")
break
sleep(50ms)
else:
record_fail("T 未在 500ms 内变为 1", last_value=tm_value.current)