详解CAN总线信号传输位定时与位同步_leyu体育
leyu·乐鱼
CAN协议与其它现场总线协议的区别中有一个是:它用于实时数据传输而不是异步传输(面向字符)。
CAN协议与其它现场总线协议的区别中有一个是:它用于实时数据传输而不是异步传输(面向字符)。这意味著传输性能获得更加有效地的充分发挥,但是另一方面,这必须更为简单的位实时方法。 在面向字符的协议中的位实时构建一起很非常简单,在拒绝接受每个字符的接续位时展开实时。但在实时传输协议中,只有一帧的开始才有一个接续位。
这一般来说足以使接收器的位取样和发送器维持实时。为了使接收器在帧完结时也能准确取样到接管的位流,就必须接收器大大展开新的实时。新的实时回应世在位流中每个有效地的信号边沿都可对接管信号的时钟周期展开检测。
在信号边沿间的仅次于时间周期内,发送到和拒绝接受振荡器之间仅次于有可能的时间差必需在一个位间隔内的标称取样点之前和之后通过充足的空闲时间(振幅缓冲器段)来补偿。 由于CAN协议用于非破坏性的位总线仲裁和显性接收者位,信号从发送器传输到接收器再行回到到接收器必需在一个位时间内已完成。因此除了保有用作实时的时间外,还必须一个时间段(传输延后段)对总线上的信号传输展开补偿以及用作发送到和接管节点的内部信号延后。 一个位间隔的时间段的长度根据振荡器周期,被定义为一个基本时间单位(时间份额)的倍数。
基本时间单位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的范围内。 如果发送器的振荡器比接收器的慢(a),用作实时的信号边沿将延后抵达接收器。接收器可通过取样点的移位展开补偿。
可补偿的仅次于积累延后(边沿振幅误差)由振幅段1所保有的时间确认。在新的实时过程中,如果振幅误差的值大于相等SJW,取样点则根据所再次发生的边沿振幅误差e展开移位,并因此完全恢复与当前位方位涉及的取样点的方位。 当发送器的振荡器比接收器的慢时(b),信号边沿的抵达比接收器预期的要早于,因此下一个位时间间隔必需提早启动。
这通过延长振幅缓冲器段2来构建。这种情况下,实时段被省略了,因此在新的实时之后,从信号边沿到取样点之间的距离和实时段到取样点之间的距离大于(如果没检测到边沿)。
在第一个例子中,该提早边沿的振幅误差值大于SJW,因此可以构建几乎补偿。 振幅缓冲器段只是继续转变,在下一个位时间里如果没检测到振幅误差,它们将完全恢复为标称值。
接收器期望边沿经常出现在实时段当中。 下面是应用于位实时的规则[ISO99-1]: 在一个位时间内的两次取样点之间只有一次实时。 只有在前一个取样点检测到的信号电平与后一个取样点的信号电平不同时,才能用于从隐性到显性的信号边沿展开实时。
一段时间的阻碍脉冲是不起作用的。 只要在总线空闲时经常出现一个隐性到显性的信号边沿,就不会继续执行一个软实时(新的位时间间隔的接续)。
在帧间空间中(间歇场的第一位除外)隐性到显性的信号边沿不会造成继续执行一个软实时。
本文来源:leyu·乐鱼-www.66vi.cn