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

492 阅读4分钟

之前在工作的过程中,无意的了解到USBCAN卡,这玩意看起来烂大街的东西竟然还那么贵。

USB-CAN这种工具,国内居然没有一个拿得出手的开源方案。某立功和PCAN动辄2000+的价格也是离谱。淘宝上各种虚拟串口方案、替换dll兼容某立功软件的各种方案....价格都倒是便宜,性能和可靠性嘛.......就不多说了,上位机软件也是烂的一塌糊涂。

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

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

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

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

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

原理图可以在这里下载:

github.com/HubertD/can… 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固件:github.com/moonglow/pc…

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

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

7.固件烧写方式

除了传统烧写方式之外,还支持WEB烧写。

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

canable.io/updater/

在这里插入图片描述

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