|
本帖最后由 wdluo 于 2012-9-8 10:32 编辑
去年在买的AT91SAM7X256开发板上做了一个USB转CAN的,当时做得是软件,现在硬件也自己做了小板,做了小盒装起来(虽然很丑),大名鼎鼎的CAN总线就不用介绍了吧,这里的主角是AT91SAM7X256,它是ATMEL支持CAN和以太网的ARM7,我所在的实验室用这个片子比较多,由于我们用CAN的时候调试很麻烦,ZLG的USB转CAN很贵,于是就想自己整一个,去年在本坛发过VC上位机软件,USB驱动,ARM下位机程序,这次把硬件改成自己的了,软件完善了CAN波特率设置,总体来说更好用了。不废话,上图了。
这个是完工后的照片:
盒子是用烙铁钻的孔,很糙,体积不大,看硬币就知道 (原文件名:装盒后正面.JPG)
下面是电路板正面,很不幸,有飞线,但是功能没损失,主要问题在于原理图中TOP那一夜端口接反了,画图的时候再怎么仔细都没想到检查TOP中的端口,这个问题花了我好长时间,板子焊好后,USB功能一直不能用,察了好几天才发觉USB信号线连反了,不过改后就行了。
电路正面 (原文件名:电路板正面.JPG)
板子自己焊的,残余松香有些赃。,这个是电路板反面
(原文件名:电路板反面.JPG)
这是我自己设计的PCB,可以插20针标准ARM的 JTAG,在下方,是不是还凑合:
PCB整体还是很整齐的
除CAN外,板子上还做了RS422和RS232
接头.JPG
上位机软件是VC6 + Driverstudio3.2 + DDK, 参考了《圈圈教你完USB》书中代码,要是能改成HID就好了,那就不需要驱动,现在的方案是自定义的USB设备,需要做驱动程序。
上位机软件.JPG
这个是上位机,背景是Busbhond,测USB的一个软件
这个是可执行软件包(无代码的),如果你有AT91SAM7X256或者7X128,7X512的板子,那就把“ARM可执行文件”烧进去,就能用了。
可执行文件 USB_To_CAN_V2_0可执行文件.rar (504.76 KB)
资料目录:
可执行文件.JPG
这个是全套的源代码,包括ARM,USB驱动,原理图也有
源码和电路 USB_To_CAN_V2_0全部资料.rar (816.34 KB)
目录如下:
源码.JPG
这是我放在资料中的说明文档,也放到这
USB转CAN,作为CAN调试工具
CAN2.0 标准帧 ,ID为0到255(没有用11bit) , 波特率可选择1M,500K,250K,125K,100K,50K,
一次最多发送8字节数据。
USB2.0 为12M全速设备
上位机开发软件: Visul C++ 6.0 , DDK , DriverSttudio3.2
下位机开发软件: Keli ARM MDK4.0
使用方法:连好CAN线缆,USB线缆,电路板接通电源后,Windows提示发现新设备
然后选择自己安装驱动并把驱动目录引导到此文件夹的“Windows驱动”目录,
装玩驱动之后,打开VC上位机中的软件,软件上有个帮助按钮。
作者 Ahui
邮箱 chuanhuibh@sina.com
申明:
USB相关的代码均移植自“电脑圈圈Computer-lov”在AT91SAM64上的程序。
本人保留对资料包中原理图,以及部分代码等的版权,请勿拿来做商业用途,
由于使用本代码带来的一切后果,概不负责。转载资料请通过邮件通知本人。
更新日志:
日期 : 2009.7.12
版本 : V1.1
日期 : 2010.3.18
版本 : V2.0
更新了上位机软件和下位机软件,添加了波特率设置模块,除500K外,其它波特率尚未测试
下位机软件使用Keil MDK4.0重新编译(上一版为KEIL ARM MDK3.22) ,硬件由原来购买的
开发板换成自己制作的AT917X256小板,加了塑料外壳
-----------------------------------------------------------------------------------------
希望对那些使用CAN的朋友有帮助,如果有时间,我会考虑把资料移植到STM32F105,其实F103的USB我已经挑通,但是103的USB和CAN无法同时使用,虽然本坛
AT91人少,也只能将就一下。
|
|