带有SPI接口的独立CAN控制器MCP2515_第1页
带有SPI接口的独立CAN控制器MCP2515_第2页
带有SPI接口的独立CAN控制器MCP2515_第3页
带有SPI接口的独立CAN控制器MCP2515_第4页
带有SPI接口的独立CAN控制器MCP2515_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CANCAN现场总线系统现场总线系统的设计与应用的设计与应用第第5章章带有带有SPI接口的独立接口的独立CAN控制器控制器MCP2515MCP2515简介简介 MCP2515是是Microchip生产的一款独立生产的一款独立CAN控制器,完控制器,完全支持全支持CAN V2.0B技术规范。该器件能发送和接收标准和技术规范。该器件能发送和接收标准和扩展数据帧以及远程帧。扩展数据帧以及远程帧。MCP2515自带的两个验收屏蔽寄自带的两个验收屏蔽寄存器和六个验收滤波寄存器,减少了单片机的开销。存器和六个验收滤波寄存器,减少了单片机的开销。 MCP2515通过通过SPI总线与单片机的的连接。本章主要介

2、总线与单片机的的连接。本章主要介绍绍MCP2515独立独立CAN控制器的外围引脚,内部寄存器和相控制器的外围引脚,内部寄存器和相关的关的SPI指令,并介绍基于指令,并介绍基于PIC16F877A单片机和单片机和MCP2515独立独立CAN控制器的控制器的CAN节点的开发和节点的开发和MCP2515的初始化、的初始化、发送、接收程序的编写发送、接收程序的编写 CAN独立控制器独立控制器MCP2515特性特性v完全支持完全支持CAN总线总线V2.0A和和V2.0B技术规范技术规范08字节报文长度;字节报文长度;标准和扩展数据帧;标准和扩展数据帧;可编程位传输速率可达可编程位传输速率可达lMbps;

3、支持远程帧:支持远程帧:两个接收缓冲器,可优先储存报文;两个接收缓冲器,可优先储存报文;6个完全验收滤波器;个完全验收滤波器;2个完全验收屏蔽滤波器;个完全验收屏蔽滤波器;3个发送缓冲器,具有优先级设定以及发送中止功能个发送缓冲器,具有优先级设定以及发送中止功能用于自检的环回模式。用于自检的环回模式。CAN独立控制器独立控制器MCP2515特性特性v硬件特性硬件特性高速高速SPl接口;接口;支持支持0.0和和I.1SPI模式;模式;带有可编程预分频器的时钟输出引脚;带有可编程预分频器的时钟输出引脚;带有可选择使能设定的,中断输出引脚:带有可选择使能设定的,中断输出引脚:“缓冲器满缓冲器满”输出

4、引脚可配置为各接收缓冲器的中断输出引脚可配置为各接收缓冲器的中断引脚或通用数宁输出引脚。引脚或通用数宁输出引脚。“请求发送请求发送”输入引脚可配置为发送缓冲器的控制引输入引脚可配置为发送缓冲器的控制引脚,用以请求立即发送报文或配置为通用数字输出引脚,用以请求立即发送报文或配置为通用数字输出引脚;脚;低功耗休眠工作模式。低功耗休眠工作模式。MCP2515控制器概述控制器概述MCP2515控制器概述控制器概述vCAN模块的功能是处理所有模块的功能是处理所有CAN总线上的报文接总线上的报文接收和发送。收和发送。 v控制逻辑通过与其它模块连接,控制逻辑模块控控制逻辑通过与其它模块连接,控制逻辑模块控制

5、制MCP2515的设置和运行,以便传输信息与控制。的设置和运行,以便传输信息与控制。v单片机通过单片机通过SPI接口与接口与MCP2515连接。使用标准连接。使用标准的的SPI读读/写指令以及专门的写指令以及专门的SPI命令来读命令来读 / 写所有写所有的寄存器和完成相应的控制操作。的寄存器和完成相应的控制操作。MCP2515引脚介绍引脚介绍MCP2515引脚介绍引脚介绍MCP2515引脚介绍引脚介绍发送发送/接收缓冲器接收缓冲器v MCP2510具有3个发送缓冲器和2个接收缓冲器,2个验收屏蔽寄存器(分别对应不同的接收缓冲器),以及6个验收过滤寄存器。CAN报文帧报文帧v标准数据帧标准数据帧

6、CAN报文帧报文帧v扩展数据帧仲裁字段的前11位为29位标识符的最有效位(基本ID)。紧随这11位的是替换远程请求(SRR)位,定义为隐性状态。SRR位之后是IDE位,该位隐性时表示这是扩展的CAN帧。CAN报文帧报文帧v远程帧远程帧v错误帧错误帧主动错误帧主动错误帧消极错误帧消极错误帧v过载帧过载帧与主动错误帧格式一样,但是其只出现在数据帧、远与主动错误帧格式一样,但是其只出现在数据帧、远程帧之间。程帧之间。v帧空间帧空间寄存器映射表寄存器映射表CANCTRL 控制寄存器控制寄存器vREQOP:请求工作模式的位:请求工作模式的位000=设定为正常工作模式设定为正常工作模式001=设定为休眠模

7、式设定为休眠模式010=设定为环回模式设定为环回模式011=设定为仅监听模式设定为仅监听模式100=设定为配置模式设定为配置模式REQOP位不应设置为其他值,因为这些值都是无效的。位不应设置为其他值,因为这些值都是无效的。注:注: 上电时,上电时,REQOP = b111CANCTRL 控制寄存器控制寄存器vABAT:中止所有当前报文发送的位:中止所有当前报文发送的位1= 请求中止所有当前报文发送的缓冲器请求中止所有当前报文发送的缓冲器0= 终止对所有报文发送中止的请求终止对所有报文发送中止的请求vOSM:单触发模式位:单触发模式位1= 使能。报文仅尝试发送一次使能。报文仅尝试发送一次0= 禁

8、止。如有需要,报文会重新发送。禁止。如有需要,报文会重新发送。vCLKEN:CLKOUT引脚使能位引脚使能位1=CLKOUT引脚使能引脚使能0=CLKOUT引脚禁止引脚禁止 (引脚处于高阻态)(引脚处于高阻态)vCLKPRE:CLKOUT引脚预分频比位引脚预分频比位00=FCLKOUT= 系统时钟频率系统时钟频率/101=FCLKOUT=系统时钟频率系统时钟频率/210=FCLKOUT= 系统时钟频率系统时钟频率/411=FCLKOUT= 系统时钟频率系统时钟频率/8CANSTAT 状态寄存器状态寄存器vOPMOD:工作模式位:工作模式位000= 器件处于正常工作模式器件处于正常工作模式001

9、= 器件处于休眠模式器件处于休眠模式010= 器件处于环回模式器件处于环回模式011= 器件处于仅监听模式器件处于仅监听模式100= 器件处于配置模式器件处于配置模式CANSTAT 状态寄存器状态寄存器vICOD:中断标志代码位:中断标志代码位000= 无中断无中断001= 出错中断出错中断010= 唤醒中断唤醒中断011= TXB0中断中断100= TXB1中断中断101= TXB2中断中断110= RXB0中断中断111= RXB1中断中断工作模式工作模式v配置模式配置模式复位后进入配置模式,所有错误计数器被清零复位后进入配置模式,所有错误计数器被清零v正常模式正常模式v睡眠模式睡眠模式S

10、PI口仍工作,允许访问任何寄存器;口仍工作,允许访问任何寄存器;唤醒后处于监听模式唤醒后处于监听模式v监听模式监听模式错误计数器被复位并设置为无效错误计数器被复位并设置为无效v环回模式环回模式自收发,多用于调试自收发,多用于调试配置模式配置模式vMCP2515在正常运行之前必须进行初始化。只有在配置在正常运行之前必须进行初始化。只有在配置模式下,才能对器件进行初始化。在上电或复位时器件会模式下,才能对器件进行初始化。在上电或复位时器件会自动进入配置模式,或通过自动进入配置模式,或通过CANTRL.REQOP位设置成位设置成 “100”也可使器件从任何模式进入配置模式。当进入配也可使器件从任何模

11、式进入配置模式。当进入配置模式时,所有错误计数器都被清零。只有在配置模式下,置模式时,所有错误计数器都被清零。只有在配置模式下,才能对以下寄存器进行修改才能对以下寄存器进行修改 CNF1、CNF2和和CNF3 TXRTSCTRL 验收过滤寄存器验收过滤寄存器 验收屏蔽寄存器验收屏蔽寄存器休眠模式休眠模式vMCP2515具有内部休眠模式,使器件功耗最少。即使具有内部休眠模式,使器件功耗最少。即使MCP2515处于休眠模式,处于休眠模式,SPI接口仍然保持正常的读操作,接口仍然保持正常的读操作,以允许访问器件内的所有寄存器。以允许访问器件内的所有寄存器。v当处于内部休眠模式时,唤醒中断仍然工作(如

12、果被使当处于内部休眠模式时,唤醒中断仍然工作(如果被使能)。因此,可将能)。因此,可将MCU置于休眠模式,在检测到总线上有置于休眠模式,在检测到总线上有活动时,就唤醒活动时,就唤醒MCP2515。v处于休眠模式时,处于休眠模式时,MCP2515内部振荡器停止工作。当总线内部振荡器停止工作。当总线发生活动或发生活动或MCU通过通过SPI接口将接口将CANINTF.WAKIF位置位置1来来 “产生产生”唤醒尝试唤醒尝试 (CANINTE.WAKIE位也必须置位也必须置1以便以便产生唤醒中断)时,将唤醒产生唤醒中断)时,将唤醒MCP2515。v当当MCP2515处于休眠模式时,处于休眠模式时,TXC

13、AN引脚保持隐性状态。引脚保持隐性状态。复位复位v MCP2515有两种复位方式:有两种复位方式:硬件复位硬件复位RESET引脚为低电平。引脚为低电平。SPI复位复位通过通过SPI命令复位。命令复位。振荡器振荡器错误检测错误检测v当产生当产生CRC错误,确认(应答)错误,格式错误和填充错误,确认(应答)错误,格式错误和填充错误时,除了改变错误寄存器的值以外,报文将重新发送。错误时,除了改变错误寄存器的值以外,报文将重新发送。v在总裁阶段不进行位错误检修。在总裁阶段不进行位错误检修。v当发现位错误时,将根据节点的状态产生相应的错误帧,当发现位错误时,将根据节点的状态产生相应的错误帧,主动错误帧将

14、破坏数据帧和远程帧的发送。主动错误帧将破坏数据帧和远程帧的发送。v节点错误状态节点错误状态 主动错误。主动错误。 被动错误。被动错误。 总线关闭总线关闭 (仅发送器)(仅发送器)错误相关寄存器错误相关寄存器vTEC发送错误计数器发送错误计数器vREC接收错误计数器接收错误计数器 vEFLG错误标志寄存器错误标志寄存器EFLG寄存器寄存器vRX1OVR:接收缓冲器:接收缓冲器1溢出标志位溢出标志位vRX0OVR:接收缓冲器:接收缓冲器0溢出标志位溢出标志位vTXBO:总线关闭错误标志位:总线关闭错误标志位当当TEC达到达到255时,该位置时,该位置1;-当成功接收到总线恢复序列时复位当成功接收到

15、总线恢复序列时复位v TXEP:发送被动错误标志位:发送被动错误标志位vRXEP:接收被动错误标志位:接收被动错误标志位vTXWAR:发送错误警告标志位:发送错误警告标志位vRXWAR:接收错误警告标志位:接收错误警告标志位vbit 0 EWARN:错误警告标志位:错误警告标志位当当TEC或或REC大于等于大于等于96时(时(TXWAR或或RXWAR = 1)时,该位)时,该位置置1当当TEC和和REC同时小于同时小于96时复位时复位中断中断vMCP2515有八个中断源。CANINTE寄存器包含了使能各中断源的中断使能位。CANINTF寄存器包含了各中断源的中断标志位。当发生中断时,INT引脚

16、将被MCP2515拉为低电平,并保持低电平状态直至MCU清除中断。中断只有在引起相应中断的条件消失后,才会被清除。v建议在对CANINTF寄存器中的标志位进行复位操作时,采用位修改命令而不要使用一般的写操。这是为了避免在写命令执行过程中无意间修改了标志位,进而导致中断丢失。vCANSTAT.ICOD(中断代码)位的编码反映等待处理的中断源。如果同时发生多个中断,INT引脚将保持低电平状态直至MCU复位所有中断。CANINTF中断标志寄存器中断标志寄存器 1= 有等待处理的中断有等待处理的中断 (必须由(必须由MCU清零才可使中断复位)清零才可使中断复位) 0= 无等待处理的中断无等待处理的中断

17、vMERRF:报文错误中断标志位:报文错误中断标志位WAKIF:唤醒中断标志位:唤醒中断标志位vERRIF:错误中断标志位:错误中断标志位 (EFLG寄存器中有多个中断源)寄存器中有多个中断源)vTX2IF:发送缓冲器:发送缓冲器2空中断标志位空中断标志位vTX1IF:发送缓冲器:发送缓冲器1空中断标志位空中断标志位vTX0IF:发送缓冲器:发送缓冲器0空中断标志位空中断标志位vRX1IF:接收缓冲器:接收缓冲器1满中断标志位满中断标志位vRX0IF:接收缓冲器:接收缓冲器0满中断标志位满中断标志位CANINTE中断使能寄存器中断使能寄存器1= 报文接收或发送期间发生错误时中断报文接收或发送期

18、间发生错误时中断0= 禁止禁止vMERRE:报文错误中断使能位:报文错误中断使能位vbit 6 WAKIE:唤醒中断使能位:唤醒中断使能位vERRIE:错误中断使能位:错误中断使能位 (EFLG寄存器中有多个中断源寄存器中有多个中断源)vTX2IE:发送缓冲器:发送缓冲器2空中断使能位空中断使能位vTX1IE:发送缓冲器:发送缓冲器1空中断使能位空中断使能位vTX0IE:发送缓冲器:发送缓冲器0空中断使能位空中断使能位vRX1IE:接收缓冲器:接收缓冲器1满中断使能位满中断使能位vRX0IE:接收缓冲器:接收缓冲器0满中断使能位满中断使能位位定时位定时位定时位定时位定时位定时CONF1CONF

19、2CONF3报文接收报文接收报文接收报文接收v报文接收缓冲报文接收缓冲 MCP2515 具有两个全接收缓冲器。每个接收缓冲器配备具有两个全接收缓冲器。每个接收缓冲器配备有多个验收滤波器。除上述专用接收缓冲器外,有多个验收滤波器。除上述专用接收缓冲器外,MCP2515 还具有单独的报文集成缓冲器(还具有单独的报文集成缓冲器(MAB) ,可,可作为第三个接收缓冲器。作为第三个接收缓冲器。 MAB 对接收到的报文进行组合,对接收到的报文进行组合,并将满足验收滤波器条件的报文传送至并将满足验收滤波器条件的报文传送至 RXBn缓冲器。缓冲器。v 接收优先级接收优先级 RXB0 是具有较高优先级的缓冲器。

20、接收到的报文首先是具有较高优先级的缓冲器。接收到的报文首先在在RXB0中进行屏蔽滤波。中进行屏蔽滤波。RXB1 是优先级较低的缓冲器。是优先级较低的缓冲器。 报文除了首先在报文除了首先在 RB0 中进行屏蔽滤波外,由于中进行屏蔽滤波外,由于 RB0 的验收滤波寄存器数量较少,因此的验收滤波寄存器数量较少,因此RB0接受匹配条件更为接受匹配条件更为严格,表明严格,表明RB0 具有较高的优先级。具有较高的优先级。报文接收报文接收v滚存滚存 对对RXB0CTRL寄存器进行配置,如果寄存器进行配置,如果RXB0已包含一条有已包含一条有效报文并且接收到另一条有效报文,不会发生溢出错误,效报文并且接收到另

21、一条有效报文,不会发生溢出错误,新的报文会滚存到新的报文会滚存到 RXB1 而不管而不管 RXB1是何种验收标准。是何种验收标准。v接收标志接收标志 / 中断中断 当报文传送至某一接收缓冲器时,与该接收缓冲器对应当报文传送至某一接收缓冲器时,与该接收缓冲器对应的的 CANINTF.RXnIF 位将置位将置 1。一旦缓冲器中的报文处理一旦缓冲器中的报文处理完毕,完毕,MCU就必须将该位清零以接收下一条报文。就必须将该位清零以接收下一条报文。 该控制位提供的锁定功能确保该控制位提供的锁定功能确保 MCU 尚未处理完上一条尚未处理完上一条报文前,报文前, MCP2515不会将新的报文载入接收缓冲器。

22、不会将新的报文载入接收缓冲器。报文接收报文接收报文接收报文接收v 起始帧信号起始帧信号 使能之后,一旦使能之后,一旦 RXCAN 引脚检测到任一引脚检测到任一 CAN 报文开报文开始,起始帧信号便会在始,起始帧信号便会在 SOF引脚上产生。引脚上产生。 RXCAN 引脚监控空闲总线上出现的从隐性位到显性位引脚监控空闲总线上出现的从隐性位到显性位 的变化边沿。如果显性条件始终保持直至采样点发生,的变化边沿。如果显性条件始终保持直至采样点发生,MCP2515视之为视之为SOF信号并产生一个信号并产生一个SOF脉冲。如果显脉冲。如果显性条件没有保持到采样点便发生,性条件没有保持到采样点便发生, MC

23、P2515 视之为总线视之为总线干扰,不产生干扰,不产生 SOF 信号。信号。 对于单触发工作模式,对于单触发工作模式, SOF 信号的一个用途是用于信号的一个用途是用于TTCAN(是是CAN总线的一种高层协议总线的一种高层协议,其通信是基于时间其通信是基于时间触发的触发的, 适用于安全相关的场合适用于安全相关的场合)系统。另外,通过监控系统。另外,通过监控 RXCAN引脚和引脚和 SOF引脚,引脚, MCU 能够检测到总线上出现能够检测到总线上出现的小干扰,从而在它们影响的小干扰,从而在它们影响 CAN 通讯之前发现早期总线通讯之前发现早期总线物理故障物理故障。报文接收报文接收v多滤波器匹配

24、多滤波器匹配 如果接收报文符合一个以上滤波寄存器的接受条件,如果接收报文符合一个以上滤波寄存器的接受条件,FILHIT 位中的二进制代码将反映其中编号最小的滤波寄位中的二进制代码将反映其中编号最小的滤波寄存器。例如,如果滤波器存器。例如,如果滤波器RXF2 和和RXF4 同时与接收报文同时与接收报文匹配,匹配,FILHIT 中将装载中将装载 RXF2 编码值。编码值。 编号较小的验收滤波寄存器有较高的优先级。接收报编号较小的验收滤波寄存器有较高的优先级。接收报文将按照编号升序依次与滤波寄存器进行匹配比较。这意文将按照编号升序依次与滤波寄存器进行匹配比较。这意味着味着RXB0 的优先级比的优先级

25、比RXB1高。高。报文接收报文接收报文发送报文发送v发送缓冲器发送缓冲器 MCP2515 采用三个发送缓冲器。采用三个发送缓冲器。v发送优先级发送优先级具有较高优先级的发送缓冲器将首先发送。具有较高优先级的发送缓冲器将首先发送。如果两个缓冲器的优先级相同,则编号较高的发送缓如果两个缓冲器的优先级相同,则编号较高的发送缓冲器将优先发送。冲器将优先发送。vTXnRTS引脚引脚 TXnRTS为输入引脚,可配置为:为输入引脚,可配置为:请求发送输入引脚,作为启动任一发送缓冲器中报文请求发送输入引脚,作为启动任一发送缓冲器中报文发送的备用方法发送的备用方法标准数字输入引脚标准数字输入引脚报文发送报文发送

26、v发送启动发送启动 通过将通过将TXBnCTRL.TXREQ 位置位置 1,可以启动相应缓,可以启动相应缓冲器的报文发送。它可以按如下方式设定:冲器的报文发送。它可以按如下方式设定:* 利用利用SPI写命令写寄存器写命令写寄存器* 发送发送SPI RTS命令命令* 将要发送报文的发送缓冲器的将要发送报文的发送缓冲器的TXnRTS引脚置为低引脚置为低电平电平 通过通过SPI接口启动报文发送后,可以同时将接口启动报文发送后,可以同时将TXREQ位位和和TXP优先级控制位置优先级控制位置1。 当当TXBnCTRL.TXREQ位置位置 1 后,后,TXBnCTRL.ABTF、TXBnCTRL.MLOA和和TXBnCTRL.TXERR位都将被自动位都将被自动清零。清零。报文发送报文发送v发送中止发送中止清除与特定发送缓冲器对应的清除与特定发送缓冲器对应的TXBnCTRL.TXREQ位位来中止某条报文的发送。来中止某条报文的发送。也可通过设置也可通过设置CANCTRL.ABAT位以中止所有等待发位以中止所有等待发送的报文。送的报文。 如果如果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论