CAN的协议帧结构其实还不是很难,开始的时候我拿到这个资源的时候都有点蒙了,因为在CAN.H的所定义的结构体和宏定义太多了,结构体里面的结构成员有很多都不明白它们是什么意思,取值的范围,等等。但随着不断的深入学习,加上在EE上面找到了my_can.c和my_can.h这两个文件,加入到工程中,再配合着相应的手册,全用ZLG的软件,整个CAN实验平台就这样搭起了,加上EE和SOSO姐提供的EK板,本人就开始CAN的学习历程了,下面是本人在以前的学习中用到的一些资料和程序(经本人修改),大家一起讨论一下CAN的实际应用到了哪些项目?它的作用到底有多大?
本人觉得CAN将成为未来总线发展的一个趋势,它的本身资源丰富,数据传输可靠,稳定,距离远,速度快,在很多大型的工业应用十分广泛。特别适用于电磁干扰和其它电子噪声强的环境,它可以使用像RS-485这样的平衡差分线或者更稳定可靠的双绞线。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。后来也使用在许多嵌入式控制应用中(比如:工业和医疗)。这些说的范围太广了,希望哪位坛友能讲一下实际项目中的具体应用,这样才能学到更多。。。。。。。
本人暂时用得很少,因为是学习阶段,所以请资深的坛友上一上你们的心得和实际应用吧。。。
期待中。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
下面是本人对这次发贴的更新内容,再上传出本人所用到的程序代码 ,一般对于学习者会用到两种代码,一种是直接应用can.h和hw_can.h实现CAN通信实验,另一种是利用my_can.h和my_can.c这两个文件实现用户与底层驱动库之间的挂接实现:
1.利用can.h和can.c实现CAN通信实验
发送:时钟设置-----(UART配置使能,由于这是基于终端实现的,所以可以加上)---CAN外设资源配置---初始化报文对象----清发送成功标志配置发送函数---等待发送结束。。。
关于can.h中的结构体和一些宏定义请参看相关数据手册。
在这个发送函数中,定义了三个报文对象,前两个是单独报文,初始化一次,第三个报文为共用报文,和它负责发送两组不同的数据。所谓的报文共用是指报文对象共用。
接收:时钟设置-----(UART配置使能,由于这是基于终端实现的,所以可以加上)---CAN外设资源配置---初始化报文对象----清发送成功标志配置接收函数---等待接收结束并显示。。。
其实这样看还是比较简单,配合着程序看就比较容易理解了。。。
2.利用my-can.c和my-can.h实现CAN通信实验
利用这两个文件其实增加了工程的复杂程度,但更容易理解和学习。因为在这两个文件中新定义了一些结构体和其它的变量。
在工程文件中已经标注很清楚,可以参看工程文件。。。。。。。。。。。。。。。
再上一本快速学习CAN手册, 这是本人将一些资源压缩后编译成的,是有关CAN通信最基本的知识,掌握了这些东西再配合一些手册,你将不会再对CAN陌生了。。。。。。。
[ 本帖最后由 shilaike 于 2011-4-3 21:19 编辑 ]
|