附录A:四个平台协议入口¶
本附录列出Betaflight、INAV、ArduPilot Copter和PX4固定版本中的协议核验入口。它用于找到权威实现,不替代具体板卡手册、消息定义和测试证据。
固定身份¶
平台与协议依赖的唯一基准表位于专题README的固定版本基线。本附录不复制常量,避免两处维护产生漂移。执行时除平台提交外,还要保存目标板、构建选项、子模块和本地差异。
通用核验顺序¶
- 阅读固定版本发布说明;
- 找到端口配置入口;
- 找到协议帧和解析器;
- 找到消息或命令定义;
- 找到状态门禁和调用方;
- 找到错误计数、日志和测试;
- 对照实际板级引脚和电气路径;
- 在隔离环境捕获并复算。
只找到宏定义不能证明运行时启用;只找到界面选项不能证明目标板具备所需资源。
Betaflight 2026.6.2¶
串行与接收机¶
- 源码标签
src/main/io/serial.c:串行端口资源和功能选择src/main/rx/crsf.c、crsf_protocol.h:CRSFsrc/main/rx/sbus.c、sbus_channels.c:SBUSsrc/main/rx/fport.c:Classic F.Portsrc/main/rx/:其他接收机协议
MSP¶
src/main/msp/msp_serial.c:v1、native v2和v2-over-v1状态机src/main/msp/msp_serial.h:帧头结构src/main/msp/msp_protocol.h:API版本和命令src/main/msp/msp.c:命令分派和响应- MSP API文档
DShot¶
src/main/drivers/dshot.c、dshot.h:组帧、校验和遥测类型src/main/drivers/dshot_bitbang_decode.c:双向返回解码src/main/drivers/dshot_bitbang.c及平台定时器实现:波形和资源- DShot开发文档
图传控制¶
src/main/io/vtx_smartaudio.csrc/main/io/vtx_tramp.csrc/main/io/displayport_msp.csrc/main/io/displayport_msp.h- VTX文档
- DisplayPort文档
验证重点¶
- App版本与固件API是否匹配;
- CLI导出的端口、接收机、DShot和VTX配置;
- 目标板定时器、DMA和反相资源;
- 当前实现的缓冲区上限;
- 未知MSP命令和错误帧行为;
- 接收机丢帧、失联和恢复。
INAV 9.1.0¶
入口¶
- 源码标签
- 官方文档
src/main/io/serial.c及相关目标定义:串行资源src/main/rx/:接收机协议src/main/msp/:MSPsrc/main/drivers/:DShot和底层外设src/main/io/:图传与显示接口
验证重点¶
- INAV与Betaflight具有历史关联,但API版本、命令、默认值和状态机不可直接互换;
- Configurator版本必须与INAV固件匹配;
- 导航、遥测和接收机可能竞争串口与调度资源;
- 导航动作和失联行为应按INAV状态机验证,不从协议帧直接推断;
- 目标板可能裁剪某些协议或改变端口映射。
ArduPilot Copter 4.7.1¶
MAVLink¶
- 源码标签
libraries/GCS_MAVLink/:MAVLink收发、路由和服务modules/mavlink/固定为288b907c384a892c8519bfe271682424b1e1a3a0:生成消息定义- MAVLink基础
- MAVLink 2签名
串行¶
- 串行端口配置
SERIALx_PROTOCOL:逻辑端口功能SERIALx_BAUD和协议相关参数:速率- 具体
x到实体连接器的映射:板卡手册
DroneCAN¶
libraries/AP_DroneCAN/modules/DroneCAN/DSDL固定为04e0e818b06c180eb1720fcdf16484d0f12895eemodules/DroneCAN/libcanard固定为601ed35467e0ac38819df17cd7c918de19f62d58- DroneCAN设置
验证重点¶
Copter-4.7.1标签、子模块和板级构建;- MAVLink方言、消息率、路由和签名策略;
- 系统ID/组件ID只用于寻址;
- 参数、任务和命令微服务的状态门禁;
- CAN节点ID、总线速率、终端和数据类型;
- 地面站版本与参数元数据。
PX4 v1.17.0¶
MAVLink¶
- 源码标签
src/modules/mavlink/:MAVLink实例、流、接收和命令src/modules/mavlink/mavlink子模块固定为33af200d25ec6f0925b49b1ba82bbf1294ea5f72- MAVLink模块
串行和端口¶
- 串口配置
ROMFS/px4fmu_common/init.d/:启动和实例配置boards/:板级端口和构建src/drivers/:外设协议
DShot与DroneCAN¶
验证重点¶
- 参数元数据默认值与启动脚本实际覆盖分开;
- 每个MAVLink实例的模式、速率和转发;
- uORB消息与MAVLink消息不是同一数据结构;
- QGroundControl显示不能替代飞控内部状态;
- DroneCAN、Cyphal和厂商CAN设备的协议边界;
- 目标板输出资源和DShot能力。
协议入口矩阵¶
| 协议或功能 | Betaflight | INAV | ArduPilot | PX4 |
|---|---|---|---|---|
| CRSF/SBUS | 接收机驱动 | 接收机驱动 | RC输入驱动 | RC输入驱动 |
| MSP | 主要配置API | 配置API | 非主要配置路径 | 非主要配置路径 |
| MAVLink | 有限或特定用途,按源码 | 按固定版本核对 | 主要地面协议 | 主要地面协议 |
| DShot | 驱动与电机输出 | 驱动与电机输出 | 输出后端 | 输出驱动 |
| DroneCAN | 按固定版本能力 | 按固定版本能力 | AP_DroneCAN | UAVCAN驱动 |
| SmartAudio/Tramp | VTX驱动 | VTX驱动 | 按外设支持核对 | 按外设支持核对 |
| DisplayPort | MSP OSD | MSP OSD | 按适配核对 | 按适配核对 |
“非主要路径”不表示绝对不支持;它表示不能沿用另一平台的配置和行为假设。
固定源码链接¶
- Betaflight 2026.6.2
- INAV 9.1.0
- ArduPilot Copter 4.7.1
- PX4 v1.17.0
- CRSF规范固定提交
- DroneCAN规范固定提交
- Cyphal规范固定提交
- MAVLink C参考库固定提交
- Extended DShot Telemetry固定提交
使用限制¶
- 滚动文档用于发现入口,最终结论回到固定版本;
- 源码存在功能不代表目标板编译启用;
- 参数存在不代表当前端口、电气和外设支持;
- 模拟器通过不代表实体电气链路通过;
- 无桨台架通过不代表装桨、额定载荷或飞行通过;
- 专题核验不授予任何飞行、射频或产品合规许可。