访问电脑版页面

导航:老古开发网手机版其他

CAN控制器MCP2510及其应用

导读:
关键字:

    摘要:MCP2510是MT公司生产的一种带SPI接口的CAN控制器,主要用于简化CAN接口应用设计。文中介绍了MCP2510的特点、结构和基本工作原理,给出了其应用接口电路及SPI接口协议的软件实现方法。

    关键词::MCP2510 CAN接口 MCU

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

来源:国外电子元器件   作者:第二炮兵工程学院 武翠琴 杨金岩 李艾华  2006/5/7 0:00:00
栏目: [ ]

相关阅读

安森美推出新的高功率图腾柱PFC控制器,满足具挑战的能效标准

动态功耗低至60μA/MHz!助力设备超长续航,首选国民技术低功耗MCU!