4. 遥控指令校验体系总览
卫星遥控指令从地面测控站发出,到星上执行机构动作,中间要穿过无线信道、星上接收机、指令译码单元和执行驱动电路。任何一个环节的干扰、误码或恶意注入,都可能让一条本不该执行的指令生效。因此,工程上不会只做一次校验,而是把校验拆成若干层次,每一层解决一类特定的风险。理解这套体系的关键,不是记住四个名词,而是搞清楚:每一层在防什么、用什么手段防、它依赖上一层提供什么、又为下一层留下什么。
本节梳理的校验层次为:语法校验、语义校验、完整性校验、安全性校验。它们并非简单的先后流水线,而是从“格式对不对”逐步收敛到“该不该执行”的递进防线。
一、语法校验:先确认“这串比特是不是一条指令”
语法校验处理的是最底层的形式问题。星上接收机解调出的是一串比特流,它首先要判断这串比特是否符合遥控帧的格式约定。典型判据包括:帧头(如固定同步字 0xEB90)是否匹配、帧长度字段与实际接收长度是否一致、指令码字是否落在已定义的指令集范围内、各字段的位宽和编码方式是否符合协议。
举例来说,假设某遥控帧格式为:帧头 2 字节 + 长度 1 字节 + 指令码 2 字节 + 参数 4 字节 + CRC 2 字节。若接收到的帧头不是 0xEB90,或长度字段声明为 11 但实际只收到 9 字节,语法校验立即判失败。这一层的目标很明确:把无法解析的比特流挡在门外,避免后续模块对垃圾数据做无意义的语义分析。
语法校验的实现通常很轻量,适合放在接收机固件或 FPGA 中实时完成,延迟极低。它的局限也很明显:一条格式完全正确的帧,内容可能是错误的、过期的甚至是伪造的,语法层无法识别。
二、语义校验:确认“这条指令在当前状态下能不能执行”
语义校验关注的是指令的含义是否合理、是否与卫星当前状态相容。它要回答的问题包括:参数是否在允许范围内(如姿态角速度指令值不得超过 ±5°/s)、量纲和单位是否正确、该指令是否与卫星当前工作模式匹配(如太阳帆板未展开时不应接受“帆板转动”指令)、指令之间是否存在互斥或时序约束(如“加热器开”与“加热器关”不能同时有效)。
语义校验需要访问星上状态数据,因此它通常运行在星务计算机或指令管理单元中,依赖遥测下传的状态量或星上维护的状态表。一个实用的做法是维护一张“指令—前置条件”表,每条指令登记其允许执行的状态条件。例如:
| 指令 | 参数范围 | 前置状态条件 | 互斥指令 |
|---|---|---|---|
| 帆板转动 | 角度 0°~180° | 帆板展开到位 | 帆板锁定 |
| 推力器点火 | 时长 0~200 ms | 姿态稳定、推进剂充足 | 安全模式 |
| 载荷加电 | 无 | 母线电压正常 | 载荷断电 |
语义校验的目标是防止“格式正确但逻辑错误”的指令被执行。它比语法校验更贴近任务逻辑,但也更依赖状态数据的准确性和时效性。如果星上状态表未及时更新,语义校验可能放行一条实际不该执行的指令。
三、完整性校验:确认“内容在传输中没有被改变或丢失”
完整性校验针对的是传输过程中的误码、丢帧和重复。无线信道存在噪声和衰落,比特翻转难以完全避免。常用手段包括:CRC 循环冗余校验、校验和、序列号与重传机制、时间戳防重复。
以 CRC-16 为例,发送端对帧头之后、CRC 之前的所有字节做多项式除法,得到 16 位余数附加在帧尾。接收端用同一多项式重新计算,若结果不为零则判定帧在传输中发生了比特错误,直接丢弃。序列号则用于识别重复帧:星上维护一个期望序列号,若收到的序列号与期望不符,说明发生了丢帧或重传,需要按协议决定是请求重传还是丢弃。
完整性校验的目标是保证“收到的内容就是发出的内容”。它不判断内容是否合理,也不判断来源是否可信,只判断内容是否在传输中保持了原样。这一层与语法校验有交集(如帧长一致性),但侧重点不同:语法校验看格式,完整性校验看内容是否被篡改或损坏。
四、安全性校验:确认“这条指令是谁发的、有没有权限发”
安全性校验是最高层,也是对抗恶意注入和非法操控的关键。它要回答:指令来源是否经过认证?发送者是否具备执行该指令的权限?指令是否被重放?
典型手段包括:消息认证码(MAC)或数字签名,确保指令由持有合法密钥的地面站发出;权限分级,如“一般指令”与“安全关键指令”需要不同的授权等级;防重放机制,如随机数挑战—应答或递增计数器,防止攻击者截获旧指令后重新注入。
安全性校验的目标是确保指令来自可信源且经过授权。它通常计算量较大,可能涉及密码学运算,因此需要权衡星上处理能力和实时性要求。对于安全关键指令(如变轨、关机),安全性校验不可省略;对于一般遥测请求类指令,可根据任务风险等级适当简化。
五、四层之间的关系:递进、独立、互补
这四层校验不是简单的串联流水线,而是递进收敛的防线。语法校验通过后,语义校验才有意义;语义校验通过后,完整性校验确保内容未被篡改;完整性校验通过后,安全性校验确认来源可信。任何一层失败,指令都应被丢弃并记录异常,不进入下一层,更不产生执行动作。
同时,四层各自独立、互不替代。语法正确不代表语义合法,语义合法不代表传输无误,传输无误不代表来源可信。工程上常见的误区是“加了 CRC 就安全了”——CRC 只能防误码,不能防恶意篡改,因为攻击者可以修改内容后重新计算 CRC。同样,语义校验再完善,也无法识别一条由非法地面站发出的、格式和语义都正确的指令。
理解这套体系的价值在于:当一条遥控指令未能执行时,排故人员可以按层次逐级排查——是帧格式错了?参数超范围了?CRC 校验失败了?还是签名验证没通过?每一层都有对应的日志和判据,定位效率远高于笼统地“查遥控链路”。