单片机和MCP2510的CAN总线通信模块设计

时间:2022-03-17来源:佚名

CAN总线已经形成国际标准,并已经公认为是最有前途的现场总线之一。CAN总线规范已经被国际标准化组织制订为国际标准ISO11898,并得到众多半导体器件厂商的支持,推出各种集成有CAN协议的产品。CAN总线系统智能节点是网络上报文的接收和发送站,一般由单片机和CAN控制器或二者合二为一组成。

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

1 MCP2510芯片介绍

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

1.1 MCP2510的主要特点

◇支持CANV2.0A/B;

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

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

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

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

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

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

1.2 结构及工作原理

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

(1) 收发操作

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

(2) 中断管理

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

(3) 错误检测

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

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

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

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

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

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

2.1 软件设计

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

本文中MCP2510主要采取中断模式进行总线数据的接收和发送。整个系统主序提供两种中断:定时器中断和外部中断。定时器中断的中断子程序主要负责处理来自模拟通道AIN0~AIN7的A/D数据,向MCP2510发送“数据发送请求命令”以及发送数据。外部中断的中断处理子程序主要包括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发送一个0字节来实现。

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

3 总 结

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

    相关阅读

    城市亮化工程如何设计才能具有层次感?

    城市亮化工程 的主要目地是为夜间带来一体化照明,考虑基础的视觉识别规定,自然环境照明的光层级与光线总数的多少相关,假如空间中的自然环境照明比工作照明低许多 ,在工作...
    2022-10-11
    城市亮化工程如何设计才能具有层次感?

    城市道路照明工程主要有哪些?

    在城市建设中,道路照明 是必不可少的基础设施,也是城市夜景的重要组成部分。在某种程度上,它还反映了城市的经济实力,社会进步和现代化的标志。它为夜间在城市中的车辆和行...
    2022-07-12
    城市道路照明工程主要有哪些?

    安全出口指示标志灯为什么是绿色而不是红色?

    对于安全出口指示标志灯相信大家都不陌生,我们在日常生活中在任何公众场所的紧急疏散的安全出口都可以看到这个安全出口指示标志灯,大家有没有想过安全出口的指示标志为什么...
    2022-05-21
    安全出口指示标志灯为什么是绿色而不是红色?

    路灯照明合理的布置方式

    路灯的布置方式主要有单侧布置、双侧交错布置、双侧对称布置、中心对称布置、横向悬索布置五种形式,随着城市道路的不断拓宽,平交路口转弯半径越来越大,根据《城市道路亮化...
    2022-07-15

    泛光照明工程是什么?应用范围有哪些?

    很多人提及 泛光照明工程 会有一些生疏,不理解泛光照明包含哪些,也不知道 泛光照明工程 跟普通照明工程有哪些不一样。 实际上泛光照明工程便是归属于城市景观照明工程或环境...
    2022-10-17
    泛光照明工程是什么?应用范围有哪些?

    消防应急灯的寿命有多长?一般可以使用多长时间?

    对于消防应急灯的使用寿命相信很多人都想了解这个问题,因为消防应急灯安装了就不需要时时刻刻盯着,这需要定时检查就可以了,但是很多人都不知道消防应急灯的寿命有多长,不...
    2022-05-21
    消防应急灯的寿命有多长?一般可以使用多长时间?

    快投派智能无线投屏器,让无线互联更加简单便捷

    没有WiFi的情况下可以进行无线投屏吗? 长期使用投屏功能的人,或多或少都知道自己的手机可以通过【无线投屏】【屏幕镜像】功能,直接连接到智能电视或无线投屏器,下意识地认...
    2022-05-11
    快投派智能无线投屏器,让无线互联更加简单便捷

    广场照明的设计技巧

    广场照明设计 主要包括休闲广场、集会活动广场、商业广场的照明设计。 1)休闲广场。主要是为人们提供休息、社交和举行小型文化娱乐活动的地方,由于人们活动方式不同,有些区...
    2022-07-15

    网站栏目