CAN控制器MCP2510及其应用

2006-05-07 15:49:55来源: 国外电子元器件

1 概述

MCP2510是一种带有SPI接口的CAN控制器,它支持CAN技术规范V2.0A/B;并能够发送的接收标准的和扩展的信息帧,同时具有接收滤波和信息管理的功能。MCP2510通过SI接口与MCU进行数据传输,最高数据传输速率可达5Mb/s,MCU可通过MCP2510与CAN总线上的其它MCU单元通讯。MCP2510内含三个发送缓冲器、二个接收缓冲器。同时还具有灵活的中断管理能力,这些特点使得MCU对CAN总线的操作变得非常简便。

MCP2510的主要特点如下:

●支持CANV2.0A/B;

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

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

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

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

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

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

2 管理功能

MCP2510有PDIP、SOIC和TSSOP三种封装形式,有18个引脚。图1为18脚PDIP封装形式,有18个引脚。图1为18脚PDP封装MCP2510的引脚排列图。表1所列是各引脚功能的详细描述。

表1 MCP2510的引脚功能

引 脚 名  称 功      能
1 TXCAN 去CAN总线的发送输出引脚
2 RXCAN 来自CAN总线的接收输入引脚
3 CLKOUT 具有可编程预分频的时钟输出引脚
4
5
6
TX0RTS
TX1RTS
TX2RTS
发送缓冲器发送请求端,或作数字输入端
7
8
OSC2
OSC1
振荡器输出端、输入端
9 Vss 地端
10
11
RX1BF
RX0BF
接收缓冲器中断引脚,或作数字输出端
12 INT 中断输出引脚
13 SCK SPI接口的时钟输入端
14 SI SPI接口的数据输入端
15 SO SPI接口的数据输出端
16 CS SPI接口的片选输入端
17 RESET 复位端
18 VDD 电源端

3 结构及工作原理

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

3.1 收发操作

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

3.2 中断管理

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

3.3 错误检测

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

4 应用实例

笔者利用MCP2510和CAN总线收发器82C250构成了一个CAN总线分布式温湿度测控网络。该系统包括一个主控制器和多个节点控制器(温湿度测控单元),这种网络拓扑结构采用了总线式结构,且结构简单、成本低,采用无源抽头连接。因而系统的可靠性较高。其信息传输采用CAN通信协议,通信介质采用双绞线。由于CAN总线是基于发送报文的编码,它不对CAN控制节点进行编码,故系统的可扩充性比较好,同时增删CAN总线上的控制节点不会对系统的其余节点造成任何影响。

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

5 SPI接口协议的软件实现

在使用CAN控制器MCP2510时,需要对MCP2510进行初始化以及对CAN总线上的数据进行收发操作。与其它CAN控制不同的是,读、写MCP2510的发送和接收缓冲器必须通过SPI接口协议的读写命令来实现。SPI写命令时序如图4所示。写指令首先被发送到MCP2510的SI引脚,并在SCK的上升沿锁存每个数据位,然后发送地址和数据。执行完毕指令后,数据被写进指定的地址单元中,再通过SPI接口协议的写命令来设置发送位以启动发送。

SPI接口协议的读命令时序图如图5所示。操作时,首先将读指令和地址发送到MCP2510的SI引脚,并在SCK的上升沿锁存每个数据位。同时把存贮在这个地址单元中的数据在SCK的下降沿输出到SO引脚。当执行读写操作时,CS引脚应始终保持在低电平。

    用软件编程实现SPI接口协议的汇编语言程序如下:

SPI接口写子程序:

MES_WRITE:CLR C ;清除进位标志C

MOV R3,#8 ;置循环次数R3为8

WRIT1:CLR SCK ;置SCK为低电平

NOP

RLC A ;A中存放写指令或地址、数据,带进位标志左移一位

MOV SI,C ;A中的最高位送SI

NOP

SETB SCK ;置SCK为高电平,此时A中的最高数据被锁存

NOP

DJNZ R3,WRIT1 ;循环8次

RET

SPI接口读子程序:

MES_READ:CLR ACC ;清除A中内容

CLR C ;清除进位标志C

MOV R6,#8 ;置循环次数R6为8

READ1:CLR SCK ;置SCK为低电平

NOP

MOV C,SO ;SO线输出的数据送给进位标志C

RLC A ;A带进位标志左移一位

SETB SCK;置SCK为高电平

NOP

DJNZ R6,READ1;循环8次后,SO线输出的数据送到A

RET

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/others/200605/2499.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

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

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

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

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