飞控与避障系统接口控制文档
| 字段 | 内容 |
|---|---|
| 文档编号 | ICD-04-V0.1 |
| 版本 | V0.1 |
| 状态 | 草稿 |
| 作者 | 产品团队 |
| 日期 | 2026-04-14 |
| 审核人 | — |
| 接口双方 | 飞控系统 (FC) ↔ 避障系统 (OA) |
修订记录
| 版本 | 日期 | 修订人 | 修订内容 |
|---|---|---|---|
| V0.1 | 2026-04-14 | 产品团队 | 初稿 |
1. 概述
1.1 目的
本文档定义飞控系统(FC)与避障系统(OA)之间的接口规范,包括物理层连接、通信协议、消息帧格式、数据更新频率和安全约束。作为飞控固件和避障处理单元固件开发、联调测试的接口依据。
1.2 适用范围
- 适用于飞控系统与避障处理单元之间的CAN/UART通信
- 本文档定义的协议为自定义二进制协议
1.3 关联文档
| 文档编号 | 文档名称 | 关系 |
|---|---|---|
| SUB-FC-V0.1 | 飞控系统PRD | 接口一方(避障决策执行方) |
| SUB-OA-V0.1 | 避障系统PRD | 接口另一方(感知数据提供方) |
| PRD-MASTER-V0.1 | 总体产品需求文档 | 上位需求 |
1.4 术语定义
| 术语 | 定义 |
|---|---|
| FC | 飞控系统(Flight Controller) |
| OA | 避障系统(Obstacle Avoidance) |
| CAN | 控制器局域网络(Controller Area Network) |
| 障碍物信息帧 | OA→FC,包含障碍物距离、方向、置信度的数据帧 |
| 避障建议帧 | OA→FC,包含避障策略建议(刹停/减速/绕行)的控制帧 |
| 地形高度帧 | OA→FC,下视传感器测量的对地高度数据帧 |
| 飞行状态帧 | FC→OA,当前飞行速度、高度、模式等信息 |
2. 物理层
2.1 接口类型
| 参数 | 规格 |
|---|---|
| 主接口 | CAN 2.0B(推荐) |
| 备选接口 | UART 460800bps(若避障处理单元不支持CAN) |
| 信号电平 | CAN: ISO 11898-2 差分信号 / UART: 3.3V TTL |
| 终端电阻 | CAN总线端各120Ω |
接口选型说明:避障系统数据量大(多传感器高频数据),CAN总线更适合多帧高频通信。若避障处理单元仅支持UART,则使用UART方案,但需注意带宽瓶颈。V1.0根据处理单元选型确定最终方案。
2.2 线束规格
| 参数 | 规格 |
|---|---|
| CAN方案 | 双绞线(CAN_H + CAN_L),截面积≥0.22mm²,带屏蔽 |
| UART方案 | TX/RX/GND多芯线,截面积≥0.2mm² |
| 线缆最大长度 | ≤80cm(飞控板至避障处理单元) |
| 屏蔽要求 | 必须带屏蔽层,屏蔽层单端接地(飞控端),避免电调EMI干扰 |
2.3 连接器
| 参数 | 规格 |
|---|---|
| 连接器类型 | [TBD — 待硬件团队确认] |
| CAN引脚定义 | Pin1: CAN_H, Pin2: CAN_L, Pin3: GND, Pin4: VCC(5V/12V) |
| UART引脚定义 | Pin1: VCC, Pin2: TX(FC→OA), Pin3: RX(FC←OA), Pin4: GND |
| 防护要求 | 防水密封(匹配IP56),耐振动 |
| 锁紧机构 | 机械锁紧,防止振动脱落 |
2.4 接线拓扑
CAN方案:
┌────────────────────────────────────┐
[120Ω] [120Ω]
│ │
[飞控 FC] ────── CAN总线 ────── [避障处理单元 OA]
│
┌─────┼─────┐
↓ ↓ ↓
[前向] [后向] [侧向×2] [下视]
传感器 传感器 传感器 传感器
(避障处理单元内部接口,不在本ICD范围)
UART方案:
[飞控 FC] ←──── UART ────→ [避障处理单元 OA]
TX ──→ RX TX ──→ RX避障处理单元与各传感器模块之间的内部接口由避障系统内部定义,不在本ICD范围内。本ICD仅定义飞控与避障处理单元之间的接口。
3. 协议层
3.1 帧格式
采用自定义二进制帧格式,适用于CAN和UART两种物理层:
CAN方案:使用CAN 2.0B标准帧(11位ID),数据域最大8字节。
UART方案:使用自定义封包格式:
| 帧头(2B) | 消息ID(1B) | 数据长度(1B) | 数据域(N字节) | 校验(2B) |
| 0xAA55 | MSG_ID | LEN | DATA[0..N-1] | CRC16 |3.2 CAN消息ID分配
采用CAN 2.0B标准帧(11位ID),编码规则:
Bit[10:8] Bit[7:4] Bit[3:0]
┌────────┐ ┌───────────┐ ┌─────────┐
│ 优先级 │ │ 消息类型 │ │ 保留 │
│ (3bit) │ │ (4bit) │ │ (4bit) │
└────────┘ └───────────┘ └─────────┘3.3 消息定义 — OA→FC(感知数据上报)
3.3.1 障碍物信息帧
CAN ID: 0x210 / UART MSG_ID: 0x01
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| direction | 0 | U1 | — | 方向编码:0=前, 1=后, 2=左, 3=右, 4=上, 5=下 |
| distance | 1-2 | U2 | cm | 最近障碍物距离(0=无障碍物, 65535=超出探测范围) |
| confidence | 3 | U1 | % | 检测置信度(0-100) |
| obstacle_type | 4 | U1 | — | 障碍物类型:0=未知, 1=建筑, 2=树木, 3=电线杆, 4=电线, 5=其他飞行器 |
| velocity | 5-6 | I2 | cm/s | 障碍物相对径向速度(正=远离, 负=靠近, 0=静止) |
| reserved | 7 | U1 | — | 保留 |
更新频率:20 Hz(每个方向独立上报,轮询模式)
6个方向轮询上报,每个方向实际更新率约3.3Hz。若需更高频率,可通过CAN多帧并发或UART打包多方向数据。
3.3.2 避障建议帧
CAN ID: 0x211 / UART MSG_ID: 0x02
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| action | 0 | U1 | — | 建议动作:0=无需动作, 1=刹停, 2=减速, 3=左绕行, 4=右绕行, 5=上升, 6=下降 |
| urgency | 1 | U1 | — | 紧急程度:0=低(>10m), 1=中(3-10m), 2=高(<3m), 3=紧急(<1m) |
| suggested_speed | 2-3 | U2 | cm/s | 建议限速(0=立即停止) |
| avoidance_heading | 4-5 | I2 | 0.1 deg | 建议绕行航向偏移量(正=右偏, 负=左偏) |
| avoidance_altitude | 6-7 | I2 | cm | 建议高度调整量(正=升高, 负=下降) |
更新频率:10 Hz(综合决策后输出)
3.3.3 地形高度帧
CAN ID: 0x212 / UART MSG_ID: 0x03
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| terrain_height | 0-1 | U2 | cm | 下视传感器测量的对地高度 |
| terrain_confidence | 2 | U1 | % | 测量置信度(0-100) |
| terrain_slope | 3-4 | I2 | 0.1 deg | 地形坡度估计(基于连续测量) |
| surface_type | 5 | U1 | — | 地表类型估计:0=未知, 1=硬地面, 2=作物冠层, 3=水面 |
| reserved | 6-7 | U2 | — | 保留 |
更新频率:20 Hz(仿地飞行依赖,高优先级)
3.3.4 传感器健康状态帧
CAN ID: 0x213 / UART MSG_ID: 0x04
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| sensor_status | 0 | X1 | — | 位掩码:bit0=前视OK, bit1=后视OK, bit2=左视OK, bit3=右视OK, bit4=下视OK, bit5=雷达OK |
| vision_quality | 1 | U1 | % | 视觉系统整体质量(0-100,受光照/遮挡影响) |
| radar_quality | 2 | U1 | % | 雷达系统整体质量(0-100) |
| fault_code | 3-4 | U2 | — | 故障码(0=无故障,详见故障码表) |
| cpu_load | 5 | U1 | % | 避障处理单元CPU负载 |
| temperature | 6 | I1 | °C | 处理单元温度 |
| reserved | 7 | U1 | — | 保留 |
更新频率:2 Hz
故障码表:
| 故障码 | 含义 |
|---|---|
| 0x0000 | 无故障 |
| 0x0001 | 前向视觉传感器故障 |
| 0x0002 | 后向视觉传感器故障 |
| 0x0004 | 左侧视觉传感器故障 |
| 0x0008 | 右侧视觉传感器故障 |
| 0x0010 | 下视传感器故障 |
| 0x0020 | 毫米波雷达故障 |
| 0x0040 | 处理单元过温(>70°C) |
| 0x0080 | 处理单元算力不足(丢帧) |
| 0x0100 | 视觉系统遮挡/脏污告警 |
3.4 消息定义 — FC→OA(控制/状态下发)
3.4.1 飞行状态帧
CAN ID: 0x220 / UART MSG_ID: 0x10
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| flight_mode | 0 | U1 | — | 飞行模式:0=待机, 1=普通挡, 2=姿态挡, 3=航线作业, 4=返航, 5=降落 |
| ground_speed | 1-2 | U2 | cm/s | 当前地速 |
| altitude | 3-4 | I2 | cm | 当前GPS高度(相对起飞点) |
| heading | 5-6 | U2 | 0.1 deg | 当前航向(0-3599) |
| oa_enable | 7 | U1 | — | 避障使能状态:0=关闭, 1=全向避障, 2=仅提醒 |
更新频率:10 Hz
3.4.2 避障参数配置帧
CAN ID: 0x221 / UART MSG_ID: 0x11
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| oa_mode | 0 | U1 | — | 避障模式:0=关闭, 1=全向避障, 2=仅提醒 |
| scene_type | 1 | U1 | — | 作业场景:0=平地, 1=山地, 2=果树, 3=水面 |
| brake_distance | 2-3 | U2 | cm | 刹停触发距离阈值 |
| warning_distance | 4-5 | U2 | cm | 告警触发距离阈值 |
| terrain_follow_height | 6-7 | U2 | cm | 仿地飞行设定高度 |
发送时机:用户在App中修改避障参数时,或作业模式切换时。
4. 时序与频率要求
4.1 上电初始化时序
t=0 飞控系统上电
t=0~500ms 飞控完成自检,向避障处理单元供电
t=500ms 避障处理单元启动,传感器初始化
t=500~3s 避障处理单元完成自检(各传感器标定/预热)
t=3s OA发送首帧传感器健康状态帧(sensor_status)
t=3s~ OA开始周期输出障碍物信息帧/地形高度帧
t=3s~ FC开始周期下发飞行状态帧4.2 数据更新周期汇总
| 消息 | 方向 | 频率 | 周期 | 优先级 |
|---|---|---|---|---|
| 障碍物信息帧 | OA→FC | 20 Hz | 50 ms | 高 |
| 避障建议帧 | OA→FC | 10 Hz | 100 ms | 最高(安全关键) |
| 地形高度帧 | OA→FC | 20 Hz | 50 ms | 高 |
| 传感器健康帧 | OA→FC | 2 Hz | 500 ms | 中 |
| 飞行状态帧 | FC→OA | 10 Hz | 100 ms | 高 |
| 避障参数配置帧 | FC→OA | 按需 | — | 低 |
4.3 延迟要求
| 指标 | 要求 |
|---|---|
| 障碍物出现到OA输出避障建议帧 | ≤200 ms(OA内部处理延迟) |
| 避障建议帧到达飞控到飞控执行动作 | ≤100 ms(飞控响应延迟) |
| 端到端:障碍物出现→飞行器开始制动 | ≤300 ms |
| 地形高度数据到达飞控到高度调整输出 | ≤100 ms |
5. 安全与故障处理
5.1 通信故障检测
| 编号 | 故障场景 | 检测机制 | 处理方式 |
|---|---|---|---|
| ICD-04-S-001 | OA→FC通信中断(所有帧停止) | 飞控监测避障建议帧超时>500ms | 告警"避障系统离线"+限制自动作业+允许手动飞行 |
| ICD-04-S-002 | 地形高度帧停止(但其他帧正常) | 飞控监测地形帧超时>500ms | 仿地飞行切换为气压定高+告警 |
| ICD-04-S-003 | FC→OA通信中断 | OA监测飞行状态帧超时>1s | OA切换保守模式(假设最高速度),持续输出避障建议 |
| ICD-04-S-004 | CAN总线错误(错误帧过多) | CAN控制器错误计数器 | 错误计数>128时切换UART备份通道(若有) |
| ICD-04-S-005 | 数据帧校验错误 | CRC/CAN CRC校验 | 丢弃错误帧,不影响后续数据 |
5.2 接口需求编号
| 编号 | 需求描述 | 优先级 | 验证方式 |
|---|---|---|---|
| ICD-04-I-001 | 避障处理单元应在上电后≤3s内完成初始化并开始输出数据 | P0 | 时序测试 |
| ICD-04-I-002 | 飞控应在接收到避障建议帧后≤100ms内完成决策并输出控制指令 | P0 | 延迟测试 |
| ICD-04-I-003 | 障碍物信息帧端到端延迟(传感器采集→飞控接收)应≤100ms | P0 | 延迟测试 |
| ICD-04-I-004 | 通信误码率应≤1e-6(在电调全速运转EMI环境下) | P0 | EMC环境测试 |
| ICD-04-I-005 | 避障建议帧应具备单调递增的序列号,飞控可据此检测丢帧 | P0 | 丢帧统计测试 |
6. 接口验收标准
6.1 必须通过项
| 测试项 | 通过标准 | 对应编号 |
|---|---|---|
| 数据连续输出 | 各消息帧按定义频率连续输出1小时无丢帧 | 4.2 |
| 障碍物检测联调 | 放置标准障碍物(1m×1m板),各方向距离数据误差≤±10cm | 3.3.1 |
| 避障建议联调 | 障碍物进入制动距离后,避障建议帧输出action=1(刹停),飞控执行停止 | 3.3.2 |
| 地形高度联调 | 下视传感器高度数据与实际高度误差≤±10cm(2-10m范围) | 3.3.3 |
| 传感器故障上报 | 遮挡单个传感器后,健康状态帧正确反映故障位+fault_code | 3.3.4 |
| 通信中断恢复 | 断开连接后重新连接≤3s恢复正常通信 | ICD-04-S-001 |
| 模式切换响应 | 飞控下发oa_mode切换后,OA≤200ms内调整行为 | 3.4.2 |
6.2 应当通过项
| 测试项 | 通过标准 | 对应编号 |
|---|---|---|
| EMI环境稳定性 | 电机全速运转时通信无异常丢帧 | ICD-04-I-004 |
| 高温运行 | 40°C环境下连续1小时通信正常 | — |
| CAN负载率 | 全速通信时CAN总线负载率≤50% | — |
7. 待决事项
| 编号 | 事项描述 | 责任人 | 影响范围 |
|---|---|---|---|
| TBD-ICD04-001 | 避障处理单元物理接口确认(CAN还是UART) | 硬件+算法团队 | 2.1, 3.1 |
| TBD-ICD04-002 | 连接器具体型号选型 | 硬件团队 | 2.3 |
| TBD-ICD04-003 | 障碍物信息帧是否需要扩展至多障碍物(当前仅上报每方向最近障碍物) | 算法团队 | 3.3.1 |
| TBD-ICD04-004 | 避障建议帧与飞控自主决策的优先级仲裁机制 | 飞控+算法团队 | 3.3.2 |
| TBD-ICD04-005 | 是否需要UART备份通道(CAN方案下) | 硬件团队 | ICD-04-S-004 |
文档结束
