电路方案分析(六)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/
下一步就是打板制作了。后续更新验证记录。