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

发布者:superstar11最新更新时间:2007-04-09 来源: 单片机及嵌入式系统应用关键字:编程  封装  接收  速率 手机看文章 扫描二维码
随时随地手机看文章

CAN(Controller Area Network)总线,即控制器局域网。由于具有高性能、高可靠性以及独特的设计,CAN总线越来越受到人们的重视。德国的Bosch公司最初为汽车监控和控制系统设计了CAN总线,现在,其应用已面向过程工业、机械工业、纺织工业、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。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总线的分布式控制系统的节点设汁。

关键字:编程  封装  接收  速率 引用地址:单片机和MCP2510的CAN总线通信模块设计

上一篇:基于C8051F040的CAN总线智能节点设计
下一篇:基于智能通信控制器的串行通信系统的抗干扰设计

推荐阅读最新更新时间:2024-05-13 18:35

英特尔确认在新一代迅驰集成WiMAX无线宽带
4月18日消息,英特尔信息技术峰会(IDF)于4月17日至18日在北京举行,英特尔高级副总裁兼移 动事业部总经理浦大卫(David Perlmutter)在第二天的讲演中透露,预计在2008年推出的迅驰五代平台Montevina中,将移 动WiMAX作为一个可选功能。而英特尔公司最初计划于2007年3月推出基于WiMAX技术的笔记本上网平台。 浦大卫表示,移 动WiMAX将实现真正的移 动互联网,他技术演示中的迅驰概念笔记本,集成了基于MIMO技术的移 动WiMAX,这尚属首次。    WiMAX为可选功能 即将上市的第四代迅驰Santa Rosa中会全面支持无线标准802.11n,这是一项WLAN技术(无线局域网),为WiF
[焦点新闻]
ZLG致远电子推出“SmartPRO 6000F-PLUS”编程
专业编程器设计生产有二十余年历史的致远电子,近期推出编程速度200MByte/S、专门针对大容量Flash芯片编程的SmartPRO 6000F-PLUS编程器。 其内含专为编程应用优化的 4 核高性能处理器,配合蓝电引擎(BlueThunder),达到200MByte/S的数据传输带宽,远超目前市面各类Flash芯片的写入速度极限。 SmatPRO 6000F-PLUS,其编程同样大小的文件,仅为竞争者所用时间的70%。除了高速、稳定等特性之外,SmartPRO 6000F-PLUS采用优秀的人体工学设计的助力压杆,不仅让编程芯片的操作人员减轻90%的劳动强度,还能使耗材成本节省至少30%,非常适合需要对大容
[嵌入式]
明年iPhone X采用新金属中框 提高数据传输速率
凤凰科技讯 据AppleInsider北京时间11月7日报道,凯基证券分析师郭明錤(Ming-Chi Kuo,音译)发表报告称,明年秋季发布的iPhone X金属中框零部件数量将多于今年的4个,提高数据传输速率。(编译/霜叶)
[手机便携]
解读机器人编程与机器人语言
机器人编程为使机器人完成某种任务而设置的动作顺序描述。机器人运动和作业的指令都是由程序进行控制,常见的编制方法有两种,示教编程方法和离线编程方法。其中示教编程方法包括示教、编辑和轨迹再现,可以通过示教盒示教和导引式示教两种途径实现。 由于示教方式实用性强,操作简便,因此大部分机器人都采用这种方式。离线编程方法是利用学成果,借助图形处理建立几何模型,通过一些规划算法来获取作业规划轨迹。与示教编程不同,离线编程不与机器人发生关系,在编程过程中机器人可以照常工作。工业上离线工具只作为一种辅助手段,未得到广泛的应用。 1.基本命令 用EDIT指令进入编辑状态后,可以用C、D、E、I、L、P、R、S、T等命令来进一步编辑
[机器人]
基于AVR和CPLD编程的高速数据采集存储系统设计
  对于一个成型的探测系统而言,通常都是有采集储存部分的,无论是电信号、光信号、声音信号、磁信号等在被探测器接收到后大部分都需要转化为数字信号传给处理器才能完成分析、判断的过程。对于需要高速采集并存储的系统,在基于CPLD、AVR等控制高速ADC、储存等技术的基础上,本文设计低成本、高速采集存储的硬件实现。    1 系统总体设计方案   系统利用ATmegal62作为主控制器,CPLD用于产生控制时序,二者相结合协调进行数据的采集与传输控制。图1给出其系统总体设计方案框图。      数据采集系统的工作原理是:模拟量信号经过传感器后转化成电压量,通过ADC将模拟量转换为数字量,而后进行传输存储和处理。在本系统中,在C
[单片机]
基于AVR和CPLD<font color='red'>编程</font>的高速数据采集存储系统设计
高可靠性的可编程电源管理解决方案
系统工程师正受到降低成本和提高电路板可靠性的压力。一个经常被忽视的应对措施是减少为FPGA、 微处理器和数字信号处理器进行电源监控而使用的元件数量。新颖的高集成度可编程电源电路将复位生成电路、看门狗定时器(WDT)和电压监控器集成电路集成在单个器件之中。这种一体化方案有助于降低系统成本,解决设计人员所关心的可靠性问题。本文讨论将可编程逻辑、ADC和DAC集成在一起的创新解决方案,该方案使电源管理功能具有更高的精确性,同时还可降低成本。 电源管理的挑战 一个典型的CPU电源电路如图1所示。对于典型的DSP、 FPGA或微处理器,各种电源电压要求为:器件的核心电压为1.2V、辅助电压和PLL电压为3.3V、 I/
[嵌入式]
高可靠性的可<font color='red'>编程</font>电源管理解决方案
IDM及晶圆代工厂商将成为先进封装技术开发先驱
  台积电2016年以16nm制程 晶圆 代工结合InFO封测服务,为Apple代工A10处理器;2017年Apple新一代智能型手机A11处理器,台积电以10nm制程结合InFO再取得代工生产大单;2018年则将以7nm制程结合InFO代工生产A12处理器。下面就随半导体小编一起来了解一下相关内容吧。   市场预期代工结合封测将从智能型手机大举扩增到人工智能(AI),台积电积极提供这项整合性服务,法人认为对部分封测与载板厂商将造成商机减少的冲击。     IDM 及 晶圆 代工厂商将成为先进封装技术开发先驱者   尽管厂商无法再以相同步调延续摩尔定律,但芯片、系统和软件技术仍将持续进展,厂商逐渐走向以开发先进封装技术
[半导体设计/制造]
英特尔四核CPU测试印象 比双核性能提高80%
  据国外媒体报道,近日 Tom’s Hardware公布了其对英特尔四核处理器测试的结果。英特尔的Kentsfiel系由两个dual-core Conroe双核处理器封装而成。测试表明,对于某些应用,四核比双核性能提高80%,有些应用经优化后性能提高更多。
[焦点新闻]
小广播
热门活动
换一批
更多
最新应用文章
换一换 更多 相关热搜器件
更多每日新闻
随便看看

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved