CAN总线位定时配置详解-MCP2515寄存器设置

需积分: 50 13 下载量 144 浏览量 更新于2024-08-10 收藏 1.37MB PDF 举报
"MCP2515是一款独立的CAN协议控制器,支持CAN V2.0B规范,工作速率可达1Mb/s,具有接收和发送功能,内置接收缓冲器、验收屏蔽寄存器和验收滤波寄存器。该器件通过高速SPI接口与主MCU通信,并具备时钟输出、中断输出、低功耗特性,适用于工业和扩展温度范围。" 在CAN总线通信中,位定时配置是非常关键的一环,它决定了数据在总线上的准确传输。在标题提到的"位定时配置寄存器-tensorflow1.4官方文档整理版"中,虽然主要讨论的是MCP2515这个硬件设备,但其位定时配置的概念在任何CAN通信系统中都同样适用。 首先,对时间段编程有三个基本要求:传播段加相位缓冲段PS1必须大于等于相位缓冲段PS2;传播段加相位缓冲段PS1大于等于TDELAY;相位缓冲段PS2要大于同步跳转宽度SJW。这些条件确保了在不同节点之间保持同步,并能应对可能的时钟偏移。 以125kHz的CAN波特率为例,假设系统时钟FOSC为20MHz,每个时钟周期TOSC为50ns,那么每个位时间TQ为500ns。位时间被设定为16个TQ,这样可以得到所需的波特率。位的采样时刻通常发生在位时间的60-70%处,这样可以保证数据的稳定接收。 同步段设置为1TQ,传播段设置为2TQ,然后选择相位缓冲段PS1为7TQ,采样会发生在10TQ之后。相位缓冲段PS2设定为6TQ,根据规则,SJW的最大值为4TQ,但通常为了稳定性,SJW取1TQ即可。 关于振荡器容差,对于高达125千位/秒的传输速率,可以使用陶瓷谐振器,但如果需要覆盖CAN协议的全速范围,推荐使用石英振荡器,因为它们的频率偏差更小。不同节点之间的振荡器频率偏差不应超过1.7%,以保证总线上的同步。 位定时配置寄存器CNF1、CNF2和CNF3在MCP2515中控制着CAN总线的位定时。BRP设置波特率预分频比,PRSEG和PHSEG1分别设定传播段和相位缓冲段PS1的长度,SAM控制接收引脚的采样次数。CNF3中的PHSEG2仅在BTLMODE为1时设定相位缓冲段PS2的长度。 位定时配置是CAN通信中的核心部分,它涉及到波特率、采样点、同步和容错等多个方面。MCP2515通过配置寄存器精细地调整这些参数,确保了CAN总线的有效和可靠通信。