飞控与导航定位接口控制文档
| 字段 | 内容 |
|---|---|
| 文档编号 | ICD-03-V0.1 |
| 版本 | V0.1 |
| 状态 | 草稿 |
| 作者 | 产品团队 |
| 日期 | 2026-04-14 |
| 审核人 | — |
| 接口双方 | 飞控系统 (FC) ↔ 导航定位系统 (NAV) |
修订记录
| 版本 | 日期 | 修订人 | 修订内容 |
|---|---|---|---|
| V0.1 | 2026-04-14 | 产品团队 | 初稿 |
1. 概述
1.1 目的
本文档定义飞控系统(FC)与导航定位系统(NAV)之间的接口规范,包括物理层连接、通信协议、消息帧格式、数据更新频率和安全约束。作为飞控固件和GNSS/RTK模块集成开发、联调测试的接口依据。
1.2 适用范围
- 适用于飞控系统与飞行器端GNSS+RTK模块之间的串口通信
- 本文档定义的协议兼容MAVLink v2和标准NMEA/UBX协议
1.3 关联文档
| 文档编号 | 文档名称 | 关系 |
|---|---|---|
| SUB-FC-V0.1 | 飞控系统PRD | 接口一方(数据消费方) |
| SUB-NAV-V0.1 | 导航定位系统PRD | 接口另一方(数据提供方) |
| PRD-MASTER-V0.1 | 总体产品需求文档 | 上位需求 |
| SUB-RC-V0.1 | 遥控器系统PRD | RTK差分数据中继路径 |
1.4 术语定义
| 术语 | 定义 |
|---|---|
| FC | 飞控系统(Flight Controller) |
| NAV | 导航定位系统(Navigation & Positioning) |
| GNSS | 全球导航卫星系统(Global Navigation Satellite System) |
| RTK | 实时动态差分定位(Real-Time Kinematic) |
| NMEA | 美国国家海洋电子协会协议(National Marine Electronics Association) |
| UBX | u-blox私有二进制协议 |
| RTCM | 国际海事无线电技术委员会差分数据格式(Radio Technical Commission for Maritime Services) |
| MAVLink | 轻量级无人机通信协议(Micro Air Vehicle Link) |
| PVT | 位置-速度-时间解算(Position-Velocity-Time) |
| TTFF | 首次定位时间(Time To First Fix) |
2. 物理层
2.1 接口类型
| 参数 | 规格 |
|---|---|
| 接口标准 | UART(异步串口) |
| 信号电平 | 3.3V TTL |
| 波特率 | 460800 bps(默认),支持可配置:115200 / 230400 / 460800 / 921600 bps |
| 数据格式 | 8N1(8数据位,无校验,1停止位) |
| 串口数量 | 2路UART(见2.4拓扑说明) |
备注:若GNSS模块支持CAN接口(如部分RTK模块),可考虑使用CAN总线替代UART2作为RTK差分数据输入通道,但V1.0以双UART为基线。
2.2 线束规格
| 参数 | 规格 |
|---|---|
| 导线 | 多芯线缆(TX/RX/GND/VCC),截面积≥0.2mm²(AWG24) |
| 屏蔽 | 推荐带屏蔽层,减少电调/电机EMI对串口信号的干扰 |
| 线缆最大长度 | ≤50cm(飞控板至GNSS模块) |
2.3 连接器
| 参数 | 规格 |
|---|---|
| 连接器类型 | [TBD — 待硬件团队确认,建议GH1.25-6P或JST同等防水连接器] |
| UART1引脚定义 | Pin1: VCC(5V), Pin2: TX(FC→NAV), Pin3: RX(FC←NAV), Pin4: GND |
| UART2引脚定义 | Pin1: VCC(5V), Pin2: TX(FC→NAV), Pin3: RX(FC←NAV), Pin4: GND |
| 防护要求 | 连接器应具备防水密封(匹配IP56),且耐振动 |
| 锁紧机构 | 应具备机械锁紧,防止振动脱落 |
2.4 接线拓扑
UART1(导航数据主通道)
[飞控 FC] ←──────────────────────────→ [GNSS+RTK模块]
TX1 ──→ RX TX ──→ RX1
UART2(RTK差分数据输入)
[飞控 FC] ──────────────────────────→ [GNSS+RTK模块]
TX2 ──→ RTCM_IN
↑
RTK差分数据来源:
├── D-RTK 3基站 → 直连数据链 → 遥控器 → 飞控 → UART2
└── 4G网络 → NTRIP客户端 → 飞控 → UART2双UART设计说明:
| 通道 | 用途 | 方向 | 波特率 |
|---|---|---|---|
| UART1 | 导航PVT数据输出(位置/速度/时间/RTK状态) | NAV→FC 为主,FC→NAV 配置指令 | 460800 bps |
| UART2 | RTK差分数据(RTCM3)输入 | FC→NAV(单向) | 460800 bps |
将差分数据输入与导航数据输出分离至两个串口,避免混合传输造成丢包或延迟。
3. 协议层
3.1 协议选型
UART1(导航数据通道)支持两种协议模式,由GNSS模块选型决定:
| 协议模式 | 适用场景 | 说明 |
|---|---|---|
| UBX二进制协议(推荐) | u-blox系列GNSS模块 | 数据紧凑、解析效率高、支持丰富的状态信息 |
| NMEA文本协议(备选) | 通用GNSS模块 | 兼容性好,但数据冗余大、精度受限(小数位数) |
UART2(RTK差分通道)固定使用 RTCM 3.x 格式。
V1.0推荐使用UBX协议,后续根据模块选型确定。以下消息定义同时给出UBX和NMEA两种映射。
3.2 UART1 消息定义 — NAV→FC(导航数据输出)
3.2.1 定位数据消息(PVT)
UBX映射:UBX-NAV-PVT (0x01 0x07)
| 字段 | 数据类型 | 单位 | 说明 |
|---|---|---|---|
| iTOW | U4 | ms | GPS时间(周内毫秒) |
| year/month/day | U2/U1/U1 | — | UTC日期 |
| hour/min/sec | U1/U1/U1 | — | UTC时间 |
| fixType | U1 | — | 定位类型:0=无定位, 2=2D, 3=3D, 4=GNSS+DR, 5=仅DR |
| flags | X1 | — | 定位标志位(见flags定义) |
| numSV | U1 | — | 参与解算的卫星数 |
| lon | I4 | 1e-7 deg | 经度(WGS84) |
| lat | I4 | 1e-7 deg | 纬度(WGS84) |
| height | I4 | mm | 椭球高度 |
| hMSL | I4 | mm | 平均海平面高度 |
| hAcc | U4 | mm | 水平定位精度估计 |
| vAcc | U4 | mm | 垂直定位精度估计 |
| velN | I4 | mm/s | 北向速度 |
| velE | I4 | mm/s | 东向速度 |
| velD | I4 | mm/s | 下向速度 |
| gSpeed | I4 | mm/s | 地速 |
| headMot | I4 | 1e-5 deg | 运动航向 |
NMEA映射:$GNGGA + $GNRMC + $GNVTG
更新频率:10 Hz(每100ms输出一帧)
3.2.2 RTK状态消息
UBX映射:UBX-NAV-RELPOSNED (0x01 0x3C)(双天线/基站-移动站相对位置)
| 字段 | 数据类型 | 单位 | 说明 |
|---|---|---|---|
| refStationId | U2 | — | 参考基站ID |
| relPosN | I4 | cm | 相对北向偏移 |
| relPosE | I4 | cm | 相对东向偏移 |
| relPosD | I4 | cm | 相对下向偏移 |
| relPosLength | U4 | cm | 基线长度 |
| relPosHeading | I4 | 1e-5 deg | 基线航向(双天线模式) |
| accN / accE / accD | U4 | 0.1mm | 精度估计 |
| flags | X4 | — | 状态标志(见下表) |
flags 关键位定义:
| 位 | 含义 |
|---|---|
| bit0 | gnssFixOK — GNSS定位有效 |
| bit2 | relPosValid — 相对位置有效 |
| bit3 | carrSoln=0: 无RTK, =1: 浮点解, =2: 固定解 |
| bit5 | isMoving — 移动站正在运动 |
| bit8 | refPosMiss — 参考站数据丢失 |
| bit9 | refObsMiss — 参考站观测值丢失 |
| bit10 | relPosHeadingValid — 航向有效(双天线) |
更新频率:5 Hz(每200ms输出一帧)
3.2.3 卫星状态消息
UBX映射:UBX-NAV-SAT (0x01 0x35)
| 字段 | 数据类型 | 说明 |
|---|---|---|
| numSvs | U1 | 可见卫星总数 |
| 每颗卫星 | — | gnssId(星座), svId(卫星号), cno(信噪比dBHz), elev(仰角), azim(方位角), flags(使用状态) |
更新频率:1 Hz(用于App卫星信号展示,低优先级)
3.3 UART1 消息定义 — FC→NAV(配置/控制指令)
| 消息 | UBX Class/ID | 用途 | 发送时机 |
|---|---|---|---|
| 模块配置 | UBX-CFG-VALSET | 配置输出频率、串口波特率、星座使能等 | 上电初始化 |
| 冷启动 | UBX-CFG-RST | 模块冷/热重启 | 异常恢复 |
| 保存配置 | UBX-CFG-CFG | 持久化当前配置 | 配置变更后 |
| 时间脉冲配置 | UBX-CFG-TP5 | 配置PPS时间脉冲输出 | 上电初始化 |
3.4 UART2 消息定义 — FC→NAV(RTK差分数据)
飞控从遥控器中继或4G网络NTRIP客户端接收RTK差分数据后,通过UART2透传给GNSS模块。
| 数据格式 | 说明 |
|---|---|
| RTCM 3.x | 标准RTK差分数据流 |
关键RTCM消息类型:
| 消息号 | 说明 | 备注 |
|---|---|---|
| 1005/1006 | 基站坐标 | 必须 |
| 1074/1084/1094/1124 | GPS/GLONASS/Galileo/BDS MSM4观测值 | 按星座选用 |
| 1077/1087/1097/1127 | GPS/GLONASS/Galileo/BDS MSM7观测值(高精度) | 推荐 |
| 1230 | GLONASS码间偏差 | GLONASS启用时需要 |
差分数据龄期要求:差分数据龄期(Age of Differential)应≤5s,超过5s时GNSS模块将自动降级至浮点解或单点定位。
4. 时序与频率要求
4.1 上电初始化时序
t=0 飞控系统上电
t=0~500ms 飞控完成自检,向GNSS模块供电(5V使能)
t=500ms GNSS模块上电,开始搜星
t=500~1s 飞控通过UART1发送配置指令(星座使能、输出频率、波特率等)
t=1s GNSS模块应答配置完成(UBX-ACK)
t=1s~ GNSS模块开始周期输出PVT数据(10Hz)
t=≤30s 冷启动首次定位(单点)
t=≤60s RTK首次收敛至固定解(差分数据可用时)4.2 数据更新周期
| 消息 | 频率 | 周期 | 优先级 |
|---|---|---|---|
| PVT定位数据 | 10 Hz | 100 ms | 最高 — 飞控主循环依赖 |
| RTK状态/基线 | 5 Hz | 200 ms | 高 — 航线精度依赖 |
| 卫星状态 | 1 Hz | 1000 ms | 低 — 仅App显示用 |
注:NAV模块PVT输出10Hz,飞控姿态环≥400Hz。飞控通过EKF2以≥200Hz对10Hz定位数据进行插值融合(结合IMU惯性数据),满足高频控制环需求。 | RTCM差分输入 | 1 Hz(由基站/CORS决定) | ~1000 ms | 高 — RTK解算依赖 |
4.3 延迟要求
| 指标 | 要求 |
|---|---|
| PVT数据从解算完成到飞控接收 | ≤20 ms(串口传输延迟) |
| RTCM差分数据从飞控收到到转发至GNSS模块 | ≤50 ms(飞控透传延迟) |
| 飞控配置指令到GNSS模块应答 | ≤500 ms |
4.4 数据有效性判断
飞控对导航数据的有效性判断规则:
| 条件 | 判断结果 | 飞控动作 |
|---|---|---|
| fixType≥3 且 numSV≥6 且 hAcc≤5000mm | 定位有效(单点) | 允许普通飞行 |
| 上述 + carrSoln=2 且 hAcc≤100mm | 定位有效(RTK固定) | 允许精准作业 |
| carrSoln=1 且 hAcc≤500mm | 定位有效(RTK浮点) | 允许飞行,告警精度降级 |
| fixType<3 或 numSV<4 | 定位无效 | 切换姿态模式,禁止自动作业 |
| PVT数据超时>500ms | 数据丢失 | 告警,启用IMU推算 |
5. 安全与故障处理
5.1 通信故障检测
| 编号 | 故障场景 | 检测机制 | 处理方式 |
|---|---|---|---|
| ICD-03-S-001 | UART1通信中断(PVT数据停止) | 飞控监测PVT数据超时>500ms | 告警+切换姿态模式+启用IMU航位推算 |
| ICD-03-S-002 | UART2通信中断(差分数据停止) | 飞控监测RTCM数据超时>5s | 告警RTK降级+继续单点定位飞行 |
| ICD-03-S-003 | GNSS模块无响应(配置指令无ACK) | 飞控重发3次,间隔200ms | 3次重发失败后报告模块故障 |
| ICD-03-S-004 | 串口数据帧校验错误 | UBX校验和/NMEA校验位验证 | 丢弃错误帧,不影响后续数据 |
| ICD-03-S-005 | 位置数据异常跳变(>10m/s) | 飞控对连续两帧位置做速度校验 | 丢弃异常帧+告警+使用上一有效帧 |
5.2 接口需求编号
| 编号 | 需求描述 | 优先级 | 验证方式 |
|---|---|---|---|
| ICD-03-I-001 | GNSS模块应在上电后≤1s内开始输出PVT数据(即使尚未定位,fixType=0) | P0 | 时序测试 |
| ICD-03-I-002 | 飞控应在接收到PVT数据后≤10ms内完成解析并更新导航状态 | P0 | 延迟测试 |
| ICD-03-I-003 | RTK差分数据透传延迟(飞控收到到转发至UART2)应≤50ms | P0 | 延迟测试 |
| ICD-03-I-004 | UART通信误码率应≤1e-6(在EMI环境下) | P0 | EMC环境串口测试 |
| ICD-03-I-005 | GNSS模块应支持热重启(UBX-CFG-RST),重启后≤5s恢复PVT输出 | P0 | 重启恢复测试 |
6. 接口验收标准
6.1 必须通过项
| 测试项 | 通过标准 | 对应编号 |
|---|---|---|
| PVT数据连续输出 | 上电后连续10Hz输出PVT,无丢帧(测试1小时) | ICD-03-I-001 |
| RTK差分透传 | 差分数据龄期≤2s,RTK固定解成功率≥95% | ICD-03-I-003 |
| RTK状态正确上报 | 固定解/浮点解/单点状态切换正确反映在carrSoln字段 | 3.2.2 |
| 通信中断恢复 | 拔插串口线后≤3s自动恢复数据通信 | ICD-03-S-001 |
| 位置跳变过滤 | 注入异常位置帧后飞控正确过滤,不执行异常动作 | ICD-03-S-005 |
6.2 应当通过项
| 测试项 | 通过标准 | 对应编号 |
|---|---|---|
| EMI环境稳定性 | 电机全速运转时串口通信无异常 | ICD-03-I-004 |
| 高温/低温运行 | 0°C/40°C环境下连续1小时通信正常 | — |
7. 待决事项
| 编号 | 事项描述 | 责任人 | 影响范围 |
|---|---|---|---|
| TBD-ICD03-001 | GNSS模块选型确认(决定UBX还是NMEA协议基线) | 硬件团队 | 3.1~3.3 |
| TBD-ICD03-002 | 是否需要PPS时间脉冲硬件连接(用于飞控精确时间同步) | 飞控+硬件团队 | 2.3连接器定义 |
| TBD-ICD03-003 | 连接器具体型号选型 | 硬件团队 | 2.3 |
| TBD-ICD03-004 | 双天线航向是否在UART1同一通道输出,还是需要额外串口 | 硬件+飞控团队 | 2.4, 3.2.2 |
文档结束
