4. 指令类型与格式规范

星务系统对卫星的每一次控制,最终都要落到一条可被星上计算机识别、校验并执行的指令上。指令类型决定了“这条指令走哪条路径、由谁解释、何时生效”,而指令码格式与校验方式决定了“星上能否正确认出它、拒绝被干扰或损坏的指令”。理解这两层,是后续任务序列编排与执行监控的基础。

一、按执行路径划分的四类指令

工程上最常用的分类依据是指令从地面到星上执行机构所经过的路径,据此分为遥控指令、直接指令、间接指令和数据注入指令。

  • 遥控指令(Telecommand, TC):泛指经上行链路发送、由星务软件接收并处理的指令,是一个总称。它通常以数据包形式到达,需要经过星务计算机的解包、校验、分发,才可能转化为具体动作。
  • 直接指令(Direct Command):不经过星务软件逻辑判断,由遥控解码单元直接输出电平或脉冲,驱动关键继电器或执行机构。典型用途是星务计算机复位、载荷加断电、安全模式强制切入等“星务软件本身可能已失效”的场合。其特点是路径最短、可靠性最高,但灵活性最低,一条直接指令通常只对应一个固定开关动作。
  • 间接指令(Indirect Command):由星务软件接收后,经过程序判断、条件检查、时序控制,再通过星上总线(如 CAN、1553B、RS-422)转发给目标分系统执行。绝大多数日常控制,如太阳翼驱动、姿态机动、载荷参数设置,都走间接指令路径。它灵活、可组合,但依赖星务软件正常工作。
  • 数据注入指令(Data Injection):不直接驱动动作,而是向星上写入数据块,例如更新星历、注入任务序列、修改阈值参数、上注软件补丁。数据注入通常数据量大,需要分帧传输、整块校验、写入后回读比对,确认无误后才允许启用。

四类指令并非互斥,而是配合使用:直接指令保底,间接指令做常规控制,数据注入完成“让卫星自己会做事”的能力升级,遥控指令则是它们的统一上行载体。

四类指令的上行路径与执行关系 地面测控站 指令编码 / 上行调制 上行链路 遥控指令 TC 数据包 星上遥控接收机 解调 / 帧同步 / 校验 指令类型判别 直接 / 间接 / 数据注入 直接指令通道 不经星务软件,直驱继电器 间接指令通道 星务软件判断后经总线转发 数据注入 写入数据块 关键执行机构 复位 / 加断电 / 安全模式 分系统执行机构 姿控 / 太阳翼 / 载荷 星上存储区 星历 / 序列 / 阈值 指令码基本结构(示例) 同步头 | 长度 | 指令码 | 参数 | 校验 | 结束 校验:奇偶校验 / 累加和 / CRC-16 校验失败 → 丢弃并回传异常状态

二、指令码格式:星上如何“读懂”一条指令

无论哪一类指令,上行时都要封装成固定格式的指令码。一个典型的遥控指令帧结构如下(示例参数,用于说明字段含义):

| 同步头(2B) | 长度(1B) | 指令码(2B) | 参数区(0~N B) | 校验(2B) | 结束标志(1B) |
   0xEB90      0x0A       0x1201        ...             CRC-16     0x0D0A
  • 同步头:固定字节序列,用于帧同步,帮助接收机在连续比特流中找到指令起点。
  • 长度字段:标明本帧总字节数或参数区长度,防止解析越界。
  • 指令码:核心字段,通常高字节表示分系统或指令类别,低字节表示具体动作。例如 0x12 表示电源分系统,0x01 表示“载荷加电”。
  • 参数区:携带执行所需数据,如目标电压值、时间标签、注入数据块内容。直接指令通常无参数区,数据注入指令参数区最长。
  • 校验字段:用于检错,见下节。
  • 结束标志:标识帧尾,辅助接收机判定一帧完整结束。

指令码的分配必须遵循星上《指令码表》,地面与星上使用同一版本,任何一方版本不一致都可能导致“指令发出去但动作不对”或“指令被拒绝”。因此每次上注新指令码表后,都要通过一条已知的遥测回读指令确认星上当前使用的码表版本号。

三、校验方式:把错误指令挡在执行之前

上行链路存在噪声、误码甚至恶意干扰,校验是最后一道防线。星务系统常用的校验方式有三类:

校验方式原理检错能力典型用途
奇偶校验统计比特位中 1 的个数,附加 1 位使其为奇或偶只能检出奇数个比特错误短指令、低速遥测
累加和校验将指令各字节按模 256 相加,取补码作为校验字节可检出多数随机错误,对字节顺序不敏感常规遥控指令
CRC-16以生成多项式对数据块做除法,余数作为校验码检错能力强,可检出突发错误数据注入、长帧指令

以累加和为例,假设指令码为 0x12 0x01,参数为 0x05,则校验字节计算为:0x12 + 0x01 + 0x05 = 0x18,取补码为 0xE8。星上收到后重新累加,若结果不为 0,则判定该帧无效并丢弃。CRC-16 的计算稍复杂,但星务软件通常有现成查表实现,地面测试时可用同一算法比对,确认编码一致。

校验通过只说明“指令在传输中没有被破坏”,并不说明“这条指令当前允许执行”。是否允许执行,还要看星上当前工作模式、安全互锁条件和指令优先级。例如安全模式下,某些载荷加电指令即使校验正确也会被拒绝。

四、四类指令的选用原则

实际任务中,选用哪类指令取决于三个因素:实时性、可靠性、灵活性。

  • 需要“无论星务软件是否正常都必须生效”的动作,用直接指令,例如星务计算机看门狗复位、蓄电池强制断开。
  • 需要条件判断、时序配合、参数可变的常规控制,用间接指令,例如姿态机动、载荷工作模式切换。
  • 需要让卫星在测控弧段外自主执行的任务,用数据注入把任务序列写入星上存储区,再由星务软件按时间标签自主触发。
  • 需要修改星上长期参数或软件行为的,用数据注入,并配合回读比对确认写入正确。

一个常见的工程做法是:对同一关键动作同时设计直接指令和间接指令两条路径。正常时走间接指令,星务软件可记录执行结果;异常时地面改用直接指令强制动作,牺牲灵活性换取可靠性。这种“双路径”设计在电源、姿控和安全模式相关指令中尤为常见。

五、指令格式与校验的检查清单

在编写或审核指令时,可按以下清单逐项确认,避免因格式或校验问题导致指令失效:

  1. 指令码是否与星上当前《指令码表》版本一致,版本号是否已通过遥测确认。
  2. 同步头、长度、结束标志是否完整,长度字段与实际字节数是否吻合。
  3. 参数区数值是否在允许范围内,单位与星上定义是否一致(如电压用 mV 还是 V)。
  4. 校验方式是否与星上约定一致,CRC 多项式与初值是否正确。
  5. 该指令在当前工作模式下是否被允许,是否存在安全互锁。
  6. 数据注入类指令是否规划了分帧、整块校验和写入后回读比对。
  7. 关键动作是否准备了直接指令备份路径,地面是否演练过切换流程。

掌握这四类指令的路径差异、指令码字段含义和校验机制后,就能在后续任务序列设计中,为每个动作选择正确的指令类型,并在指令发出前完成格式与校验自检,减少上行失败和误动作风险。