您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > MCP2512-CAN控制过程说明
1MCP2515芯片CAN配置总结标准帧格式如下所示:CAN位时间CAN总线上的所有节点都必须具有相同的标称比特率才能够正确进行通信。然而,并非所有器件都要求具有相同的主振荡器时钟频率。对于采用不同时钟频率的器件,应通过适当设置波特率预分频比以及每一时间段中的时间份额的数量来对比特率进行调整。CAN位时间由互不重叠的时间段组成。每个时间段又由时间份额(TQ)组成。如下图所示:同步段:该段持续时间为1TQ传播段:传播段的长度可编程设定为1-8TQ相位缓冲段1(PS1)和相位缓冲段2(PS2):PS1可编程设定为1–8TQ,而PS2可编程设定为2–8TQTQ的计算公式:TQ=[2*(BRP+1)]/Fsoc其中BRP为寄存器CNF1中设置的值,Fsoc为晶振频率值。CAN报文发送过程步骤:MCP2515采用三个发送缓冲器,每个发送缓冲器包含14个寄存器。(1)配置TXBnCTRL寄存器中的TXP位决定发送缓冲器的优先级。同时把TXREQ位清零,表明发送缓冲器中无等待发送的报文。这里的中断优先级是指MCP2515内部等待发送报文的优先级。它与CAN协议中固有的报文仲裁优先级无关。在发送起始帧SOF之前,器件将所有等待发送报文的发送缓冲器的优先级进行比较。具有较高优先级的发送缓冲器将首先发送。例如,发送缓冲器0的优先级比发送缓冲器1高,发送缓冲器0将首先发送。如果两个发送缓冲2器的优先级相同,编号较高的发送缓冲器将优先发送。例如,发送缓冲器1与发送缓冲器0的优先级相同,缓冲器1将优先发送。(2)配置TXBnSIDH、TXBnSIDL寄存器,确定接收对象的ID号,同时EXIDE位确定发送的报文是否有扩展标识符。(3)配置TXBnDLC寄存器中的DLC位确定发送报文中的数据字节多少,RTR位确定是远程发送请求还是数据帧。(4)如果需要用到发送中断,需要设置CANINTE寄存器中的TxnIE位,以便报方在发送时中断标志寄存器CANINTF中相应的TxnIF位产生中断。(5)如果报文中包含数据字节,需要对TXBnDm寄存器进行数据装载。(6)TXBnDm寄存器进行数据装载完成之后,就可以启动发送。通过将TXBnCTRL寄存器中的TXREQ位置1来启动报文发送过程。当TXREQ位置1后,TXBnCTRL寄存器中的报文发送中止位ABTF自动清0;报文仲裁失败位MLOA自动清0;检测到发送错误位TXERR自动清0。需要注意的是TXREQ位置1后报文并不会立即启动报文发送,仅会将报文缓冲器记为准备发送,当器件检测到CAN总线空闲时,才会启动报文发送。(7)报文发送成功后,TXBnCTRL寄存器中的TXREQ位将会自动清0,CANINTF中相应的TxnIF位置1。如果配置了发送中断,此时器件将在INT引脚产生中断。(8)如果报文发送失败,TXBnCTRL.TXREQ将保持置1,表明该报文仍在等待发送。有两种情况造成发送失败:一种是报文已开始发送但发生错误,此时TXBnCTRL.TXERR和CANINTF.MERRF位将被置1,此时中断使能寄存器CANINTE中的MERRE位如果已经置1,那么器件将在INT引脚产生中断。另一种是若发送报文总线仲裁失败,TXBnCTRL.MLOA位将被置1。注意一点是如果使能了单触发模式(CANCTRL.OSM),以上所述的条件仍然有效。然而,TXREQ位会被清零,并且报文不会尝试再次发送。CAN接收报文过程:MCP2515具有两个全接收缓冲器。每个接收缓冲器配备有多个验收滤波器。除上述专用接收缓冲器外,MCP2515还具有单独的报文集成缓冲器(MessageAssemblyBuffer,MAB)。(1)报文集成缓冲器(MAB)总能够接收来自总线的下一条报文。MAB对接收到的报文进行组合,并将满足验收滤波器条件的报文传送至RXBn缓冲器。(2)通过MAB,它们能够接收来自协议引擎的完整报文。当其中一个缓冲器处于接收等待或保存着上一条接收到的报文时,MCU可访问另一缓冲器。(3)当报文传送至某一接收缓冲器时,与该接收缓冲器对应的CANINTF.RXnIF位将置1。一旦缓冲器中的报文处理完毕,MCU就必须将该位清零以接收下一条报文。该控制位提供的锁定功能确保MCU尚未处理完上一条报文前,MCP2515不会将新的报文载入接收缓冲器。如果CANINTE.RXnIE位被置1,器件会在INT引脚产生一个中断,显示接收到报文有效。(4)RXB0是具有较高优先级的缓冲器,配置有一个屏蔽滤波寄存器和两个验收滤波寄存器(RXM0和RXF0、RXF1)。接收到的报文首先在RXB0中进行屏蔽滤波,如果验证不通过就会进行RXB1验证过程。RXB1是优先级较低的缓冲器,配置有一个屏蔽滤波寄存器和4个验收滤波寄存器(RXM1和RXF2、RXF3、RXF4、RXF5)。当报文被接收时,RXBnCTRL3:0位将显示使能该接收操作的验收滤波器的编号,以及接收到的报文是否为远程传输请求。(5)另外,可对RXB0CTRL寄存器进行配置,如果RXB0已包含一条有效报文并且3接收到另一条有效报文,不会发生溢出错误,新的报文会滚存到RXB1而不管RXB1是何种验收标准,验收条件将与RXB0设置的验收条件进行验收。(6)RXBnCTRL.RXM位可以设定特殊的接收工作模式。这些位通常置为00,以接收所有被验收滤波器认可的有效报文。在这种情况下,标准或扩展报文的接收与否取决于验收滤波寄存器中的RFXnSIDL.EXIDE控制位。如果RXBnCTRL.RXM位置为01或10,接收缓冲器将分别只接收标准帧或扩展帧。如果验收滤波寄存器的RFXnSIDL.EXIDE位的设置不对应RXBnCTRL.RXM工作模式,验收滤波器将不起作用。(7)配置报文验收滤波器及屏蔽寄存器的值。报文接收流程图:CAN中断配置:MCP2515有八个中断源。CANINTE寄存器包含了使能各中断源的中断使能位。CANINTF寄存器包含了各中断源的中断标志位。当发生中断时,INT引脚将被MCP2515拉为低电平,并保持低电平状态直至MCU清除中断。中断只有在引起相应中断的条件消失后,才会被清除。(1)配置中断使能寄存器CANINTE可以使能相应的中断源。(2)读取中断标志寄存器CANINTF里相应中断源的值,作为判断依据。
本文标题:MCP2512-CAN控制过程说明
链接地址:https://www.777doc.com/doc-7417746 .html