上位机软件自然是: VC++6.0 , DriverStudio3.2 , DDK,至于安装顺序,DriverStudio设置,网上很多资料。
下位机用的是Keil ARM 3.22.
说明:
USB转CAN,作为CAN调试工具
作者 Ahui
邮箱 chuanhuibh@sina.com
日期 : 2009.7.12
版本 : V1.1
CAN2.0 标准帧 ,ID为0到255(没有用11bit) , 波特率500K,一次最多发送8字节数据
USB2.0 全速设备
硬件: 英贝德AT917X256 实验板 和WindowsXP PC
上位机软件: Visul C++ 6.0 , DDK , DriverSttudio3.2
下位机软件: Keli ARM MDK3.22
参考资料: USB协议,《圈圈教你玩USB》, AT91SAM7X256,AT91SAM7S64cn 芯片手册 ,
圈圈的USBtoUART在 21ic AT91SAM7S64实验板的实现代码。
使用方法:连好CAN线缆,USB线缆,电路板接通电源后,Windows提示发现新设备
然后选择自己安装驱动并把驱动目录引导到此文件夹的“Windows驱动”目录,
装玩驱动之后,打开VC上位机中的软件,软件上有个帮助按钮。
申明:(1) 初级版本目前还处于完善状态,有BUG请电子邮件告知,谢谢。
(2) 下位机USB协议栈基本为圈圈所作,本人不享有此部分版权。
(3) 转载需经本人同意,并请注明原作者和出处。
(4) 只做学习交流,禁止商用。
注意事项:
关于USB的驱动,一直没有特别详细的资料,我要补充一点:DriverStudio根据你的设置,主要是PID和VID,以及Endpoint,生成一个框架,调用DDK的东西去编译生成了2个东西,一个是inf文件,装驱动时会用到,另一个是lib库,你开发VC应用程序通过它去访问设备。
当你生成USB的驱动之后,你需要重新再用Vc6新建一个应用程序(我以前以为DriverStudio生成的就可以当最后的应用程序),把DriverStudio生成的Vc工程的库里面的interface.h拷贝到你的应用程序的VC工程中,这里有GUID,这个GUID是你的USB器件是一一对应的,和PID和VID是关联的,这样你就可以用VC的工程对你那个USB设备访问了。
还有就好似DriverStduio生成的程序要修改的,应用程序编起来也比较麻烦,可以参看圈圈的代码。
下位机USB基本上是从圈圈那里移植的,CAN的东西是我们实验室的成熟代码,从ADS移植到Keil就可以了,本来Keil自带at91的USB,也可以用,但是我移植Keil自带USB时,只能写不能读(读时PC死机),对于别人的USB,你只要移植 描述符和端点配置就可以了,当然端点中断的回调函数也要改,内核就不必动了。
在做之前最好要了解USB的协议,越详细越好。