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

发布者:Tiger8最新更新时间:2012-01-17 关键字:CAN  控制器  智能节点 手机看文章 扫描二维码
随时随地手机看文章

1 前言

CAN(Controller Area Network)总线,即控制器局域网。由于具有高性能、高可靠性以及独特的设计,CAN总线越来越受到人们的重视。德国的Bosch公司最初为了汽车监控和控制系统设计了CAN总线,现在,其应用范围已面向过程工业、机械工业、纺织工业、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN 总线已经形成国际标准,并已经被公认为最有前途的现场总线之一。CAN总线规范已经被国际标准化组织制订为国际标准ISO11898,并得到众多半导体器件厂商的支持,推出各种集成有CAN协议的产品。CAN总线系统智能节点是网络上报文的接收&发送站,一般由单片机和CAN控制器或二者合二为一组成。 MCP2510是MicroChip成产的一种独立的可编程CAN控制器芯片。本文将介绍新型的独立CAN通信控制器MCP2510,并给出在CAN总线系统智能节点中的应用实例。

2 MCP2510芯片介绍

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

2.1  MCP2510的主要特点

(1) 支持CANV2.0A/B;

(2) 具有SPI接口,支持SPI模式0,0和1,1;

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

(4) 具有6个接收滤波器,2个接收滤波器屏蔽;

(5) 具有灵活的中断管理能力;

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

(7) 工作温度范围为-40~+125℃。

2.3 结构及工作原理

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

(1)收发操作

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

(2)中断管理

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

(3) 错误检测

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

3 MCP2510在智能节点中的应用实例

利用MCP2510和CAN总线收发器TJA1050可构成一个CAN总线分布式测控网络。系统可包括一个主控制器和多个节点控制器,这种节点控制器可对电动机的电流,电压及周围的温度进行监控,其结构如图3所示。

这种网络拓扑结构采用了总线式结构,且结构简单、成本低,采用无源抽头连接。因而系统的可靠性较高。其信息传输采用CAN通信协议,通信介质采用双绞线。由于CAN总线是基于发送报文的编码,它不对CAN控制节点进行编码,故系统的可扩充性比较好,同时增删CAN总线上的控制节点不会对系统的其余节点造成任何影响。

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

3.1软件设计

MCP2510正常工作之前, 需要进行正确的初始化,包括设置SPI接口的数据传输速率、CAN通信的波特率、MCP2510的接收过滤器和屏蔽器以及发送&接收中断允许标志位等。与 SJA1000不同的是,单片机对MCP2510的接收缓冲器和发送缓冲器的操作必需通过SPI接口用MCP2510内置读写命令来完成。其读、写命令时序图如图5、6所示:

  本文中MCP2510主要采取中断模式进行总线数据的接收和发送。整个系统主序提供两种中断"定时器中断和外部中断",定时器中断的中断子程序主要处理来自模拟通道AIN0~AIN7的A/D数据采集和向MCP2510发送数据发送请求命令以及数据发送。外部中断的中断处理子程序主要处理CAN总线错误处理子程序和数据接收子程序。

3.2 软件主体设计流程图如下

3.3 软件设计时需要注意的问题:

(1)因为 MCP2510在初始化完成后默认处Configuration模式下,所以就需要在MCP2510的初始化完后将其置为 Normal模式,否则MCP2510将一直停留在Configuration 模 式 下, 不 能 进 行 正 常 工作。将MCP2510置Normal模式可通过使用 MCP2510内置的BitModify(位修改)4指令向CANCTRL控制字写入一个0字节来实现.

(2)在对MCP2510做任何操作之前,都要由微处理器向MCP2510的片选CS输出一个低电平,使得MCP2510被选通

(3)在进行MCP2510的“读”操作时,发送完读指令及其地址码之后,仍然需要向MCP2510提供时钟,以接收“读”到的数据。可以通过向MCP2510发送一个“0”字节来实现。

(4)在对MCP2510做完任意操作后,都要延时一段时间,使其有足够的时间来准备接收下次操作的命令,防止出现MCP2510“忙”的情况。

4 总结

CAN总线已被公认为是最有前途的几种现场总线之一。因其高性能价格比、实现简单等突出优点深得越来越多的研发人员的青睐。文中的智能节点可联结多个集散控制系统,其硬、软件电路的设计方法同样适合于其他基于CAN总线的分布式控制系统的节点设计。

参考文献:

[1] 李貌秦霆镐闫世晓 MCP2515在CAN总线系统智能节点的应用 微计算机信息 2005.21-7:37-39

[2] 邵旻.         CAN总线综述

[3]MicroChip      mcp2510 datasheet 

[4]王继国,新亚.  CAN控制器芯片MCP2510在远程监测系统中的应用.电子技术应用,2004(4)

[5]蔡美琴,张为民,何金儿等  MCS-51系列单片机系统及其应用(第二版)高等教育出版社 2004.6

关键字:CAN  控制器  智能节点 引用地址: 基于单片机和MCP2510的CAN总线通信模块的设计

上一篇:基于单片机的小型自控飞艇舵控系统设计
下一篇:利用USB控制器设计的Windows音量控制器

推荐阅读最新更新时间:2024-03-16 12:51

CAN总线PC适配卡设计
引 言  分布式工业测控系统需要有现场总线来连接各现场设备及处理控制单元。CAN总线就是一种具有较高性能价格比、能满足分布式控制要求的现场总线,具有广泛的应用前景。它实际上是一种简化型网络结构,在构造单片处理器网络中极为有用。为了使上位机也能和CAN总线相连,使微机成为系统的上位机,增强控制系统的功能,从而进一步延伸CAN总线连通范围,就需要提供一个微机和CAN总线的接口。本文介绍作者设计制作的一种CAN总线PCI适配器。  接口的硬件设计  PCI接口的实现  目前市面上有些CAN总线的适配器,但大多都是基于PC/104或者ISA总线,传输速度较慢,效率低下。作者在设计中使用高效的PCI总线,实现了数据的高速传输。与ISA总
[嵌入式]
带扩展功能的两款新型功率因数控制器
2014年慕尼黑上海电子展产品亮点 TDK旗下公司EPCOS(爱普科斯)推出两款BR7000系列新型功率因数控制器。其中,BR7000-T功率因数控制器以15路晶体管输出替代了之前的15路继电器输出。它是专为应用于快速投切操作的爱普科斯动态晶闸管模块而设计的。而配置了RS485接口的爱普科斯 BR7000-I控制器是TDK的另一款新产品。控制器可通过RS485接口与PC机连接,从而实现嵌入网络、控制器耦合以及数据读取。 BR7000-T功率因数控制器提供多种控制模式,例如: 投切15路三相电容器, 投切15路单相电容器(可以是L-N或L-L),或三相和单相混合补偿。而电容器的投入或切除时间可以在50-1000毫
[工业控制]
CAN总线轿车车窗智能控制系统实现的原理
现在各中高档轿车都安装有电动车窗,按钮控制车窗玻璃的升降。如果车窗无智能,司机在没有注意到乘客的手或物体伸出窗口的情况下按下按钮,乘客容易被车窗夹伤。为了安全,很多乘车都采用电动防夹车窗。在充分研究有关CAN总线在汽车电子系统中的应用和电动车窗防夹方案的基础上,提出一种基于CAN总线的轿车车窗智能控制系统的设计方案,实现车窗在正常工作模式下防夹控制功能和紧急情况下(异常工作模式)快速升降车窗控制功能。 目前,以微控制器为代表的汽车电子在整车电子系统中应用广泛,汽车控制正由机电控制系统转向以分布式网络为基础的智能化系统。CAN总线是一种支持分布式和实时控制的串行通信网络,以其高性能和高可靠性在自动控制领域广泛应用。作为目前最具应用
[嵌入式]
MSP430x4xx系列微控制器的独特时钟设计
微控制器时钟系统的设计对于系统的全局性能是十分关键的。为了得到廉价、准确而稳定的时钟,在大多数情况下,可采用石英晶体或者是陶瓷振荡器作为参考时钟。这些器件的典型工作频率范围为100kHz到10MHz。然而,它们都有一些缺点,即振荡器消耗的电流会随振荡器的振荡频率的增加而增加,因此,若采用的石英晶体振荡器具有高Q值,那么,在系统上电后,将需要一个较长的时间才能使频率和幅度达到稳态,所以,石英晶体振荡器不能为中断提供快速的响应。 对于一个电池供电的系统,最基本的要求就是功耗要低。但同时又会出现一些相互矛盾的问题,因为采用低频时钟虽然可以达到节能和延长电池使用时间的要求,但采用高频时钟却可以实现对事件的快速反应,并增强处理突发
[单片机]
基于MSP430自动胀管控制器的研究
胀管机是针对冷凝器、冷油器、加热器、换热器中各类管材与管板胀接需要而设计开发的一种专用设备。其控制器的基本原理是用驱动电机(又称驱动马达、胀管机头)的工作电流来标定所加载的负荷,即驱动电机在一定的工作电流值下,提供相当数量的扭矩,而与之相当数量的扭矩可以通过旋转胀管器产生一定的膨胀量(胀力),它是可以被测量的。因此,通过精确测量并控制驱动马达的工作电流值,就可获得并控制所需要的膨胀量(胀力)。 目前,市场上大多数的胀管机采用51单片机,但其缺点比较突出。如内部无存储器,必需外接Flash或EPROM存储设置信息,这就导致电路比较复杂,不利于扩展,且工作电压范围较窄,抗干扰能力较差。而采用MSP430F149单片机的胀管机可以有效克
[单片机]
基于MSP430自动胀管<font color='red'>控制器</font>的研究
NNC-PID控制器对电液位置控制系统的DSP实现
电液位置伺服控制系统的典型特征是非线性、不确定性、时变性、外界干扰和交叉耦合干扰等,系统精确的数学模型不易建立。因此,对电液系统的控制一直是一个复杂控制系统问题。   常规PID控制器具有结构简单、参数意义明确、控制的动态和静态特性优良等特点。人工神经网络(NNC)具有信息综合、学习记忆和自适应能力、逼近任意非线性函数的能力,可以处理那些难以用模型和规则描述的过程,但也存在局部最小点,不易达到最优控制。   将NNC与PID控制相结合组成智能控制器可以取得更好的控制效果,这里提出采用DSP实现NNC-PID控制器对电液位置系统进行智能控制,满足电液位置伺服对控制系统响应快和高精度的要求。   1 电液位置伺服系统构成   
[工业控制]
NNC-PID<font color='red'>控制器</font>对电液位置控制系统的DSP实现
Canalys:2024 年全球智能手机出货量有望恢复增长,预计上涨 4% 至 11.7 亿台
11 月 23 日消息,Canalys 今日在 X 平台发布预测报告,认为全球智能手机出货量预计将在 2024 年恢复增长: 2023 年全球智能手机出货量估计为 11.3 亿,与 2022 年相比,下降 5%。 2024 年全球智能手机出货量预计为 11.7 亿,与 2023 年相比,预计上涨 4%。 Canalys 声称,消费者如今愿意在智能手机上花费更多钱,现在手机的平均售价在 440 美元(当前约 3142 元人民币)范围内。 亚非新兴市场将处于 2024 年手机行业增长的中心,2024 年所有新生产的智能手机中,有 33% 将运往相关地区,包含印度、韩国、越南、印度尼西亚和马来西亚等市场,消费者信心的不断增强和
[手机便携]
DS18X20/DS1822 1-Wire温度传感器在微控制器环境中的接口
本应用向用户介绍简单的1-Wire软件,用于将微控制器连接至DS18B20、DS18S20和DS1822 1-Wire温度传感器。本文举例使用DS5000(兼容8051)微控制器。给出了软件示例,说明了延迟、复位、读位、写位、读字节、写字节、ROM搜索、CRC、读温度和读暂存本例程的实现。 介绍 DS1B18、DS20S18或DS20等1822-Wire器件与微控制器的接口有多种方法可供选择。这些方法包括简单的软件解决方案,使用串行接口芯片(如DS2480B),以及将Maxim的VHDL 1-Wire主控制器集成到定制ASIC中。本文向用户介绍最简单的软件方案,用于微控制器与任意数量的DS1x18或DS20温度传感器之间的基本
[单片机]
DS18X20/DS1822 1-Wire温度传感器在微<font color='red'>控制器</font>环境中的接口
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

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