CAN协议与其它现场总线协议的差异中有一个是:它运用同步数据传输而不是异步传输(面向字符)。这意味着传输功能得到更有用的发挥,可是另一方面,这需求愈加杂乱的位同步办法。
在面向字符的协议中的位同步完结起来很简单,在承受每个字符的开端位时进行同步。但在同步传输协议中,只要一帧的开端才有一个开端位。这一般缺乏以使接纳器的位采样和发送器坚持同步。为了使接纳器在帧完毕时也能正确采样到接纳的位流,就需求接纳器不断进行从头同步。从头同步表明在位流中每个有用的信号边缘都可对接纳信号的时钟周期进行检测。在信号边缘间的最大时刻周期内,发送和承受振荡器之间最大或许的时刻差有必要在一个位距离内的标称采样点之前和之后经过满足的闲暇时刻(“相位缓冲段”)来补偿。
由于CAN协议运用非破坏性的位总线裁定和显性应对位,信号从发送器传输到接纳器再返回到接纳器有必要在一个位时刻内完结。因而除了保存用于同步的时刻外,还需求一个时刻段(“传输推迟段”)对总线上的信号传输进行补偿以及用于发送和接纳节点的内部信号推迟。
图 1所示为标称的位时刻,区别为4个不堆叠的时刻段:
· 同步段(Sync_Seg)
· 传输时刻段(Prop_Seg)
· 相位缓冲段1(Phase_Seg1)
· 相位缓冲段2(Phase_Seg2)
图 1 位时刻的区别
一个位距离的时刻段的长度依据振荡器周期,被界说为一个根本时刻单位(时刻比例)的倍数。根本时刻单位tq是表明同步机制时刻分辨率的根本单位而且由于同步段而被引进到位时刻中。同步段是位时刻中CAN信号电平的边缘即将产生的那一部分。在同步段之后产生的边缘与同步段之间的距离称为该边缘的“相位差错e”。
传输推迟段供给必要的时刻用于处理网络中的最大信号传输推迟。该时刻段有必要两倍于两个节点之间的最大信号传输推迟时刻加上发送和接纳节点的内部推迟时刻之和。
需求区别两种类型的同步:帧开端处的“硬同步”和帧中心的“从头同步”。在硬同步之后,位时刻在sync段完毕时从头发动而不考虑相位的差错。这样硬同步强制发僵硬同步的边缘延伸到从头发动的位时刻的同步段中。从头同步导致位时刻缩短或延伸,从而使采样点产生移位。
经过标称采样点之前和之后的相位缓冲段,在从头同步时为实践采样点的移位保存了闲暇时刻。同步只产生在隐性位转换到显性位电平的边缘。经过在每个时刻量内对总线的实践电平进行采样并和前一次采样点的总线电平相比较可检测出边缘。假如在同步段内检测到边缘,那么该边缘可完结同步,不然信号边缘与同步段的完毕之间的距离便是边缘相位差错(以时刻量计算)。假如边缘产生在同步段之前,相位差错为负,不然为正。
假如相位差错为正,相位缓冲段1将被延伸。每次从头同步时,相位缓冲段缩短或延伸的数量(“同步跳转宽度”,SJW)的最大值受到限制,它可编程为1和Min{4, Phase_Seg1}之间的值。
当信号边缘相位差错的数值小于或等于SJW的编程值。硬同步和从头同步的值将是相同的。假如相位差错的数量大于SJW,从头同步将无法彻底补偿相位差错,这样差错(相位差错-SJW)依然存在。
在两次采样点之间只允许履行一次同步。从头同步保持了边缘和采样点之间的最小距离,使总线电平的安稳和滤除尖峰的时刻小于传输段和相位段1时刻之和。
一个位时刻内不同的段可按照下面的极限进行编程:
· Sync_Seg: 1 时刻比例
· Prop_Seg1: 1…8或更多 时刻比例
· Phase_Seg1: 1…8或更多 时刻比例
· Phase_Seg2: Max{Phase_Seg1,信息处理时刻}
· 波特率预分频器: 1…32
· SJW: 1…4 ,可是不大于Min{4, Phase_Seg1}
在同步的时分,Phase_Seg1能够善于编程的标称时刻而Phase_Seg2能够短于标称时刻。
“数据处理时刻”从采样点之后开端,它是用于决议随后发送的位电平的时刻(例如,数据位、CRC位、填充位、过错标志或闲暇)。该时刻不能大于2个时刻量。其长度为Phase_Seg2编程值的下限。在同步时Phase_Seg2能够小于数据处理时刻,这不会影响总线的时序。
每个位时刻的时刻比例值有必要设置为8到25的范围内。
图 2 从头同步的原理
图 2中所示为从头同步的原理。假如发送器的振荡器比接纳器的慢(a),用于同步的信号边缘将推迟抵达接纳器。接纳器可经过采样点的移位进行补偿。可补偿的最大累积“推迟”(边缘相位差错)由相位段1所保存的时刻确认。在从头同步过程中,假如相位差错的值小于等于SJW,采样点则依据所产生的边缘相位差错e进行移位,并因而康复与当时位方位相关的采样点的方位。当发送器的振荡器比接纳器的快时(b),信号边缘的抵达比接纳器预期的要早,因而下一个位时刻距离有必要提早发动。这经过缩短相位缓冲段2来完结。这种情况下,同步段被省掉了,因而在从头同步之后,从信号边缘到采样点之间的距离和同步段到采样点之间的距离持平(假如没有检测到边缘)。在第一个比如中,该“提早”边缘的相位差错值小于SJW,因而能够完结彻底补偿。
相位缓冲段仅仅暂时改动,鄙人一个位时刻里假如没有检测到相位差错,它们将康复为标称值。接纳器期望边缘呈现在同步段傍边。
下面是应用于位同步的规矩 [ISO99-1]:
· 在一个位时刻内的两次采样点之间只要一次同步。
· 只要在前一个采样点检测到的信号电平与后一个采样点的信号电平不一起,才干运用从隐性到显性的信号边缘进行同步。时刻短的搅扰脉冲是不起作用的。
· 只要在总线闲暇时呈现一个隐性到显性的信号边缘,就会履行一个“硬同步”(新的位时刻距离的开端)。
· 在帧间空间中(间歇场的第一位在外)隐性到显性的信号边缘会导致履行一个硬同步。