CAN 采样点计算

 

结构图:

 

 

SS (synchronization segment):
SS是通过监视帧间空间中从隐性位到显性位的边沿来执行同步的段。 帧间空间包括间歇,挂起传输和总线空闲。 总线空闲期间,所有节点均可开始传输。

 

TSEG1 (Time segment 1):
TSEG1是吸收CAN网络上物理延迟的网段。 CAN网络上的物理延迟是CAN总线上的延迟,输入比较器中的延迟和输出驱动器中的延迟的两倍。

 

TSEG2 (Time segment 2):

TSEG2是补偿由于频率误差引起的相位误差的部分

 

SJW (Resynchronization jump width)
SJW是延长或减少时间段的长度,以补偿由于相位误差引起的相位误差。

 

1.采样点 = (SS + TSEG1)/(SS + TSEG1+TSEG2)

 

2.Can bit time = 1/ Can speed 

3.Can Tq = Fn(分频数)/Fcan)     Fcan 输入时钟     Tq: Time quantum

4.CAN bit time = CAN Tq * TqCount  ;CAN bit time 也简写为NBT (Nominal Bit Time )

5.Tq Count = SS + TSEG1 + TSEG2    

 

举例

Fcan输入时钟为60Mhz,分频数为6,Can Tq =  6/60M = 0.1us

设置总线波特率为500kbit/s  则CAN bit time = 1/500k = 2us ,TqCount   = CAN bit time/CAN Tq   = 2/0.1 = 20 

那么SS + TSEG1 + TSEG2  = 20

SS固定占用一个Tq,分配TSEG1和TESG2,可以调整采样点位置

设置TESG1 = 14 ,则TESG1 = 5,(在瑞萨手册看到要求TSEG1 > TSEG2 > SJW)

则 采用点位置 =  (SS + TSEG1)/(SS + TSEG1+TSEG2) =  (1+14)/ 20 = 75%

一般采样点位置要求在75-80% 但很难调整到中间值。

SJW是另外一个参数与采样点计算无关。

 

posted on 2021-01-21 13:14  让代码改变世界ha  阅读(5723)  评论(2编辑  收藏  举报

导航