4. 遥控指令编码规则与码型选择
遥控指令从地面站发出,经上行信道到达卫星,最终被星上遥控单元解调、译码并执行。这一过程中,信道噪声、多普勒频移、功率受限以及星上处理能力共同决定了编码方案不能随意选取。本节围绕“针对卫星信道特性选择编码码型,设计码字映射、同步头与校验字段,完成指令编码规则制定”这一任务,给出可落地的设计思路与示例。
一、先明确信道约束,再谈码型
卫星遥控上行链路通常具有以下特征:一是信噪比受限,尤其在低仰角或雨衰条件下,Eb/N0 可能低至 4~6 dB;二是存在多普勒频移,低轨卫星在 S 频段可达 ±7 kHz 量级;三是星上资源有限,译码器复杂度、功耗和存储都受严格约束;四是遥控指令要求极高可靠性,误码可能导致误动作,因此对漏检和虚警都有明确指标。基于这些约束,码型选择需要在纠错能力、译码复杂度、同步开销和实现成熟度之间折中。
工程上常用的候选码型包括:BCH 码、RS 码、卷积码、Turbo 码和 LDPC 码。对于遥控这类短帧、低速率、高可靠场景,BCH(63,45) 或 RS(63,57) 因译码简单、时延小而被广泛采用;若信道条件更差,可采用卷积码与 RS 码的级联结构。本节示例选用 BCH(63,45) 作为纠错码型,它能纠正 3 个随机错误,码率约 0.714,适合短指令帧。
二、码字映射:把指令语义变成比特
码字映射的核心是建立“指令功能—地址—数据”到二进制码字的唯一对应关系。设计时先划分字段,再分配比特。一个典型的 45 位信息段可划分为:卫星地址 8 位、分系统地址 6 位、指令功能码 16 位、参数数据 12 位、保留位 3 位。地址字段用于区分不同卫星和分系统,功能码表示具体动作,参数数据携带执行值或档位。
映射规则要避免歧义:同一功能码在不同分系统下可复用,但必须由分系统地址限定;保留位默认填 0,接收端应校验其为 0,否则判为无效指令。为防止单比特翻转造成“功能码跳变”,功能码分配应尽量使相邻功能码的汉明距离不小于 3。例如“开机”与“关机”不应只差 1 位,而应设计为如 0x1A3C 与 0x1A3F 之外更远的码字,或通过校验字段兜底。
三、同步头与校验字段设计
同步头用于帧起始检测和位同步。遥控帧通常采用“前导码 + 帧同步码”结构。前导码可选 16 位交替序列 1010…1010,便于接收端提取位时钟;帧同步码选用自相关性能好的 16 位 Barker 类序列,如 0xE2A4,其旁瓣低,能降低虚警概率。同步头之后是信息段和校验段。
校验字段分两层:第一层是 BCH 校验位,由 45 位信息段经生成多项式计算得到 18 位校验位,构成 63 位码字;第二层是整帧的 CRC-16 校验,覆盖同步头之后的所有比特,用于检测译码后仍存在的残留错误。接收端先做帧同步,再 BCH 译码,最后 CRC 校验,只有两层都通过才判定指令有效。
四、编码规则制定与示例参数
把上述选择固化为可执行的编码规则,需要明确生成多项式、字段定义、校验算法和异常处理。以下给出一份可直接参考的规则示例,参数为教学假设值,实际工程需按卫星指标调整。
【遥控指令编码规则示例 v1.0】
1. 帧总长:95 bit
前导码 16b | 帧同步 16b | 信息段 45b | BCH 校验 18b | CRC-16 16b
2. 前导码:1010 1010 1010 1010(0xAAAA)
3. 帧同步码:0xE2A4(16 bit,自相关旁瓣 ≤ 2)
4. 信息段字段:
卫星地址 [44:37] 8 bit
分系统 [36:31] 6 bit
功能码 [30:15] 16 bit
参数 [14:3] 12 bit
保留 [2:0] 3 bit,固定 0
5. BCH 码:BCH(63,45),生成多项式
g(x) = x^18 + x^17 + x^14 + x^13 + x^9 + x^8 + x^5 + x^3 + 1
可纠 3 位随机错误
6. CRC-16:生成多项式 x^16 + x^15 + x^2 + 1
覆盖范围:帧同步码之后至 BCH 校验位结束
7. 接收判定:
帧同步命中 → BCH 译码 → CRC 通过 → 保留位为 0 → 指令有效
任一环节失败 → 丢弃该帧,记录错误计数,不执行任何动作
8. 功能码分配原则:
同一分系统内功能码汉明距离 ≥ 3
开机/关机类互斥指令使用互补码字
参数为 0 时表示使用默认档位
以“卫星地址 0x2A、分系统 0x05、功能码 0x1A3C、参数 0x0F0”为例,信息段拼接为 45 位二进制后,经 BCH 编码得到 18 位校验位,再对同步码之后的数据计算 CRC-16,最终形成 95 位完整帧。星上收到后,若 BCH 译码纠正了 2 位错误且 CRC 通过,则指令有效;若 BCH 译码后 CRC 仍失败,说明错误超出纠错能力,必须丢弃并上报,绝不能“带病执行”。
五、验证与判据
编码规则制定完成后,需要验证三件事:一是同步头在噪声下能否稳定捕获,可通过蒙特卡洛仿真统计虚警和漏检概率;二是 BCH 纠错后残留错误率是否满足指标,通常要求误帧率低于 10^-5;三是 CRC 能否拦截所有未被 BCH 纠正的错误模式。验证时注入单比特、双比特、三比特和突发错误,观察接收端判定结果是否与预期一致。只有三层判据全部通过,编码规则才可冻结并写入星地接口文件。
实际工程中,还应把编码规则与遥控单元的处理能力对齐:若星上 CPU 主频有限,BCH 译码应采用查表法或移位寄存器实现,避免复杂矩阵运算;若帧长可调,应预留扩展位,便于后续增加指令类型而不破坏既有映射。规则一旦上星,修改成本极高,因此前期必须把码字映射、同步头和校验字段一次设计到位。