CAN通讯中使用的是同步数据传输,CAN控制器在其通讯过程中会不停出现位同步的 *** 作,但不同的数据通讯系统对位同步的要求是不同,为了满足其要求,我们必须更加深入的来探讨另一个概念叫位定时段的规格。
位定时段的规格是根据数据通信系统的需求而确定的。如果要在特定位速率下实现最大的总线长度或者在给定总线长度的情况下实现最短的等待时间(最大位速率),那么用于重新同步的保留时间(相位缓冲段)必须保持最小。当时间缓冲段设定为最小值时,表示在一次重新同步当中只能校正|e|=1的相位误差。因此对位同步的要求非常高,要满足这样的要求只能使用精确的石英晶振(石英晶振的误差通常小于0.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到2 tq之间)。同步跳转宽度(SJW)设置为它的最大值Min{4, tphase_Seg1/tq}。
振荡器的允许误差根据下方两条公式进行确定。
公式一:
df ≤ tSJW / (20×tBit)
式中: tBit 标称位时间
tSJW 重新同步跳转宽度
公式二:
df ≤ min{ t Phase_seg1, t Phase_seg2} / (2×( 13×tBit-t Phase_seg2))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)