CAN总线协议详解( 五 )


一个标称位时间可以划分为4个不重叠的段,分别为同步段(SS)、传播时间段(PTS)、相位缓冲段1(PBS1)、相位缓冲段2(PBS2) 。
同步段(SS):多个连接在总线上的节点通过此段实现位时序调整,同步每个位的发送和接收工作 。由隐性到显性或者显性到隐性电平变换最好发生在这个段中 。
传播时间段(PTS):用于吸收网络上的物理延迟的段 。所谓网络上的物理延时指发送节点的输出延迟、总线上信号的传播延迟、接收单元的输入延迟 。这个段的时间为以上各延时时间的和的两倍 。
相位缓冲段1(PBS1)和相位缓冲段2(PBS2):当信号边沿不能包含于SS段中时,可在此段进行补偿 。由于各发送节点、接收节点以各自独立的内部时钟工作,细微的时钟误差会累计起来,PBS段可用于吸收此误差 。通过对相位缓冲段加减SJW 。
如下图所示,假设1个位由10个Tq组成,可以通过改变PTS和PBS1以及PBS2段的大小来实现不同的采样点 。一般情况下传输速率越高采样点越低 。对于500K传输速率来讲,采样点一般选择在75%-81.25%之间 。采样点分为单点采样和多点采样,一般情况下,单点采样就可以满足要求 。
注:一般直接选择单片机的外部晶振作为CAN总线的时钟源,而非PLL倍频再分频的时钟作为时钟源 。

CAN总线协议详解

文章插图
图11
采样点:所谓采样点是读取总线电平,并将读取到的电平作为位值的点 。位置在PBS1结束处 。
硬件同步
接收单元在空闲状态检测出帧起始时进行的同步调整 。在检测出边沿时不考虑SJW的值而认为是SS段 。硬同步如下图所示 。
CAN总线协议详解

文章插图
图12
再同步
在接收过程中检测出总线上的电平变化时进行的同步调整 。每当检测出边沿时,根据边沿出现的位置加长PBS1段或者缩短PBS2段,以调整同步 。调整的幅度大小为SJW 。
如下图所示,当边沿出现在SS段后时,说明接收节点的SS段早于发送节点的SS段,接收节点为了在尽可能靠近发送节点的采样点处进行采样,在PBS1插入一个SJW 。
CAN总线协议详解

文章插图
图13
如下图所示,当边沿出现在SS段前时,说明接收节点的SS段晚于发送节点的SS段,接收节点为了在尽可能靠近发送节点的采样点处进行采样,再将上1位的PBS2减少一个SJW 。
CAN总线协议详解

文章插图
图14
硬同步和再同步的规则
1、1个位中只进行一次同步调整
2、只有当上次采样点的总线值和边沿后的总线值不同时,该边沿才能用于调整同步(即电平发生变化)
3、在总线空闲且存在隐性电平到显性电平边沿,则一定要进行硬件同步 。
4、在总线非空闲检测到的隐性电平到显性电平的边沿如果满足条件1和2,将进行再同步 。

【CAN总线协议详解】


推荐阅读