
作者:yefeng来源:微信官方账号单片机爱好者
微信微信官方账号:芯片之家(ID:chiphome-dy)
照理来说,USB-CAN这种东西应该是烂街的工具,国内没有开源方案。PCAN动辄2000 价格也离谱。淘宝上的各种虚拟串口方案,替换dll与某个立功软件的各种方案兼容...价格便宜,性能和可靠性?...就不多说了,上位机软件也烂得一塌糊涂。
在这里,我们推荐一种外国炸鸡好用的开源工具CANable,ta支持完全开源的软硬件和上位机windos和linux Stock can而且都是免驱动和支持的Python。
而且远不止于此,经过我不断探索,在gitlhub各大神仓库各种折腾。我发现这个canable该项目衍生出许多开源固件,目前固件和支持软件非常丰富。
而且主芯片STM32F042/72支持USB DFU,可以通过USB固件直接更新,各种上位机无缝切换。
先上项目首页,canbale项目官网:
先看硬件项目
硬件项目实际上被称为candleLight,github链接:
这种无隔离的硬件设计相对简单,即一块usb和can的stm32f0 CAN收发器TJA1051/3。
可惜就是这个stm32f现在0芯片的价格上涨有点离谱,以前是JLC打样几块后,主芯片去了40多大洋,加上pcb和smt,打样成本约为100美元。
后来发现某宝上已经有商家了canable制作产品后,隔离价格只有100多元,还带了外壳配件,果断买了一个试试,某宝搜开源 canable你可以找到它。如果你早知道,你板了。
但是某宝买的只提供默认固件的相关信息,经过我的不断探索,在gitlhub各大神仓库各种折腾。
我发现这个canable这个项目衍生出了很多开源固件,目前固件和支持的软件已经极为丰富,可以说可玩性极高。我甚至怀疑很多某宝和咸鱼上的山寨PCAN就是canable换个壳和固件!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
pdf原理图:
,先说重磅,!
论坛已经有人分享了,还是这个链接:
我将在附件中打包我编译的代码和二进制文件USB烧写
烧写PCAN固件之后,CANable摇身变成了PEAK CAN-USB,直接可以使用PEAK官方驱动和软件(pcan-view/ pcan-explorer 5),甚至基于peak其他二次开发软件(如国内部分新能源汽车上位机、奇瑞、北汽等)。
目前用于原装PCAN兼容性还是挺好的,但是注意不要用于ECU/PLC程序刷新,程序下载到中间会出错,需要进一步优化。但是想想原装。PCAN2000元,100多元canable加上这个PCAN固件真香。
介绍
该固件功能也相当强大,使用winUSB,USB bulk双缓冲模式的实际传输性能远远超过虚拟串口USB-CAN。
支持windos和linux Stock can而且都是免驱动和支持的Python。linux下使用和PCAN同样是内核驱动,支持SocketCAN 非常适合使用一些开源can二次开发工具和库。
candleLight固件的图形化上位机称为cangaroo。cangaroo是candleLight固件专用,简单易用can总线调试软件,麻雀虽小五脏俱全,但对于一般来说can调试开发完全足够,专门为汽车逆向工程增加了can id收到的分类can而且作为某个数据帧id当数据帧活跃时,将进行高亮显示,以便于观察和分析。
candleLight固件还支持BUSMASTER(这个很厉害,用过的都懂),BUSMASTER功能强大的专业级CAN总线调试软件不仅可以处理一般情况CAN设计、监控、分析和模拟也用于调试开发CAN开放式总线网络开源PC软件。BUSMASTER已被RBEI概念化,设计与开发,同时基于CANvas软件工具。
不过candleLight需要下载加固件BUSMASTER增加了cantact支持设备的版本。
很多不熟悉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并允许您在总线上传输信息。
固件烧写法
如果只是想copy用一个,不用自己编译烧写,可以直接用STM32的USB DFU通过USB下载固件时,我会在附件数据中提供相应的软件和文件说明,并提供几个已编译的固件。
canable还提供了一个web烧写页面:
这真的非常方便,这意味着你不需要任何烧写器或准备任何固件编译环境,只要有谷歌浏览器,你就可以随时随地切换固件,不是很强大!
用谷歌浏览器打开这个页面canbale的DFU按下拨码开关,正在使用USB连接电脑。选择需要烧写的固件类型,然后点击connect and update可以通过网页直接烧写。
注:这个网页只能烧写canable自己编译的官方固件不能烧写(现在页面支持烧写)PCAN固件!给力)。
下载dfu-util-0.9-win64:
解压后,编译好.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.binarycmd /k
canbale的DFU按下拨码开关,连接电脑USB线会被识别为STM32 BOOTLOADER”
如果识别失败,需要下载安装驱动,
识别成功后,双击运行前创建flash.cmd文件会看到烧写的进展,如下所示
Download [=========================]100% 36108 bytesDownload done.File downloaded successfully
相关固件和文档已经上传到公众号后台,感兴趣的童鞋可以回复关键词:USB-CAN,即可获取下载链接。
(关注芯片之家)