1.主要特点
●具有SPI接口,支持SPI模式0、O和1、1。
● 内含3个发送缓冲器和2个接收缓冲器,可对其优先权进行
编程。
●具有6个接收滤波器,2个接收滤波器屏蔽。
●具有灵活的中断管理能力。
● 采用低功耗CMOS工艺技术,其工作电压范围为3.0~5. 5V。
● 有效电流为5mA,维持电流为lOμA。
● 工作温度范围为-40~+125℃。
● 可编程速率最高可达到IMb/s。
●支持测试模式。
●具有低功耗睡眠模式。
●支持远程帧。
工作原理
图8-21-2是MCP2510的内部结构框图,其中CAN协议机负责与CAN总线的接口,SPI接口逻辑用于实现同MCU的通讯,而寄存、缓冲器组与控制逻辑则用来完成各种方式的设定和操作控制。
MCP2510的发送操作通过三个发送缓冲器来实现。这三个发送缓冲器各占据14个字节的SRAM。第一个字节是控制寄存器TXBNCTRL,该寄存器里的内容设定了信息发送的条件,且给出了信息的发送状态;第二至第六字节用来存放标准的和扩展的标识符以及仲裁信息;最后八个字节则用来存放待发送的数据信息。在进行发送前,必须先对这些寄存器进行初始化。
MCP2510有8个中断源,包括发送中断、接收中断、错误中断及总线唤醒中断等。利用中断使能寄存器CANINTE和中断屏蔽寄存器CANINTF,可以方便地实现对各种中断的有效管理。当有中断发生时,INT引脚变为低电平并保持在低电平,直到MCU清除中断为止。
CAN协议具有CRC错误、应答错误、形式错误、位错误和填充错误等检测功能。MCP2510内含接收出错计数器(REC)和发送出错计数器(TEC)两个错误计数器,因而对于网络中的任何一个节点来说,都有可能因为错误计数器的数值不同而使其处于错误——激活、错误——认可和总线——脱离三种状态之一。
应用电路
利用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收发器的实际接线如图8-21-3所示。
在使用CAN控制器MCP2510时,需要对MCP2510进行初始化以及对CAN总线上的数据进行收发操作。与其他CAN控制器不同的是,读、写MCP2510的发送和接收缓冲器必须通过SPI接口协议的读写命令来实现。写指令首先被发送到MCP2510的SI引脚,并在SCK的上升沿锁存每个数据位,然后发送地址和数据。执行完写指令后,数据被写进指定的地址单元中,再通过SPI接口协议的写命令来设置发送位以启动发送。