USB-CAN 开发笔记

最近在接触 CAN 总线的开发,找了一圈 CAN 总线的适配器,某宝上全是各类坐地起价的分析仪。这类分析仪有个特点是在系统中呈现的形式为一个 USB 串口设备,其通信方式为厂家私有并不公开,集成开发的时候必须带上厂家的 .dll 或者 .so 文件。

经过一翻搜索之后,发现了一个以 Geschwister Schneider 制造的 USB/CAN 设备(VendorId: 0x1d50, ProductId: 0x606f)的 USB 通信协议为蓝本的开源方案。在 Linux 下以标准 SocketCAN 设备 [5] 呈现,驱动已经进入主线[1],在 Windows 下以 WCID 设备 [6] 呈现,开源 API 见 [2]。开源的硬件方案 [3],对应的固件 [4]。

在其基础上分叉出来的方案还有 [7],[8] 和 [9]。另外 SocketCAN 还有一个开源的 Golang 包 [10]。

[1] https://github.com/torvalds/linux/blob/master/drivers/net/can/usb/gs_usb.c
[2] https://github.com/HubertD/cangaroo/tree/master/src/driver/CandleApiDriver/api
[3] https://github.com/HubertD/candleLight
[4] https://github.com/HubertD/candleLight_fw
[5] https://www.kernel.org/doc/Documentation/networking/can.txt
[6] https://github.com/pbatard/libwdi/wiki/WCID-Devices
[7] https://store.linklayer.com/collections/frontpage/products/cantact-v1-0
[8] https://canable.io/
[9] https://github.com/codenocold/microbus
[10] https://github.com/linklayer/go-socketcan

《USB-CAN 开发笔记》上有1条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据