查看: 193|回复: 0
打印 上一主题 下一主题

MCP2515在CAN总线系统智能节点的应用

[复制链接] qrcode

107

主题

677

帖子

1519

积分

金牌会员

Rank: 6Rank: 6

积分
1519
楼主
跳转到指定楼层
发表于 2015-11-3 10:12 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘要:CAN总线上的智能节点是


MCP2515共有5种工作模式:配置模式、正常模式、睡眠模式、监听模式、和自检模式。工作模式的改变主要是通过CANCTRL.REQOP位选择。当工作模式改变的时候,要等到所有的数据传输完毕后才能生效;因此在运行另一种工作模式之前,可通过查询CANSTAT.OPMODE位来确认已经进入该模式。
MCP2515共有128个寄存器,地址由高三位和低四位确定,有效寻址范围在0~0x7F之间,某些专用的控制寄存器和状态寄存器可以通过SPI接口的bit modify命令进行位修改。正常模式和配置模式下寄存器的配置情况如表1所示。
2.4 MCP2515与单片机的SPI接口与SPI指令
MCP2515的SPI指令如表2所示:

MCP2515可与任何带有SPI接口的单片机直接相连,并且支持SPI 1,1 和0,0模式。单片机通过SPI接口可以读取接收缓冲器数据。MCP2510对CAN总线的数据发送则没有限制,只要用单片机通过SPI接口将待发送的数据写入MCP2510的发送缓存器,然后再调用RTS(发送请求)命令即可将数据发送到CAN总线上。
在时钟SCK的上升沿,命令和数据通过SI引脚送入MCP2515。在时钟SCK的下降沿,通过SO引脚把数据送出。操作中片选引脚CS保持低电平。
3 MCP2515在智能节点中的应用实例
该节点采用Microchip的PIC12C672作为微控制器,MCP2515作为独立的CAN控制器。节点的报文收发采用中断控制,在控制2路
3.1节点硬件电路设计
图2是节点的电路原理图。 微控制器PIC12C672负责初始化MCP2515和通过控制MCP2515实现数据的接收和发送以及模拟数据量采集和转换。在CAN总线通信接口中,采用了TJA1050T作为总线驱动器。PIC12C672总共只有8个引脚,但是功能强大。它包括一个内部时钟源,多通道8位ADC,提供多路中断和低功耗睡眠模式。由于PIC12C672没有硬件得SPI接口,故需要通过软件模拟。由于引脚数目有限,MCP2515的SO和SI接口共用一根信号线,并通过一个4.7K电阻隔离开来,这样单片机只需要三个引脚便能实现SPI功能。两路模拟输入AN0和AN1通过GP0和GP1引脚输入。
为了增强CAN总线节点的抗干扰能力,MCP2515的TXCAN和RXCAN是通过高速光耦6N137与TJA1050T的TXD和RXD相连,而且光耦电路所采用的两个
4 结束语
本文详细介绍了一种新型的独立的CAN总线控制器MCP2515,并给出了一个简单的应用实例。由于篇幅的关系,没有给出详细的软件源程序。MCP2515由于使用了高速SPI接口收发数据,提高了CAN报文的传输能力,同时扩大了CAN智能节点解决方案所采用的单片机的选择范围,必将会得到更广泛的应用。
参考文献:
[l]饶运涛等,现场总线CAN原理与应用技术,北京航空航天大学出版社,2003.6
[2]王继国,孙新亚,CAN控制器芯片MCP2510在远程监测系统中的应用,电子技术应用,2004(4)
[3]Microchip公司,MCP2515,Stand-Alone CAN Controller With SPI? Interface,2003
[4]Microchip公司,AN215,A Simple CAN Node Using the MCP2510 and PIC12C67X,2002
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表