电路方案分析(六)USB-CAN

之前在工作的过程中,无意的了解到USBCAN卡,这玩意看起来烂大街的东西竟然还那么贵。
USB-CAN这种工具,国内居然没有一个拿得出手的开源方案。某立功和PCAN动辄2000+的价格也是离谱。淘宝上各种虚拟串口方案、替换dll兼容某立功软件的各种方案…价格都倒是便宜,性能和可靠性嘛…就不多说了,上位机软件也是烂的一塌糊涂。

这玩意硬件就是那么点东西,主要是固件,也就是软件。

这两天刚好看到一篇国外开源的USBCAN方案CANable,他有完全开源的软硬件及上位机支持,支持windos和linux Stock can并且都免驱,且支持Python。COPY过来,今天先分析一下他的方案,下一步咱们验证一下他的可靠性。据说目前这款产品已经衍生出好多的固件了。

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

这是他的官网连接:https://canable.io/
大家可以自己探索一下。

好了首先看一下他的硬件原理图。这个不带隔离的硬件设计是比较简单的,就是一块带usb和can的stm32f0 + CAN收发器TJA1051/3。
原理图可以在这里下载:

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

在这里插入图片描述
可以看到,candleLight的原理图框架,要由五部分组成,电源power,主控MCU,CAN芯片模块,LED指示模块,连接端子组成的。

2.主控MCU
在这里插入图片描述
选择这个片子可能主要还是在成本低,有一路CAN和USB外设。
这个片子做USB转换的项目比较多,其他大多仿真器也会选择这个片子。
可以看到用到的外设主要是一路CAN通道,USB的外设,和几个控制LED的IO。

3.电源模块在这里插入图片描述
一般选择,一篇线性LDO即可,足可以满足这个应用的功耗了。

4.CAN芯片模块
在这里插入图片描述
经典的TJA1051模块。有过CAN接口开发的一定知道这款芯片,还是简单介绍一下吧。
  
 TJA1051T/1参数:
 产品型号:TJA1051T/1
 商品目录:CAN芯片
 发送端数/接收端数:1/1
 协议类别:CAN
 类型:Transceiver
 工作电压:4.5V ~ 5.5V
 最高速率:5Mbps

TJA1051T/1特征:
 完全符合ISO 1188 -2:2003
 在CAN FD快速阶段,保证数据速率高达5 Mbit/s
 适用于12v和24v系统
 低电磁辐射(EME)和高电磁免疫(EMI)
 TJA1051T/3和TJA1051TK/3上的VIO输入允许直接与3v到5v微控制器接口(分别在SO8和非常小的HVSON8包中提供)
 在TJA1051T/E上的EN输入允许微控制器将收发机切换到非常低电流关闭模式。

5.接口和LED指示
在这里插入图片描述
剩下的就是模块的USB口和SWD下载接口,CAN通信的接口。
在这里插入图片描述

虽然某宝已经有很多类似的方案,但是哪有自己做一个来的快乐呢,粗略估算了一下成本,大概从制板到器件,成本在100块钱左右。

6.固件
这里我再github上找到了几个可以烧的固件。
在这里插入图片描述
连接放出来,PCAN固件:https://github.com/moonglow/pcan_cantact

官方固件:https://github.com/candle-usb/candleLight_fw

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

7.固件烧写方式

除了传统烧写方式之外,还支持WEB烧写。
如果只是想copy一个来用用,不需要去自己编译烧写,可以直接用STM32的USB DFU通过USB下载固件,我会在附件资料提供相应的软件和文档说明,并提供编译好的几个固件。
canable还提供了一个web的烧写页面:
https://canable.io/updater/

在这里插入图片描述

下一步就是打板制作了。后续更新验证记录。

posted @ 2021-10-16 17:15  小幽余生不加糖  阅读(40)  评论(0编辑  收藏  举报  来源