无人机中继组网

ELRS接收机协议数据格式介绍

  ELRS(ExpressLRS)接收机协议的数据格式设计围绕其核心目标(低延迟、长距离、高可靠性)展开,主要基于 CRSF(Crossfire Serial Protocol) 协议实现双向通信,同时兼容SBUS、PWM等输出格式。以下从数据帧结构、编码方式、校验机制及版本兼容性四个维度进行系统分析:

  一、数据帧结构

无线图传

  ELRS的核心数据格式遵循 CRSF协议规范,其帧结构分为通用帧和扩展帧两类,均采用二进制串行传输(UART接口,波特率420kbps)。

  1. 通用帧结构

字段长度(字节)描述
设备地址(Device Address)1目标设备地址(如广播地址0x00、飞控地址0xC8等)
帧长度(Frame Size)1包含类型、载荷及CRC的总字节数(不含地址与长度字段)
帧类型(Frame Type)1标识数据类型(如0x16=遥控通道,0x1E=链路统计)
有效载荷(Payload)可变具体数据内容(长度由帧长度决定)
CRC校验码1基于多项式0xD5的CRC-8校验值,覆盖地址外的所有字段

  示例:遥控通道数据帧(Type=0x16)

  载荷结构:16个通道数据,每通道11位(共22字节),按Big-Endian排列

  [Ch1低8位][Ch1高3位 + Ch2低5位][Ch2高6位 + Ch3低2位]…

  分辨率:前4通道为10位(0-1023),其余可配置为8/10位

  2. 扩展帧结构

  用于传输复杂数据(如GPS、姿态信息),在通用帧基础上增加子协议标识:

  扩展头:1字节标识子类型(如0x02=GPS数据)

  扩展载荷:结构化数据(如GPS帧包含经纬度、速度、海拔)

  二、编码方式与调制技术

  1. 物理层编码

  LoRa调制:采用Semtech SX1280(2.4GHz)或SX127x(915MHz)射频芯片,使用LoRa扩频技术提升抗干扰性与传输距离

  FLRC模式:高速率(500Hz/1000Hz),低延迟但距离较短

  DVDA模式:重复发送数据包(如D250=重复2次),增强复杂环境可靠性

  频率捷变:基于密码短语(Bind Phrase)生成跳频序列,避免信道冲突

  2. 协议层编码

  纠错编码(FEC) :添加冗余比特,允许接收端自动修复少量误码

  多路径传输:关键数据通过多条路径发送,降低丢包率

  三、校验机制

  采用 双重校验策略 确保数据完整性:

  CRC-8校验

  多项式:0xD5(标准CRC-8-D5算法)

  覆盖范围:从帧长度到载荷结束的所有字节

  计算示例(Python):

  def crc8_d5(data):

  crc = 0

  for byte in data:

  crc ^= byte

  for _ in range(8):

  crc = (crc << 1) ^ 0xD5 if (crc & 0x80) else crc << 1

  return crc & 0xFF

  数据包序号验证:每个数据包携带序列号,接收端检测丢包并触发重传

  四、版本兼容性差异

  ELRS协议迭代中,数据格式兼容性主要受固件版本影响:

版本关键变更与兼容性说明
ELRS V2.x– 新增SBUS输出(Type=0x00),兼容传统飞控
– 引入PWM多通道映射(通过WiFi配置)
ELRS V3.0+– 移除STM32硬件支持,仅保留ESP32/ESP8285平台
– CRSF帧扩展遥测字段(如电池电压结构优化)
跨版本兼容– 发射端与接收端固件需严格一致,否则绑定失败
– 旧版硬件(如STM32)最高支持V3.5

  五、实际应用建议

  配置优化

  通用场景:500Hz刷新率 + 100mW功率,平衡延迟与能耗

  远距离场景:启用DVDA模式(如D250) + LoRa调制

  调试工具

  使用ExpressLRS Configurator解析CRSF数据流

  通过Lua脚本实时调整数据包速率与功率

  ELRS通过紧凑的帧结构(最小帧仅4字节)、高效的纠错编码与严格的版本管理,实现了无人机领域极致的3-7ms端到端延迟。其开源生态持续演进,未来将支持MAVLink等协议扩展应用场景。

滚动至顶部