1. 课程导入

在无人机、eVTOL、飞控计算机与伺服作动系统之间,CAN总线承担着“神经中枢”的角色。它把飞控计算机解算出的姿态、位置、油门、舵面指令,以广播帧的形式送到电调、舵机、传感器和健康管理单元,同时把各节点的状态、温度、电压、故障码回传。与点对点PWM或模拟量相比,CAN具备差分抗干扰、多主仲裁、报文优先级和错误检测等特性,天然适合飞行器上“多设备、强实时、强电磁干扰”的通信环境。但正因为一条总线串起多个关键节点,一旦总线、收发器、终端电阻或某台设备出现异常,故障就可能沿总线扩散。因此,飞控CAN工程的核心不是“能通”,而是“通得稳、断得可控、坏得可诊断”。

一、飞控CAN总线的作用与典型拓扑

飞控CAN通常采用双绞线差分传输,两端各接120Ω终端电阻,节点以短支线挂接。总线上流动的报文按ID区分优先级,飞控指令帧优先级最高,健康状态帧次之,调试与日志帧最低。典型场景中,飞控计算机会通过CAN向电调发送转速指令,向舵机发送位置指令,同时接收IMU、GPS、气压计等组合导航数据。若把飞控比作大脑,CAN就是脊髓,冗余与容错则是脊髓的“备份通路”和“反射保护”。

飞控CAN双冗余总线与容错节点拓扑 飞控计算机 主控 / 备份 健康管理单元 故障注入 / 记录 CAN-A 主总线 120Ω 终端 · 差分双绞 CAN-B 备份总线 独立收发器 · 独立供电 电调组 转速指令 舵机组 位置指令 组合导航 IMU/GPS/气压 故障节点 总线关闭 / 隔离 冗余切换

二、冗余与容错工程的定义

冗余是指为同一功能配置两套或多套独立资源,例如双CAN总线、双收发器、双电源、双飞控计算机。冗余解决的是“有备份可用”的问题。容错则更进一步:系统在部分组件失效时,仍能自动检测、隔离并重构,使飞行任务不中断或安全降级。冗余是手段,容错是目标。工程上常用“故障检测—故障隔离—系统重构—降级运行”四步闭环来描述容错过程。没有检测能力的冗余只是摆设,没有隔离能力的容错会引发连锁故障。

核心公式:容错能力 = 冗余资源 × 故障检测覆盖率 × 隔离与重构速度。三者缺一不可,任何一项接近零,整体容错能力都会迅速坍塌。

三、学习目标与整体知识框架

本课程围绕“看得懂总线、算得清冗余、查得出故障、写得出策略”四条主线展开。学完后,你应能独立完成双CAN总线拓扑设计、终端电阻与线束检查、总线负载率估算、故障注入测试、冗余切换策略配置,并能根据日志定位总线关闭、错误帧激增、节点掉线等典型问题。

模块 关键内容 工程产出
CAN基础 帧结构、仲裁、位定时、错误状态机 总线参数配置表
冗余设计 双总线、双收发器、双电源、独立地回流 冗余拓扑图与BOM
容错策略 心跳、超时、切换、降级、隔离 状态机与切换阈值
测试验证 故障注入、负载率、眼图、日志回放 测试报告与复盘清单

四、实战路线与典型场景

实战路线按“单总线打通 → 双总线冗余 → 故障注入 → 容错策略调优 → 飞行验证”推进。以某四旋翼为例:初始阶段CAN-A上挂飞控、电调、IMU,总线负载率约38%;加入CAN-B后,将电调与舵机双挂,飞控同时向两条总线发送指令,接收端按“先到先用、校验通过为准”合并。随后人为断开CAN-A终端电阻,观察错误帧计数与切换时间。若切换时间小于20ms,姿态波动可控制在可接受范围;若超过50ms,飞控应触发降级并限制机动。

# 典型CAN健康检查命令(Linux SocketCAN)
ip -details link show can0
candump can0,0x100:0x7FF
canbusload can0@1000000 -r -t -e
# 关注指标:bus-error、error-warn、error-passive、bus-off

常见误区:把“双总线”简单理解为“两根线并联”。真正的冗余要求两条总线在供电、收发器、连接器、走线路径上尽量独立,否则一次共因故障会同时击穿两路。另一个误区是只做硬件冗余,不做软件切换逻辑,结果主总线失效后系统仍死等旧通道。

五、复盘视角:从故障反推设计

一次典型的CAN故障复盘显示:某机在强振动下出现间歇性总线关闭,日志中TEC快速上升至255,节点进入bus-off。根因是终端电阻虚焊,导致反射严重、位错误累积。修复后增加双终端电阻监测与总线错误计数告警,并把切换阈值从“连续3帧丢失”调整为“错误计数超过96即预切换”。这说明容错工程必须把“检测点”前移,而不是等总线彻底瘫痪才动作。