大家好,我是小麦,最近在调整CAN,然后在参观阿莫论坛的时候,我发现了一个很好的CAN调试器项目,给大家安利。
这里推荐一款超级好用的国外开源工具CANable,支持完全开源的软硬件和上位机windos和linux Stock can而且都是免驱动和支持的Python。
而且远不止于此,经过我的不断探索,在gitlhub各个大神仓库各种折腾。我发现这个canable该项目衍生出许多开源固件,目前固件和支持软件非常丰富。
而且主芯片STM32F042/72支持USB DFU,可以通过USB直接更新固件,无缝切换各种上位机。STM32上的CAN通信基础知识可参考本文:CAN详细说明总线。也可以参考本次10。.第二十七条第三条推文演示STM32F103的CAN收发通信过程。
先上项目首页,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.binary cmd /k
canbale的DFU按下拨码开关,连接电脑USB线会被识别为STM32 BOOTLOADER”
如果识别失败,需要下载安装驱动,
识别成功后,双击运行前创建flash.cmd文件会看到烧写的进展,如下所示
Download [=========================] 100% 36108 bytes Download done. File downloaded successfully
原文地址:https://www.amobbs.com/tread-5750363-1-1.html
—— The End ——
往期推荐
面试常问的16个C语言问题,你能答上来几个?
C语言指针的正确打开方式!
手把手教你做一个天气时钟,推荐收藏
厉害了,这个抗干扰利器,快来了解一下
太坑了,C标准库缓冲区溢出的问题,该搞清楚了
10大动图:秒懂各种常用通信协议原理
你点的每个好看,我都认真当成了喜欢