Skip to content

飞控与App远程接口(4G)控制文档

字段内容
文档编号ICD-07-V0.1
版本V0.1
状态草稿
作者产品团队
日期2026-04-15
审核人[待定]
接口双方飞控系统 (FC) ↔ 操控App系统 (APP),经4G LTE网络

修订记录

版本日期修订人修订内容
V0.12026-04-15产品团队初稿
V0.22026-04-16产品团队架构澄清修订:OcuSync→直连数据链;MQTT→MAVLink TCP + REST分离架构

1. 概述

1.1 目的

本文档定义飞控系统与操控App之间通过4G LTE网络进行远程通信的接口规范,包括4G模块部署、远程遥测数据传输、远程指令下发、远程图传、云平台对接及安全认证机制。作为飞控固件团队、App开发团队和云平台团队协同开发的技术依据。

1.2 接口范围

本接口覆盖以下远程通信链路:

  • 飞行器端:飞控系统通过机载4G模块接入移动网络,与云平台服务器建立持久连接
  • App端:操控App通过遥控器Wi-Fi/4G网络接入云平台服务器,获取远程遥测数据并下发远程指令
  • 通信路径:飞行器(4G) → 云平台服务器 → App(Wi-Fi/4G)

注意:本接口为直连数据链的增强/备份通道,非主要通信链路。主通信链路为App通过AR8131数据链直接与飞控进行MAVLink通信(ICD-02定义)。

1.3 关联文档

文档编号文档名称
SUB-FC-V0.1飞控系统PRD
SUB-APP-V0.1操控App系统PRD
SUB-RC-V0.1遥控器系统PRD
ICD-02-V0.1飞控与遥控器接口
ICD-06-V0.1遥控器与操控App接口
PRD-MASTER-V0.1总体产品需求文档

1.4 术语定义

术语定义
4G LTE第四代移动通信技术,Long Term Evolution
MAVLink TCP Relay云端MAVLink透传中继服务,不解析不转换MAVLink消息,仅做TCP会话转发
TLSTransport Layer Security,传输层安全协议
mTLS双向TLS认证,设备和服务端互相验证证书
HMACHash-based Message Authentication Code,基于哈希的消息认证码
Token令牌,用于身份验证的临时凭证
Heartbeat心跳包,此处特指MAVLink HEARTBEAT消息
REST API基于HTTP的业务接口(用户认证、OTA、作业记录等)
OTAOver-The-Air,空中固件升级

2. 系统架构

2.1 架构决策说明

我们选择"MAVLink TCP直连 + REST API分离"的混合架构,而非全MQTT方案。

2.1.1 架构对比与选型理由

维度方案A:MAVLink TCP + REST(采用)方案B:全MQTT(原方案,弃用)
前期开发量——App已有MAVLink协议栈,4G通道只是换个socket,代码复用率高——需额外开发MAVLink↔JSON转换层、MQTT客户端、Broker部署
协议栈数量App维护1套(MAVLink),云端REST独立App维护2套(MAVLink + MQTT),飞行器端也需MQTT客户端
实时性直接TCP转发,延迟低多一层Broker转发 + JSON序列化,延迟高
直连/4G代码复用完全复用——App看到的都是MAVLink,底层transport不同而已不可复用——两条链路协议完全不同
一对多订阅不擅长(TCP是点对点)擅长(Pub/Sub天然支持多订阅者)
离线消息不支持支持(QoS 1/2 + 持久会话)
机队管理看板需另建REST/WebSocket推送原生支持多客户端订阅同一Topic
生态兼容QGC/Mission Planner原生支持MAVLink TCP远程连接需定制开发

2.1.2 选择方案A的核心理由

  1. 前期开发难度最低:App团队只写一套MAVLink协议栈,直连和4G两条路径在transport层切换,业务代码零修改
  2. 团队资源现实:当前没有专职后端团队,全MQTT方案需要额外的Broker运维和协议转换开发
  3. 种子用户阶段够用:100台设备,不需要一对多实时订阅,TCP relay足够
  4. 渐进式升级路径清晰:未来当机队规模扩大、需要多人同时监控多机时,可在云端TCP relay后面加一层MQTT fanout,App端无需改动

2.1.3 未来迭代升级路径

V1.0(种子用户100台):
  MAVLink TCP relay(云端纯转发) + REST API(基础业务)
  → 开发量最小,快速上线

V1.5(规模扩大至1000台):
  TCP relay + REST API + WebSocket推送(机队看板实时更新)
  → 在REST层加WebSocket,不动MAVLink通道

V2.0(万台级别):
  TCP relay → MQTT fanout层(多订阅者)
  → 仅在云端relay后面加MQTT Broker做消息分发
  → App端仍然收MAVLink,由Broker负责协议桥接
  → App代码不变,只是云端架构升级

2.2 通信架构

实时通道(MAVLink TCP Relay):
  飞行器(4G) ──TCP──→ 云端MAVLink Relay ──TCP──→ App
  (MAVLink v2二进制流直接透传,云端不解析不转换)

业务通道(REST API):
  App ←──HTTPS──→ 云平台后端服务
  (用户认证、OTA、作业记录、GEO围栏、机队管理)
┌─────────────────────────────────────────────────┐
│                   飞行器端                        │
│                                                  │
│  ┌──────┐   UART/USB   ┌──────────────┐         │
│  │ 飞控  │ ───────────→ │  4G通信模块   │         │
│  │ (FC) │ ←─────────── │  (LTE Cat.4) │         │
│  └──────┘   MAVLink     │  含SIM卡槽   │         │
│                         │  含GPS(备用)│         │
│                         └──────┬───────┘         │
│                                │ TCP over 4G LTE │
└────────────────────────────────┼─────────────────┘

                        ┌────────▼────────┐
                        │   移动运营商网络   │
                        └────────┬────────┘

                        ┌────────▼────────┐
                        │   云平台服务器    │
                        │  MAVLink TCP    │
                        │  Relay服务      │
                        │  REST API服务   │
                        │  视频流中继      │
                        └────────┬────────┘
                                 │ TCP / HTTPS
                        ┌────────▼────────┐
                        │   操控App端      │
                        │  (经RC Wi-Fi    │
                        │   或4G上网)     │
                        └─────────────────┘

2.3 4G模块硬件要求

项目规格
通信制式4G LTE Cat.4(下行150Mbps / 上行50Mbps)
频段B1/B3/B5/B8/B34/B38/B39/B40/B41(覆盖中国移动/联通/电信主要频段)
SIM卡Micro SIM或eSIM,支持物联网卡
天线外置LTE天线,安装于飞行器机身上方,避开螺旋桨遮挡
与飞控接口UART(波特率921600bps)或USB 2.0
供电DC 5V/2A,由飞行器电源分配板供电
工作温度-20°C ~ 60°C
安装位置飞行器机身中部上方,远离电调/电机高频干扰源

飞行器4G模块通过TCP连接云端MAVLink Relay服务,发送标准MAVLink v2消息流(与直连链路格式完全一致)。Relay服务不解析不转换MAVLink消息,仅做TCP会话级转发。

编号参数规格备注
ICD-07-R-001传输协议TCP over TLS 1.2+mTLS认证(设备证书)
ICD-07-R-002Relay服务端口[TBD]飞行器端和App端各一个TCP端口
ICD-07-R-003消息格式MAVLink v2二进制帧与直连链路完全一致,Relay透传
ICD-07-R-004心跳检测MAVLink HEARTBEAT消息(1Hz)30秒无心跳判定断连
ICD-07-R-005设备-用户绑定Relay根据绑定关系转发验证设备证书后建立TCP会话

3.2 遥测数据采集说明

以下精简包/完整包字段定义保留为说明性文档,描述MAVLink流中哪些消息被Relay旁路采集用于云端存储,不再作为独立的封装格式。

精简包字段(Relay旁路采集,1Hz写入时序数据库):

字段来源MAVLink消息说明
timestamp采集时间Unix时间戳(ms)
lat, lonGLOBAL_POSITION_INT(33)经纬度
alt_relGLOBAL_POSITION_INT(33)相对高度
headingVFR_HUD(74)航向
speed_h, speed_vVFR_HUD(74)速度
bat_pctSYS_STATUS(1)电池电量
gps_fix, sat_countGPS_RAW_INT(24)定位状态
flight_modeHEARTBEAT(0)飞行模式
spray_state, tank_pct自定义消息50001喷洒状态

完整包字段(Relay旁路采集,0.2Hz写入):

在精简包基础上追加:

字段来源MAVLink消息说明
bat_voltage, bat_tempBATTERY_STATUS(147)电池详情
motor_status自定义消息电机状态
area_done, spray_volume自定义消息50001作业进度
oa_front/rear/left/right/down自定义消息50003避障距离

3.3 连接管理

需求编号需求描述优先级
ICD-07-I-001飞行器4G模块开机后应自动建立TCP连接至Relay服务,使用mTLS加密传输P0
ICD-07-I-002连接建立后通过MAVLink HEARTBEAT消息保活,30秒无心跳判定连接断开P0
ICD-07-I-003连接断开后应在5秒内自动重连,最多重试10次,重试间隔指数退避(5s/10s/20s/40s...)P0
ICD-07-I-0044G信号弱(RSSI < -100dBm)时,MAVLink消息流自动降级(降低非关键消息频率)P1
ICD-07-I-005飞行器端应缓存最近60秒的MAVLink消息,网络恢复后补发缓存数据(带时间戳排序)P1

4. 远程指令下发接口

4.1 指令分类与权限

远程指令按安全等级分为三级(保持不变):

安全等级说明认证要求示例指令
L1 — 查询类只读操作,无飞行安全风险Token认证查询飞行器状态、查询作业记录
L2 — 安全操作类趋向安全的主动保护指令Token + HMAC签名一键返航、紧急停机
L3 — 控制类可能影响飞行安全的操控指令Token + HMAC签名 + 时间窗口验证远程起飞(V1.0不支持)、航线修改(V1.0不支持)

V1.0 仅支持 L1 和 L2 级别指令,L3 级别指令不在 V1.0 范围内。

4.2 指令传输方式

远程指令通过同一TCP连接发送标准MAVLink COMMAND_LONG(MSG ID:76)/ COMMAND_INT(MSG ID:75)消息。App通过TCP连接Relay服务,Relay透传指令至飞行器的TCP会话。

L1查询指令:App通过REST API发送(不走MAVLink通道),云端直接从时序数据库返回。

L2安全指令:App通过MAVLink TCP通道发送COMMAND_LONG消息,Relay透传至飞行器。

4.3 支持的远程指令(V1.0)

MAVLink消息命令ID安全等级说明
COMMAND_LONGMAV_CMD_NAV_RETURN_TO_LAUNCH (20)L2一键返航
COMMAND_LONGMAV_CMD_COMPONENT_ARM_DISARM (400) disarmL2紧急停机(disarm)
COMMAND_LONGMAV_CMD_DO_PAUSE_CONTINUE (193) pauseL2暂停当前作业
COMMAND_LONGMAV_CMD_DO_PAUSE_CONTINUE (193) continueL2恢复作业
COMMAND_LONGMAV_CMD_DO_SET_HOME (179)L2设置返航高度

4.4 指令安全机制

需求编号需求描述优先级
ICD-07-I-010TCP会话建立时进行Token+HMAC验证,验证通过后会话内的MAVLink指令免重复认证P0
ICD-07-I-011TCP会话层Token应设置有效期(≤2小时),过期后需重新认证P0
ICD-07-I-012Relay服务应记录所有转发的COMMAND消息(指令审计日志),保留≥1年P0
ICD-07-I-013紧急停机指令应在Relay转发后≤500ms内到达飞行器端P0
ICD-07-I-014飞行器端应在收到COMMAND后通过MAVLink COMMAND_ACK回复执行结果,超时3秒未收到ACK的App端应提示"指令发送超时"P0
ICD-07-I-015当直连数据链正常工作时,远程指令与直连指令冲突的情况下,直连链路指令优先级更高P0
ICD-07-I-016远程指令通道不支持遥控器摇杆实时操控(延迟不满足实时操控要求),仅支持高级指令(返航/停机/暂停/恢复)P0

5. 远程图传接口

5.1 远程图传方案

远程图传为直连数据链图传的低带宽备选方案,适用于超视距作业监控场景。

项目规格
视频编码H.264 Baseline Profile
分辨率480p(854×480)或 360p(640×360),根据带宽自适应切换
帧率10~15 fps(根据带宽自适应调整)
码率300~800 kbps(自适应码率控制)
传输协议WebRTC(首选,P2P穿透减少延迟)或 RTMP/HLS(回退方案,经云平台中继)
端到端延迟目标≤2 秒(WebRTC P2P场景)/ ≤5 秒(云平台中继场景)

5.2 远程图传需求

需求编号需求描述优先级
ICD-07-I-020飞行器端4G模块应支持将FPV相机视频流编码为H.264并通过4G网络上传P2
ICD-07-I-021远程图传应支持自适应码率控制,根据4G上行带宽动态调整分辨率和帧率P2
ICD-07-I-022当4G上行带宽不足300kbps时,应自动暂停图传推流,仅保留遥测数据上报P2
ICD-07-I-023App端应在远程图传画面上叠加"远程图传"水印标识,与本地直连图传区分P2
ICD-07-I-024远程图传功能应支持手动开启/关闭,默认关闭以节省流量P2

注意:远程图传为V1.0可延后功能(Master PRD C-02),V1.0版本优先保证远程遥测和远程指令功能。


6. 云平台对接接口

6.1 云平台架构概述

┌────────────────────────────────────────────────────┐
│                    云平台服务器                       │
│                                                     │
│  ┌───────────┐  ┌───────────┐  ┌───────────────┐   │
│  │ MAVLink   │  │ Web API   │  │ 视频流中继     │   │
│  │ TCP Relay │  │ (REST)    │  │ (WebRTC/RTMP) │   │
│  │           │  │           │  │               │   │
│  │ MAVLink流  │  │ 用户认证   │  │ 远程图传中继   │   │
│  │ 透传转发   │  │ 设备管理   │  │               │   │
│  │ 旁路采集   │  │ GEO数据库  │  │               │   │
│  └───────────┘  │ 固件分发   │  └───────────────┘   │
│                  │ 作业数据   │                      │
│                  └───────────┘                      │
│                                                     │
│  ┌───────────────────────────────────────────────┐  │
│  │                数据存储层                       │  │
│  │  · 设备注册表  · 遥测时序数据  · 作业记录      │  │
│  │  · 用户账号    · GEO围栏数据  · 固件版本库     │  │
│  │  · 指令审计日志                                │  │
│  └───────────────────────────────────────────────┘  │
└────────────────────────────────────────────────────┘

6.2 云平台API接口

API路径方法说明认证
/api/v1/auth/loginPOST用户登录,获取JWT Token账号密码
/api/v1/auth/refreshPOST刷新TokenRefresh Token
/api/v1/devicesGET获取用户绑定的设备列表JWT
/api/v1/devices/{id}/bindcodePOST设备绑定(扫码/手动输入)JWT
/api/v1/devices/{id}/statusGET获取设备在线状态和最新遥测JWT
/api/v1/devices/{id}/telemetryGET查询历史遥测数据(时间范围查询)JWT
/api/v1/devices/{id}/missionsGET查询作业记录列表JWT
/api/v1/devices/{id}/cmdPOST下发L1查询类远程指令(云端直接返回)JWT
/api/v1/relay/statusGETMAVLink TCP Relay服务状态(在线设备数、连接数)JWT(管理员)
/api/v1/relay/sessionsGET查看当前活跃TCP会话列表JWT(管理员)
/api/v1/relay/sessions/{id}/disconnectPOST强制断开指定设备TCP会话JWT(管理员)
/api/v1/geo/zonesGET查询GEO围栏数据(按区域查询)JWT
/api/v1/firmware/{model}/latestGET查询最新固件版本JWT
/api/v1/firmware/{model}/{version}GET下载固件包JWT
/api/v1/maps/uploadPOST上传航测高清地图JWT
/api/v1/maps/listGET获取用户高清地图列表JWT

6.3 云平台对接需求

需求编号需求描述优先级
ICD-07-I-030云平台服务器应部署于中国境内机房,满足数据安全法要求P0
ICD-07-I-031云平台应支持≥10,000台设备同时在线的并发连接P1
ICD-07-I-032云平台API应采用HTTPS(TLS 1.2+)加密传输P0
ICD-07-I-033云平台应提供GEO围栏数据库,支持App定期同步最新围栏数据(增量更新)P0
ICD-07-I-034云平台应提供固件版本管理和OTA分发服务,支持灰度发布和版本回滚P1
ICD-07-I-035云平台遥测数据保留周期≥90天,作业记录保留周期≥1年P1

7. 安全认证机制

7.1 设备认证

需求编号需求描述优先级
ICD-07-I-040每台飞行器出厂时应预置唯一的设备证书(X.509),用于4G连接时的双向TLS认证P0
ICD-07-I-041设备证书应由产品CA签发,私钥存储于飞行器端安全存储区(Secure Element或加密Flash),不可导出P0
ICD-07-I-0424G模块连接TCP Relay时应使用设备证书进行mTLS(双向TLS)认证,Relay验证设备身份后建立TCP会话P0

7.2 用户认证

需求编号需求描述优先级
ICD-07-I-045App用户登录采用账号+密码+短信验证码双因素认证P0
ICD-07-I-046JWT Access Token有效期≤2小时,Refresh Token有效期≤7天P0
ICD-07-I-047用户下发远程指令时,App应在指令消息中附加HMAC-SHA256签名,签名密钥由服务端会话密钥派生P0

7.3 防劫持机制

需求编号需求描述优先级
ICD-07-I-050所有远程指令必须经过时间戳验证(±30秒窗口)和nonce去重(5分钟窗口),防止重放攻击P0
ICD-07-I-051飞行器端应维护指令来源白名单,仅接受已绑定账号的指令,拒绝未知来源的指令P0
ICD-07-I-052设备绑定/解绑操作需通过物理确认(飞行器端按键确认或扫码确认),不可纯远程完成P0
ICD-07-I-053连续3次认证失败后,飞行器端应锁定远程指令通道30分钟,并通过遥测数据上报安全事件P0
ICD-07-I-054云平台应记录所有远程指令的完整审计日志(发送者、指令内容、时间戳、执行结果),保留≥1年P0

8. 性能需求

编号性能指标目标值优先级
ICD-07-P-001遥测数据端到端延迟(飞行器→App)≤3 秒(4G网络正常时)P0
ICD-07-P-002远程指令端到端延迟(App→飞行器)≤2 秒P0
ICD-07-P-0034G模块月均流量消耗(仅MAVLink遥测+指令,无图传)≤300 MB/月(按每天飞行2小时计,MAVLink二进制比JSON更省流量)P1
ICD-07-P-0044G连接建立时间(开机→TCP Relay连接成功)≤15 秒P1
ICD-07-P-005断网重连时间≤10 秒(4G信号恢复后)P1
ICD-07-P-006TCP Relay消息吞吐量≥100 msg/s(单设备)P1

9. 待决事项 (TBD)

编号事项描述责任人期望决定日期影响范围
TBD-ICD07-0014G通信模块选型(型号、供应商)确认硬件团队2025-05模块集成开发
TBD-ICD07-002物联网SIM卡运营商选择及资费方案商务/运营2025-05流量成本控制
TBD-ICD07-003云平台技术选型(MAVLink TCP Relay自研 vs 第三方方案)后端团队2025-05云平台架构
TBD-ICD07-004远程图传WebRTC方案的NAT穿透成功率评估通信团队2025-06图传方案选择
TBD-ICD07-005设备证书签发和管理流程设计(产品CA架构)安全团队2025-06设备认证
TBD-ICD07-006V1.0是否支持4G远程遥测(或仅预留4G硬件接口,软件功能V1.5上线)产品经理2025-05开发范围

附录

附录A:需求追溯矩阵

接口需求编号系统级需求来源子系统需求来源验证状态
ICD-07-I-001~005SYS-P-050APP-I-002未验证
ICD-07-I-010~016SYS-S-001APP-F-107未验证
ICD-07-I-020~024SYS-P-050APP-F-101未验证
ICD-07-I-030~035SYS-C-002/004APP-C-002未验证
ICD-07-I-040~054SYS-S-001APP-S-009/010未验证

附录B:消息序列图 — 远程返航指令

App端                  云端TCP Relay             飞行器端(4G)
  │                      │                         │
  │ TCP连接已建立         │   TCP连接已建立(mTLS)    │
  │ (Token认证通过)       │                         │
  │                      │                         │
  │ MAVLink COMMAND_LONG  │                         │
  │ (MAV_CMD_NAV_RTL)    │                         │
  │ ────────────────────→ │                         │
  │                      │ MAVLink COMMAND_LONG     │
  │                      │ (透传,不解析)            │
  │                      │ ──────────────────────→  │
  │                      │                         │ 验证MAVLink签名
  │                      │                         │ 执行返航
  │                      │ MAVLink COMMAND_ACK      │
  │                      │ ←──────────────────────  │
  │ MAVLink COMMAND_ACK   │                         │
  │ ←──────────────────── │                         │
  │                      │                         │
  │  [Relay旁路记录指令审计日志]                      │
  │                      │                         │

菲航户外事业部产品知识库