关注、星标公众号,直达精彩内容

来源:嵌入式Linux
照理来说,USB-CAN这种东西应该是烂街的工具,国内没有开源方案。PCAN动辄2000 价格也离谱。淘宝上的各种虚拟串口方案,替换dll与某个立功软件的各种方案兼容...价格便宜,性能和可靠性?...就不多说了,上位机软件也烂得一塌糊涂。
在这里,我们推荐一种外国炸鸡好用的开源工具CANable,ta支持完全开源的软硬件和上位机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
版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。
关注我的微信公众号,回复“加群”按规则加入技术交流群。
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。