自制 CAN 适配器的开源 USB-CAN / CAN-FD 固件对比
本指南对比了适用于自制 CAN 适配器的主流开源 USB‑CAN / CAN‑FD 固件,大致可分为三类:高性能二进制协议 gs_usb、运行在 CDC‑VCP 之上的 Lawicel SLCAN(ASCII),以及私有/模拟类协议。
相关产品 USBCAN-I-BC | USB-CAN Converter Module
本指南对比了适用于自制 CAN 适配器的主流开源 USB‑CAN / CAN‑FD 固件,大致可分为三类:高性能二进制协议 gs_usb、运行在 CDC‑VCP 之上的 Lawicel SLCAN(ASCII),以及私有/模拟类协议。
| 项目 | 协议 | CAN‑FD | 时间戳 | 系统 / 备注 | 推荐用途 |
|---|---|---|---|---|---|
| CANnectivity | gs_usb | 支持(硬件 FDCAN) | 硬件 | Zephyr RTOS、Linux 标准 gs_usb 驱动、多通道、DFU | 工业适配器、量产、长期维护 |
| candleLight_fw | gs_usb | 支持 | 硬件 | 裸机 STM32、MIT 许可、经典 gs_usb 参考实现 | 低成本单通道适配器、快速开发 |
| Kosmonova usb‑can‑firmware‑stm32 | gs_usb | 部分支持 | 硬件 | 裸机 STM32、轻量、开发活跃度低 | 学习、gs_usb 简单定制 |
| LekElectronics slcan | Lawicel SLCAN (CDC‑VCP) | 不支持(标准 SLCAN) | 主机 / 软件 | STM32 HAL、需 slcand、与旧工具兼容性好 | 传统软件、低负载调试 |
| CANable original slcan fw | Lawicel SLCAN | 不支持 | 软件 | 裸机、CANable 官方固件 | CANable 标准 SLCAN 参考实现 |
| FYSETC UCAN | SLCAN 衍生 | 不支持 | 软件 | 针对 Klipper / 3D 打印机优化 | 专用于 Klipper CAN 总线打印机 |
| xjtuecho USBCAN | 私有协议 | 不支持 | 软件 | 与第三方工具兼容性差 | 教学/实验室用途,不建议商用开发 |
| pcan_cantact | PEAK PCAN 模拟 | 部分支持 | 硬件 | 运行于 CANable、兼容 PCAN‑View | PEAK PCAN 硬件的直接替代 |
| USBtin | Lawicel SLCAN | 不支持 | 软件 | 成熟的开源硬件与固件 | 简洁的开源 SLCAN 参考 |
| umi‑eng adapter | 私有 USB CAN‑FD | 支持 | 硬件 | Rust 固件、新式架构 | 基于 Rust 的实验性 CAN‑FD 适配器 |
| SuperCAN | 私有 SuperCAN | 支持 | 硬件 | 专用新型 CAN‑FD 协议 | 科研用途、私有主机栈开发 |
协议概要
gs_usb — 开销很小的二进制协议,具备硬件时间戳和 Linux 内核标准驱动,适合工业应用、CAN‑FD 和高负载总线;但较老图形工具的支持较少。
Lawicel SLCAN — 运行在 CDC‑VCP 上的 ASCII 协议,对旧系统兼容性好;但协议开销较大、时间戳由主机生成,在 Linux 上接入 SocketCAN 需要 slcand。
模拟 / 私有协议 — PCAN 模拟和专用协议面向特定主机软件,生态封闭,不适合通用适配器。
快速选型指南
- • 通用商用 USB‑CAN‑FD 适配器:CANnectivity
- • 简单单通道 gs_usb:candleLight_fw
- • 兼容传统串口 CAN 工具:LekElectronics slcan
- • 直接替代 PEAK PCAN:pcan_cantact
- • Klipper 打印机 CAN 总线:FYSETC UCAN
已知限制
标准 Lawicel SLCAN 并没有 CAN‑FD 的正式定义,所有支持 CAN‑FD 的 SLCAN 都依赖非标准扩展。硬件时间戳不仅取决于协议本身,也取决于 MCU 的 FDCAN / bxCAN 外设与固件实现。
项目链接
CANnectivity: https://github.com/CANnectivity/cannectivity
candleLight_fw: https://github.com/candle-usb/candleLight_fw
LekElectronics slcan: https://github.com/LekElectronics/slcan
FYSETC UCAN: https://github.com/FYSETC/UCAN
xjtuecho USBCAN: https://github.com/xjtuecho/USBCAN
Kosmonova usb-can-firmware-stm32: https://github.com/Kosmonova/usb-can-firmware-stm32
USBtin: https://github.com/fischl/USBtin
pcan_cantact: https://github.com/moonglow/pcan_cantact
umi-eng adapter: https://github.com/umi-eng/adapter
SuperCAN: https://github.com/jgressmann/supercan
更多新闻
想了解某条公告的细节?
Tell us which range or project you are looking at and we will reply with specifications, samples and lead times.