MCP2515软件设计.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCP2515软件设计

基于MCP2515的SPI接口CAN总线控制器的软件设计摘要:CAN总线是德国bosch公司在1986年面向汽车各子系统间通信而开发出的通信协议。由于它的高性能和可靠性已被广泛地应用于工业自动化、安防、船舶、医疗设备、工业设备等其他领域,并已成为现场总线技术的发展热点之一。目前工业设计中较多使用并口can总线控制器,并口can总线芯片占用了MCU较多的普通IO口资源。而目前MCU中大都包含着SPI接口模块,如能通过SPI接口对can总线控制器进行设置和收发,将使MCU的IO接口得到了高效的使用。本论文将就使用MCU的SPI接口的can总线控制器的软件设计进行分析。关键词:MCP2515MCUCAN总线控制器SPI接口一、总线系统结构:CAN总线属于目前众多现场总线的一种,是一种集散型多主方式控制的串行通信网络。网络中各节点根据各自的总线访问优先权(即标准或扩展报文标识符),采用仲裁方式竞向总线发送数据。CAN总线通过CAN控制器的两个输出端CANH和CANL与物理总线连接,特点:1、CANH端是高电平或悬浮状态;2、CANL端是低电平或悬浮状态;其结构特性使总线避免了当系统出现错误,多节点同时发送数据造成的总线短路。另外,CAN总线节点在错误情况下具有自锁功能,可有效避免总线瘫痪。由于采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠。它所具有的卓越性能和独特设计,特别适合工业设备测控单元互连,公认为最有前途的现场总线之一。二、串、并口CAN总线控制器概述1、并口CAN总线控制器特点一般并口CAN总线控制器芯片为SJA1000或82C200,并口的优点是数据读写速度快,但占用I/O口较多,硬件较复杂。在与MCU的接线中,最少使用13个IO口。2、SPI接口的CAN总线控制器特点SPI接口是标准串行外设接口(SerialPeripheralInterface,SPI),是芯片间通信总线。常见SPI接口can总线节点控制器microchip公司的MCP2510和MCP2515。其中,MCP2515完全支持CANV2.0B技术规范,它不仅能发送和接收标准和扩展数据帧以及远程帧。还自带两个验收屏蔽寄存器和六个验收滤波寄存器可以过滤掉不想要的报文。MCP2515与MCU的连接是通过SPI接口来实现的,接线使用了4个IO接口,因此减少了MCU的硬件开销,但提高了软件设计难度。三、CAN总线控制器MCP2515的软件设计以microchip的MCU芯片编写软件,分为四部分:SPI接口读写、CAN节点初始化、报文发送和报文接收。1、MCP2515的SPI接口读写SPI是标准四线同步的高速双向串行总线。由时钟线SCK、数据输入SDI、数据输出SDO、片选CS组成。通讯原理是:由SCK提供时钟脉冲,SDI,SDO则基于此脉冲一位一位的串行完成数据传输。其中,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。对于microchip的中档MCU,芯片内部包含了SPI模块,所以软件设计时不用再考虑传输原理,使SPI的编程变得非常简单。voidsend_SPI(unsignedchardata1)/*写SPI函数*/{SSPBUF=data1;//启动发送while(SSPIF==0);//等待发送完毕SSPIF=0;}//清除SSPIF标志---------------------unsignedcharreceive_SPI(void)/*读SPI函数*/{unsignedchardata2;SSPBUF=0;//清除SPI缓存while(SSPIF==0);//查询数据接收完毕否SSPIF=0;data2=SSPBUF;return(data2);}2、对于MCP2515的CAN初始化:MCP2515在正常运行之前必须进行初始化。MCP2515有配置模式、正常模式、休眠模式、监听模式、环回模式五种工作模式,通过CANCTRL.REQOP位的设置才能进入相应工作模式。CAN的初始化只有在配置模式下才能进行。配置模式下,可以对CNF1、CNF2和CNF3波特率设置寄存器以及TXRTSCTRL发送控制寄存器和验收过滤寄存器进行修改。初始化设置的次序:a.设置CANCTRL,进入CAN配置模式;读CANSTAT状态,判断是否进入配置状态。b.设置CAN总线的波特率---CNF1/CNF2/CNF3;c.设置TXRTSCTRL(发送请求控制寄存器),确定TX0RTS~TX2RTS引脚的适用状态;d.设置TXBnCTRL(发送邮箱控制寄存器),确定邮箱0、邮箱1、邮箱2的优先级,以及ABTF位/MLOA位/TXERR位/TXREQ位清零报文写入邮箱之前,清零TXBnCTRL.TXREQ,表明发送邮箱无旧报文要发送;e.设置TXBnSI

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档