3. 遥测遥控信息流与协议体系

无人系统的遥测遥控链路,本质上是一条双向的信息通道:上行把地面操作员的意图变成飞行器能执行的指令,下行把飞行器的状态变成地面能判读的数据。要设计好这条链路,必须先看清信息在这条通道里"长什么样、怎么走、怎么保证不出错"。本节围绕上行遥控指令、下行遥测参数、帧结构、打包方式、校验机制与协议分层六个要点展开。

一、上行遥控指令:从操作意图到可执行报文

上行遥控指令按功能可分为三类:控制类(起飞、返航、航点切换、云台转动)、参数类(修改高度上限、PID 系数、失控保护动作)、管理类(心跳、链路握手、密钥更新)。一条指令报文通常包含:帧头、目标地址、指令标识(Command ID)、参数区、校验字段。

以航点切换指令为例,其参数区可能包含:航点序号(2 字节)、目标纬度(4 字节,单位 1e-7 度)、目标经度(4 字节)、目标高度(2 字节,单位 0.1 米)、期望速度(2 字节,单位 0.1 m/s)。地面站把操作员点击的航点转换为这组二进制字段,再封装成帧发送。飞行器收到后先校验,再解析参数,最后交给飞控执行。

遥控指令通常要求"确认—重传"机制:飞行器执行后回传一条 ACK 报文,地面站在超时未收到 ACK 时重发,重发次数一般设为 3 次,超过则判定链路异常并触发告警。

二、下行遥测参数:状态的可观测化

下行遥测是把飞行器内部状态"翻译"成地面可读数据的过程。典型遥测参数包括:姿态(横滚、俯仰、偏航)、位置(经纬高)、速度(三轴)、电池电压与剩余电量、GPS 星数与定位精度、链路信号强度 RSSI、各传感器健康标志位。

遥测参数按更新率分为不同等级:姿态与速度属于高频参数,通常 10~50 Hz;位置与电池属于中频,1~5 Hz;健康标志位与配置信息属于低频,0.2~1 Hz。设计时按更新率分组打包,避免高频参数被低频参数拖累。

三、帧结构与打包方式

帧是链路上传输的最小完整单元。一个典型遥测帧结构如下:

字段长度说明
帧头2 字节固定同步字,如 0xEB 0x90
帧长度1 字节含帧头到校验的总字节数
序列号1 字节0~255 循环,用于丢帧检测
消息类型1 字节区分遥测、遥控、ACK、心跳
载荷N 字节实际参数数据
校验2 字节CRC-16 校验值

打包方式有两种常见策略:定长打包——每帧载荷长度固定,解析简单,适合参数集合稳定的场景;变长打包——按消息类型动态决定载荷长度,灵活但解析复杂。工程上常采用"定长帧头 + 变长载荷"的折中方案。

四、校验机制

链路中常见的校验方式有:奇偶校验(1 位,检错能力弱)、累加和校验(1 字节,实现简单)、CRC-16(2 字节,检错能力强,适合无线链路)、CRC-32(4 字节,用于高可靠性场景)。

CRC-16 的典型计算过程:对帧头到载荷的所有字节按多项式 0x1021 逐位异或移位,最终得到 16 位校验值。接收端用同样算法计算,与收到的校验字段比对,不一致则丢弃该帧并请求重传。

// CRC-16 计算示例(多项式 0x1021,初值 0xFFFF)
uint16_t crc16(uint8_t *data, uint16_t len) {
    uint16_t crc = 0xFFFF;
    for (uint16_t i = 0; i < len; i++) {
        crc ^= (uint16_t)data[i] << 8;
        for (uint8_t j = 0; j < 8; j++) {
            if (crc & 0x8000) crc = (crc << 1) ^ 0x1021;
            else crc <<= 1;
        }
    }
    return crc;
}

五、协议分层

遥测遥控协议通常分为四层:物理层(射频调制、频段、功率)、链路层(帧同步、校验、重传、流控)、网络层(地址路由、多机寻址)、应用层(指令语义、参数编码、状态上报)。

以 MAVLink 为例:物理层是 433 MHz 或 2.4 GHz 射频;链路层负责帧封装与 CRC;网络层用系统 ID 和组件 ID 区分不同飞行器与模块;应用层定义 HEARTBEAT、COMMAND_LONG、GLOBAL_POSITION_INT 等消息。分层的好处是:更换射频模块不影响应用层消息定义,修改指令语义不影响底层校验逻辑。

遥测遥控信息流与协议分层示意 地面站 操作界面 / 任务规划 应用层:指令语义 链路层:帧/校验/重传 物理层:射频收发 天线 / 功放 飞行器 飞控 / 任务执行 应用层:指令解析 链路层:帧/校验/ACK 物理层:射频收发 天线 / 功放 上行遥控指令 航点切换 / 参数修改 / 心跳 下行遥测数据 姿态 / 位置 / 电池 / RSSI 帧结构(示例) 帧头 长度 序列号 消息类型 载荷 N 字节 CRC16 校验失败 → 丢弃并请求重传 协议分层 应用层 → 网络层 → 链路层 → 物理层

六、典型协议与工程实践

工程中常用的遥测遥控协议包括:MAVLink(无人机领域事实标准,轻量、支持多机)、STANAG 4586(北约无人机互操作标准)、CCSDS(航天遥测遥控标准,分层严格)、自定义二进制协议(针对特定链路优化)。

选择协议时需权衡:链路带宽、实时性要求、设备兼容性、开发成本。对于小型多旋翼,MAVLink 已足够;对于长航时固定翼或卫星链路,CCSDS 的可靠性与标准化更有优势。

设计检查清单:
  • 上行指令是否定义了 ACK 与重传策略?
  • 下行遥测是否按更新率分组打包?
  • 帧结构是否包含序列号用于丢帧检测?
  • 校验方式是否与链路误码率匹配?
  • 协议分层是否清晰,便于后续扩展?

理解信息流与协议体系,是后续进行链路预算、抗干扰设计和故障排查的基础。只有把"指令怎么发、数据怎么回、帧怎么组、错怎么查"这四件事想清楚,链路设计才不会停留在纸面。