原贴地址:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4651667&bbs_page_no=1&bbs_id=3020
看到坛子里面已经有很多朋友提到如何做自己的USB-CAN适配器了,而且现在用CAN设备的和开发的人原来越多,我在这里也分享下我们这个小产品的制作过程。
我们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二选一,其实初了丑了点之外,其他用的倒是蛮好的,上位机也开始慢慢编写了一个可以用的调试界面。
USB-CAN-232带塑料壳 (原文件名:IMG_0327.JPG)
接下来前后改进了超过6个版本,现在还保留了的实物的各个时期的照片如下,蛮壮观的。
各个时期的临时版本 (原文件名:IMG_0329.JPG)
其实这个模块如果不用那种隔离和双路的话,其实体积可以很小就够了,我们硬件方面也改成了CP2102的方案,先转成串口,再转成CAN。主芯片就三个。。。很简洁,而且可以做到跟U盘一样大小。
中间用热缩管做了个简单的包装,然后在技术部门内部用的很High,调试效率提高很多,然后又考虑真的可以做下推广,让其他朋友们也能够用到这种东西,蓝色的外壳就是买的小读卡器然后拆掉电路板换我们的,但是还是太拥挤了,也不好看,最后放弃。。。。
再后来就选了一种比较便宜的塑料外壳,原来是用在DB9的串口互转设备上的,看上去体积比较合适,就拿来当做我们的外壳了。呵呵,算是有个着落,当时觉得体积挺大的,很多空间都浪费,有点太厚太宽了。但是好像也没有更合适的外壳了,为这个小东西开模也不划算。
开始正式发布供销售的2个版本是这样的
发布的2个版本 (原文件名:IMG_0331 拷贝.jpg)
其中后来的那个基本就是外观上美化了一下,成了现在的定型产品。而且反响都还不错,普遍都比较认可。
效果图纸 (原文件名:USB2CAN适配器v2包装.jpg)
包装图 (原文件名:QQ截图未命名.jpg)
上位机有2个调试程序,一个用于正常调试,收发数据和看波形
软件主界面 (原文件名:QQ截图未命名2.jpg)
另一用于设置波特率等参数
软件界面2 (原文件名:QQ截图未命名3.jpg)
上位机软件还是挺好用的,看数据和波形大大提高了工作效率,多个波形的同时监控可以很容易发现问题。
我们现在做的每个产品都离不开这种调试手段了(当然,不用CAN的除外),依赖性还是很大的,软件工程师都人手一个设备,已经用了1年多了,还不错的。
因为这个产品比较简单,成本也比较低,硬件成本也就40块钱左右。电路也很简单,所以发在这里跟大家分享下。本来这个玩意就比较简单,也没打算作为主力产品,也就是当做个小模块顺便推一下
PCB的图纸,很简单吧。。。。就这还改了好多代。。。。
PCB图 (原文件名:USB2CAN.jpg)
其他的资料,欢迎大家下载和研究。
资料ourdev_627692IXWNNX.rar(文件大小:16.46M) (原文件名:USB2CAN适配器软件包.rar)
程序源码ourdev_627693HY5ECP.rar(文件大小:600K) (原文件名:USB2CAN下位机程序.rar)
电路图ourdev_627694LUBUKA.doc(文件大小:168K) (原文件名:E6_CAN2USBAdapter_v2.0的原理图和PCB信息.doc)
相对于市面上的最高端的产品,我们放弃了隔离的方案,也只做了一路,没有做工业上面那样很严格的保护措施,而且没有专门研究过CANOpen协议,暂时不支持,所以应用范围还是有限。当然,不排除以后专门发展那方面产品的可能。
有很多做汽车设备调试的朋友买了我们的设备,但是其实我们自己还不太了解真正行业内部的应用,如果能够获好的改进意见,那我们优化的方向就更加明确了。
希望这些资料能够对正在学CAN和正在用CAN的或者对CAN有兴趣的同志们带来帮助。。。。。
也肯定大家多提提意见,多交流交流,非常欢迎!
为了排除广告嫌疑我就不发任何链接了,如果图片有不合适的地方,阿莫可以让我删掉或修改,谢谢大家的支持!
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |