首页 > 嵌入式硬件 > 总线与接口

0 引言

本文引用地址: http://embed.21ic.com/hardware/can/201806/64202.html

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

1 DSPIC30F4011简介

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

2 CAN总线实现方案

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

图1 CAN总线通信示意图

3 CAN总线通信程序设计

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

C1TX0B1 = 0x5555;
C1TX0B2 = 0x5555;
C1TX0B3 = 0x5555;
C1TX0B4 = 0x5501;

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

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

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

 

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

4 测试结果分析

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

图2 寄存器值列表

从图2可知, 发送端的接收缓冲寄存器的值与发送缓冲寄存器的值相等, 说明发送端的CAN模块在*到总线上有报文时也接收了报文, 这正好符合CAN总线协议。
利用图3所示的测试变量值可从接收端进行分析。

图3 测试变量值列表

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

5 结束语

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

换一批

延伸阅读

[真心话] 单片机大师郭天祥的大学六年,看看与你的有何不同?

单片机大师郭天祥的大学六年,看看与你的有何不同?

在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......

关键字:单片机 郭天祥

[真心话] 漫漫电子工程路:尝百鲜之后,我还是如此钟情于单片机

漫漫电子工程路:尝百鲜之后,我还是如此钟情于单片机

现在想起来,当时的情形还历历在目。当时工作非常艰辛,累得我是满地找牙。记得进厂的第一天,就加班通霄,以后天天晚上加班至12点,早上7点起床。......

关键字:电子工程师 单片机

[真心话] 一个实例简单明了告诉你为什么要用RTOS

一个实例简单明了告诉你为什么要用RTOS

对于搞单片机的特别用8051系列工程师来说,谈到单片机的RTOS,很多时候会问一句:“为什么要用RTOS?单片机就这一点资源,使用RTOS能保证效率吗?”......

关键字:单片机 RTOS
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14