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 校验,只有两层都通过才判定指令有效。

遥控指令帧结构与编码处理链 帧结构(共 95 位) 前导码 16b 帧同步 16b 信息段 45b(地址+功能+参数) BCH 校验 18b CRC-16 16b 信息段 45 位字段划分 卫星地址 8b 分系统 6b 功能码 16b 参数 12b 保留 3b 星上接收处理链 帧同步检测 匹配 0xE2A4 BCH 译码 纠 3 位错 CRC-16 校验 残留错误检测 指令解析 地址+功能匹配 执行/回执 有效指令下发 校验失败 → 丢弃并上报

四、编码规则制定与示例参数

把上述选择固化为可执行的编码规则,需要明确生成多项式、字段定义、校验算法和异常处理。以下给出一份可直接参考的规则示例,参数为教学假设值,实际工程需按卫星指标调整。

【遥控指令编码规则示例 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(63,45) 在 Eb/N0 约 5 dB 时可获得约 10^-5 的误帧率,而 LDPC 虽更强但译码时延和资源开销更大。遥控短帧场景下,简单、确定、可验证往往比极限性能更重要。

五、验证与判据

编码规则制定完成后,需要验证三件事:一是同步头在噪声下能否稳定捕获,可通过蒙特卡洛仿真统计虚警和漏检概率;二是 BCH 纠错后残留错误率是否满足指标,通常要求误帧率低于 10^-5;三是 CRC 能否拦截所有未被 BCH 纠正的错误模式。验证时注入单比特、双比特、三比特和突发错误,观察接收端判定结果是否与预期一致。只有三层判据全部通过,编码规则才可冻结并写入星地接口文件。

实际工程中,还应把编码规则与遥控单元的处理能力对齐:若星上 CPU 主频有限,BCH 译码应采用查表法或移位寄存器实现,避免复杂矩阵运算;若帧长可调,应预留扩展位,便于后续增加指令类型而不破坏既有映射。规则一旦上星,修改成本极高,因此前期必须把码字映射、同步头和校验字段一次设计到位。