4. 硬件平台选型
UAVCAN 节点硬件并不是“能跑 CAN 就行”的简单组合。UAVCAN 对时间同步、总线仲裁、错误恢复和节点状态管理都有明确要求,因此硬件平台选型必须围绕“实时性、CAN 外设能力、电源完整性、传感器接口匹配”四个维度展开。本节从 MCU 与 CAN 控制器、收发器电路、电源设计、传感器接口到节点硬件架构,给出一套可落地的选型与设计方法。
一、核心原理:UAVCAN 节点硬件的四条主线
一个 UAVCAN 节点在硬件上可以抽象为四条主线:计算与控制(MCU)、总线接入(CAN 控制器 + 收发器)、能量供给(电源与保护)、感知与执行(传感器/执行器接口)。这四条主线通过 PCB 的电源平面、地平面和信号回流路径耦合在一起,任何一条出现瓶颈,都会表现为总线误码、节点掉线或时间同步抖动。
选型时先明确节点角色:是传感器节点(如温度、压力、IMU)、执行器节点(如舵机、电调),还是网关/管理节点。角色决定了对 MCU 算力、CAN 通道数、隔离需求和接口类型的要求。例如,IMU 节点需要高采样率与低噪声电源,而舵机节点更关注 PWM 输出与电流回灌保护。
二、主流 MCU 与 CAN 控制器选型
MCU 选型重点看三件事:CAN 控制器数量与类型、时钟与定时器资源、封装与温度等级。常见方案可分为三类:
- 经典 CAN MCU:如 STM32F103/F105、AT32F413、GD32F103,内置 bxCAN,成本低、生态成熟,适合 1 Mbps 经典 CAN 节点。
- CAN FD MCU:如 STM32G4/H7、NXP S32K1、TI TCAN 系列配套 MCU,支持 CAN FD,适合大数据量传感器或未来升级。
- 外置 CAN 控制器方案:MCU 通过 SPI 连接 MCP2515/MCP2518FD,适合主控无 CAN 外设或需要多路 CAN 的场景,但需注意 SPI 带宽与中断延迟。
UAVCAN 使用 1 Mbps 经典 CAN 时,MCU 的 CAN 时钟必须能整除出精确的位时间。以 1 Mbps、采样点 75% 为例,常见配置为:
// STM32 bxCAN 1 Mbps 典型配置(APB1=36 MHz)
// Prescaler = 4, BS1 = 13 Tq, BS2 = 4 Tq, SJW = 1 Tq
// 位时间 = 1 + 13 + 4 = 18 Tq,36 MHz / 4 = 9 MHz,9 MHz / 18 = 500 kbps
// 若需 1 Mbps:Prescaler = 2,则 36/2=18 MHz,18/18=1 Mbps
CAN_InitStructure.CAN_Prescaler = 2;
CAN_InitStructure.CAN_BS1 = CAN_BS1_13tq;
CAN_InitStructure.CAN_BS2 = CAN_BS2_4tq;
CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
若使用外部晶振,建议选择 8 MHz 或 16 MHz 并配合 PLL,避免使用内部 RC 作为 CAN 时钟源,否则温漂会导致采样点偏移,增加误码率。
三、收发器电路与电源设计
CAN 收发器是节点与总线之间的物理层桥梁。选型时关注:供电电压(3.3 V/5 V)、速率(经典 CAN 或 CAN FD)、隔离需求、共模电压范围与 ESD 等级。常用型号包括 TJA1050、SN65HVD230、TJA1042、TCAN334 等。对于无人机等强干扰环境,建议使用带隔离的收发器(如 ADM3053、ISO1050)或外加数字隔离器。
收发器电路的关键细节:
- CAN_H/CAN_L 差分对需 120 Ω 终端电阻,通常只在总线两端各放一个,节点中间不重复放置。
- 收发器电源引脚就近放置 100 nF + 10 μF 去耦电容,减少总线跳变引起的电源噪声。
- TXD/RXD 与 MCU 之间可串联 22~33 Ω 电阻,抑制振铃与过冲。
- 总线入口增加共模电感与 TVS,提升 EMC 与浪涌防护能力。
电源设计方面,UAVCAN 节点通常从总线或外部电源取电。若从总线取电,需考虑总线电压范围(常见 12 V/24 V)与节点功耗。推荐使用宽压输入 DC-DC 或 LDO 组合:前级 DC-DC 将输入降至 5 V,后级 LDO 产生 3.3 V 给 MCU 与传感器,降低纹波。模拟传感器供电应独立滤波,必要时使用基准源。
四、传感器接口与节点硬件架构
传感器接口按信号类型分为:模拟量(ADC)、数字量(I2C/SPI/UART)、脉冲量(定时器捕获)和差分信号(RS-422/485)。UAVCAN 节点通常需要将传感器数据打包为标准消息,因此接口设计要保证采样时序与数据更新率匹配。
以 IMU 节点为例,典型硬件架构为:MCU 通过 SPI 读取 IMU 原始数据,利用定时器触发固定周期采样,通过 CAN 收发器接入总线,同时用 LDO 为 IMU 提供低噪声 3.3 V 电源。若 IMU 与 MCU 距离较远,应使用 SPI 差分或降低时钟频率。
| 模块 | 选型要点 | 常见方案 | 风险点 |
|---|---|---|---|
| MCU | CAN 外设、时钟精度、算力 | STM32F103/G4、S32K1 | 内部 RC 时钟漂移 |
| CAN 控制器 | 内置或外置、FD 支持 | bxCAN、MCP2515 | SPI 延迟导致丢帧 |
| 收发器 | 速率、隔离、ESD | TJA1050、ISO1050 | 终端电阻重复 |
| 电源 | 宽压、低纹波、保护 | DC-DC + LDO | 地环路噪声 |
| 传感器接口 | 电平匹配、采样率 | SPI/I2C/ADC | 模拟地干扰 |
五、案例与复盘:一个温度节点为何频繁掉线
某温度采集节点使用 STM32F103 + TJA1050,从 24 V 总线经 DC-DC 取电。现场运行中节点每隔数分钟掉线一次。排查发现:DC-DC 开关频率为 300 kHz,其谐波落在 CAN 差分信号附近;同时收发器电源去耦不足,总线跳变时 3.3 V 出现 200 mV 尖峰。整改措施:将 DC-DC 开关频率调整至 500 kHz 以上,增加共模电感与 TVS,收发器电源增加 10 μF 钽电容,并将模拟地与数字地在电源入口单点连接。整改后连续运行 72 小时无掉线。
复盘结论:UAVCAN 节点硬件故障往往不是协议问题,而是电源完整性、地回流和接口匹配问题。选型阶段就应把 EMC 与保护电路纳入架构,而不是后期补救。
综上,UAVCAN 节点硬件选型应围绕 MCU 与 CAN 控制器、收发器电路、电源设计和传感器接口四条主线展开,并在架构阶段就考虑 EMC、保护与地回流。只有硬件平台稳定,UAVCAN 的协议优势才能在工程中真正发挥出来。