0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将MCP2515CAN总线控制器与Arduino接口

454398 来源:工程师吴畏 2019-07-30 10:51 次阅读

在这个项目中,我们将了解MCP2515 CAN控制器模块,如何将MCP2515 CAN总线控制器与Arduino接口,以及如何在两个MCP2515 CAN的帮助下实现两个Arduino板之间的通信控制器和CAN协议。

简介

受控区域简单CAN网络是一种总线标准,允许微控制器及其外围设备在不需要主机设备或计算机的情况下进行通信。

由Robert Bosch GmbH开发的CAN协议主要用于汽车,用于控制单元及其组件之间的通信。

例如,发动机控制单元是汽车中使用的主要控制装置。该装置连接到许多传感器和执行器,如气流,压力,温度,阀门控制,空气控制电机等。这些模块和控制单元之间的通讯是通过CAN总线进行的。

为了更多地了解CAN总线,CAN控制器和其他重要方面,MCP2515 CAN总线控制器模块非常有用。

同时阅读: SPI通讯基础。

简要说明MCP2515 CAN总线控制器模块

MCP2515 CAN总线控制器是一个简单的模块,支持CAN协议版本2.0B,可用于1Mbps的通信。为了建立一个完整的通信系统,您需要两个CAN总线模块。

项目如下图所示。

此特定模块基于MCP2515 CAN控制器IC和TJA1050 CAN收发器IC 。 MCP2515 IC是一个独立的CAN控制器,集成了SPI接口,用于与微控制器通信。

来自TJA1050 IC,它充当MCP2515 CAN控制器IC和物理CAN总线。

下图显示了典型MCP2515模块上的组件和引脚。

MCP2515 CAN总线模块示意图

在查看模块原理图之前,您需要了解一个有关IC的一些事项,即MCP2515和TJA1050。

MCP2515 IC是主控制器,内部由三个主要子组件组成:CAN模块,控制逻辑和SPI阻止。

CAN模块负责在CAN总线上发送和接收消息。控制逻辑通过连接所有模块来处理MCP2515的设置和操作。 SPI模块负责SPI通信接口

来到TJA1050 IC,由于它充当MCP2515 CAN控制器和物理CAN总线之间的接口,因此该IC负责从控制器获取数据并将其中继到总线上。

下图显示了MCP2515 CAN模块的原理图,并显示了模块上MCP2515 IC和TJA1050 IC的连接方式。

MCP2515与Arduino接口的电路图

下图显示了电路图MCP2515 CAN模块与Arduino的接口以及两个Arduino over CAN协议之间可能的通信。

如果MCP2515模块的引脚不清楚,以下图片可能有用。

所需组件

Arduino UNO x 2 [购买]

MCP2515 x 2 [在此处购买]

USB电缆x 2

连接线[在此处购买]

电路设计

As前面提到过,CAN控制器IC有助于SPI通信协议与任何微控制器连接。因此,将SPI引脚即SC25,MOSI(SI),MISO(SO)和MCP2515模块的CS连接到Arduino的相应SPI引脚(参见电路图)。

进行两次这样的连接:一对作为发射器,另一对作为接收器。现在,对于此发送器和接收器之间的通信,连接每个MCP2515模块的CANH和CANL引脚。

代码

在进入代码之前,您需要下载一个库MCP2515模块。有很多库,但我使用了这个特定的库。

下载并将提取的内容放在Arduino的libraries目录中。

由于通信涉及发送器模块和接收器模块,因此代码也分为发送器代码和接收器代码。

发送器代码

接收器代码

工作

此项目的工作非常简单,因为所有工作都由库(SPI和CAN)完成。由于CAN是基于消息的通信,因此您需要在0到8个字节之间的任何地方发送消息。

在此项目中,发送器正在发送消息为1 1 2 3 0 5 6 7.此消息通过CAN总线传输,接收器接收此消息并显示在其串行监视器上。

此外,0 th 和4 th 位,即上述序列中的1和0由接收器分别提取,并接通和断开连接到Arduino引脚2的LED

应用

如前言所述,CAN广泛应用于汽车领域。部分应用包括:

电子换档系统

自动化中的主界面(如工业

医疗设备

机器人技术

自动启动/停止汽车发动机

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 总线控制器
    +关注

    关注

    0

    文章

    24

    浏览量

    12483
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184822
收藏 人收藏

    评论

    相关推荐

    CAN如何将双通道ADC连接到FX3控制器

    我想用 FX3 控制器直接连接具有 250MSPS 的 14 位双通道 ADC 的并行 LVDS 输出。 从器件的数据表中可以清楚地看出,我 CAN ADC输出连接到GPIFII接口
    发表于 02-27 06:25

    什么是CAN? Pin MCP2515 芯片

    什么是CANCAN控制器局域网络(ControllerAreaNetwork,CAN)的简称,是如今是国际上应用最广泛的现场总线之一,是
    的头像 发表于 02-22 08:31 273次阅读
    什么是<b class='flag-5'>CAN</b>? Pin <b class='flag-5'>MCP2515</b> 芯片

    CEPARK MCP2515 CAN通信模块 配套代码

    电子发烧友网站提供《CEPARK MCP2515 CAN通信模块 配套代码.zip》资料免费下载
    发表于 10-18 09:15 10次下载
    CEPARK <b class='flag-5'>MCP2515</b> <b class='flag-5'>CAN</b>通信模块 配套代码

    CEPARK MCP2515 CAN通信模块产品简介

    电子发烧友网站提供《CEPARK MCP2515 CAN通信模块产品简介.pdf》资料免费下载
    发表于 10-18 09:09 1次下载
    CEPARK <b class='flag-5'>MCP2515</b> <b class='flag-5'>CAN</b>通信模块产品简介

    MCP2515的使用

    电子发烧友网站提供《MCP2515的使用.pdf》资料免费下载
    发表于 10-13 11:18 6次下载
    <b class='flag-5'>MCP2515</b>的使用

    CAN总线控制器MCP2515的原理及应用

    电子发烧友网站提供《CAN总线控制器MCP2515的原理及应用.pdf》资料免费下载
    发表于 10-13 10:47 3次下载
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>控制器</b><b class='flag-5'>MCP2515</b>的原理及应用

    使用CAN总线需要扩展CAN总线接口

    您是否遇到需要使用CAN总线,但MCU没有集成CAN总线控制器的情况?您又是否遇到MCU的CAN
    的头像 发表于 09-04 16:41 717次阅读
    使用<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>需要扩展<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>接口</b>吗

    新能源汽车通信/DP2515完全兼容MCP2515支持SPI通信的can V2.0B控制器

    是一款独立控制器局域网络(Controller Area Network, CAN)协议控制器,完全支持 CAN V2.0B 技术规范。该器件能发送和接收标准和扩展数据顿以及远程帧。
    发表于 08-18 17:13

    SIT2515 带 SPI 接口的独立 CAN 控制器,芯片功能与 MCP2515 完全一致

    SIT2515 是带有 SPI 接口的独立局域网(CAN)控制器,它实现了 CAN 规范,版本 2.0B。该 芯片主要应用在汽车和工中进行数
    的头像 发表于 08-02 17:50 547次阅读
    SIT<b class='flag-5'>2515</b> 带 SPI <b class='flag-5'>接口</b>的独立 <b class='flag-5'>CAN</b> <b class='flag-5'>控制器</b>,芯片功能与 <b class='flag-5'>MCP2515</b> 完全一致

    can总线 i/o模块能否充当控制器

    can总线 i/o模块能否充当控制器?答案当然是不行!因为它并没有主站控制功能。 虽然都有总线接口
    的头像 发表于 06-28 08:35 415次阅读

    MCP2515 CAN模块电路原理图

    MCP2515_CAN模块电路原理图-免费下载。
    发表于 06-27 15:39 12次下载

    MCP2515带有SPI接口的独立CAN控制器数据手册

    Microchip 的 MCP2515 是一款独立控制器局域网络 (Controller Area Network, CAN)协议控制器,完全 支持
    发表于 06-27 15:31 2次下载

    如何将带有CANopen接口的传感与MPC5644A微控制器通信?

    我正在使用 MPC5644A 微控制器,这个微控制器CAN 总线接口。我想将带有 CANopen
    发表于 06-02 08:21

    基于FPGA的CAN总线控制器的设计

    今天给大侠带来基于FPGA的CAN总线控制器的设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,CAN 总线协议解析以及
    的头像 发表于 05-18 09:21 914次阅读
    基于FPGA的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>控制器</b>的设计

    DP2515—带有 SPI 接口的独立 CAN 控制器

    DP2515是一款独立控制器局域网络(Controller Area Network,CAN)协议控制器,完全支持CAN V2.0B技术规范
    的头像 发表于 05-07 22:46 920次阅读
    DP<b class='flag-5'>2515</b>—带有 SPI <b class='flag-5'>接口</b>的独立 <b class='flag-5'>CAN</b> <b class='flag-5'>控制器</b>