CAN总线一直以来以安稳、容错性高而著称。要想到达这样的效果,其共同的同步机制是非常重要的一点,本文将为我们解说一下CAN总线的同步机制以及SJW
的效果地点。
CAN总线的同步共有两种方法:硬同步和重同步。
硬同步
在总线刚刚从闲暇状况中走出来的时分,在帧头的方位都会进行一次同步。此刻一切的节点位时刻从头开始,就像一切的运动员都再一次回到了起跑线上。这种同步方法被称作硬同步。
重同步
硬同步时仅仅在有帧起始信号时起效果,无法确保后续一连串的位时序都是同步的,这个时分重同步就到了发挥效果的时分。具体来说,CAN总线的一个位时刻中包括两个缓冲段BS1和BS2:
在两个缓冲段中心的方位,便是读取总线电平的采样点方位,当检测到总线上存在相位差的时分,经过延伸BS1段或缩短BS2段来取得同步,这样的方法称为从头同步。这两个相位缓冲段的延伸时刻或缩短时刻上限由再同步跳转宽度(SJW)给定。采样点是接纳节点判别信号逻辑的方位,CAN通讯归于异步通讯,需求经过不断的从头同步才干确保收发节点的采样精确,所以SJW(同步跳转宽度)决议了接纳节点是否能有比较好的兼容性。如下图,便是某CAN总线中运用致远电子CANscope进行的采样点与位宽度忍受的快速测验成果:
因而,运用CAN总线的时分,发现位宽度有误差,则需求对其程序中的位守时寄存器或许晶振进行批改。比方不要运用带小数点的晶振,如11.0592HZ。这样算出来的波特率必定禁绝。不要运用陶瓷晶振,会有误差超越1%的概率,即便重同步也会失利。
波特率核算时,进步习惯规模,需求确保12-20(特征16)个的位时刻因子,然后经过进步正常节点波特率寄存器中的同步跳转宽度SJW值(加大到2-3个单位时刻)来完成。比方运用广州致远电子两款波特率核算东西,能够核算出杰出的波特率寄存器值。