飞控与电调接口控制文档
| 字段 | 内容 |
|---|---|
| 文档编号 | ICD-01-V0.1 |
| 版本 | V0.1 |
| 状态 | 草稿 |
| 作者 | 产品团队 |
| 日期 | 2026-04-14 |
| 审核人 | — |
| 接口双方 | 飞控系统 (FC) ↔ 电调系统 (ESC × 8) |
修订记录
| 版本 | 日期 | 修订人 | 修订内容 |
|---|---|---|---|
| V0.1 | 2026-04-14 | 产品团队 | 初稿 |
| V0.2 | 2026-04-16 | 产品团队 | 构型修订:CAN总线挂载设备8→4个ESC(V1四旋翼),预留8路扩展 |
1. 概述
1.1 目的
本文档定义飞控系统(FC)与电调系统(ESC)之间的接口规范,包括物理层连接、通信协议、消息帧格式、时序要求和安全约束。作为飞控固件和电调固件开发、联调测试的接口依据。
1.2 适用范围
- 适用于飞控系统与4个独立ESC之间的CAN总线通信(V2扩展为8个)
- 本文档定义的协议为自定义CAN协议(非标准MAVLink)
1.3 关联文档
| 文档编号 | 文档名称 | 关系 |
|---|---|---|
| SUB-FC-V0.1 | 飞控系统PRD | 接口一方 |
| SUB-ESC-V0.1 | 电调系统PRD | 接口另一方 |
| PRD-MASTER-V0.1 | 总体产品需求文档 | 上位需求 |
1.4 术语定义
| 术语 | 定义 |
|---|---|
| FC | 飞控系统(Flight Controller) |
| ESC | 电子调速器(Electronic Speed Controller) |
| CAN | 控制器局域网络(Controller Area Network) |
| CAN 2.0B | CAN标准,支持29位扩展帧标识符 |
| CAN FD | CAN灵活数据速率(Flexible Data-rate),支持更大数据帧 |
| DLC | 数据长度码(Data Length Code) |
| RPM | 每分钟转数(Revolutions Per Minute) |
| 心跳 | 周期性发送的存活确认消息 |
2. 物理层
2.1 接口类型
| 参数 | 规格 |
|---|---|
| 总线标准 | CAN 2.0B(标准帧/扩展帧) |
| 波特率 | 1 Mbps(标称) |
| 电平标准 | ISO 11898-2(高速CAN,差分信号) |
| 终端电阻 | 总线两端各120Ω终端电阻 |
备注:若后续数据量需求增大(如增加电机振动数据回报),可考虑升级至CAN FD(最高8Mbps数据域),但V1.0版本以CAN 2.0B为基线。
2.2 线束规格
| 参数 | 规格 |
|---|---|
| 导线 | 双绞线(CAN_H + CAN_L),截面积≥0.22mm²(AWG24) |
| 屏蔽 | 推荐带屏蔽层,屏蔽层单端接地(飞控端) |
| 线缆最大长度 | 单ESC至飞控距离≤2m(机臂长度决定) |
| 总线总长度 | ≤5m(含所有分支) |
2.3 连接器
| 参数 | 规格 |
|---|---|
| 连接器类型 | [TBD — 待硬件团队确认,建议GH1.25-4P或同等防水连接器] |
| 引脚定义 | Pin1: CAN_H, Pin2: CAN_L, Pin3: GND, Pin4: VCC(5V供电,可选) |
| 防护要求 | 连接器应具备防水密封(匹配IP56),且耐振动 |
| 锁紧机构 | 应具备机械锁紧,防止振动脱落 |
2.4 接线拓扑
CAN总线主干
┌────────────────────────────────────────────────────┐
│ │
[120Ω] [120Ω]
│ │
[FC]──┬──[ESC1]──[ESC2]──[ESC3]──[ESC4]──[ESC5]──[ESC6]──[ESC7]──[ESC8]
│
飞控端拓扑方案:单总线型
| 参数 | 规格 |
|---|---|
| 拓扑结构 | 单条CAN总线,V1共4个ESC菊花链或T型短截线连接(V2扩展为8个) |
| 终端电阻位置 | 飞控端(总线起始)和最远端ESC(总线末端)各120Ω |
| 短截线长度 | 每个ESC的分支线(stub)长度≤30cm |
替代方案(保留):如果单总线负载过高(8节点+高频通信),可考虑分两路CAN总线:CAN1挂ESC1~4(机臂M1/M2侧),CAN2挂ESC5~8(机臂M3/M4侧)。V1.0先按单总线实现,测试后决定是否拆分。
3. 协议层
3.1 CAN消息ID分配规则
采用CAN 2.0B 标准帧(11位ID) 格式,消息ID编码规则如下:
Bit[10:8] Bit[7:4] Bit[3:0]
┌────────┐ ┌───────────┐ ┌─────────┐
│ 优先级 │ │ 消息类型 │ │ 节点ID │
│ (3bit) │ │ (4bit) │ │ (4bit) │
└────────┘ └───────────┘ └─────────┘优先级定义:
| 优先级值 | 含义 | 说明 |
|---|---|---|
| 0 (000) | 紧急 | 紧急停机等安全关键指令 |
| 1 (001) | 高 | 常规控制指令(油门/转速) |
| 2 (010) | 中 | 状态反馈数据 |
| 3 (011) | 低 | 配置/诊断/升级 |
消息类型定义:
| 类型值 | 方向 | 含义 |
|---|---|---|
| 0x0 | FC→ESC | 油门/转速指令 |
| 0x1 | FC→ESC | 电机测试指令 |
| 0x2 | FC→ESC | 电机校准指令 |
| 0x3 | FC→ESC | 紧急停机指令 |
| 0x4 | FC→ESC | 配置参数写入 |
| 0x5 | FC→ESC | 固件升级数据 |
| 0x8 | ESC→FC | 转速/电流反馈 |
| 0x9 | ESC→FC | 温度/电压反馈 |
| 0xA | ESC→FC | 故障码上报 |
| 0xB | ESC→FC | 心跳/状态 |
| 0xC | ESC→FC | 配置参数回读 |
| 0xD | ESC→FC | 固件升级应答 |
节点ID定义:
| 节点ID | 节点 |
|---|---|
| 0x0 | 飞控(FC),广播目标 |
| 0x1~0x8 | ESC 1~8(对应电机M1~M8) |
| 0xF | 广播(所有ESC) |
3.2 CAN消息ID分配表
| 消息ID (Hex) | 方向 | 消息名称 | 周期/触发 | DLC | 说明 |
|---|---|---|---|---|---|
| 0x100+N | FC→ESC | 转速指令(单个ESC) | 周期:2.5ms(400Hz) | 8 | N=1~8,对应ESC编号 |
| 0x10F | FC→ESC | 转速指令(广播,全部ESC) | 周期:2.5ms(400Hz) | 8 | 同时下发4个ESC转速(V1),V2扩展为8个 |
| 0x110+N | FC→ESC | 电机测试指令 | 事件触发 | 8 | 地面测试用 |
| 0x120+N | FC→ESC | 电机校准指令 | 事件触发 | 8 | 行程校准 |
| 0x030 | FC→ESC | 紧急停机(广播) | 事件触发 | 2 | 最高优先级,所有ESC立即停机 |
| 0x140+N | FC→ESC | 配置参数写入 | 事件触发 | 8 | 写入ESC参数 |
| 0x150+N | FC→ESC | 固件升级数据 | 事件触发 | 8 | Bootloader模式下使用 |
| 0x280+N | ESC→FC | 转速/电流反馈 | 周期:20ms(50Hz) | 8 | N=1~8 |
| 0x290+N | ESC→FC | 温度/电压反馈 | 周期:500ms(2Hz) | 8 | N=1~8 |
| 0x2A0+N | ESC→FC | 故障码上报 | 事件触发 | 8 | N=1~8,故障时立即发送 |
| 0x2B0+N | ESC→FC | 心跳/状态 | 周期:1000ms(1Hz) | 4 | N=1~8 |
| 0x2C0+N | ESC→FC | 配置参数回读 | 事件触发 | 8 | N=1~8 |
| 0x2D0+N | ESC→FC | 固件升级应答 | 事件触发 | 8 | N=1~8 |
3.3 消息帧格式定义
3.3.1 转速指令帧(FC→单个ESC)
CAN ID: 0x100+N(N=1~8)
方向: FC → ESC
周期: 2.5ms(400Hz)
DLC: 8 bytes
| Byte | 字段名称 | 数据类型 | 单位 | 范围 | 说明 |
|---|---|---|---|---|---|
| 0-1 | target_rpm | uint16 | RPM | 0~15000 | 目标转速,0=停止。大端序(MSB在前) |
| 2 | control_mode | uint8 | — | 0/1/2 | 0=转速模式,1=油门百分比模式,2=停机 |
| 3 | throttle_pct | uint8 | 0.5% | 0~200 | 油门百分比(仅control_mode=1时有效),实际值=字段值×0.5,范围0~100% |
| 4 | reserved_1 | uint8 | — | 0 | 保留,填0 |
| 5 | reserved_2 | uint8 | — | 0 | 保留,填0 |
| 6 | sequence | uint8 | — | 0~255 | 序列号,循环递增 |
| 7 | checksum | uint8 | — | — | Byte[0]~Byte[6]异或校验 |
3.3.2 转速指令帧(FC→广播全部ESC)
CAN ID: 0x10F
方向: FC → 所有ESC
周期: 2.5ms(400Hz)
DLC: 8 bytes
| Byte | 字段名称 | 数据类型 | 单位 | 范围 | 说明 |
|---|---|---|---|---|---|
| 0 | throttle_1 | uint8 | 0.5% | 0~200 | ESC1油门百分比,实际值=字段值×0.5 |
| 1 | throttle_2 | uint8 | 0.5% | 0~200 | ESC2油门百分比 |
| 2 | throttle_3 | uint8 | 0.5% | 0~200 | ESC3油门百分比 |
| 3 | throttle_4 | uint8 | 0.5% | 0~200 | ESC4油门百分比 |
| 4 | throttle_5 | uint8 | 0.5% | 0~200 | ESC5油门百分比 |
| 5 | throttle_6 | uint8 | 0.5% | 0~200 | ESC6油门百分比 |
| 6 | throttle_7 | uint8 | 0.5% | 0~200 | ESC7油门百分比 |
| 7 | throttle_8 | uint8 | 0.5% | 0~200 | ESC8油门百分比 |
注意:广播帧使用油门百分比模式(1 byte/ESC,V1为4个ESC使用4字节,V2扩展为8个ESC使用8字节数据帧)。高精度转速控制场景使用单播帧(
0x100+N)。
3.3.3 紧急停机指令帧(FC→广播)
CAN ID: 0x030(最高优先级)
方向: FC → 所有ESC
触发: 事件触发(紧急停机按键、安全状态机EMERGENCY状态)
DLC: 2 bytes
| Byte | 字段名称 | 数据类型 | 单位 | 范围 | 说明 |
|---|---|---|---|---|---|
| 0 | cmd_type | uint8 | — | 0xE0 | 固定值0xE0,表示紧急停机 |
| 1 | confirm | uint8 | — | 0x5A | 确认码0x5A,双字段校验防误触发 |
安全要求:ESC收到此帧后必须在**≤10ms**内停止所有输出。此帧应连续发送3次以确保所有ESC收到。
3.3.4 电机测试指令帧(FC→ESC)
CAN ID: 0x110+N(N=1~8)
方向: FC → ESC
触发: 事件触发(地面维护/调试模式下使用)
DLC: 8 bytes
| Byte | 字段名称 | 数据类型 | 单位 | 范围 | 说明 |
|---|---|---|---|---|---|
| 0 | test_cmd | uint8 | — | 0~3 | 0=停止测试,1=低速旋转,2=指定转速旋转,3=转向测试 |
| 1-2 | test_rpm | uint16 | RPM | 0~3000 | 测试转速(仅test_cmd=2时有效) |
| 3 | duration | uint8 | 秒 | 0~60 | 测试持续时间,0=持续直到手动停止 |
| 4-7 | reserved | — | — | 0 | 保留,填0 |
安全约束:电机测试指令仅在飞行器处于地面且未解锁状态时可执行。飞控应在发送前校验飞行状态。
3.3.5 电机校准指令帧(FC→ESC)
CAN ID: 0x120+N(N=1~8)
方向: FC → ESC
触发: 事件触发(校准流程中使用)
DLC: 8 bytes
| Byte | 字段名称 | 数据类型 | 单位 | 范围 | 说明 |
|---|---|---|---|---|---|
| 0 | cal_cmd | uint8 | — | 0~2 | 0=取消校准,1=油门行程校准,2=电机参数识别 |
| 1 | cal_step | uint8 | — | 0~255 | 校准步骤序号 |
| 2-7 | cal_data | — | — | — | 校准参数数据(步骤相关) |
3.3.6 转速/电流反馈帧(ESC→FC)
CAN ID: 0x280+N(N=1~8)
方向: ESC → FC
周期: 20ms(50Hz)
DLC: 8 bytes
| Byte | 字段名称 | 数据类型 | 单位 | 范围 | 说明 |
|---|---|---|---|---|---|
| 0-1 | actual_rpm | uint16 | RPM | 0~15000 | 实际转速,大端序 |
| 2-3 | phase_current | uint16 | 0.01A | 0~65535 | 相电流,实际值=字段值×0.01A,范围0~655.35A |
| 4-5 | bus_current | uint16 | 0.01A | 0~65535 | 母线电流,实际值=字段值×0.01A |
| 6 | esc_status | uint8 | — | 位域 | bit0:运行中, bit1:故障, bit2:过温预警, bit3:过流预警, bit4:堵转, bit5~7:保留 |
| 7 | sequence | uint8 | — | 0~255 | 序列号,循环递增 |
3.3.7 温度/电压反馈帧(ESC→FC)
CAN ID: 0x290+N(N=1~8)
方向: ESC → FC
周期: 500ms(2Hz)
DLC: 8 bytes
| Byte | 字段名称 | 数据类型 | 单位 | 范围 | 说明 |
|---|---|---|---|---|---|
| 0-1 | mos_temp | int16 | 0.1°C | -400~1500 | MOS管温度,实际值=字段值×0.1,范围-40~150°C,大端序 |
| 2-3 | bus_voltage | uint16 | 0.01V | 0~65535 | 母线电压,实际值=字段值×0.01V |
| 4-5 | motor_temp | int16 | 0.1°C | -400~2000 | 电机温度(如有传感器),无传感器填0x7FFF表示无效 |
| 6 | fw_version | uint8 | — | 0~255 | 固件版本号(主版本.次版本,高4位.低4位) |
| 7 | hw_version | uint8 | — | 0~255 | 硬件版本号 |
3.3.8 故障码上报帧(ESC→FC)
CAN ID: 0x2A0+N(N=1~8)
方向: ESC → FC
触发: 事件触发(故障发生时立即发送,连续发送3次确保送达)
DLC: 8 bytes
| Byte | 字段名称 | 数据类型 | 单位 | 范围 | 说明 |
|---|---|---|---|---|---|
| 0-1 | fault_code | uint16 | — | 位域 | 故障码位域(见下表) |
| 2-3 | fault_value | uint16 | — | — | 故障触发时的关联数值(如过流时的电流值) |
| 4-7 | timestamp | uint32 | ms | — | ESC内部时间戳 |
故障码位域定义:
| Bit | 故障类型 | 说明 |
|---|---|---|
| 0 | 过流(OC) | 相电流超过保护阈值 |
| 1 | 过温(OT) | MOS温度超过保护阈值 |
| 2 | 堵转(STALL) | 电机堵转检测 |
| 3 | 欠压(UV) | 母线电压低于安全阈值 |
| 4 | 过压(OV) | 母线电压超过安全阈值 |
| 5 | 通信异常(COM) | CAN总线通信异常 |
| 6 | 传感器异常(SENSOR) | 温度/电流传感器异常 |
| 7 | 硬件异常(HW) | MOSFET/驱动电路异常 |
| 8~15 | 保留 | 预留扩展 |
3.3.9 心跳/状态帧(ESC→FC)
CAN ID: 0x2B0+N(N=1~8)
方向: ESC → FC
周期: 1000ms(1Hz)
DLC: 4 bytes
| Byte | 字段名称 | 数据类型 | 单位 | 范围 | 说明 |
|---|---|---|---|---|---|
| 0 | esc_state | uint8 | — | 0~4 | 0=INIT, 1=IDLE(就绪), 2=RUNNING(运行), 3=ERROR(故障), 4=BOOTLOADER |
| 1 | uptime_min | uint8 | 分钟 | 0~255 | ESC运行时间(分钟),溢出归零 |
| 2 | boot_count | uint8 | — | 0~255 | ESC启动次数(掉电重启计数) |
| 3 | reserved | uint8 | — | 0 | 保留 |
4. 心跳与超时机制
4.1 飞控→ESC 心跳
飞控通过周期性发送转速指令帧(0x100+N 或 0x10F,400Hz)作为隐式心跳。ESC不需要额外的心跳帧即可判断飞控在线状态。
4.2 ESC→飞控 心跳
| 参数 | 规格 |
|---|---|
| 心跳帧 | 0x2B0+N,周期1000ms(1Hz) |
| 超时判定 | 飞控连续3秒未收到某ESC心跳,判定该ESC离线/故障 |
| 故障响应 | 飞控将该ESC标记为故障,触发安全状态机预警→启动电机失效降级逻辑 |
4.3 ESC指令超时保护
| 参数 | 规格 |
|---|---|
| 超时阈值 | ESC连续100ms未收到飞控转速指令,判定通信丢失 |
| 第一阶段响应(100~500ms) | ESC将目标转速按10%/100ms速率线性下降 |
| 第二阶段响应(>500ms) | ESC将电机转速降至0并保持停止 |
| 恢复条件 | 重新收到有效转速指令后,ESC恢复正常响应 |
4.4 总线错误处理
| 场景 | ESC行为 | 飞控行为 |
|---|---|---|
| CAN总线错误帧增多(Bus-off) | ESC自动尝试恢复(CAN控制器自动恢复机制),恢复后继续通信 | 飞控检测到ESC回报丢失,按心跳超时逻辑处理 |
| 单ESC CAN控制器Bus-off | 该ESC通信中断,其余ESC不受影响 | 飞控标记该ESC故障 |
| 飞控CAN控制器Bus-off | — | 所有ESC按指令超时逻辑逐步降速停机 |
5. 上电时序
5.1 正常上电流程
时间轴 →
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[T0] 电池接入,供电开始
│
├─ ESC ① 上电自检(≤200ms)
│ ├─ 初始化CAN控制器
│ ├─ 初始化驱动电路
│ ├─ 电机输出保持关闭(安全要求)
│ └─ 开始发送心跳帧(状态=INIT)
│
├─ 飞控 上电自检(≤2s)
│ ├─ 初始化传感器、CAN、存储
│ └─ 扫描CAN总线,等待4个ESC心跳
│
[T0+3s] 飞控确认4个ESC全部在线
│ ├─ 飞控发送配置帧(如需)
│ └─ ESC心跳状态切换为IDLE(就绪)
│
[T0+5s] 系统就绪,等待用户解锁
│
[Tarm] 用户执行解锁操作(摇杆打杆/按键解锁)
│ ├─ 飞控开始发送转速指令帧(400Hz)
│ └─ ESC收到首条有效指令后状态切换为RUNNING
│
[Tfly] 电机起转,飞行器起飞
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━5.2 上电时序约束
| 约束项 | 要求 |
|---|---|
| ESC上电到心跳首发 | ≤500ms |
| 飞控上电到CAN就绪 | ≤2s |
| 全系统就绪(4个ESC均在线) | ≤5s(含飞控启动时间) |
| ESC上电后电机状态 | 必须保持停止,直到收到飞控有效转速指令 |
| 解锁前ESC收到转速指令 | ESC应忽略解锁前的任何非零转速指令(安全冗余) |
5.3 掉电与重启
| 场景 | 行为 |
|---|---|
| 飞行中电池瞬断后恢复 | ESC应在≤200ms内重新初始化并恢复到IDLE状态,等待飞控指令 |
| 飞行中单ESC重启 | 该ESC重启后回到INIT→IDLE,飞控重新检测到后可恢复控制 |
| 飞控重启(飞行中不应发生) | 所有ESC按指令超时逻辑降速停机 |
6. 安全约束
6.1 紧急停机
| 编号 | 安全约束 | 要求 |
|---|---|---|
| ICD-01-S-001 | 紧急停机信号端到端延迟 | 从飞控发出紧急停机帧(0x030)到ESC关断电机输出,总延迟≤10ms |
| ICD-01-S-002 | 紧急停机帧发送策略 | 飞控应连续发送3次紧急停机帧(间隔1ms),确保所有ESC收到 |
| ICD-01-S-003 | 紧急停机帧优先级 | CAN ID 0x030 为总线上最高优先级消息,仲裁时必赢 |
| ICD-01-S-004 | 紧急停机帧校验 | ESC收到紧急停机帧时须校验cmd_type=0xE0且confirm=0x5A,双字段匹配才执行,防止误触发 |
6.2 单ESC故障隔离
| 编号 | 安全约束 | 要求 |
|---|---|---|
| ICD-01-S-005 | 单ESC故障不影响总线 | 单个ESC硬件故障(如CAN控制器Bus-off)不应导致整条CAN总线瘫痪,其余7个ESC通信应不受影响 |
| ICD-01-S-006 | ESC故障上报及时性 | ESC检测到自身故障后应在≤5ms内发送故障码帧(0x2A0+N) |
| ICD-01-S-007 | 飞控故障响应延迟 | 飞控收到ESC故障码后应在≤50ms内启动降级飞行逻辑(对应FC-S-002/003) |
6.3 数据完整性
| 编号 | 安全约束 | 要求 |
|---|---|---|
| ICD-01-S-008 | 指令帧校验 | 转速指令帧(0x100+N)包含XOR校验字节,ESC应校验后再执行 |
| ICD-01-S-009 | 序列号连续性检查 | ESC应监测序列号连续性,连续丢失≥5帧时上报通信异常告警 |
| ICD-01-S-010 | 非法指令过滤 | ESC应拒绝超出范围的转速值(>15000RPM)或非法控制模式值 |
7. 总线负载分析
7.1 周期性消息负载计算
CAN 2.0B 标准帧结构:帧头(1)+仲裁域(11+1)+控制域(6)+数据域(0~64bit)+CRC(16)+ACK(2)+帧尾(7)+帧间隔(3) = 约 111~135 bit/帧(8字节数据域取130bit估算)。
| 消息类型 | 方向 | 数量 | 频率 | 每帧bit数(估算) | 总带宽 (bit/s) |
|---|---|---|---|---|---|
| 转速指令(广播) | FC→ESC | 1 | 400 Hz | 130 | 52,000 |
| 转速/电流反馈 | ESC→FC | 8 | 50 Hz | 130 | 52,000 |
| 温度/电压反馈 | ESC→FC | 8 | 2 Hz | 130 | 2,080 |
| 心跳/状态 | ESC→FC | 8 | 1 Hz | 100 | 800 |
| 合计(周期性) | — | — | — | — | ≈107,000 |
CAN总线带宽: 1 Mbps = 1,000,000 bit/s
周期性负载率: 107,000 / 1,000,000 = ≈10.7%
7.2 负载余量评估
| 指标 | 数值 |
|---|---|
| 周期性消息负载率 | ≈10.7% |
| 事件触发消息预留 | ≈5%(故障上报、配置等突发消息) |
| 总预估负载率 | ≈15.7% |
| 推荐安全阈值 | ≤30%(CAN总线经验推荐值) |
| 余量 | 充足,无需拆分双总线 |
结论:V1.0单CAN总线方案负载率约15.7%,远低于30%安全阈值,满足通信需求。若后续增加电机振动数据等高频回报,可考虑拆分双总线或升级CAN FD。
8. 待决事项 (TBD)
| 编号 | 事项描述 | 责任人 | 期望决定日期 | 影响范围 |
|---|---|---|---|---|
| TBD-ICD01-001 | CAN连接器具体型号待硬件团队确认 | 硬件工程师 | 2025-05 | 2.3 连接器 |
| TBD-ICD01-002 | ESC指令超时阈值(当前设定100ms)需通过飞行测试验证合理性 | 飞控/电调工程师 | 2025-06 | 4.3 指令超时保护 |
| TBD-ICD01-003 | 是否需要支持CAN FD以预留扩展空间(V1.0以CAN 2.0B为基线) | 系统架构师 | 2025-06 | 2.1 / 全文 |
| TBD-ICD01-004 | 配置参数写入帧(0x140+N)和固件升级帧(0x150+N)的详细数据格式待定义 | 电调工程师 | 2025-06 | 3.3 |
| TBD-ICD01-005 | 单总线 vs 双总线拓扑决策需在8节点联调测试后最终确定 | 飞控/电调工程师 | 2025-06 | 2.4 / 7.2 |
| TBD-ICD01-006 | 堵转保护的检测时间阈值需确定后同步至协议文档 | 电调工程师 | 2025-05 | 3.3.8 故障码 |
| TBD-ICD01-007 | 电机温度传感器是否配备(影响温度反馈帧motor_temp字段是否有效) | 硬件工程师 | 2025-05 | 3.3.7 |
附录
附录A:CAN消息ID速查表
| CAN ID (Hex) | 方向 | 名称 | 频率 | 优先级 |
|---|---|---|---|---|
| 0x030 | FC→ALL ESC | 紧急停机 | 事件 | 最高 |
| 0x100+N | FC→ESC(N) | 转速指令(单播) | 400Hz | 高 |
| 0x10F | FC→ALL ESC | 转速指令(广播) | 400Hz | 高 |
| 0x110+N | FC→ESC(N) | 电机测试 | 事件 | 低 |
| 0x120+N | FC→ESC(N) | 电机校准 | 事件 | 低 |
| 0x140+N | FC→ESC(N) | 配置写入 | 事件 | 低 |
| 0x150+N | FC→ESC(N) | 固件升级 | 事件 | 低 |
| 0x280+N | ESC(N)→FC | 转速/电流 | 50Hz | 中 |
| 0x290+N | ESC(N)→FC | 温度/电压 | 2Hz | 中 |
| 0x2A0+N | ESC(N)→FC | 故障码 | 事件 | 中 |
| 0x2B0+N | ESC(N)→FC | 心跳/状态 | 1Hz | 中 |
| 0x2C0+N | ESC(N)→FC | 配置回读 | 事件 | 低 |
| 0x2D0+N | ESC(N)→FC | 升级应答 | 事件 | 低 |
附录B:ESC节点ID与电机位置对应表
| ESC节点ID | 电机编号 | 机臂位置 | 旋转方向 |
|---|---|---|---|
| 1 | M1 | 右前 | [TBD-待确认] |
| 2 | M2 | 左前 | [TBD-待确认] |
| 3 | M3 | 左后 | [TBD-待确认] |
| 4 | M4 | 右后 | [TBD-待确认] |
| 5 | M5 | [TBD] | [TBD-待确认] |
| 6 | M6 | [TBD] | [TBD-待确认] |
| 7 | M7 | [TBD] | [TBD-待确认] |
| 8 | M8 | [TBD] | [TBD-待确认] |
注:V1四旋翼布局的电机编号M1~M4与机臂位置对应关系需参考结构设计确认。V2升级为8旋翼时扩展定义M5~M8。
