维普资讯 http://www.cqvip.com 单片机和M C P251 0的 CAN息线通信模块设计 ■山东理工大学 杨庆华 张景元 CAN(Controller Area Network)总线,即控制器局域 网。由于具有高性能、高可靠性以及独特的设计,CAN总 变得非常简便。 1.1 MOP251 0的主要特点 ◇支持CANV2.0A/B; ◇具有SPI接口,支持SPI模式0,0和1,1; ◇内含3个发送缓冲器和2个接收缓冲器,可对其优 先权进行编程; ◇具有6个接收过滤器,2个接收过滤器屏蔽; ◇具有灵活的中断管理能力; 线越来越受到人们的重视。德国的Bosch公司最初为汽 车监控和控制系统设计了CAN总线,现在,其应用已面 向过程工业、机械工业、纺织工业、农用机械、机器人、数控 机床、医疗器械及传感器等领域发展。CAN总线已经形 成国际标准,并已经公认为是最有前途的现场总线之一。 CAN总线规范已经被国际标准化组织制订为国际标准 ISO11898,并得到众多半导体器件厂商的支持,推出各种 集成有CAN协议的产品。CAN总线系统智能节点是网 ◇采用低功耗CMOS工艺技术,其工作电压范围为 3.O~5.5 V,有效电流为5 mA,维持电流为10 A; ◇工作温度范围为一4O~+125℃。 络上报文的接收和发送站,一般由单片机和CAN控制器 或二者合二为一组成。 MCP2510是Microchip公司生产的一种的可编 1.2结构及工作原理 MCP2510有PDIP、SOIC和TSSOP三种封装形式。 程CAN控制器芯片。本文将介绍新型的CAN通信 控制器MCP2510,并给出其在CAN总线系统智能节点中 图2是MCP2510的内部结构框图。CAN协议机负责与 CAN总线的接口,SPI接口逻辑用于实现同MCU的通 的应用实例。 信,而寄存、缓冲器组与控制逻辑则用来完成各种方式的 设定和操作控制。现结合其工作过程将各部分的功能、原 1 MCP2510芯片介绍 MCP2510是一种带有SPI接口的CAN控制器,DIP封 装如图1所示。它支持CAN技术规范V2.0A/B,能够发 送或接收标准的和扩展的信息帧,同时具有接收滤波和信 息管理的功能。MCP2510通过SI接口与MCU进行数据 理作一介绍。 CS SCK SI S0 传输,最高数据传输速率 可达5 Mbps,MCU可通过 TXCAN RXCAN CLK0UT TX0RTS TX1RTS TX2RTS 0SC2 0SC1 Vss MCP2510与CAN总线上 的其他MCU单元通信。 MCP2510内含3个发送缓 冲器和2个接收缓冲器, 同时还具有灵活的中断管 理能力,这些特点使得 图2 MCP2510内部结构框图 (1)收发操作 MCP2510的发送操作通过3个发送缓冲器来实现。 这3个发送缓冲器各占据14字节的SRAM。第1字节是 控制寄存器TXBNCTRL,该寄存器用来设定信息发送的 条件,且给出了信息的发送状态;第2~6字节用来存放标 MCU对CAN总线的操作 图1 MOP2510 DIP封装 paper@mesnet.conr.en(投稿专用) Micr。c。ntr。11ers&Embedded Systems 3 5 维普资讯 http://www.cqvip.com 新器件新技术 准的和扩展的标识符以及仲裁信息;最后8字节则用来存 息传输采用CAN通信协议,通信介质采用双绞线。由于 CAN总线是基于发送报文的编码,不对CAN控制节点进 行编码,故系统的可扩充性比较好,同时增删CAN总线 放待发送的数据信息。在进行发送前,必须先对这些寄存 器进行初始化。 (2)中断管理 MCP2510有8个中断源,包括发送中断、接收中断、 错误中断及总线唤醒中断等。利用中断使能寄存器 (CANINTE)和中断屏蔽寄存器(CANINTF)可以方便地 实现对各种中断的有效管理。当有中断发生时,INT引脚 变为低电平并保持在低电平,直到MCU清除中断为止。 (3)错误检测 CAN协议具有CRCF错误、应答错误、形式错误、位 上的控制节点不会对系统的其余节点造成任何影响。 I控制台工作站l I l l cAN适配卡l 一 一 l l l 一 一1 一 I 一1 一I 错误和填充错误等检测功能。MCP2510内含接收出错计 数器(REC)和发送出错计数器(TEC)两个错误计数器。 因而对网络中的任何一个节点来说,都有可能因为错误计 数器的数值不同而使其处于错误一激活、错误一认可和总线 一MTI JCMAl PC120lU 510l J赣三蓉藩 )图3 CAN总线远程监测系统网络结构 脱离3种状态之一。 节点控制器的MCU可选用具有SPI接口的微处理 器,也可采用不带SPI接口的微处理器。本系统采用的是 不带SPI接口的微处理器AT89C51。AT89C51可通过 2 MCP2510在智能节点中的应用实例 利用MCP2510和CAN总线收发器TJA1050可构成 一P1口与CAN控制器的SPI接口直接相连,并用软件算法 来实现SPI接口协议。CAN总线收发器TJA1O5O则作为 个CAN总线分布式测控网络。系统可包括一个主控 制器和多个节点控制器,这种节点控制器可对电动机的电 流、电压及周围的温度进行监控,其结构如图3所示。 MCP2510与物理总线的接口。如果需要进一步提高系统 的抗干扰能力,则可在MCP2510和TJA1050之间再加一 个光电隔离器。 这种网络拓扑结构采用了总线式结构和无源抽头连 接,且结构简单、成本低,因而系统的可靠性较高。其信 VCC 智能节点电路原理图如图4所示。 5 GND CANL 31OQ vcc c舢l z 1kQ V :本l 51OQ CC O.1uF 310fl MCP251O TXCAN VDo RXCAN RESET CLK0UT CS 丰0I .1 ÷ VCC ADO1P0.9 VCC 20 OEVDD LE T 1o0pF CLK DGND CS VDD WR REF RD REFADJ HBEN INT SHDN CH7 D7 CH6 D6 CH5 D5 CH4 D4 CH3 D3/Dll(’H2 D2/D1O CH1 D1/D9 CHO DO/D8 AGND N【A)(197 T叉砑 豇丽 TX2RTS 0SC2 0SC1 V S0 sl SCK n’ RXOBF RX1BF AD1、P0.1 AD2、P0.2 AD3)P0.3 AD41P0.4 AD5、P0.5 AD6、P0.6 DO Q0 D1 Q1 D2 Q2 D3 Q3 D4 Qa D5 Q5 D6 Q6 D7 O7 lGND 74HC373 ×2 x Ⅺ.AI,l GND A=r89C51 图4智能节点电路原理图 R .牵I者扭j; 入 :  ̄,lll "商…nDt nf r'-告专用、 维普资讯 http://www.cqvip.com 新器件新技术 2.1 软件设计 MCP2510正常工作之前,需要进行正确的初始化, 包括设置SPI接口的数据传输速率、CAN通信的波特率、 送“数据发送请求命令”以及发送数据。外部中断的中断 处理子程序主要包括CAN总线错误处理子程序和数据 援收于程序。 MCP2510的接收过滤器和屏蔽器以及发送和接收中断允 许标志位等。与sJA1000不同的是,单片机对MCP2510 的接收缓冲器和发送缓冲器的操作,必须通过SPI接口用 MCP2510内置读写命令来完成。其读、写命令时序图如 图5和图6所示。 --、 2.2 软件主体设计流程 软件主体设计流程如图7所示。软件设计时需要注 意以下问题: ①因为MCP2510在初始化完成后处于默认Config- uration模式下,所以就需要在MCP2510的初始化完后将 厂 其置为Norma1模式,否则MCP2510将一 直停留在Configuration模式下,不能正常进 o 1 2 3 4 5 6 7 8 9 1o 11 12 13 14 15 16 17 18 19 2o 21 22 23 Rr r]几几n几几几几几几几几n n n n n几几几几几几几 行工作。将MCP2510置Normal模式可通 图6 SPl写命令时序图 ④在对MCP2510完成任意操作后,都要延时一段时 间,使其有足够的时间来准备接收下次操作的命令,防止 出现MCP2510“忙”的情况。 3 总 结 CAN总线已被公认为是最有前途的几种现场总线之 一。因其性价比高、实现简单等突出优点深受越来越多的 研发人员的青睐。本文的智能节点可联结多个集散控制 系统,其软硬件电路的设计方法同样适合于其他基于 CAN总线的分布式控制系统的节点设计。●誓 参考文献 Eli邬宽明.CAN总线原理和应用系统设计EM].北京:北京航 空航天大学出版社,1996. E2]Microchip.MCP2510 DataSheet,2002. E31王继国,新亚.CAN控制器芯片MCP2510在远程监测系统 中的应用EJ].电子技术应用,2004(4). [4]蔡美琴,张为民,何金儿,等.MGS一51系列单片机系统及其 图7软件主体设计流程图 应用[M].第2版.北京:高等教育出版社,2004. 本文中MCP2510主要采取中断模式进行总线数据 的接收和发送。整个系统主序提供两种中断:定时器中 断和外部中断。定时器中断的中断子程序主要负责处理 来自模拟通道AIN0 ̄AIN7的A/D数据,向MCP2510发 mprf岔m…pt mm n r挪-擅害田、 ^ …… I^. F k …… 3 7