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

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

3天内不再提示

基于MCP2510 CAN控制器实现CAN总线系统智能节点的设计

电子设计 来源:单片机与嵌入式系统应用 作者:杨庆华,张景元 2021-06-23 15:16 次阅读

CAN(Controller Area Network)总线,即控制器局域网。由于具有高性能、高可靠性以及独特的设计,CAN总线越来越受到人们的重视。德国的Bosch公司最初为汽车监控和控制系统设计了CAN总线,现在,其应用已面向过程工业机械工业、纺织工业、农用机械、机器人数控机床、医疗器械及传感器等领域发展。CAN总线已经形成国际标准,并已经公认为是最有前途的现场总线之一。CAN总线规范已经被国际标准化组织制订为国际标准ISOll898,并得到众多半导体器件厂商的支持,推出各种集成有CAN协议的产品。CAN总线系统智能节点是网络上报文的接收和发送站,一般由单片机和CAN控制器或二者合二为一组成。

MCP2510是Microchip公司生产的一种独立的可编程CAN控制器芯片。本文将介绍新型的独立CAN通信控制器MCP2510,并给出其在CAN总线系统智能节点中的应用实例。

1 MCP2510芯片介绍

MCP2510是一种带有SPI接口的CAN控制器,DIP封装如图l所示。它支持CAN技术规范V2.OA/B。能够发送或接收标准的和扩展的信息帧,同时具有接收滤波和信息管理的功能。MCP2510通过SI接口与MCU进行数据传输,最高数据传输速率可达5Mbps,MCU可通过MCP2510与CAN总线上的其他MCU单元通信。MCP25lO内含3个发送缓冲器和2个接收缓冲器,同时还具有灵活的中断管理能力,这些特点使得MCU对CAN总线的操作变得非常简便。

poYBAGDS4ZKAZcGWAABEpo200Ns600.png

1.1 MCP2510的主要特点

支持CANV2.OA/B;

具有SPI接口,支持SPI模式0,O和l,1;

内含3个发送缓冲器和2个接收缓冲器,可对其优先权进行编程;

具有6个接收过滤器,2个接收过滤器屏蔽;

具有灵活的中断管理能力;

采用低功耗CMOS工艺技术,其工作电压范围为3.0~5.5V,有效电流为5mA,维持电流为10μA;

工作温度范围为-40~+125℃。

1.2 结构及工作原理

MCP25lO有PDIP、SOICTSSOP三种封装形式。图2是MCP2510的内部结构框图。CAN协议机负责与CAN总线的接口,SPI接口逻辑用于实现同MCU的通信,而寄存、缓冲器组与控制逻辑则用来完成各种方式的设定和操作控制。现结合其工作过程将各部分的功能、原理作一介绍。

pYYBAGDS4YuAPI6RAABXM_g_xjg676.png

(1)收发操作

MCP2510的发送操作通过3个发送缓冲器来实现。这3个发送缓冲器各占据14字节的SRAM。第1字节是控制寄存器TXBNCTRL,该寄存器用来设定信息发送的条件,且给出了信息的发送状态;第2~6字节用来存放标准的和扩展的标识符以及仲裁信息;最后8字节则用来存放待发送的数据信息。在进行发送前,必须先对这些寄存器进行初始化。

(2)中断管理

MCP2510有8个中断源,包括发送中断、接收中断、错误中断及总线唤醒中断等。利用中断使能寄存器(CANINTE)和中断屏蔽寄存器(CANINTF)可以方便地实现对各种中断的有效管理。当有中断发生时,INT引脚变为低电平并保持在低电平,直到MCU清除中断为止。

(3)错误检测

CAN协议具有CRCF错误、应答错误、形式错误、位错误和填充错误等检测功能。MCP2510内含接收出错计数器(REC)和发送出错计数器(TEC)两个错误计数器。因而对网络中的任何一个节点来说,都有可能因为错误计数器的数值不同而使其处于错误一激话、错误一认可和总线一脱离3种状态之一。

2 MCP2510在智能节点中的应用实例

利用MCP2510和CAN总线收发器TJAl050可构成一个CAN总线分布式测控网络。系统可包括一个主控制器和多个节点控制器,这种节点控制器可对电动机的电流、电压及周围的温度进行监控,其结构如图3所示。

pYYBAGDS4YCARUgLAAB4uUkiazI211.png

这种网络拓扑结构采用了总线式结构和无源抽头连接,且结构简单、成本低,因而系统的可靠性较高。其信息传输采用CAN通信协议,通信介质采用双绞线。由于CAN总线是基于发送报文的编码,不对CAN控制节点进行编码,故系统的可扩充性比较好,同时增删CAN总线上的控制节点不会对系统的其余节点造成任何影响。

节点控制器的MCU可选用具有SPI接口的微处理器,也可采用不带SPI接口的微处理器。本系统采用的是不带SPI接口的微处理器AT89C5l。AT89C51可通过P1口与CAN控制器的SPI接口直接相连,并用软件算法来实现SPI接口协议。CAN总线收发器TJAl050则作为MCP2510与物理总线的接口。如果需要进一步提高系统的抗干扰能力,则可在MCP2510和TJAl050之间再加一个光电隔离器。

智能节点电路原理图如图4所示。

pYYBAGDS4XmAasN5AAJiVmwA_KQ956.png

2.1 软件设计

MCP2510正常工作之前,需要进行正确的初始化,包括设置SPI接口的数据传输速率、CAN通信的波特率、MCP25lO的接收过滤器和屏蔽器以及发送和接收中断允许标志位等。与SJAl000不同的是,单片机对MCP2510的接收缓冲器和发送缓冲器的操作,必须通过SPI接口用MCP25lO内置读写命令来完成。其读、写命令时序图如图5和图6所示。

pYYBAGDS4WCAHt3qAADsehi7RoE769.png

poYBAGDS4W2ARmFcAAD4LkMQ3o4264.png

本文中MCP2510主要采取中断模式进行总线数据的接收和发送。整个系统主序提供两种中断:定时器中断和外部中断。定时器中断的中断子程序主要负责处理来自模拟通道AINO~AIN7的A/D数据,向MCP25lO发送“数据发送请求命令”以及发送数据。外部中断的中断处理子程序主要包括CAN总线错误处理子程序和数据接收子程序。

2.2 软件主体设计流程

软件主体设计流程如图7所示。软件设计时需要注意以下问题:

①因为MCP2510在初始化完成后处于默认Config-uration模式下,所以就需要在MCP2510的初始化完后将其置为Normal模式,否则MCP2510将一直停留在Configuration模式下,不能正常进行工作。将MCP2510置Normal模式可通过使用MCP2510内置的BitModify(位修改)4指令向CANCTRL控制字写入一个0字节来实现。

②在对MCP2510进行任何操作之前,都要由微处理器向MCP2510的片选CS输出一个低电平,使得MCP2510选通。

③在执行MCP2510的“读”操作时,发送完读指令及其地址码之后,仍然需要向MCP2510提供时钟,以接收“读”到的数据。可以通过向MCP2510发送一个O字节来实现。

④在对MCP2510完成任意操作后,都要延时一段时间,使其有足够的时间来准备接收下次操作的命令,防止出现MCP2510“忙”的情况。

3 总 结

CAN总线已被公认为是最有前途的几种现场总线之一。因其性价比高、实现简单等突出优点深受越来越多的研发人员的青睐。本文的智能节点可联结多个集散控制系统,其软硬件电路的设计方法同样适合于其他基于CAN总线的分布式控制系统的节点设计。

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

    关注

    2551

    文章

    51125

    浏览量

    753750
  • 控制器
    +关注

    关注

    112

    文章

    16374

    浏览量

    178155
  • CAN总线
    +关注

    关注

    145

    文章

    1951

    浏览量

    130777
收藏 人收藏

    评论

    相关推荐

    采用CH375和MCP2510设计CAN-USB接口卡

    曾经接11.0592 MHz晶振时,系统不能正常工作,改为12MHz时,则可正常工作。CAN协议芯片选择MCP2510总线驱动采用PCA
    发表于 05-05 09:29

    分享一种不错的基于CAN总线的集散型火灾报警控制系统

    本文主要介绍由MCP2510MCP2551组成的CAN现场总线的在集散型火灾报警控制系统中的应用。
    发表于 05-31 06:18

    MCP2510智能节点中的应用实例有哪些?

    MCP2510的主要特点是什么?MCP2510的结构及工作原理是什么?MCP2510智能节点中的应用实例有哪些?
    发表于 06-03 06:30

    CAN控制器MCP2510及其应用

    MCP2510是MT公司生产的一种带SPI接口的CAN控制器,主要用于简化CAN接口的应用设计.文中介绍了MCP2510的特点、结构和基本工
    发表于 04-28 15:29 69次下载

    MCP2515在CAN总线系统智能节点的应用

    CAN总线上的智能节点是网络上报文的接收和发送站,一般由单片机和可编程的CAN通信控制器组成。本
    发表于 06-26 10:38 140次下载

    基于CAN总线的高低温试验箱监控系统

    本文介绍了一个基于CAN总线的高低温试验箱监控系统,其特点在于应用CAN总线进行信息传递。文中较详细的介绍了以
    发表于 08-05 16:52 30次下载

    基于LPC2148和MCP2510的高速USB-CAN

    本文介绍了基于LPC2148和MCP2510的USB-CAN接口卡。LPC2148是基于ARM7TDMI-S核的微控制器,处理速度高,内置USB2.0全速
    发表于 02-25 11:47 35次下载

    CAN智能节点的设计

    摘要:CAN总线是一种流行的实时性现场总线,文中提出了一种基于MSP430单片机,并以MCP2510CAN
    发表于 03-24 12:46 1328次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>智能</b><b class='flag-5'>节点</b>的设计

    MCP2510使用范例程序及线路

    为使 User 能快速地熟悉如何使用 MCP2510 来完成 CAN 控制网路的设计, Microchip Technology Taiwan 提供此 DEMO 程式及参考电路与大家分享. 此程式 (EVM
    发表于 04-28 15:11 213次下载

    基于双层CAN总线的声纳数据通信系统

    系统以PIC18F4580单片机作为中间控制器,利用自身集成的CAN控制器与各采集单元节点进行通信,通过外部扩展
    发表于 02-07 12:01 43次下载
    基于双层<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的声纳数据通信<b class='flag-5'>系统</b>

    基于CAN总线智能节点设计

    应用51单片机为控制核心结合其他的器件设计了一种能连接于CAN总线上的智能节点。通过单片机控制
    发表于 01-10 16:54 120次下载

    MCP2515在CAN总线系统智能节点的应用

    CAN总线上的智能节点是网络上报文的接收和发送站一般由单片机和可编程的通信控制器组成 本文介绍了一种新型的独立
    发表于 04-01 09:41 0次下载

    由单片机和CAN控制器MCP2510实现CAN总线系统智能节点的设计

    MCP25l0是Microchip公司生产的一种独立的可编程CAN控制器芯片。本文将介绍新型的独立CAN通信控制器
    的头像 发表于 09-26 08:01 3373次阅读
    由单片机和<b class='flag-5'>CAN</b><b class='flag-5'>控制器</b><b class='flag-5'>MCP2510</b><b class='flag-5'>实现</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>系统</b><b class='flag-5'>智能</b><b class='flag-5'>节点</b>的设计

    采用单片机和MCP2510MCP2551芯片设计集散型火灾报警控制系统

    本文提出的基于CAN现场总线的集散型火灾报警控制系统的网络结构如图1所示,每个节点都以AT89C51单片机为节点
    发表于 01-10 16:48 4876次阅读
    采用单片机和<b class='flag-5'>MCP2510</b>、<b class='flag-5'>MCP</b>2551芯片设计集散型火灾报警<b class='flag-5'>控制系统</b>

    如何使用FPGA和CAN控制器MCP2515实现惯导系统CAN总线接口的设计

    接口控制新型的CAN 控制器MCP2515,使惯导系统不仅具备了接入CAN
    发表于 01-27 15:52 17次下载
    如何使用FPGA和<b class='flag-5'>CAN</b><b class='flag-5'>控制器</b><b class='flag-5'>MCP</b>2515<b class='flag-5'>实现</b>惯导<b class='flag-5'>系统</b>的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>接口的设计