MICROCHIP MCP2515 说明书


2023年12月17日发(作者:mortal kombat)

MCP2515带有SPI接口的独立CAN控制器特性•完全支持CAN V2.0B技术规范,通讯速率为1Mb/s:-0-8字节长的数据字段-标准和扩展数据帧及远程帧•接收缓冲器、验收屏蔽寄存器和验收滤波寄存器:-两个接收缓冲器,可优先存储报文-六个29位验收滤波寄存器-二个29位验收屏蔽寄存器•对头两个数据字节进行滤波(针对标准数据帧)•三个发送缓冲器,具有优先级设定及发送中止功能•高速SPI接口(10MHz):-支持0,0和1,1的SPI模式•单触发模式确保报文发送只尝试一次•带有可编程预分频器的时钟输出引脚:-可用作其他器件的时钟源•可用起始帧信号(Start-of-Frame,SOF),用于监控SOF信号:-可用于时隙协议和/或总线诊断以检测早期总线性能退化带有可选使能设定的中断输出引脚“缓冲器满”输出引脚可配置为:-各接收缓冲器的中断引脚-通用数字输出引脚“请求发送(Request-to-Send,RTS)”输入引脚可各自配置为:-各发送缓冲器的控制引脚,用于请求立即发送报文-通用数字输入引脚低功耗的CMOS技术:-工作电压范围2.7V至5.5V-5mA典型工作电流-1µA典型待机电流(休眠模式)工作温度范围:-工业级(I):-40°C至+85°C-扩展级(E):-40°C至+125°C说明Microchip的MCP2515是一款独立控制器局域网络(Controller Area Network,CAN)协议控制器,完全支持CAN V2.0B技术规范。该器件能发送和接收标准和扩展数据帧以及远程帧。MCP2515自带的两个验收屏蔽寄存器和六个验收滤波寄存器可以过滤掉不想要的报文,因此减少了主单片机(MCU)的开销。MCP2515与MCU的连接是通过业界标准串行外设接口(SearialPeripheral Interface,SPI)来实现的。封装类型18引脚PDIP/SOICTXCANRXCANCLKOUT/SOFTX0RTSTX1RTSTX2RTSOSC2OSC1Vss1716VDDRESETCSSOSISCKINTRX0BFRX1BFMCP25110•••20引脚TSSOPTXCANRXCANCLKOUT/SOFTX0RTSTX1RTSNCTX2RTSOSC2OSC1VSS14131211VDDRESETCSSOSINCSCKINTRX0BFRX1BF•• 2005 Microchip Technology Inc.初稿MCP2515DS21801D_CN第1页

MCP2515注:DS21801D_CN第2页初稿 2005 Microchip Technology Inc.

MCP25151.0器件概述1.2控制逻辑MCP2515是一款独立CAN控制器,可简化需要与CAN总线连接的应用。图1-1简要显示了MCP2515的结构框图。该器件主要由三个部分组成:模块,包括CAN协议引擎、验收滤波寄存器、验收屏蔽寄存器、发送和接收缓冲器。用于配置该器件及其运行的控制逻辑和寄存器。SPI协议模块。通过与其他模块连接,控制逻辑模块控制MCP2515的设置和运行,以便传输信息与控制。所提供的中断引脚提高了系统的灵活性。器件上有一个多用途中断引脚及各接收缓冲器的专用中断引脚,用于指示有效报文是否被接收并载入接收缓冲器。可选择使用专用中断引脚。通用中断引脚和状态寄存器(通过SPI接口访问)也可用来确定何时接收了有效报文。器件还有三个引脚,用来启动将装载在三个发送缓冲器之一中的报文立即发送出去。是否使用这些引脚由用户决定;若不使用,也可利用控制寄存器(通过SPI接口访问)来启动报文发送。图1-2显示了该器件的典型系统应用。1.1CAN模块CAN模块的功能是处理所有CAN总线上的报文接收和发送。报文发送时,首先将报文装载到正确的报文缓冲器和控制寄存器中。通过SPI接口设置控制寄存器中的相应位或使用发送使能引脚均可启动发送操作。通过读取相应的寄存器可以检查通讯状态和错误。会对在CAN总线上检测到的任何报文进行错误检查,然后与用户定义的滤波器进行匹配,以确定是否将报文移到两个接收缓冲器中的一个。1.3SPI协议模块MCU通过SPI接口与该器件连接。使用标准的SPI读/写指令以及专门的SPI命令来读/写所有的寄存器。图 1-1:CAN模块结构框图RXCANCAN协议引擎TXCAN发送和接收缓冲器验收屏蔽寄存器和 验收滤波器  SPI接口逻辑CSSCKSISOSPI总线控制逻辑OSC1OSC2CLKOUT 时序 发生器INTRX0BFRX1BF控制和中断寄存器TX0RTSTX1RTSTX2RTSRESET 2005 Microchip Technology Inc.初稿DS21801D_CN第3页

MCP2515图 1-2:典型系统实现方法图节点控制器SPI节点控制器SPI节点控制器SPIMCP2515TXXCVRRXMCP2515TXXCVRRXMCP2515TXXCVRRXCANHCANL表 1-1:名称TXCANRXCANCLKOUTTX0RTS引脚说明PDIP/SOICTSSOP引脚号引脚号12341234I/O/P类型OIOI说明连接到CAN总线的发送输出引脚连接到CAN总线的接收输入引脚带可编程预分频器的时钟输出引脚——起始帧信号备选引脚功能发送缓冲器TXB0请求发送引脚或通用通用数字输入引脚。数字输入引脚。VDD上连100kΩ内部VDD上连100kΩ内部上拉电阻上拉电阻发送缓冲器TXB1请求发送引脚或通用通用数字输入引脚。数字输入引脚。VDD上连100kΩ内部VDD上连100kΩ内部上拉电阻上拉电阻发送缓冲器TXB2请求发送引脚或或通通用数字输入引脚。用数字输入引脚。VDD上连100kΩ内VDD上连100kΩ内部上拉电阻部上拉电阻振荡器输出振荡器输入逻辑和I/O引脚的参考地—外部时钟输入引脚—TX1RTS55ITX2RTS67IOSC2OSC1VSSRX1BFRX0BFINTSCKSISOCSRESETVDDNC注:789161718—89171819206,15OIPOOOIIOIIP—接收缓冲器RXB1中断引脚或通用数字通用数字输出引脚输出引脚接收缓冲器RXB0中断引脚或通用数字通用数字输出引脚输出引脚中断输出引脚SPI接口的时钟输入引脚SPI接口的数据输入引脚SPI接口的数据输出引脚SPI接口的片选输入引脚低电平有效的器件复位输入引脚逻辑和I/O引脚的正电源无内部连接———————类型标识:I = 输入;O =输出;P = 电源DS21801D_CN第4页初稿 2005 Microchip Technology Inc.

MCP25151.4发送/接收缓冲器/验收屏蔽寄存器/验收滤波寄存器MCP2515有三个发送缓冲器和两个接收缓冲器,两个验收屏蔽寄存器(分别对应不同的接收缓冲器)以及六个验收滤波寄存器。图1-3的框图显示了这些缓冲器及它们与CAN协议引擎的连接方法。图 1-3:CAN缓冲器和协议引擎框图验收屏蔽寄存器RXM1验收滤波寄存器RXF2缓冲器TXB0MESSAGETXREQABTFMLOATXERRTXB1MESSAGETXREQABTFMLOATXERRTXB2MESSAGETXREQABTFMLOATXERR接受验收屏蔽寄存器RXM0验收滤波寄存器RXF0验收滤波寄存器RXF1RXB0验收滤波寄存器RXF3验收滤波寄存器RXF4验收滤波寄存器RXF5RXB1 接 受  报文队列控制标识符MAB标识符发送字节序列发生器数据字段数据字段协议引擎接收错误计数器发送错误计数器RECTECErrPasBusOff 发送<7:0>移位<14:0>{发送<5:0>,接收<8:0>}比较器接收<7:0>CRC<14:0>协议有限状态机SOF发送逻辑位时序逻辑时钟发生器TXRX配置寄存器 2005 Microchip Technology Inc.初稿DS21801D_CN第5页

MCP25151.5CAN协议引擎1.5.3错误管理逻辑CAN协议引擎包含数个功能模块,见图1-4。下面将对这些模块及其功能进行介绍。错误管理逻辑(EML)负责将CAN器件的故障进行隔离。该逻辑有两个计数器,即接收错误计数器(ReceiveError Counter,REC)和发送错误计数器(TransmitError Counter,TEC)。这两个计数器根据来自位流处理器的命令进行增减计数。根据错误计数器的计数值,CAN控制器将被设定为错误主动、错误被动或总线关闭三种状态。1.5.1协议有限状态机协议引擎的核心是有限状态机(Finite State Machine,FSM)。FSM是一个定序器,对TX/RX移位寄存器、循环冗余校验(Cyclic Redundancy Check,CRC)寄存器和总线之间的顺序数据流进行控制。FSM还对错误管理逻辑(Error Management Logic,EML)及TX/RX移位寄存器和缓冲器之间的并行数据流进行控制。FSM确保了依据CAN协议,进行报文接收、总线仲裁、报文发送以及错误信号发生等操作过程。FSM还对总线上报文的自动重发进行处理。1.5.4位时序逻辑1.5.2循环冗余校验循环冗余校验寄存器产生循环冗余校验(CRC)代码。该代码在控制字段(数据字节数为0的报文)或数据字段之后被发送,并用来检查进入报文的CRC字段。位时序逻辑(Bit Timing Logic,BTL)可监控总线输入,并根据CAN协议处理与总线相关的位时序操作。BTL在起始帧时,对从隐性状态到显性状态的总线过渡进行同步操作(称为硬同步)。如果CAN控制器本身不发送显性位,则在以后的隐性状态到显性状态总线过渡时会再进行同步操作(称为再同步)。BTL还提供可编程时间段以补偿传播延迟时间和相位位移,并对位时段内的采样点位置进行定义。对BTL的编程取决于波特率和外部物理延迟时间。图 1-4:RXCAN协议引擎框图位时序逻辑SAM采样<2:0>StuffReg<5:0>发送多数决定错误计数器ErrPasBusOff接收错误计数器RECTEC发送逻辑TXBusMon比较器CRC<14:0>协议FSM比较器移位<14:0>(发送<5:0>,接收<7:0>)接收<7:0>发送<7:0>SOFRecData<7:0>连接到标准缓冲器TrmData<7:0>接收/发送地址DS21801D_CN第6页初稿 2005 Microchip Technology Inc.

MCP25152.0CAN报文帧SRR和lDE位之后是标识符的其余18位(扩展lD)及一个远程发送请求位。为使标准帧和扩展帧都能在共享网络上发送,应将29位扩展报文标识符拆成高11位和低18位两部分。拆分后可确保lDE位在标准数据帧和扩展数据帧中的位置保持一致。仲裁字段之后是6位控制字段。控制字段前两位为保留位,必须定义为显性位。其余4位为DLC,用来指定报文中包含的数据字节数。扩展数据帧的其他部分(数据字段、CRC字段、确认字段、帧结尾和间断)与标准数据帧的结构相同(见第2.1节“标准数据帧”)。MCP2515支持CAN 2.0B技术规范中所定义的标准数据帧、扩展数据帧和远程帧(标准和扩展)。2.1标准数据帧CAN标准数据帧如图2-1所示。与其他所有帧一样,帧以起始帧(SOF)位开始,SOF为显性状态,允许所有节点的硬同步。SOF之后是仲裁字段,由12个位组成,分别为11个标识位和一个远程发送请求(Remote TransmissionRequest,RTR)位。RTR位用于区分报文是数据帧(RTR位为显性状态)还是远程帧(RTR位为隐性状态)。仲裁字段之后是控制字段,由6个位组成。控制字段的第一位为标识扩展(Identifier Extension,IDE)位,该位应是显性状态来指定标准帧。标识扩展位的下一位为零保留位(RB0),CAN协议将其定义为显性位。控制字段的其余4位为数据长度码(Data Length Code,DLC),用来指定报文中包含的数据字节数(0到8字节)。控制字段之后为数据字段,包含要发送的任何数据字节。数据字段长度由上述DLC定义(0到8字节)。数据字段之后为循环冗余校验(CRC)字段,用来检测报文传输错误。CRC字段包含一个15位的CRC序列,之后是隐性的CRC定界位。最后一个字段是确认字段(ACK),由2个位组成。在确认时隙(ACK Slot)位执行期间,发送节点发出一个隐性位。任何收到无错误帧的节点会发回一个显性位(无论该节点是否配置为接受该报文与否)来确认帧收到无误。确认字段以隐性确认定界符结束,该定界符可能不允许被改写为显性位。2.3远程帧通常,数据传输是由数据源节点(例如,传感器发出数据帧)自主完成的。但也可能存在目标节点向源节点请求发送数据的情况。要做到这一点,目标节点需发送一个远程帧,其中的标识符应与所需数据帧的标识符相匹配。随后,相应的数据源节点会发送一个数据帧以响应远程帧请求。远程帧(如图2-3所示)与数据帧存在两点不同:1)远程帧的RTR位为隐性状态;2)远程帧没有数据字段。当带有相同标识符的数据帧和远程帧同时发出时,数据帧将赢得仲裁,因为其标识符后面的RTR位为显性。这样,可使发送远程帧的节点立即收到所需数据。2.4错误帧错误帧是由检测到总线错误的任一节点产生。如图2-4所示,错误帧包含两个字段:错误标志字段及紧随其后的错误定界字段。错误标志字段有两种类型。节点发送哪种类型的错误标志字段,取决于检测到错误并产生错误标志字段的节点的错误状态。2.2扩展数据帧在扩展CAN数据帧中(如图2-2所示),紧随SOF位的是32位的仲裁字段。仲裁字段的前11位为29位标识符的最高有效位(Most Significant bit,MSb)(基本lD)。紧随这11位的是替代远程请求(SubstituteRemote Request,SRR)位,定义为隐性状态。SRR位之后是lDE位,该位为隐性状态时表示这是扩展的CAN帧。应该注意的是,如果发送完扩展帧标识符的前11位后,总线仲裁无果,而此时其中一个等待仲裁的节点发出标准CAN数据帧(11位标识符),那么,由于节点发出了显性lDE位而使标准CAN帧赢得总线仲裁。另外,扩展CAN帧的SRR位应为隐性,以允许正在发送标准CAN远程帧的节点发出显性RTR位。 2005 Microchip Technology Inc.初稿DS21801D_CN第7页

MCP25152.4.1主动错误2.5过载帧当错误主动节点检测到一个总线错误时,这个节点将产生一个主动错误标志来中断当前的报文发送。主动错误标志由6个连续的显性位构成。这种位序列主动打破了位填充规则。所有其他节点在识别到所生成的位填充错误后,会自行产生错误帧,称为错误反射标志。错误标志字段因此包含6到12个连续显性位(由1个或多个节点产生)。错误定界字段(8个隐性位)为错误帧划上句号。在错误帧发送完毕后,总线主动恢复正常状态,被中断的节点会尝试重新发送被中止的报文。注:在局部干扰导致一个或多个(但非全部)节点发送错误标志时通常会产生错误反射标志。其他节点产生错误标志作为对最初错误标志的响应(反射)。.如图2-5所示,过载帧与主动错误帧具有相同的格式。但是,过载帧只能在帧间间隔产生,因此可通过这种方式区分过载帧和错误帧(错误帧是在帧传输时发出的)。过载帧由两个字段组成,即过载标志和随后的过载定界符。过载标志由6个显性位和紧随其后的其他节点产生的过载标志构成(而主动错误标志最多包含12个显性位)。过载定界符包含8个隐性位。节点在两种情况下会产生过载帧:1.节点在帧间间隔检测到非法显性位。在IFS的第三位期间检测到显性位除外。这种情况下,接收器会把它看作一个SOF信号。由于内部原因,节点尚无法开始接收下一条报文。节点最多可产生两条连续的过载帧来延迟下一条报文的发送。注:由于内部延迟时间非常短,MCP2515不会发生第二种情况。2.2.4.2被动错误当错误被动节点检测到一个总线错误时,该节点将发送一个被动错误标志,并紧接着发送错误定界字段。错误被动标志由6个连续的隐性位构成,而错误被动节点发出的错误帧包含14个隐性位。由此可知,除非总线错误被错误主动节点或正在发送报文的节点检测到,否则由于错误被动标志不会影响总线运行,将继续发送报文。如果发送节点产生一个错误被动标志,那么,由于位填充规则被打破,将导致其他节点产生错误帧。错误帧发送完毕后,错误被动节点必须等待总线上出现6个连续隐性位后,才能尝试重新参与总线通讯。错误定界符由8个隐性位组成,允许总线节点在错误发生后重新启动总线通讯。2.6帧间间隔帧间间隔将前一条帧(无论何种类型)与其后的数据帧或远程帧间隔开。帧间间隔至少由3个隐性位构成,又称为间断。间断使节点在发送下一条报文之前有时间进行内部处理。在间断之后,CAN总线将保持隐性状态(总线空闲),直至下一条报文开始发送。DS21801D_CN第8页初稿 2005 Microchip Technology Inc.

图 2-1:帧起始ID 10ID30数据长度码 存储于发送/接收缓冲器中位填充ID0RTRIDERB0DLC3DLC0000

标识符保留位

报文滤波存储于缓冲器中CRC定界符确认间隙位确认定界符 2005 Microchip Technology Inc.

数据帧(位数

=

44

+

8N) 8N

(0≤N≤8)

数据字段16CRC字段815CRC87帧结束 IFS16

控制

字段4标准数据帧12

仲裁字段11初稿MCP2515DS21801D_CN第9页

图 2-2:ID3EID0RTRRB1RB0DLC3DLC0帧起始ID10保留位初稿000

扩展标识符数据长度码 存储在发送/接收缓冲器中位填充0ID0SRRIDEEID1711

标识符报文滤波 存储在缓冲器中CRC 定界符确认间隙位确认定界符DS21801D_CN第10页MCP2515扩展数据帧

数据帧(位数

=

64

+

8N)6

控制

字段8N

(0

N

8)

数据字段8815CRC416CRC

字段7帧结束 IFS13218

仲裁字段11 2005 Microchip Technology Inc.

图 2-3:远程帧ID3EID0RTRRB1RB0DLC3DLC0帧起始ID10ID0SRRIDEEID17带扩展标识符的远程帧无数据字段保留位初稿11

扩展标识符数据长度码 1000

标识符 报文滤波 CRC定界符确认间隙位确认定界符 15CRC 2005 Microchip Technology Inc.32

仲裁字段111846控制字段 16CRC字段7帧结束 IFS1MCP2515DS21801D_CN第11页

图 2-4:帧起始ID 10ID30数据长度码 保留位

标识符报文滤波 ID0RTRIDERB0DLC3000DLC0DS21801D_CN第12页

被中断的数据帧6控制字段 48N

(0≤N≤8)

数据字段88MCP2515主动错误帧12

仲裁字段11初稿位填充数据帧或远程帧  6

错误

标志£

60000000

错误帧8反射错误标志 错误定界符 帧间间隔或

 过载帧 2005 Microchip Technology Inc.

图 2-5:过载帧帧起始ID 10初稿1帧结束或错误定界符或过载定界符60ID0RTRIDERB0DLC3DLC0CRC定界符确认间隙位确认定界符 2005 Microchip Technology Inc.

远程帧(位数

=

44)167帧结束 CRC

字段15CRC6控制字段 4

过载帧8过载标志 过载定界符 111帧间间隔或错误帧 12

仲裁字段11MCP2515DS21801D_CN第13页

MCP2515注:DS21801D_CN第14页初稿 2005 Microchip Technology Inc.

MCP25153.03.1报文发送发送缓冲器3.3启动发送通过将位置1,可以启动相应缓冲器的报文发送。它可以按如下方式设定:•利用SPI写命令写寄存器•发送SPI RTS命令•将要发送报文的发送缓冲器的TXnRTS引脚置为低电平通过SPI接口启动报文发送后,可以同时将TXREQ位和TXP优先级控制位置1。当位置1后,、和位都将被自动清零。将位置1不会启动报文发送。仅会将报文缓冲器标记为准备发送。当器件检测到总线空闲时,才会启动报文发送。报文发送成功后,位将被清零,位置1,若位被置1,将产生中断。如果报文发送失败,将保持置1,表明该报文仍在等待发送。此时以下条件标志之一将被置1:•如果报文已开始发送但发生错误,和位将被置1,此时在位置1后,器件将在INT引脚产生中断•若发送报文总线仲裁失败,位将被置1注:如果使能了单触发模式(),以上所述的条件仍然有效。然而,TXREQ位会被清零,并且报文不会尝试再次发送。注:MCP2515采用三个发送缓冲器。每个发送缓冲器占用14字节的SRAM,并映射到器件存储器中。其中第一个字节TXBnCTRL是与报文缓冲器相关的控制寄存器。该寄存器中的信息决定了报文在何种条件下发送,并在报文发送时指示其状态(见寄存器3-1)。用5个字节来装载标准和扩展标识符以及其他报文仲裁信息(见寄存器3-3到寄存器3-7)。最后8个字节用于装载等待发送报文的8个可能的数据字节(见寄存器3-8)。至少须将TXBnSIDH、TXBnSIDL和TXBnDLC寄存器装载数据。如果报文包含数据字节,还需要对TXBnDm寄存器进行装载。若报文采用扩展标识符,应对TXB-nEIDm寄存器进行装载,并将位置1。在报文发送之前,MCU应对位进行初始化,以便在报文发送时使能或禁止中断的产生。注:在写入发送缓冲器之前,必须将位清零(表明发送缓冲器无等待发送的报文)。3.2发送优先级发送优先级是指MCP2515内部等待发送报文的优先级。它与CAN协议中固有的报文仲裁优先级无关。在发送起始帧SOF之前,器件将所有等待发送报文的发送缓冲器的优先级进行比较。具有较高优先级的发送缓冲器将首先发送。例如,发送缓冲器0的优先级比发送缓冲器1高,发送缓冲器0将首先发送。如果两个发送缓冲器的优先级相同,编号较高的发送缓冲器将优先发送。例如,发送缓冲器1与发送缓冲器0的优先级相同,缓冲器1将优先发送。发送优先级的设定共有4个等级。如果某个发送缓冲器的<1:0>设定为11,该发送缓冲器具有最高的发送优先级。如果<1:0>设定为00,该发送缓冲器的发送优先级最低。3.4单触发模式单触发模式确保了报文只会发送一次。正常情况下,如果CAN报文仲裁失败或被错误帧损坏,报文会尝试再次发送。一旦单触发模式使能,报文只会发送一次,而不管仲裁失败或产生错误帧与否。单触发模式需要在确定性系统中保持时间间隙,如TTCAN。 2005 Microchip Technology Inc.初稿DS21801D_CN第15页

MCP25153.5TXnRTS引脚3.6中止发送TXnRTS为输入引脚,可配置为:•请求发送输入引脚,作为启动任一发送缓冲器中报文发送的备用方法•标准数字输入引脚通过设定TXRTSCTRL寄存器(见寄存器3-2)可对这些引脚进行配置和控制。只有在MCP2515处于配置模式时才可对TXRTSCTRL寄存器内容进行修改(见第10.0节“工作模式”)。如果该引脚配置为请求发送引脚,该引脚将被映射为发送缓冲器中相应的位。TXnRTS引脚的下降沿电平跳变信号可将锁定TXREQ位。用户可将TXnRTS引脚同RXnBF引脚直接相连,在RXnBF引脚变为低电平时自动启动报文发送。TXnRTS引脚具有100kΩ(标称值)的内部上拉电阻。MCU可通过将特定报文缓冲器中对应的位清零,请求中止该缓冲器中的报文发送。也可通过将位置1来请求中止所有等待发送的报文。用户必须复位该位才可继续发送报文(通常须先确认所有的TXREQ位都已清零)。只有通过设定位中止报文发送时,标志才会被置1。通过复位TXREQ位来中止报文发送,将不会使ABTF位置1。注:只有尚未开始发送的报文可被中止。报文一旦没有发送成功(如,仲裁失败或因错误帧而中断),就会中止发送。DS21801D_CN第16页初稿 2005 Microchip Technology Inc.

MCP2515图 3-1:报文发送流程图开始当器件确定任一发送控制寄存器位被置1后,开始报文发送序列。否任一

位 = 1?是清零:

将置1的位清零或在报文发送之前位置1将会中止报文发送。 CAN 总线是否可进行报文发送?否 =0或 =1?是否是检查 <1:0>  以确定最高优先级的报文报文发送 报文成功发送? 是位清零否报文出错或仲裁失败? 仲裁失败  报文出错置1是?是产生中断=1?置1否产生

中断否 置位决定在报文发送成功后是否产生中断。置1返回开始 2005 Microchip Technology Inc.初稿DS21801D_CN第17页

MCP2515寄存器 3-1:TXBnCTRL——发送缓冲器n控制寄存器(地址:30h,40h,50h)U-0—bit 7bit 7bit 6未用:读为0ABTF:报文发送中止标志位1 = 报文中止0 =报文发送成功完成MLOA:报文仲裁失败位1 =报文发送期间仲裁失败0 =报文发送期间仲裁未失败TXERR:检测到发送错误位1 =报文发送期间发生总线错误0 =报文发送期间未发生总线错误TXREQ:报文发送请求位1 =缓冲器等待报文发送(MCU将此位置1以请求报文发送-报文发送后该位自动清零)0 =缓冲器无等待发送报文(MCU将此位清零以请求中止报文发送)未用:读为0TXP:发送缓冲器优先级<1:0>位11 =最高的报文发送优先级10 =中偏高的报文发送优先级11 =中偏低的报文发送优先级00 =最低的报文发送优先级图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值R-0ABTFR-0MLOAR-0TXERRR/W-0TXREQU-0—R/W-0TXP1R/W-0TXP0bit 0bit 5bit 4bit 3bit 2bit 1-0DS21801D_CN第18页初稿 2005 Microchip Technology Inc.

MCP2515寄存器 3-2:TXRTSCTRL——TXnRTS引脚控制和状态寄存器(地址:0Dh)U-0—bit 7bit 7bit 6bit 5未用:读为0未用:读为0B2RTS: TX2RTS引脚状态位- TX2RTS为数字输入模式时,读出值为该引脚的电平- TX2RTS为请求发送模式时,读为0B1RTS:TX1RTX引脚状态位- TX1RTX为数字输入模式时,读出值为该引脚的电平- TX1RTX为请求发送模式时,读为0B0RTS:TX0RTS引脚状态位-TX0RTS为数字输入模式时,读出值为该引脚的电平- TX0RTS为请求发送模式时,读为0B2RTSM:TX2RTS引脚模式位1 =该引脚用来请求TXB2缓冲器发送报文(在下降沿)0 =数字输入B1RTSM:TX1RTS引脚模式位1 =该引脚用来请求TXB1缓冲器发送报文(在下降沿)0 =数字输入B0RTSM:TX0RTS引脚模式位1 =该引脚用来请求TXB0缓冲器发送报文(在下降沿)0 =数字输入图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值U-0—R-xB2RTSR-xB1RTSR-xB0RTSR/W-0B2RTSMR/W-0R/W-0bit 0B1RTSMB0RTSMbit 4bit 3bit 2bit 1bit 0寄存器 3-3:TXBnSIDH——发送缓冲器n标准标识符高位(地址:31h,41h,51h)R/W-xSID10bit 7R/W-xSID9R/W-xSID8R/W-xSID7R/W-xSID6R/W-xSID5R/W-xSID4R/W-xSID3bit 0bit 7-0SID:标准标识符位<10:3>图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值 2005 Microchip Technology Inc.初稿DS21801D_CN第19页

MCP2515寄存器 3-4:TXBnSIDL——发送缓冲器n标准标识符低位(地址:32h,42h,52h)R/W-xSID2bit 7bit 7-5bit 4bit 3SID:标准标识符位<2:0>未用:读为0EXIDE:扩展标识符使能位1 =报文将发送扩展标识符0 =报文将发送标准标识符未用:读为0EID:扩展标识符位<17:16>图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值R/W-xSID1R/W-xSID0R/W-x—R/W-xEXIDER/W-x—R/W-xEID17R/W-xEID16bit 0bit 2bit 1-0寄存器 3-5:TXBnEID8——发送缓冲器n扩展标识符高位(地址:33h,43h,53h)R/W-xEID15bit 7R/W-xEID14R/W-xEID13R/W-xEID12R/W-xEID11R/W-xEID10R/W-xEID9R/W-xEID8bit 0bit 7-0EID:扩展标识符位<15:8>图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值寄存器 3-6:TXBnEID0——发送缓冲器n扩展标识符低位(地址:34h,44h,54h)R/W-xEID7bit 7R/W-xEID6R/W-xEID5R/W-xEID4R/W-xEID3R/W-xEID2R/W-xEID1R/W-xEID0bit 0bit 7-0EID:扩展标识符位<7:0>图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值DS21801D_CN第20页初稿 2005 Microchip Technology Inc.

MCP2515寄存器 3-7:TXBnDLC——发送缓冲器n数据长度码(地址:35h,45h,55h)R/W-x—bit 7bit 7bit 6未用:读为0RTR:远程发送请求位1 =发送的报文为远程发送请求0 =发送的报文为数据帧未用:读为0DLC:数据长度码位<3:0>设定要发送的数据长度(0到8字节)注:图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值可以将DLC设定为大于8的值,但只发送8个字节。R/W-xRTRR/W-x—R/W-x—R/W-xDLC3R/W-xDLC2R/W-xDLC1R/W-xDLC0bit 0bit 5-4bit 3-0寄存器 3-8:TXBnDm——发送缓冲器n数据字节m(地址:36h - 3Dh,46h - 4Dh,56h - 5Dh)R/W-xTXBnDm7bit 7R/W-xTXBnDm6R/W-xTXBnDm5R/W-xTXBnDm4R/W-xTXBnDm3R/W-xTXBnDm2R/W-xTXBnDm1R/W-xTXBnDm0bit 0bit 7-0TXBnDM7:TXBnDM0:发送缓冲器n数据字段字节m图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值 2005 Microchip Technology Inc.初稿DS21801D_CN第21页

MCP2515注:DS21801D_CN第22页初稿 2005 Microchip Technology Inc.

MCP25154.04.1报文接收报文接收缓冲4.2接收优先级MCP2515具有两个全接收缓冲器。每个接收缓冲器配备有多个验收滤波器。除上述专用接收缓冲器外,MCP2515还具有单独的报文集成缓冲器(MessageAssembly Buffer,MAB),可作为第三个接收缓冲器(见图4-2)。RXB0是具有较高优先级的缓冲器,配置有一个屏蔽滤波寄存器和两个验收滤波寄存器。接收到的报文首先在RXB0中进行屏蔽滤波。RXB1是优先级较低的缓冲器,配置有一个屏蔽滤波寄存器和4个验收滤波寄存器。报文除了首先在RB0中进行屏蔽滤波外,由于RB0的验收滤波寄存器数量较少,因此RB0接受匹配条件更为严格,表明RB0具有较高的优先级。当报文被接收时,RXBnCTRL<3:0>位将显示使能该接收操作的验收滤波器的编号,以及接收到的报文是否为远程传输请求。4.1.1报文集成缓冲器在三个接收缓冲器中,报文集成缓冲器(MAB)总能够接收来自总线的下一条报文。MAB对接收到的报文进行组合,并将满足验收滤波器条件的报文传送至RXBn缓冲器(见寄存器4-4到寄存器4-9)。4.2.1滚存4.1.2RXB0和RXB1缓冲器其余的两个接收缓冲器为RXB0和RXB1。通过MAB,它们能够接收来自协议引擎的完整报文。当其中一个缓冲器处于接收等待或保存着上一条接收到的报文时,MCU可访问另一缓冲器。注:一旦报文被验收,MAB中所有的内容将传送到接收缓冲器。这表明无论标识符为何种类型(标准还是扩展标识符)或接收到多少字节的数据,整个接收缓冲器都将被MAB的内容所改写。因此,在接收任何报文后,必须断定接收缓冲器中所有寄存器中的内容都被修改了。另外,可对RXB0CTRL寄存器进行配置,如果RXB0已包含一条有效报文并且接收到另一条有效报文,不会发生溢出错误,新的报文会滚存到RXB1而不管RXB1是何种验收标准。4.2.2RXM位位可以设定特殊的接收工作模式。这些位通常置为00,以接收所有被验收滤波器认可的有效报文。在这种情况下,标准或扩展报文的接收与否取决于验收滤波寄存器中的控制位。如果位置为01或10,接收缓冲器将分别只接收标准帧或扩展帧。如果验收滤波寄存器的位的设置不对应工作模式,验收滤波器将不起作用。上述两种由控制位决定的接收模式可用于总线上仅传输标准帧或扩展帧的系统。如果位置为11,无论验收滤波器的值是什么,缓冲器都将接收所有的报文。同样,如果报文在帧结束前出错,在MAB中组合的出错前的那部分报文将被移入到缓冲器。该工作模式可在CAN系统调试时使用,一般不在实际系统环境中使用。4.1.3接收标志/中断当报文传送至某一接收缓冲器时,与该接收缓冲器对应的位将置1。一旦缓冲器中的报文处理完毕,MCU就必须将该位清零以接收下一条报文。该控制位提供的锁定功能确保MCU尚未处理完上一条报文前,MCP2515不会将新的报文载入接收缓冲器。如果位被置1,器件会在INT引脚产生一个中断,显示接收到报文有效。另外,如果被配置为接收缓冲器满中断引脚,与之相应的RXnBF引脚会被拉低。请查阅第4.4节“RX0BF和RX1BF引脚”了解详细信息。 2005 Microchip Technology Inc.初稿DS21801D_CN第23页

MCP25154.3起始帧信号4.4.1禁止使能之后,一旦RXCAN引脚检测到任一CAN报文开始,起始帧信号便会在SOF引脚上产生。RXCAN引脚监控空闲总线上出现的从隐性位到显性位的变化边沿。如果显性条件始终保持直至采样点发生,MCP2515视之为SOF信号并产生一个SOF脉冲。如果显性条件没有保持到采样点便发生,MCP2515视之为总线干扰,不产生SOF信号。图4-1说明了SOF信号的发生和干扰过滤。对于单触发工作模式,SOF信号的一个用途是用于TTCAN系统。另外,通过监控RXCAN引脚和SOF引脚,MCU能够检测到总线上出现的小干扰,从而在它们影响CAN通讯之前发现早期总线物理故障。位清零后,RXBnBF引脚被禁止,呈现高阻态。4.4.2配置为缓冲器满中断引脚4.4RX0BF和RX1BF引脚RXBnBF可配置为缓冲器满中断引脚或标准数字输出引脚。通过BFPCTRL寄存器(寄存器4-3)可对这些引脚进行配置和状态查询。当设定为中断工作模式(和位置1),这些引脚为低电平有效,并且被映射到相应接收缓冲器的位。当其中一个接收缓冲器位变为高电平,表明有效报文已被载入接收缓冲器,相应的RXBnBF引脚将变为低电平。如果位被MCU清零,相应的中断引脚进入逻辑高电平状态,直到下一条报文载入接收缓冲器。INT引脚可在多种情况下向MCU提供中断信号。除此之外,接收缓冲器满中断引脚(RX0BF和RX1BF)也可用来分别指示有效报文载入RXB0或RXB1。这两个引脚有三种配置(寄存器4-1):1.2.3.禁止缓冲器满中断引脚数字输出引脚图 4-1:起始帧信号正常SOF信号 起始帧位ID位采样点 RXCANSOF干扰过滤     期望起始帧位 期望RXCANSOF采样点 总线空闲DS21801D_CN第24页初稿 2005 Microchip Technology Inc.

MCP25154.4.3配置为数字输出引脚表 4-1:0111X100配置RXNBF引脚引脚状态禁止,高阻态接收缓冲器中断数字输出 = 0数字输出 = 1XX01当引脚配置为数字输出引脚时,相应的接收缓冲器中的位应被清零,而位应被置1。在这种工作模式下,引脚的状态由位控制。BnBFS位写入1时,将使相应的缓冲器满中断引脚输出高电平,写入0将使该引脚输出低电平。当引脚处于这种模式时,该引脚的状态只应通过位修改SPI命令来修改,以避免任何缓冲器满中断引脚出现干扰。BnBFEBnBFMBnBFS图 4-2:注:接收缓冲器框图MAB中接收到的报文首先在RXB0中进行屏蔽滤波。另外,仅会出现一个滤波器匹配(如,一旦报文与RXF0和RXF2均匹配,则最终匹配的为RXF0,报文将被移入RXB0)。验收屏蔽寄存器RXM1验收滤波寄存器RXF2验收屏蔽寄存器RXM0验收滤波寄存器RXF3接收    验收滤波寄存器RXF0 接收   验收滤波寄存器RXF4验收滤波寄存器RXF1验收滤波寄存器RXF5RXB0标识符MAB标识符RXB1数据字段数据字段 2005 Microchip Technology Inc.初稿DS21801D_CN第25页

MCP2515图 4-3:报文接收流程图开始否检测到起始帧吗? 是开始将报文载入报文集成缓冲器(MAB) 产生错误帧 否 收到的报文有效吗?是报文符合滤波器RXB0条件吗?是否报文符合滤波器 RXB1条件吗?否返回开始是0IF位决定接收缓冲器是否为空以及是否可以接收新的报文 位决定在RXB0满时,新的报文是否可滚存到RXB1中 否0IF =

0?  =

1?否产生溢出错误:0OVR置1是是 将报文移入RXB0产生溢出错误:1OVR置1否 1IF =

0?0IF = 1否  =

1?是在INT引脚上产生中断返回开始是将报文移入RXB1根据满足的验收滤波器条件,将 <0>置1IF = 1 根据满足的验收滤波器条件,将 <2:0>置1 0IE =

1?否 BFPCTRL.B0BFM =

1且BF1CTRL.B0BFE =

1?否是RXB0在INT引脚上产生中断根据报文载入哪个接收缓冲器,将CANSTAT <3:0>置1RXB1是1IE =

1?否是RXBF0引脚 =

0

RXBF1引脚 =

0是 BFPCTRL.B1BFM =

1且BF1CTRL.B1BFE =

1?否DS21801D_CN第26页初稿 2005 Microchip Technology Inc.

MCP2515寄存器 4-1:RXB0CTRL——接收缓冲器0控制寄存器(地址:60h)U-0—bit 7bit 7bit 6-5未用:读为0RXM:接收缓冲器工作模式位11 =关闭屏蔽/滤波功能;接收所有报文10 =只接收符合滤波器条件的带有扩展标识符的有效报文01 =只接收符合滤波器条件的带有标准标识符的有效报文00 =接收符合滤波器条件的所有带扩展标识符或标准标识符的有效报文未用:读为0RXRTR:接收到远程传送请求位1 =接收到远程传送请求0 =没有接收到远程传送请求BUKT:滚存使能位1 =如果RXB0满,RXB0接收到的报文将被滚存至RXB10 =滚存禁止BUKT1:只读位,BUKT位备份(仅供MCP2515器件内部使用)FILHIT:滤波器命中位——指明使能报文接收的验收滤波寄存器编号1 =验收滤波寄存器1(RXF1)0 =验收滤波寄存器0(RXF0)注:图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值如果发生从RXB0到RXB1的滚存,FILHIT位将反映接收滚存报文的滤波器R/W-0RXM1R/W-0RXM0U-0—R-0RXRTRR/W-0BUKTR-0BUKT1R-0FILHIT0bit 0bit 4bit 3bit 2bit 1bit 0 2005 Microchip Technology Inc.初稿DS21801D_CN第27页

MCP2515寄存器 4-2:RXB1CTRL——接收缓冲器1控制寄存器(地址:70h)

U-0—bit 7bit 7bit 6-5未用:读为0RXM:接收缓冲器工作模式位11 =关闭屏蔽/滤波功能;接收所有报文10 =只接收符合滤波器条件的带有扩展标识符的有效报文01 =只接收符合滤波器条件的带有标准标识符的有效报文00 =接收符合滤波器条件的所有带扩展标识符或标准标识符的有效报文未用:读为0RXRTR:接收到远程传送请求位1 =接收到远程传送请求0 =没有接收到远程传送请求FILHIT:滤波器命中位——指明使能报文接收的验收滤波寄存器编号101 = 验收滤波寄存器5(RXF5)100 = 验收滤波寄存器4(RXF4)011 = 验收滤波寄存器3(RXF3)010 = 验收滤波寄存器2(RXF2)001 = 验收滤波寄存器1(RXF1)(只有当RXB0CTRL中的BUKT位置1时)000 = 验收滤波寄存器0(RXF0)(只有当RXB0CTRL中的BUKT位置1时)图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值R/W-0RXM1R/W-0RXM0U-0—R-0RXRTRR-0FILHIT2

R-0FILHIT1R-0FILHIT0bit 0bit 4bit 3bit 2-0DS21801D_CN第28页初稿 2005 Microchip Technology Inc.

MCP2515寄存器 4-3:BFPCTRL——RXnBF引脚控制寄存器和状态寄存器(地址:0Ch)U-0—bit 7bit 7bit 6bit 5bit 4bit 3未用:读为0未用:读为0B1BFS:RX1BF引脚状态位(只限数字输出工作模式)- 当RX1B配置为中断引脚时,读为0B0BFS:RX0BF引脚状态位(只限数字输出工作模式)- 当RX0BF配置为中断引脚时,读为0B1BFE:RX1BF引脚功能使能位1 =引脚功能使能,工作模式由B1BFM位决定0 =引脚功能禁止,引脚为高阻态B0BFE:RX0BF引脚功能使能位1 = 引脚功能使能,工作模式由B0BFM位决定0 = 引脚功能禁止,引脚为高阻态B1BFM:RX1BF引脚工作模式位1 =当有效报文载入RXB1时,该引脚用来产生中断0 =数字输出模式B0BFM:RX0BF引脚工作模式位1 =当有效报文载入RXB0时,该引脚用来产生中断0 =数字输出模式图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值U-0—R/W-0B1BFSR/W-0B0BFSR/W-0B1BFER/W-0B0BFER/W-0B1BFMR/W-0B0BFMbit 0bit 2bit 1bit 0寄存器 4-4:RXBnSIDH——接收缓冲器n标准标识符高位(地址:61h,71h)

R-xSID10bit 7R-xSID9R-xSID8R-xSID7R-xSID6R-xSID5R-xSID4

R-xSID3bit 0bit 7-0SID:标准标识符位<10:3>这些位装载接收报文标准标识符中最高8位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值 2005 Microchip Technology Inc.初稿DS21801D_CN第29页

MCP2515寄存器 4-5:RXBnSIDL——接收缓冲器n标准标识符低位(地址:62h,72h)

R-xSID2bit 7bit 7-5bit 4SID:标准标识符位<2:0>这些位装载接收报文中标准标识符的最低3位SRR:远程发送请求位(只有当IDE位= 0时有效)1 =收到标准远程发送请求帧0 =收到标准数据帧IDE:扩展标识符标志位该位表明收到的报文是标准帧还是扩展帧1 =收到的报文是扩展帧0 =收到的报文是标准帧bit 2bit 1-0未用:读为0EID:扩展标识符位<17:16>这些位装载接收报文中扩展标识符的最高2位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值R-xSID1R-xSID0R-xSRRR-xIDEU-0—R-xEID17

R-xEID16bit 0bit 3寄存器 4-6:RXBnEID8——接收缓冲器n扩展标识符高位(地址:63h,73h)

R-xEID15bit 7R-xEID14R-xEID13R-xEID12R-xEID11R-xEID10R-xEID9R-xEID8bit 0bit 7-0EID:扩展标志符位<15:8>这些位装载接收报文扩展标识符中的第8到15位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值DS21801D_CN第30页初稿 2005 Microchip Technology Inc.

MCP2515寄存器 4-7:RXBnEID0——接收缓冲器n扩展标识符低位(地址:64h,74h)

R-xEID7bit 7bit 7-0EID:扩展标识符位<7:0>这些位装载接收报文扩展标识符的最低8位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值R-xEID6R-xEID5R-xEID4R-xEID3R-xEID2R-xEID1R-xEID0bit 0寄存器 4-8:RXBnDLC——接收缓冲器n数据长度码(地址:65h,75h)

U-0—bit 7R-xRTRR-xRB1R-xRB0R-xDLC3R-xDLC2

R-xDLC1R-xDLC0bit 0bit 7bit 6未用:读为0RTR:扩展帧远程发送请求位(只有当 = 1时有效)1 =接收到扩展远程(发送请求)帧0 =接收到扩展数据帧RB1:保留位1RB0:保留位0DLC:数据长度码位<3:0>表明接收到的数据字节个数图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值bit 5bit 4bit 3-0寄存器 4-9:RXBnDM——接收缓冲器n数据字段字节M(地址:66h - 6Dh,76h - 7Dh)

R-xRBnDm7bit 7R-xRBnDm6R-xRBnDm5R-xRBnDm4R-xRBnDm3R-xRBnDm2R-xRBnDm1R-xRBnDm0bit 0bit 7-0RBnDm7:RBnDm0:接收缓冲器n数据字段字节m这8个字节包含接收报文的数据信息图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值 2005 Microchip Technology Inc.初稿DS21801D_CN第31页

MCP25154.5报文验收滤波器及屏蔽寄存器报文验收滤波器及屏蔽寄存器用来确定报文集成缓冲器中的报文是否应被载入接收缓冲器(见图4-5)。一旦MAB接收到有效报文,报文中的标识符字段将与过滤寄存器中的值进行比较。如果两者匹配,该报文将被载入相应的接收缓冲器。存器和滤波器进行比较,以确定该报文是否应被载入接收缓冲器。屏蔽寄存器主要确定对标识符中的哪些位进行滤波。如果某屏蔽位设置为零,对应的标识符位将被自动接收而不进行滤波。表 4-2:屏蔽位n01111滤波/屏蔽寄存器真值表过滤位nX00114.5.1数据字节滤波报文标识符位X0101接受或拒绝位n接受接受拒绝拒绝接受当接收到标准数据帧(11位标识符),MCP2515自动将通常与扩展标识符有关的16位屏蔽寄存器和滤波器应用于数据字段的头16位(数据字节0和1)。图4-4说明了屏蔽寄存器和滤波器如何应用到扩展和标准数据帧。在执行高层协议(Higher Layer Protocol,HLP)对头个数据字节进行滤波时(如,DeviceNet™),数据字节滤波减轻了MCU的负载。 注:X = 任意值4.5.2滤波器匹配滤波屏蔽寄存器(见寄存器4-14到寄存器4-17)用于确定滤波器对标识符中的哪些位进行校验。表4-2所示的真值表显示了标识符中的每一位是如何与验收屏蔽寄正如接收缓冲器方框图(图4-2)所示,RXB0接收缓冲器配备有验收滤波寄存器RXF0和RXF1(以及过滤屏蔽寄存器RXM0)。RXB1配备有验收滤波寄存器RXF2、RXF3、RXF4、RXF5和滤波屏蔽寄存器RXM1。图 4-4:对CAN帧进行验收屏蔽及滤波扩展帧ID10ID0EID17对全部29位ID字段进行屏蔽滤波EID0标准数据帧ID1011位ID标准帧ID0*数据字节0 16位数据滤波*数据字节1* 两个MSb(EID17和EID16)屏蔽滤波位未使用。DS21801D_CN第32页初稿 2005 Microchip Technology Inc.

MCP25154.5.3FILHIT位接收到的报文与滤波器匹配与否取决于RXBnCTRL寄存器中的FILHIT位。0位用于缓冲器0,<2:0>用于缓冲器1。用于接收缓冲器1(RXB1)的三个FILHIT位编码如下:

------101 = 验收滤波寄存器5(RXF5)100 =验收滤波寄存器4(RXF4)011 =验收滤波寄存器3(RXF3)010 = 验收滤波寄存器2(RXF2)001 = 验收滤波寄存器1(RXF1)000 =验收滤波寄存器0(RXF0)如果BUKT位清零,对应6个滤波寄存器就有6种编码状态。如果BUKT位置1,除了上述6种编码状态外,还有2种编码状态分别对应滚存到RXB1的RXF0和RXF1。4.5.4多滤波器匹配如果接收报文符合一个以上滤波寄存器的接受条件,FILHIT位中的二进制代码将反映其中编号最小的滤波寄存器。例如,如果滤波器RXF2和RXF4同时与接收报文匹配,FILHIT中将装载RXF2编码值。这实际上为编号较小的验收滤波寄存器赋予了较高的优先级。接收报文将按照编号升序依次与滤波寄存器进行匹配比较。这意味着RXB0的优先级比RXB1高。只有在RXB0CTRL中的BUKT位置1时,才会出现000和001,从而允许RXB0中的报文滚存到RXB1中。RXB0CTRL包含BUKT位和FILHIT<0>位的备份。BUKT位的编码方式使得这三位的用法类似于位,并且可区分无滚存发生和滚存发生时滤波器RXF0和RXF1接收报文的情况。----111 = 验收滤波寄存器1(RXB1)110 =验收滤波寄存器0(RXB1)001 = 验收滤波寄存器1(RXB0)000 = 验收滤波寄存器0(RXB0)注:4.5.5配置屏蔽寄存器和滤波寄存器只有在MCP2515处于配置模式时,才能对屏蔽和滤波寄存器中的内容进行修改(见第10.0节“工作模式”)。图 4-5:报文验收屏蔽及滤波操作验收滤波寄存器验收屏蔽寄存器RXMn0RXMn1RxRqstRXFn0RXFn1RXFnnRXMnn报文集成缓冲器标识符 2005 Microchip Technology Inc.初稿DS21801D_CN第33页

MCP2515寄存器 4-10:RXFnSIDH——验收滤波寄存器n标准标识符高位(地址:00h,04h,08h,10h,14h,18h)

R/W-xSID10bit 7bit 7-0SID:标准标识符滤波位<10:3>这些位装载了用来对接收报文中标准标识符位<10:3>进行滤波判断的滤波位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值R/W-xSID9R/W-xSID8R/W-xSID7R/W-xSID6R/W-xSID5R/W-xSID4R/W-xSID3bit 0寄存器 4-11:RXFnSIDL——验收滤波寄存器n标准标识符低位(地址:01h,05h,09h,11h,15h,19h)R/W-xSID2bit 7R/W-xSID1R/W-xSID0U-0—R/W-xEXIDEU-0—R/W-xEID17R/W-xEID16bit 0bit 7-5bit 4bit 3SID:标准标识符滤波位<2:0>这些位装载了用来对接收报文中标准标识符位<2:0>进行滤波判断的滤波位未用:读为0EXIDE:扩展标识符使能位1 =报文滤波仅应用于扩展帧0 =报文滤波仅应用于标准帧未用:读为0EID:扩展标识符滤波位<17:16>这些位装载了用来对接收报文中扩展标识符位<17:16>进行滤波判断的滤波位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值bit 2bit 1-0DS21801D_CN第34页初稿 2005 Microchip Technology Inc.

MCP2515寄存器 4-12:RXFnEID8——验收滤波寄存器n扩展标识符高位(地址:02h,06h,0Ah,12h,16h,1Ah)R/W-xEID15bit 7bit 7-0EID:扩展标识符滤波位<15:8>这些位装载了用来对接收报文中扩展标识符位<15:8>进行滤波判断的滤波位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值R/W-xEID14R/W-xEID13R/W-xEID12R/W-xEID11R/W-xEID10R/W-xEID9R/W-xEID8bit 0寄存器 4-13:RXFnEID0——验收滤波寄存器n扩展标识符低位(地址:03h,07h,0Bh,13h,17h,1Bh)R/W-xEID7bit 7R/W-xEID6R/W-xEID5R/W-xEID4R/W-xEID3R/W-xEID2R/W-xEID1R/W-xEID0bit 0bit 7-0EID:扩展标识符滤波位<7:0>这些位装载了用来对接收报文中扩展标识符位<7:0>进行滤波判断的滤波位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值寄存器 4-14:RXMnSIDH——验收屏蔽寄存器n标准标识符高位(地址:20h,24h)R/W-0SID10bit 7R/W-0SID9R/W-0SID8R/W-0SID7R/W-0SID6R/W-0SID5R/W-0SID4R/W-0SID3bit 0bit 7-0SID:标准标识符屏蔽位<10:3>这些位装载了用来对接收报文中标准标识符位<10:3>进行屏蔽判断的屏蔽位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值 2005 Microchip Technology Inc.初稿DS21801D_CN第35页

MCP2515寄存器 4-15:RXMnSIDL——验收屏蔽滤波器n标准标识符低位(地址:21h,25h)R/W-0SID2bit 7bit 7-5bit 4-2bit 1-0SID:标准标识符屏蔽位<2:0>这些位装载了用来对接收报文中标准标识符位<2:0>进行屏蔽判断的屏蔽位未用:读为0EID:扩展标识符屏蔽位<17:16>这些位装载了用来对接收报文中扩展标识符位<17:16>进行屏蔽判断的屏蔽位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值R/W-0SID1R/W-0SID0U-0—U-0—U-0—R/W-0EID17

R/W-0EID16bit 0寄存器 4-16:RXMnEID8——验收屏蔽寄存器n扩展标识符高位(地址:22h,26h)R/W-0EID15bit 7R/W-0EID14R/W-0EID13R/W-0EID12R/W-0EID11R/W-0EID10R/W-0EID9R/W-0EID8bit 0bit 7-0EID:扩展标识符屏蔽位<15:8>这些位装载了用来对接收报文中扩展标识符位<15:8>进行屏蔽判断的屏蔽位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值寄存器 4-17:RXMnEID0——验收屏蔽寄存器n扩展标识符低位(地址:23h,27h)R/W-0EID7bit 7R/W-0EID6R/W-0EID5R/W-0EID4R/W-0EID3R/W-0EID2R/W-0EID1R/W-0EID0bit 0bit 7-0EID:扩展标识符屏蔽位<7:0>这些位装载了用来对接收报文中扩展标识符位<7:0>进行屏蔽判断的屏蔽位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U = 未用位,读为00 = 清零x = 未知值DS21801D_CN第36页初稿 2005 Microchip Technology Inc.

MCP25155.0位定时5.1CAN位时间CAN总线上的所有节点都必须具有相同的标称比特率。CAN协议采用不归零(Non Return to Zero,NRZ)编码方式,在数据流中不对时钟信号进行编码。因此,接收时钟信号必须由接收节点恢复并与发送器的时钟同步。由于不同节点的振荡器频率和传输时间不同,接收器应具有某种能与数据传输边沿同步的锁相环(Phase LockLoop,PLL)来同步时钟并保持这种同步。鉴于数据采用NRZ编码,有必要进行位填充以确保至少每6位时间发生一次边沿,使数字锁相环(Digital Phase LockLoop,DPLL)同步。MCP2515通过DPLL实现位定时。DPLL被配置成同输入数据同步,并为发送数据提供标称定时。DPLL将每一个位时间分割为由最小单位为时间份额(TimeQuanta,TQ)所组成的多个时间段。在位时间帧中执行的总线定时功能,例如与本地振荡器同步、网络传输延迟补偿和采样点定位等,都是由DPLL的可编程位定时逻辑来规定的。CAN总线上的所有器件都必须使用相同的比特率。然而,并非所有器件都要求具有相同的主振荡器时钟频率。对于采用不同时钟频率的器件,应通过适当设置波特率预分频比以及每一时间段中的时间份额的数量来对比特率进行调整。CAN位时间由互不重叠的时间段组成。每个时间段又由时间份额(TQ)组成,在本数据手册的后面部分将对此进行解释。在CAN规范中,标称比特率(NominalBit Rate,NBR)定义为在不需要再同步的情况下,理想发送器每秒发送的位数,它可用下面的公式来表示:公式 5-1:1NBR=fbit=------tbit标称位时间:标称位时间(Nominal Bit Time,NBT)(tbit)由互不重叠的段时间段组成(图5-1)。因此NBT为下列时间段之和:tbit=tSyncSeg+tPropSeg+tPS1+tPS2与NBT相关的参数是采样点、同步跳转宽度(Synchronization Jump Width,SJW)和信息处理时间(Information Processing Time,IPT),在后面会对此进行解释。同步段同步段(SyncSeg)为NBT中的首段,用于同步CAN总线上的各个节点。输入信号的跳变沿就发生在同步段,该段持续时间为1TQ。图 5-1:CAN位时间各段同步段传播段相位缓冲段(PS1)相位缓冲段(PS2)采样点 标称位时间(NBT),tbit 2005 Microchip Technology Inc.初稿DS21801D_CN第37页

MCP2515传播段传播段(PropSeg)用于补偿各节点之间的物理传输延迟时间。传输延迟时间为信号在总线上传播时间的两倍,包括总线驱动器延迟时间。传播段的长度可编程设定为1 – 8TQ。故:PS2min=IPT=2TQ同步跳转宽度同步跳转宽度(SJW)可通过编程设定为1 – 4TQ,它可对位时钟进行必要的调整来保持与发送报文同步。本数据手册的后面部分将涉及有关同步的更多详细内容。相位缓冲段1(PS1)和相位缓冲段2(PS2)两个相位缓冲段PS1和PS2用于补偿总线上的边沿相位误差。通过再同步,可以延长PS1(或缩短PS2)。PS1可编程设定为1 – 8TQ,而PS2可编程设定为2 –8TQ。时间份额组成位时间的每个段都由时间份额(TQ)组成。每个时间份额的长度取决于振荡器周期(tOSC)。通常TQ为两个振荡器周期。图5-2显示了如何从TOSC和TQ推导出位周期。TQ的长度等于一个TQ时钟周期(tBRPCLK),利用称为波特率预分频器(BRP)的可编程预分频器对它进行编程设置。以下公式对此进行了阐述:采样点采样点是位时间内的一个时间点。在该时间点,读取总线电平并进行分析。采样点位于相位缓冲段PS1的终点。但当采样模式设置为每位采样3次时例外。这种情况下,在PS1的终点仍然对某一位进行采样时,前两次的采样时间间隔为TQ/2,而该位的值将根据三个采样值中至少两次采样的相同值决定。信息处理时间信息处理时间(IPT)是确定采样点的位电平值所需要的时间。IPT从采样点开始,以TQ计量,MicrochipCAN模块将该时间长度定义为2 TQ。PS2同样开始于采样点,且为位时间的最后一个时间段,因此PS2的最小值不能小于IPT。公式 5-2:⋅---BRPTQ=2⋅BRP⋅TOSC=2---------------FOSC其中:BRP为寄存器5-1中所列的配置值。图 5-2:tOSCTQ和位周期TBRPCLKtBIT同步段(固定值)TQ(tTQ)传播段(可编程)相位缓冲段PS1(可编程)相位缓冲段PS2(可编程)CAN位时间DS21801D_CN第38页初稿 2005 Microchip Technology Inc.

MCP25155.2同步5.2.2.2无相位误差(e = 0)为补偿总线上各节点振荡器频率之间的相移,每个CAN控制器必须能够与输入信号的相关信号沿同步。同步过程是实现DPLL功能的过程。当检测到发送数据中的跳变沿,逻辑电路将跳变沿的位置与所期望的时间段(同步段)进行比较,随后电路将对相位缓冲段PS1和相位缓冲段PS2的值进行必要的调整。存在两种同步机制:1.2.硬同步。再同步。如果相位误差的幅度小于等于同步跳变宽度(SJW)的编程值,再同步的作用与硬同步相同。5.2.2.3正相位误差(e > 0)如果相位误差的幅度大于同步跳变宽度(SJW)且相位误差为正值,相位缓冲段PS1延长同步跳变宽度。5.2.2.4负相位误差(e < 0)如果相位误差的幅度大于同步跳变宽度(SJW)且相位误差为负值,相位缓冲段PS2缩短同步跳变宽度。5.2.1硬同步5.2.31.2.3.同步规则只有在总线空闲条件下发生隐性位到显性位的跳变边沿时才进行硬同步,表明报文传输开始。在硬同步之后,位时间计数器随同步段重新开始计数。硬同步强行将已发生的跳变沿置于重新开始的位时间同步段内。根据同步规则,如果某一位时间内已有一个硬同步出现,该位时间将不会发生再同步。5.2.2再同步再同步可能导致相位缓冲段PS1延长或相位缓冲段PS2缩短。这两个相位缓冲段的延长时间或缩短时间上限由同步跳转宽度(SJW)给定。如图5-3所示,相位缓冲段PS1加上SJW值,而相位缓冲段PS2减去SJW值。SJW代表了DPLL的循环过滤功能。SJW可通过编程设定为1 - 4 TQ。只有从隐性位到显性位的跳变沿才可用于同步。一个位时间内仅允许同步一次。只有在前一个采样点测得的值(上一次读取的总线值)与紧接跳变沿之后的总线值不同,该边沿才可用于同步。4.如果相位误差为正(e > 0),发送节点不会发生再同步。5.如果相位误差的绝对幅度大于同步跳变宽度(SJW),将会调整相应的相位缓冲段与SJW相等。5.2.2.1相位误差NRZ位编码方式没有在报文中编码时钟。时钟信息只可由隐性位到显性位的跳变沿获得。由于总线上最多可出现的连续相同值(位填充)的位数是固定的,应确保发送一帧期间与位流的再同步。跳变沿的相位误差由相应同步段的跳变沿位置给定,并以TQ计量。相位误差定义如下:•如果跳变沿位于同步段内,则e = 0。•如果跳变沿位于采样点之前,则e > 0(PS1增加TQ)。•如果跳变沿位于前一位的采样点之后,则e < 0(PS2减去TQ)。 2005 Microchip Technology Inc.初稿DS21801D_CN第39页

MCP2515图 5-3:同步位时间输入信号(e = 0)相位缓冲段(PS2)同步段 传播段SJW(PS1)相位缓冲段(PS1)SJW(PS2)采样点  标称位时间(NBT) 不发生再同步(e = 0)输入信号(e > 0)相位缓冲段(PS2)同步段 传播段SJW(PS1)采样点  标称位时间(NBT) 实际位时间  与一个较慢的发送器再同步(e > 0)相位缓冲段(PS1)SJW(PS2)输入信号(e < 0)同步段 传播段SJW(PS1)相位缓冲段(PS1)相位缓冲段(PS2)SJW(PS2)采样点  标称位时间(NBT) 实际位时间 与一个较快的发送器再同步(e < 0)DS21801D_CN第40页初稿 2005 Microchip Technology Inc.

MCP25155.3对时间段编程5.5位定时配置寄存器对时间段的编程设定必须满足以下要求:•传播段+ 相位缓冲段PS1 >= 相位缓冲段PS2•传播段 + 相位缓冲段PS1 >= TDELAY•相位缓冲段PS2 > 同步跳转宽度SJW例如,假设FOSC = 20MHz时欲实现125kHz的CAN波特率:选择BRP<5:0> = 04h,则TQ=500ns。TOSC = 50ns,欲达到125kHz,位时间应为16 TQ。位的采样时刻取决于系统参数,通常应发生在位时间的60-70%处。同时,TDELAY典型值为1-2 TQ。同步段 = 1 TQ,传播段 = 2 TQ,这种情况下设置相位缓冲段PS1=7 TQ,将会在跳变之后的10 TQ时进行采样。此时相位缓冲段PS2长度为6 TQ。由于相位缓冲段PS2长度为6 TQ,根据规则,SJW最大值为4 TQ。然而通常状况下,只有当不同节点的时钟发生不够精确或不稳定(如采用陶瓷谐振器)时,才需要较大的SJW。一般情况下,SJW取值1 TQ即可满足要求。CAN总线接口的位定时由配置寄存器(CNF1、CNF2和CNF3)控制。只有当MCP2515处于配置模式时,才能对这些寄存器进行修改(见第10.0节“工作模式”)。5.5.1CNF1BRP<5:0>控制波特率预分频比的设置。这些位根据OSC1输入频率设置TQ的时间长度。当BRP<5:0> =通过SJW<1:0>选择‘b000000’,TQ最小值取2TOSC。以TQ计的同步跳转宽度。5.5.2CNF2PRSEG<2:0>位设定以TQ计的传播段时间长度。PHSEG1<2:0>位设定以TQ计的相位缓冲段PS1的时间长度。SAM控制RXCAN引脚的采样次数。将该位置为1将对总线采样3次,其中前两次发生在采样点前 TQ/2时间点,而第三次发生在正常采样时间点(即相位缓冲段PS1终点)。总线数值由至少两次采样的相同值确定。如果SAM位设定为0,则只在采样点对RXCAN引脚状态采样一次。BTLMODE位控制如何确定相位缓冲段PS2的时间长度。如果该位为1,PS2的时间长度由CNF3的PHSEG2<2:0>位设定(见第5.5.3节“CNF3”)。如果BTLMODE位为0,PS2的时间长度为相位缓冲段PS1和信息处理时间(MCP2515中固定为2TQ)两者的较大值。5.4振荡器容差位定时要求允许传输速率最高达125千位/秒的应用应采用陶瓷谐振器。要满足CAN协议的整个总线速度范围的要求,应采用石英振荡器。节点与节点间的振荡器频率偏差最多不应超过1.7%。5.5.3CNF3如果E位为1,则相位缓冲段PS2的时间长度将由PHSEG2<2:0>位设定,以TQ计。如果BTLMODE位为0,则PHSEG2<2:0>位不起作用。 2005 Microchip Technology Inc.初稿DS21801D_CN第41页

MCP2515寄存器 5-1:CNF1——配置寄存器1(地址:2Ah)R/W-0SJW1bit 7bit 7-6SJW:同步跳转宽度位<1:0>11 = 长度 = 4 x TQ10 = 长度= 3 x TQ01 = 长度 = 2 x TQ00 = 长度= 1 x TQBRP:波特率预分频比位<5:0>TQ = 2 x (BRP + 1)/FOSC图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U =未用位,读为00 = 清零x = 未知值R/W-0SJW0R/W-0BRP5R/W-0BRP4R/W-0BRP3R/W-0BRP2R/W-0BRP1R/W-0BRP0bit 0bit 5-0寄存器 5-2:CNF2——配置寄存器2(地址:29h)R/W-0BTLMODEbit 7R/W-0SAMR/W-0R/W-0R/W-0R/W-0PRSEG2R/W-0PRSEG1R/W-0PRSEG0bit 0PHSEG12PHSEG11PHSEG10bit 7BTLMODE:相位缓冲段PS2位时间长度位1 =PS2时间长度由CNF3的PHSEG22:PHSEG20位决定0 =PS2时间长度为PS1和IPT(2 TQ)两者的较大值SAM:采样点配置位1 =在采样点对总线进行三次采样0 =在采样点对总线进行一次采样PHSEG1:相位缓冲段PS1位时间长度位<2:0>(PHSEG1 + 1) x TQPRSEG:传播段长度位<2:0>(PRSEG + 1) x TQ图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U =未用位,读为00 = 清零x = 未知值bit 6bit 5-3bit 2-0DS21801D_CN第42页初稿 2005 Microchip Technology Inc.

MCP2515寄存器 5-3:CNF3——配置寄存器3(地址:28h)R/W-0SOFbit 7bit 7SOF:起始帧信号位如果 = 1:1 =CLKOUT引脚使能为SOF信号0 =CLKOUT引脚使能为时间输出功能如果 = 0,该位为任意状态.WAKFIL:唤醒滤波使能位1 =唤醒滤波器使能0 =唤醒滤波器禁止未用:读为0PHSEG2:相位缓冲段PS2长度<2:0>(PHSEG2 + 1) x TQ注:图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U =未用位,读为00 = 清零x = 未知值PS2的最小有效值为2 TQR/W-0WAKFILU-0—U-0—U-0—R/W-0PHSEG22R/W-0PHSEG21R/W-0PHSEG20bit 0bit 6bit 5-3bit 2-0 2005 Microchip Technology Inc.初稿DS21801D_CN第43页

MCP2515注:DS21801D_CN第44页初稿 2005 Microchip Technology Inc.

MCP25156.0错误检测6.6错误状态CAN协议提供了完备的错误检测机制,可以检测到以下错误。当某个节点检测到错误时,将以错误帧的形式通知所有其他节点。尽可能早地中止出错报文的发送并重新发送。而且,根据内部错误计数器的计数值,每个CAN节点可设定为三种错误状态之一:1.2.3.主动错误。被动错误。总线关闭(仅发送器)。6.1CRC错误发送器通过循环冗余校验(CRC)计算特殊校验位来确定从帧起始到数据字段结束为止的位序列。CRC序列在CRC字段发送。接收节点采用相同公式计算CRC序列,并将计算结果与接收到的CRC序列相比较。如果两者不匹配,即发生CRC错误,并产生错误帧。将重新发送报文。主动错误状态是通常的状态,处于该状态的节点可以不受任何限制地发送报文和主动错误帧(由显性位构成)。处于被动错误状态的节点可以发送报文和被动错误帧(由隐性位构成)。处于总线关闭状态的节点暂时不能参与总线通讯。这一状态下,既无法发送报文,也无法接收报文。只有发送器能够进入总线关闭状态。6.2确认错误在报文的确认字段,发送器检查确认间隙(已作为隐性位发送)是否包含一个显性位。如果没有,表明没有任何其他节点正确接收到此帧。这时便表明发生确认错误,并产生错误帧,而将重新发送报文。6.3格式错误6.7错误模式和错误计数器如果节点在帧结尾、帧间空间、确认定界符或CRC定界符等四个位段中的任一位段中检测到显性位,即发生格式错误,并产生错误帧。将重新发送报文。MCP2515包含两个错误计数器:接收错误计数器(REC)(见寄存器6-2)和发送错误计数器(TEC)(见寄存器6-1)。MCU可以读取这两个计数器的值。计数器根据CAN总线规范进行增减计数。如果这两个错误计数器的值同时低于被动错误限定值128,MCP2515将处于主动错误状态。当至少有一个错误计数器的值大于等于128时,器件将处于被动错误状态。如果TEC的值超过总线关闭限定值255,器件将转为总线关闭状态,直至接收到总线关闭恢复序列。总线关闭恢复系列由重复128次的11个连续隐性位组成(见图6-1)。 6.4位错误当发送器检测到的位电平与其发送的位电平极性相反(即,发送了一个显性位而检测到的是一个隐性位,或发送了一个隐性位而检测到的是一个显性位)时,便产生位错误。例外:如果发送器发送了一个隐性位,却在仲裁字段和确认间隙期间检测到一个显性位,由于正在进行正常的仲裁,所以这种情况下不会产生位错误。6.5位填充错误在帧起始和CRC定界符之间,如果节点检测到六个连续且极性相同的位,说明违反了位填充规则。此时便发生位填充错误,并产生错误帧。将重新发送报文。如果转入总线关闭状态后,总线有长达128x 11位的时间为空闲状态,MCP2515会在无需MCU的干预下自动恢复至主动错误状态。如果不希望自动恢复,应通过错误中断服务程序来实现。MCU可通过EFLG寄存器(见寄存器6-3)读取MCP2515器件的当前错误状态。此外,在至少有一个错误计数器的值大于等于错误警告限定值96时,错误状态警告标志位(EFLG:EWARN)将被置1。当两个错误计数器都小于错误警告限定值时,EWARN将复位。注: 2005 Microchip Technology Inc.初稿DS21801D_CN第45页

MCP2515图 6-1:错误模式状态图复位REC < 127或TEC < 127主动错误接收到重复128次的 11个连续隐性位 REC > 127或TEC > 127被动错误TEC > 255总线关闭寄存器 6-1:TEC——发送错误计数器(地址:1Ch)

R-0TEC7bit 7R-0TEC6R-0TEC5R-0TEC4R-0TEC3R-0TEC2R-0TEC1R-0TEC0bit 0bit 7-0TEC:发送错误计数值<7:0>图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U =未用位,读为00 = 清零x = 未知值寄存器 6-2:REC——接收错误计数器(地址:1Dh)R-0REC7bit 7R-0REC6R-0REC5R-0REC4R-0REC3R-0REC2R-0REC1R-0REC0bit 0bit 7-0REC:接收错误计数值<7:0>图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U =未用位,读为00 = 清零x = 未知值DS21801D_CN第46页初稿 2005 Microchip Technology Inc.

MCP2515寄存器 6-3:EFLG——错误标志寄存器(地址:2Dh)R/W-0RX1OVRbit 7bit 7RX1OVR:接收缓冲器1溢出标志位-当RXB1接收到有效报文且1IF = 1时置1- 必须由MCU复位RX0OVR:接收缓冲器0溢出标志位- 当RXB0接收到有效报文且0IF = 1时置1- 必须由MCU复位TXBO:总线关闭错误标志位- 当TEC达到255时,该位置1- 当成功接收到总线恢复序列时复位TXEP:发送被动错误标志位- 当TEC大于等于128时,该位置1-当TEC小于128时复位RXEP:接收被动错误标志位- 当REC大于等于128时,该位置1- 当TEC小于128时复位TXWAR:发送错误警告标志位- 当TEC大于等于96时,该位置1- 当TEC小于96时复位RXWAR:接收错误警告标志位- 当REC大于等于96时,该位置1- 当REC小于96时复位EWARN:错误警告标志位- 当TEC或REC大于等于96时(TXWAR或RXWAR = 1)时,该位置1- 当TEC和REC同时小于96时复位图注:R = 可读位-n = 上电复位时的值W = 可写位1 = 置1U =未用位,读为00 = 清零x = 未知值R/W-0RX0OVRR-0TXBOR-0TXEPR-0RXEPR-0TXWARR-0RXWARR-0EWARNbit 0bit 6bit 5bit 4bit 3bit 2bit 1bit 0 2005 Microchip Technology Inc.初稿DS21801D_CN第47页

MCP2515注:DS21801D_CN第48页初稿 2005 Microchip Technology Inc.

MCP25157.0中断7.2发送中断MCP2515有八个中断源。CANINTE寄存器包含了使能各中断源的中断使能位。CANINTF寄存器包含了各中断源的中断标志位。当发生中断时,INT引脚将被MCP2515拉为低电平,并保持低电平状态直至MCU清除中断。中断只有在引起相应中断的条件消失后,才会被清除。建议在对CANINTF寄存器中的标志位进行复位操作时,采用位修改命令而不要使用一般的写操作。这是为了避免在写命令执行过程中无意间修改了标志位,进而导致中断丢失。应该注意的是,CANINTF中的中断标志位是可读写位,因此在相关CANINTE中断使能位置1的前提下,对上述任一位置1均可使MCU产生中断请求。在发送中断使能(=1)时,如果相关发送缓冲器为空并处于新报文装载就绪状态,器件会在位将被置1来表示中INT引脚产生中断。断源。通过将TXnIF位清零来清除中断。7.3接收中断在接收中断使能(=1)时,如果报文被成功接收并载入相关接收缓冲器,器件会在INT引脚产生中断。在接收到EOF字段后,会立即激活该中断。位将被置1来表示中断源。通过将RXnIF位清零来清除中断。7.4报文错误中断7.1中断代码位如寄存器10-2所示,(中断代码)位的编码反映等待处理的中断源。如果同时发生多个中断,INT引脚将保持低电平状态直至MCU复位所有中断。位将反映当前等待处理的优先级最高的中断代码。中断源之间存在内部优先级,ICOD编码值越低,其中断优先级越高。一旦优先级最高的中断条件被清除,ICOD位(见表7-1)将反映等待处理的次高优先级中断(如果存在)的代码。ICOD位仅反映那些其CANINTE中断使能位置1的中断源。如果报文发送和接收过程中出现错误,报文错误标志位()将被置1,此时若相应的位也被置1,器件将在INT引脚产生中断。该中断旨在与仅监听模式结合使用时来加快波特率的确定。7.5总线活动唤醒中断如果MCP2515处于休眠模式且总线活动唤醒中断被使能(=1),当CAN总线上检测到有活动时会在INT引脚上产生中断,将位置1。该中断会使MCP2515退出休眠模式。通过将WAKIF位清零来复位该中断。注:MCP2515唤醒后进入仅监听模式。.表 7-1:ICOD<2:0>1ICOD<2:0>解码布尔表达式ERR•WAK•TX0•TX1•TX2•RX0•RX1ERRERR•WAKERR•WAK•TX0ERR•WAK•TX0•TX1ERR•WAK•TX0•TX1•TX2ERR•WAK•TX0•TX1•TX2•RX0ERR•WAK•TX0•TX1•TX2•RX0•RX1ERR与CANINTE、ERRIE有关。7.6错误中断当错误中断使能(=1)时,如果发生溢出或发送器/接收器的错误状态发生改变,器件将在INT引脚产生中断。错误标志(EFLG)寄存器将会表明以下错误中断状况之一。7.6.1接收器溢出当MAB组合好收到的有效报文(该报文符合验收滤波器的接收条件),而与该滤波器相关的接收缓冲器尚无法装载新报文时,将发生溢出。相应的位将被置1,表明发生溢出。该位必须由MCU清零。注: 2005 Microchip Technology Inc.初稿DS21801D_CN第49页


本文发布于:2024-09-23 02:23:25,感谢您对本站的认可!

本文链接:https://www.17tex.com/fanyi/7886.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:报文   发送   错误   接收
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议