基于DSPIC30F4011单片机的CAN总线通信设计-设计应用_第1页
基于DSPIC30F4011单片机的CAN总线通信设计-设计应用_第2页
基于DSPIC30F4011单片机的CAN总线通信设计-设计应用_第3页
基于DSPIC30F4011单片机的CAN总线通信设计-设计应用_第4页
基于DSPIC30F4011单片机的CAN总线通信设计-设计应用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑基于DSPIC30F4011单片机的CAN总线通信设计-设计应用0引言

CAN(ControllerAreaNetwork)即控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。事实上,由于其良好的性能及独特的设计,CAN总线越来越受到人们的重视。同时,由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而且向着自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。为此,本文给出了利用两片DSPIC30F4011,并用双绞线将两单片机的CAN模块连接起来组成一个CAN总线,而两单片机相当于CAN总线上的两个结点,再编写程序实现两单片机之间简单通信的方法。

1DSPIC30F4011简介

DSPIC30F4011是Microchip公司新推出的DSPIC30F系列16位单片机。它是一种具有单片机和DSP综合功能的16位CPU,该器件不但保留了单片机的基本性能、丰富的外围模块,同时还兼具DSP的高速运算能力。DSPIC30F4011单片机上集成的CAN模块,使其能够与其它CAN模块或数字信号控制器进行通信,其上的CAN模块是一串行接口,此接口的设计允许在噪声环境下进行通信,同时它也是一个通信控制器,可以实现BOSCH规范中定义的CAN2.0A/B协议,该模块也支持该协议的CAN1.2、CAN2.0A、CAN2.0BPassive以及CAN2.0BActive等版本。

2CAN总线实现方案

本文介绍的系统中的每个节点都由单片机、CAN控制器、MCP2551收发器组成。单片机主要用于系统的计算及信息处理等功能;CAN控制器主要用于系统的通信;MCP2551收发器主要用于增强系统的驱动能力。系统的发送过程是首先由单片机对外围设备或其他节点传送过来的信息进行处理,按CAN规范规定的格式将其写入CAN控制器的发送缓冲器,并启动发送命令,再把数据发送到CAN总线上;而其接收过程则是CAN控制器从CAN总线上自动接收数据,并经过过滤后存入CAN接收缓冲器,且向单片机发出中断请求,此时单片机可从CAN的接收缓冲器读取要接收的数据。图1所示是CAN总线通信的简单示意图。

图1CAN总线通信示意图

3CAN总线通信程序设计

在程序设计时,可把一端作为发送数据端,另一端作为数据接收端。信息从CAN模块发送到CAN总线通常是由CAN模块自动完成的。发送程序只需把发送的信息帧送到CAN的发送缓冲区,然后启动发送命令即可。发送程序可采用查询方式。作为发送端,也可对其发送缓冲寄存器进行赋值,以作为发送的信息,具体方法如下:

C1TX0B1=0x5555;

C1TX0B2=0x5555;

C1TX0B3=0x5555;

C1TX0B4=0x5501;

之后应将这些数据发送到CAN总线上,并将报文发送优先级设成,以便于数据发送。

信息从CAN总线到CAN接收缓冲区也是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取要接收的信息即可。接收程序同样可采用查询方式。接收缓冲器会*总线是否有进入的报文,如发现总线上有报文,即接收报文。接收端程序中可定义四个变量,并把接收缓冲寄存器的值赋予变量,通过变量值的变化来判断接收端是否从总线上接收到了报文。

两端CAN模块寄存器的配置必须匹配,否则两者将无法进行通信。其具体配置方法如下:

C1TX0CON=0x0003;

C1TX0SID=0x0020;

C1TX0DLC=0x01c0;

C1RX0CON=0x0000;

C1RX0DLC=0x0008;

C1RXF0SID=0x0020;

C1RXM0SID=0xffff;

C1CFG1=0x00ff;

C1CFG2=0x07ff;

在寄存器设置完成之后,系统将进入正常工作模式。

4测试结果分析

当两个单片机用双绞线连接好之后,即可在两台计算机上同时运行程序。当程序运行一段时间后,就可对运行结果进行分析。分析时,可先对发送端进行分析,图2所示是其寄存器的测试值列表。

图2寄存器值列表

从图2可知,发送端的接收缓冲寄存器的值与发送缓冲寄存器的值相等,说明发送端的CAN模块在*到总线上有报文时也接收了报文,这正好符合CAN总线协议。

利用图3所示的测试变量值可从接收端进行分析。

图3测试变量值列表

由图3可知,接收端变量的值与发送端赋予发送缓冲寄存器的值相等,这也就是说,接收端的接收缓冲器接收到了总线上的报文,证明本CAN总线通信设计成功。

5结束语

本文基于DSPIC30F4011的CAN总线特性,通过在两个DSPIC30F4011之间进行双绞线连接,实现了两个单片机之间的CAN总线数据通信,该方法具有实现简单,方便,实时性好,方便灵活等优点。可以为需要使用CAN总线通信的应用提供一个参考。

参考文献:

[1].DSPIC30F4011datasheet/datasheet/DSPIC3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论