背景
在CAN总线网络中,发送节点和接收节点作为互相独立的硬件个体(异步通讯),时钟偏移、传输路径上的(电缆、驱动器等)相位延迟等都会引起时序偏差。因此接收单元需过通重同步的方法进行位时序调整,以补偿这些偏差。
SJW的介绍
SJW(同步跳转宽度):重同步时,相位缓冲段1增加或者相位缓冲段2减小的最大TQ数。
重同步:在接收过程中,接收节点检测出总线上的下降沿来临时,重新同步一次。
当上一位时间(bit time)不符合预期(延长或缩短)时,通过加长当前位时间的相位缓冲段1或缩短上一位时间的相位缓冲段2,可以调整同步。目的是调整采样点位置,确保采样点位于当前位时间设定的特定百分比处。但如果上一位时间的变化超出了同步跳转宽度(SJW)所允许的误差,那么最大调整量不应超过SJW值。
相位缓冲段1(Phase_Seg 1):一个位时间(bit time)中采样点之前的相位缓冲段
若下降沿延后N个TQ,且不大于同步跳转宽度,则当前位时间的采样点位置将提前N个TQ。此时若想在正确的位置采样,则需要对当前位时间的Phase_Seg 1增加N个TQ数(使采样点位置延后N个TQ),补偿这段误差。
相位缓冲段2(Phase_Seg 2):一个位时间(bit time)中采样点之后的相位缓冲段
若下降沿提前N个TQ,且不大于同步跳转宽度,则当前位时间的采样点位置将延后N个TQ。此时若想在正确的位置采样,则需要对上一个位时间的Phase_Seg 2段减少N个TQ数(使采样点位置提前N个TQ),补偿这段误差。
TQ:CAN协议中最小时间单位。
例1、 下降沿延后:
如上图,正常采样点位置为62.5%。当下降沿延后2个TQ时,当前为时间的相位缓冲段1应相应增加2个TQ。这样做可确保采样点位置不受上一位时间延后的影响,仍位于当前位时间设定的特定百分比位置。
例2、 下降沿提前:
如上图,正常采样点位置为62.5%。当下降沿提前2个TQ时,上一位时间的相位缓冲段2应相应减小2个TQ。这样做可确保采样点位置不受上一位时间提前的影响,仍位于当前位时间设定的特定百分比位置。
CAN FD IP核中SJW参数的分析:
CAN FD IP核中SJW参数代表的是SJW中TQ的个数。
深入IP核代码可以看到当SJW设置为0时sjw_mt_zero信号会置为0。
可以观察到,当sjw_mt_zero为0时不会进行重同步。因为Bit time计数器一旦达到设定的相位缓冲段长度,就会退出该相位缓冲段。
综上:CAN FD IP核中SJW参数的配置为0时,重同步功能将关闭。
结论
在实际运用中需要开启重同步功能,并且根据重同步的机制SJW的长度不能超过相位缓冲段1和2中的最小值,所以CAN FD IP核中SJW参数的配置范围1 ≤ SJW ≤ (相位缓冲段1和2中的最小值)。
文章评论