分享我用STM32做的USB转CAN的适配器资料
来源:网络收集 点击: 时间:2024-09-02我们2年前最开始接触到CAN也是因为做机器人方面有模块分布式控制的级联的要求。曾经用AVR的mage16+SJA1000+TJA1050来实现的,想起来硬件确实还是蛮麻烦的。之前曾经用过I2C做级联,后来发现I2C不是专业用来做长距离通讯的,只是用来板内通讯比较好。而且对CAN有点恐惧,确实入门的门槛有点高,后来下定决心,在09年初开始转向STM32控制核心的时候,也把CAN这块的功能好好开发了一下。 因为STM32自带CAN的接口,硬件方面就把我忍了很久的,又肥又贵的SJA1000芯片给省掉了,很爽! 基于STM32的CAN的应用调试也还比较顺利,当时想到了最好在调试的时候能够把数据回传到电脑上,方便提高调试效率,就想到了USB转CAN的调试工具。(之前是用串口和无线串口发送数据的,已经尝到了甜头) 而现有市面上的工业用调试工具例如周立功的适配器等一般都要500以上到1000以上的都有,贵的要死,我们想,这东西好像也没那么难做吧,索性就开始自己做。 其实最早做的是USB-CAN-RS232三个都揉在一起的电路板,还专门找了个塑料盒子装在一起,加了个小拨码开关,用来串口和CAN二选一,其实初了丑了点之外,其他用的倒是蛮好的,上位机也开始慢慢编写了一个可以用的调试界面。

接下来前后改进了超过6个版本,现在还保留了的实物的各个时期的照片如下,蛮壮观的。

其实这个模块如果不用那种隔离和双路的话,其实体积可以很小就够了,我们硬件方面也改成了CP2102的方案,先转成串口,再转成CAN。主芯片就三个。。。很简洁,而且可以做到跟U盘一样大小。 中间用热缩管做了个简单的包装,然后在技术部门内部用的很High,调试效率提高很多,然后又考虑真的可以做下推广,让其他朋友们也能够用到这种东西,蓝色的外壳就是买的小读卡器然后拆掉电路板换我们的,但是还是太拥挤了,也不好看,最后放弃。。。。 再后来就选了一种比较便宜的塑料外壳,原来是用在DB9的串口互转设备上的,看上去体积比较合适,就拿来当做我们的外壳了。呵呵,算是有个着落,当时觉得体积挺大的,很多空间都浪费,有点太厚太宽了。但是好像也没有更合适的外壳了,为这个小东西开模也不划算。 开始正式发布供销售的2个版本是这样的 :
其中后来的那个基本就是外观上美化了一下,成了现在的定型产品。而且反响都还不错,普遍都比较认可。

上位机有2个调试程序,一个用于正常调试,收发数据和看波形 :
另一用于设置波特率等参数


有很多做汽车设备调试的朋友买了我们的设备,但是其实我们自己还不太了解真正行业内部的应用,如果能够获好的改进意见,那我们优化的方向就更加明确了。
希望这些资料能够对正在学CAN和正在用CAN的或者对CAN有兴趣的同志们带来帮助。。。。。 也肯定大家多提提意见,多交流交流,非常欢迎!
stm32适配器版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1188404.html