首页 > 技术知识 > 正文

对一般的开发者来说,CAN总线的位定时概念并不常见。不过,如果给整车厂做过零部件,经受过他们的CAN通信测试考验,您可能就知道,这也是比较重要的一个知识点。

CAN报文由七个不同的场/段组成。

CAN总线的位定时-can总线 csdn

一个位,由同步段+传播段+相位缓冲段1+相位缓冲段2组成。

这四个段的时间均为基本时间单位“时间份额”的若干倍,时间份额Tq派生于振荡器周期,可以由振荡器进行分频。

由这张图可以看出,在相位缓冲段1和相位缓冲段2的交接处,藏着一个“采样点”,或者说“采样时刻”,这也是CAN通信测试中比较重要的一个测试项。

下面这张图,是一个CAN通信需求规范中的位定时要求。

CAN总线的位定时-can总线 csdn1

在实际的编程开发工作中,需要根据这个位定时规范,对照MCU中CAN模块的寄存器特点,对寄存器进行针对性设置。

比如飞思卡尔微控制器中的MSCAN模块,其位定时寄存器如下所示:

CAN总线的位定时-can总线 csdn2

在这款CAN控制器中,把CAN的位分成了三段,同步段、段1和段2。跟CAN2.0协议中定义的“同步段+传播段+相位缓冲段1+相位缓冲段2”进行对比,便可以发现,MSCAN中的段1即CAN2.0协议中的“传播段+相位缓冲段1”。

根据规范要求,一个8us的CAN比特位包含16个Tq,采样位置在该bit位75%的时刻,所以,可以将Time Segment1 设为 11,Time Segment2 设为 4,这样,既能保证包含16个Tq(1 + Time Segment1 + Time Segment2 = 16),又可以保证采样时刻=(1 + Time Segment1)/16=75%。

审核编辑:汤梓红

猜你喜欢