找回密码
立即注册
搜索
发回帖 发新帖

5042

积分

0

好友

648

主题
发表于 昨天 23:33 | 查看: 4| 回复: 0

照理来说,USB-CAN 这种东西应该已经被做成烂大街的工具了,但国内居然没有一个拿得出手的开源方案。某立功和 PCAN 动辄 2000+ 的价格确实离谱。淘宝上各种虚拟串口方案、替换 DLL 兼容某立功软件的各种方案,价格倒是不贵,性能和可靠性嘛……就不多说了,上位机软件也是烂得一塌糊涂。

CANable开源USB-CAN硬件电路板实拍

这里忍不住要推荐一个国外的开源工具 CANable,它拥有完全开源的软硬件及上位机支持,Windows 和 Linux Stock CAN 全都免驱,还支持 Python。

CANable开发板引脚与接口标识

而且远不止于此。经过在 GitHub 各个大神仓库里各种折腾,我发现 CANable 这个项目衍生出了很多开源固件,目前固件和支持的软件已经极为丰富。

而且主芯片STM32F042/72支持USB DFU,可以通过 USB 直接更新固件,无缝切换多种上位机。

先上项目首页,CANable 项目官网: https://canable.io/

硬件部分

硬件项目其实叫做 candleLight,GitHub 链接: https://github.com/HubertD/candleLight

这个不带隔离的硬件设计比较简单,就是一块带 USB 和 CAN 的stm32f0 + CAN收发器TJA1051/3。

可惜的是这颗 STM32F0 芯片现在价格涨得有点离谱。之前在 JLC 打样做了几块,主芯片就去到 40 多大洋,加上 PCB 和 SMT,打样成本差不多投到 100 左右。

后来发现某宝上已经有商家把 CANable 做成产品了,带隔离的价格也才 100 多,还带外壳配件,果断买了一个试试。某宝搜"开源 canable"就能找到,早知道就不用费劲自己打板了。

不过某宝上买的只提供了默认固件的相关资料。经过不断探索,在 GitHub 各个大神仓库各种折腾,我发现 CANable 这个项目衍生出了很多开源固件,目前固件和支持的软件已经极为丰富,可以说可玩性极高。我甚至怀疑很多某宝和闲鱼上的山寨 PCAN 就是 CANable 换了一个壳子和固件而已!

STM32F072C8Tx与TJA1051/3 CAN收发器电路原理图

PDF 原理图: https://github.com/HubertD/candleLight/blob/master/export/v1.1/pdf/candleLight-v1.1.pdf

固件才是重点

重点还是固件。第一个先说重磅的:PCAN 固件!

论坛已经有人分享了,链接: https://github.com/moonglow/pcan_cantact

我会在附件里打包编译好的代码和二进制文件,可以直接用 USB 烧写。

烧写 PCAN 固件之后,CANable 摇身一变就成了 PEAK CAN-USB,可以直接使用 PEAK 的官方驱动以及软件(PCAN-View / PCAN-Explorer 5),甚至基于 PEAK 开发的其他二次开发软件(比如国内的一些新能源车上位机,奇瑞、北汽这些)。

目前使用下来和原装 PCAN 的兼容性还是相当不错的,但注意不要用于 ECU/PLC 程序刷新,程序下载到中途会出错,这个问题还需要进一步优化。不过想想原装 PCAN 动辄 2000 的价格,100 多块钱的 CANable 加上这个 PCAN 固件,是真的香。

PCAN固件烧写后设备管理器识别为PCAN-USB

PCAN-View连接配置窗口

PCAN-Explorer 5软件启动界面

第二个固件是 CANable 的默认固件 candleLight_fw: https://github.com/candle-usb/candleLight_fw

这个固件功能也很强大,采用 WinUSB 免驱方案,USB bulk 双缓冲模式,实际传输性能远超那些虚拟串口的 USB-CAN。

支持 Windows 和 Linux Stock CAN,全都免驱,并且支持 Python。Linux 下使用和 PCAN 一样,都是内核自带驱动,支持 SocketCAN,非常适合用一些开源 CAN 工具和库进行二次开发。

candleLight 固件的图形化上位机叫做 cangaroo。cangaroo 是 candleLight 固件专用的、简单易用的 CAN 总线调试软件。麻雀虽小五脏俱全,对于一般的 CAN 调试开发完全够用,而且专门针对汽车逆向工程增加了按 CAN ID 分类接收数据帧的功能,当某个 ID 的数据帧活跃时会进行高亮显示,便于观察分析。

cangaroo CAN总线监控与发送界面

  • 支持 Windows/Linux(Ubuntu 发行版本)
  • 最大支持同时接入 32 个 CANable 模块
  • 数据帧时间戳
  • 支持数据日志保存
  • 支持 CAN DBC 文件协议解析
  • 软件绿色免安装

candleLight 固件还支持 BUSMASTER(这个就很厉害了,用过的都懂)。BUSMASTER 是一款功能强大的专业级 CAN 总线调试软件,不仅能应对一般的 CAN 调试开发,还是一个用于设计、监测、分析与模拟 CAN 网络的开源开放式总线 PC 软件。BUSMASTER 已被 RBEI 概念化、设计与开发,同时基于 CANvas 软件工具。

不过 candleLight 固件需要下载增加了 cantact 设备支持的 BUSMASTER 版本。

BUSMASTER软件选择CANtact驱动

BUSMASTER企业级CAN调试功能模块一览

虚拟串口转 CAN 的 Stock slcan 固件

对于很多不熟悉 USB 编程、还是需要串口协议转 CAN 的小伙伴,slcan 固件正好满足需求。CANable 烧写 slcan 固件后,会枚举为 Linux、Mac 和 Windows 上的标准串行设备。CANable 可以很容易地通过重新烧写固件,在 Linux 中枚举为本地 CAN 设备,在 Windows 中枚举为通用串口设备。

在 Linux 上,CANable 原生地与 slc 配合工作,因此可以使用所有标准的 can-utils 命令行工具,甚至 Wireshark 来与总线交互。

在 Windows 和 Mac 上,CANable 可以和 cantact-app 一起工作。这是一个简单的 Java 应用程序,可以实时显示 CAN 流量,并允许在总线上传输消息。

固件烧写方式

Web 在线烧写固件

如果只是想 copy 一个来用用,不需要自己编译烧写,可以直接用 STM32 的 USB DFU 通过 USB 下载固件。

CANable 还提供了一个 Web 烧写页面: https://canable.io/updater/

这个真的超级方便,意味着你不需要任何烧写器或者准备固件编译环境,只要有谷歌浏览器,就能随时随地切换固件。

用谷歌浏览器打开这个页面,把 CANable 的 DFU 拨码开关按下去,再用 USB 连接电脑。选择需要烧写的固件类型,再点 Connect and Update 就可以直接通过网页进行烧写。

CANable Pro开发板DFU开关位置

CANable网页在线烧写固件界面

注:这个网页上只能烧写 CANable 的官方固件,自行编译的固件无法烧写(现在该页面已经支持烧写 PCAN 固件了,给力)。

USB DFU-util 烧写固件

下载 dfu-util-0.9-win64: https://liquidtelecom.dl.sourceforge.net/project/dfu-util/dfu-util-0.9-win64.zip

解压后,将编译好的 .bin 文件拷贝到解压后的目录。创建一个文本文件,拷贝以下内容进去,注意 candleLight_fw.binary 为要烧写的 bin 文件,需要改成实际要烧写的文件名,然后把这个文本文件保存为 flash.cmd:

dfu-util --dfuse-address -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D candleLight_fw.binary
cmd /k

把 CANable 的 DFU 拨码开关按下去,连接电脑 USB 线后会识别成"STM32 BOOTLOADER"。如果识别失败需要下载安装驱动: https://canable.io/utilities/ImpulseRC_Driver_Fixer.exe

识别成功后,双击运行之前创建的 flash.cmd 文件,会看到开始烧写的进度,如下就表示烧写完成了:

Download        [=========================] 100%        36108 bytes
Download done.
File downloaded successfully

整套流程走下来,CANable 从硬件到固件都给人不少惊喜,尤其是网页端在线烧写这种设计,真的把繁琐的固件切换变成了几秒钟的事。如果你对这种嵌入式开源项目也感兴趣,欢迎到云栈社区一起交流折腾心得。




上一篇:离线语音小夜灯拆解:0.98 元到手的方案,内部降本有多极限
下一篇:全开源 ESP32 扩展板 IOX-77:5 颗 CH32V003 扩展出 75 个 GPIO
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-10-21 01:17 , Processed in 0.064004 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表