CAN总线之位定时与位同步篇
谷子
|
2019.12.24
|
0
+关注

CAN总线的数据传输速率最高可达1Mb/s,通常用石英晶振作为时钟发生器。但网络中的晶振的频率并不是绝对稳定的,温度、电压以及器件的异常都会导致微小的差别。但只要将其稳定在振荡器容差范围之内,总线上的节点会通过重同步进行弥补。本篇我们来看一看CAN总线的位定时与位同步。

1.位定时

位时间即一位的持续时间,像ECU同步化动作、网络传输延时补偿和采样点定位这样一些总线管理功能,它们均以位时间为架构执行,并且都是由CAN协议集成电路中的可编程位定时逻辑加以实现的。

一个位时间包含4个时间段,8~25个时间份额(Time quantum)。时间份额来源于对系统时钟可编程的分频。

同步段(Sync_Seg):时间的这一段用来使总线上的各个ECU同步,在该段内会出现一个跳变沿。它具有固定长度,1个时间份额。

传播段(Prop_Seg):位时间的这一段用来对出现在网络内部的物理延迟时间进行补偿。该延迟时间由信号在总线上的传播时间和ECU内部的延迟时间组成。传播长度应能保证2倍的信号在总线的延迟,长度是可编程的,1~8或更多个时间份额长度。

相位缓冲段1(Phase_Seg1)、相位缓冲段2(Phase_Seg2):位时间的这两段用来补偿跳边沿的相位误差。这两段可以被同步处理延长或缩短。长度可编程。相位缓冲段2选相位缓冲段1和信息处理时间中较长的那段。信息处理时间小于或等于2个时间份额长度。

采样点:是读取总线电平并将它转化为对应位值的时刻,在相位缓冲段1末端进行总线状态的采样。

波特率:由编程设置的时间份额长度和数量确定。波特率=1/位时间。

2.位同步

CAN的同步包括硬同步和重同步两种同步方式。他们遵循如下准则:

一个位间内仅允许一种同步;

只要在先前采样点上监测到的数值与总线数值不同,沿过后立即有一个沿用于同步;总线空闲期间,只要出现从隐性到显性的跳边沿,就执行硬同步操作;在其他情况下,所有从隐性到显性的跳变沿都将用于重同步处理。

1)硬同步:经过一次硬同步处理后,内部位时间从同步段重新开始。因此,硬同步强迫由于硬同步引起的沿处于重新开始的位时间同步段之内。

2)重同步:节点根据沿相位误差的大小调整其内部位时间,以使节点内部位时间与来自总线的位流位时间接近或相等。

重同步跳变宽度:重同步会导致相位缓冲段1延长或相位缓冲段2缩短。重同步跳变宽度规定了相位缓冲段的延长量和缩短量的上限,可以在1到min(4,相位缓冲段1)这一范围内选择。

一个同步跳变沿的相位误差由该沿与同步段的相对位置确定。当跳变沿位于同步段之内时,相位误差为0;当跳变沿位于采样点之前时,相位误差为正;当跳变沿位于前一位采样点之后时,相位误差为负。

当相位误差为正时,接收器会认为这是一个慢速发送器发送的滞后边沿。此时节点为了匹配发送器的时间,会延长相位缓冲段1。增长的时间为相位差的绝对值,但是上限是重同步跳转宽度。

当相位误差为负时,接收器会认为这是一个快速发送器发送的下一个位周期的提前边沿。节点为了匹配发送器的时间,会缩短相位缓冲段2。缩短的时间也为相位差的绝对值,上限是重同步跳转宽度。

相位缓冲段只在当前位周期内被增长或者缩短,接下来的位周期,只要没有重同步,各段将恢复为位时间的编程预设值。

当相位误差的绝对值小于或者等于重同步跳转宽度时,重同步和硬同步的效果是相同的,能实现相位差的补偿;当相位误差的绝对值大于同步跳转宽度时,由于补偿的最大值是同步跳转宽度,会导致重同步不能完全补偿相位差。

精选留言
延伸阅读
2020.04.03
4749阅读
更多报告干货
写留言
6435
阅读
收藏
回到顶部