位定时规格的确定需要考虑总线的物理特性和网络的通信要求,包括晶振频率总线长度、传输延迟等。通过合理的配置这些参数,可以保证网络上不同节点之间的数据传输同步,从而确保通信的可靠性。
位定时段的规格是根据数据通信系统的需求而确定的。如果要在特定位速率下实现最大的总线长度或者在给定总线长度的情况下实现最短的等待时间(最大位速率),那么用于重新同步的保留时间(相位缓冲段)必须保持最小。当时间缓冲段设定为最小值时,表示在一次重新同步当中只能校正|e|=1的相位误差。因此对位同步的要求非常高,要满足这样的要求只能使用精确的石英晶振(石英晶振的误差通常小于0.1%)。
图1 位定时段(位速率和总线长度乘积为最大值)的规格
图1所示为位定时段(位速率和总线长度乘积为最大值)的规格。这样的要求主要应用于工业自动化系统。
如果对位速率和总线长度的要求不高,那么位速率和总线长度的乘积也因此降低,而用于重新同步的时间缓冲段则可延长。这样根据最大可能的同步跳转宽度,在一次重新同步中可校正|e|=4的相位误差。因此可以使用较为经济的陶瓷振荡器。图 2所示为适用于汽车电子中最大振荡器误差的位定时规格。
图2 位定时段的规格(适用于最大振荡器误差)
通常位定时的规格首先通过所需要的位速率来确定。位时间必须为系统时钟周期的整数倍。位时间tBit=n×tq(n=4.25,tq为时间量)。确定位定时参数的一种方法是首先确定传输段的长度,因此必须考虑到最大的总线长度和最大内部延迟时间。
将往返的延迟时间转换成对应时间量的数目并取四舍五入为tq的整数倍。由于同步段的长度为1个tq。那么剩下两个相位缓冲段的长度为(tBit
-tprog_seg-tq
)。如果剩余时间单位的个数m=(tBit
-
tprog_seg
-tq
)/tq为偶数,则两个缓冲段的长度相同,如果是奇数,tphase_seq2
=
tphase_seq1+tq。
还必须注意Phase_Seg2的最小标称长度。由于该段不能短于CAN控制器的数据处理时间(该时间取决于实现方式的不同,介于0到2tq之间)。同步跳转宽度(SJW)设置为它的最大值Min{4, tphase_seq1/tq}。振荡器的允许误差根据下方两条公式进行确定。
公式一:
tBit:标称位时间
tSJW:重新同步跳转宽度
公式二:
tphase_seq1:相位缓冲段1的时间
tphase_seq2:相位缓冲段1的时间tBit:标称位时间