多重无线串行协议(MSP)

ArduPilot 通过其任意串行端口支持用于遥测、OSD 和传感器的 MSP 协议。这样,ArduPilot 就能将遥测数据发送到 MSP 兼容设备(如大疆护目镜)上,以进行屏幕显示(OSD)(请参见 MSP OSD).当设置为 MSP 协议(即 betaflight/Inav)时,外部 OSDS(如 MWOSD)也可以使用它。

协议概述

MSP 是所有 Betaflight 衍生飞行堆栈使用的主要通信协议。它是一种基于二进制信息的协议,用于控制、遥测和传感器。ArduPilot 的 MSP 协议模块移植自 Betaflight 和 iNav,同时支持 MSPV1 和 MSPV2。

目前,ArduPilot 实现支持

  • MSP 遥测

  • MSP 遥测 OSD,如 DJI FPV 护目镜、FatShark 的 ByteFrost 和 SharkByte、MWOSD

  • MSP DisplayPort OSD,如 FatShark 的 Shark Byte 和 MWOSD

  • MSP 传感器,如激光雷达、光流、GPS、气压计、磁力计和空速传感器

不支持通过 MSP 协议配置 ArduPilot,因此 Betaflight 配置器无法工作。

配置

MSP 需要一个空闲的串行端口,其速度默认为 115200 波特。下面的示例使用 SERIAL2。

通过串行协议可选择 3 个 MSP 后端:

  • serial2_protocol = 33 用于 DJI FPV 或 RE 护目镜

  • serial2_protocol = 32 用于传感器或通用 MSP 遥测,MWOSD 配置为 MSP 遥测

  • serial2_protocol = 42 用于 DisplayPort OSD(又称 CANVAS MODE),如 FatShark 的 SharkByte

备注

有两种不同的协议,以尽量保持与大疆不断发展的硬件的兼容性。

何时 serial2_protocol = 选择 33 时,协议解码器可在轮询模式(默认)或 "遥测推送 "模式下工作。在轮询模式下工作时,TX 和 RX 都必须连接到 MSP 遥测收发器。在推送模式下,只使用 TX 线路。要启用推送模式,只需设置 MSP_OPTIONS 将第 0 位设置为 "1";禁用时将其设置为 "0"(默认值)。

两种协议都支持 MSP 传感器,如 Matek 3901-L0X。