欢迎来到天天文库
浏览记录
ID:19199115
大小:55.00 KB
页数:5页
时间:2018-09-21
《摘要can总线上的智能节点是网络上报文的接收和发送站,》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、摘要:CAN总线上的智能节点是网络上报文的接收和发送站,一般由单片机和可编程的CAN通信控制器组成。本文介绍了一种新型的独立CAN通信控制器MCP2515;给出其在CAN总线系统智能节点中的一个应用实例,硬件设计给出了节点的电路原理图,软件设计给出了系统程序的设计流程图,并对其作了简要的说明。关键词:CAN总线;CAN控制器;MCP2515;智能节点1前言 CAN(ControllerAreaNetwork)总线,即控制器局域网总线,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠
2、性、及独特的设计和适宜的价格而广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,并已被公认为几种最有前途的现场总线之一。CAN总线规范已经被国际标准化组织制订为国际标准ISO11898,并得到了众多半导体器件厂商的支持,推出了各种集成有CAN协议的产品,包括单独的可编程CAN控制器芯片(如PHILIPS公司的SJA1000)和集成有CAN控制器的MCU(如PHILIPS公司的P8xC5xX2系列单片机)。CAN总线系统智能节点是网络上报文的接收和发送站,一般由单片机和CAN控制器或两者合
3、二为一组成,前者的优点是单片机的选择范围比较灵活,在对软件和接口稍作修改的基础之上,不需要更换单片机就可以实现CAN总线通信。本文主要介绍一种新型的独立CAN通信控制器MCP2515,并给出在CAN总线系统智能节点中的应用实例。2CAN通信控制器MCP2515芯片介绍 MCP2515是一种独立的CAN总线通信控制器,是Microchip公司首批独立CAN解决方案的升级器件,最大时钟输入速度为40MHz,并具有一个10MHz的高速SPI接口,其传输能力较Microchip公司原有CAN控制器(MCP251
4、0)高两倍。此外,MCP2515还具有基于头两个数据字节和11个标识符位进行信息筛选的功能。当需要支持DeviceNet等更高层协议时,该功能有助于减少对单片机的过高要求。MCP2515可利用数据字节和标识符位来确定某些节点是否应该接收或处理CAN报文,它还有助于在确定的系统中(如时间触发CAN-TTCAN)执行时隙功能。当一次性模式准备就绪时,无论发生任何仲裁损失或错误帧结构,报文都可被一次性传输。 2.1MCP2515芯片功能介绍 MCP2515是一种独立的CAN控制器,可通过SPI方式与单片机接口
5、,实现CAN通信,最高通信速率可达到1Mbps。MCP2515能够接收和发送标准数据帧和扩展数据帧以及远程帧,通过两个接收屏蔽寄存器和六个接收过滤寄存器滤除无关报文,从而减轻主单片机负担。MCP2515主要功能参数及电气特性如下: (1)支持CAN技术规范2.0A/B,最高传输速率达到1Mbps; (2)支持标准数据帧、扩展数据帧和远程帧,每帧数据域长度可为0~8个字节; (3)内含两个的接收缓冲器和三个发送缓冲器,并且可编程设定优先级; (4)内含六个29位(bit)的接收过滤寄存器和两个
6、29位(bit)的接收屏蔽寄存器; (5)高速SPI接口,支持SPI0,0和1,1模式; (6)一次性模式可确保报文被一次性传输; (7)具有可编程时钟脉冲输出引脚,可作为其他芯片时钟信号源; (8)帧起始(SOF)信号输出功能可被用于在确定的系统中(如时间触发CAN-TTCAN)执行时隙功能,或在CAN总线诊断中决定早期总线出级; (9)采用低功耗CMOS技术,工作电压:2.7V~5.5V,工作电流:5mA(待机状态1µA); (10)工作温度范围:(I)-40。C到+85。C,(
7、E)-40。C到+125。C。2.2MCP2515内部结构和工作原理 MCP2515内部主要由三个模块组成:CAN协议模块,主要包括CAN协议驱动、屏蔽器、过滤器、以及发送和接收缓冲器,主要负责与CAN总线的数据传输;控制逻辑和静态寄存器,用于设置芯片及其操作模式;SPI接口模块,主要负责与MCU的数据传输。其工作原理如图1所示。MCP2515在CAN总线上的数据接收是通过两个接收缓冲器、两个接收屏蔽器、六个接收过滤器的组合来实现的。CAN总线上的帧只有同时满足至少任意一个接收屏蔽器和一个接收过滤器的条
8、件才可以进入接收缓冲器。 MCP2515具有灵活的中断管理功能,它有8个中断源,包括发送、接收中断,各种错误中断以及总线唤醒中断等。单片机可以通过对MCP2515的中断允许控制寄存器CANINTE的设置来设定和屏蔽各种中断的发生条件,并可以通过读取MCP2515的中断标志位寄存器CANINTF或者通过MCP2515的ReadStatus(读状态寄存器)命令读取CANSTAT寄存器中的ICOD部分来判断当前中断
此文档下载收益归作者所有