简介
业务需求现在需要开发一款,USB转CAN的工具,但是该工具不光要支持CAN数据的收发透传功能,还需要支持特定的协议支持 U 盘烧写外部设备
分解需求
- 基本功能:实现CAN 命令的收发
- 进阶功能:支持U盘读取功能,分别按OTA协议烧录外部CAN设备,检测到U盘插入即开始下载流程
- ++功能:设备带LED屏和按键可支持文件选择功能
需求分析
基本功能经调查现在有一类支持 USB转CAN的开源硬件方案,该类板子统称位CANable设备,在此硬件上衍生了一类开源转换协议,canable包含:pcan,candleLight,slcan,kvaser这些。
每种协议所对应的上位机不同,即USB转CAN协议这块的定义各有差异。
应用软件与固件的对应关系
- PCAN的 PCAN-View软件
需要先在电脑中安装PCAN驱动,在设备管理器中可以被正确识别为PCAN-USB设备
之后打开 PCAN-View上位机便可以正常连接控制板
- Cangaroo 上位机软件
这是市面上其中两种CANable硬件配置
由于底层硬件一致,CANable可以通过烧录不同的固件来适配上位机使用
开源资料
pdf原理图
https://github.com/HubertD/candleLight/blob/master/export/v1.1/pdf/candleLight-v1.1.pdf
PCAN固件
论坛已经有人分享了(PCAN的固件实际是不开源的,原装PCAN动辄2000的价格,感谢极客的分享),还是这个链接:
https://github.com/moonglow/pcan_cantact
上位机开发
上位机相关的开发可以直接在 PCAN 官网进行下载,如果你只是需要进行CAN收发那么使用官方的上位机就可以满足全部需求了,如果需要二次开发那么官方有提供API 静态库可供调用。
PCAN API 组件关系如上图所示,一般上面的都是行业标准通讯协议,如果我们只是开发私有的CAN协议那么只需要集成PCAN-Basic API这个库,便可以完成和PCAN-USB设备的握手,配置,CAN命令收发,等功能。
但这个库的开发是否方便,支持资料是否完备还需要亲自验证下,未完待续。。。。
其余的几种协议都和PCAN一样,在此不一一赘述,有兴趣的盆友可以自行了解,经过一些开发人员的反馈PCAN的开发会简单一些。