CAN标准中的时钟容差修正建议

2011-08-16 14:52:35来源: 互联网

    CAN是事件触发的通信协议,它用标识符(ID)的无损仲裁方法调度不同消息的传送。仲裁依靠的是位值,因此位值采样准确性很重要。为在所有节点得到相同的准确的采样,位时间的同步就是关键。正常传送中也要克服节点间时钟差造成的采样点变动,减少读出时的错误。但是位时间能否实现同步,取决于时钟的偏差。为此CAN标准规定了时钟容差的计算方法。现在发现,标准规定的计算公式不够用,它会影响应用的可靠性。特别是汽车工业常用的标准儿939是基于CAN 2.0B的,时钟容差对CAN 2.OB的影响较大,因此对此加以修正非常重要。对于标准的完整理解不仅与应用有直接关系,对进一步提高CAN性能也会有新的启示。


1 ISO 1 1898-1:2003关于时钟容差的规定
    ISO 11898-1:2003第12.4.1.2款规定位时间单位为Tq,它是可组态的参数。1位共有NTQ(8~25)个Tq,Tq由振荡器分频而得,受硬件的振荡器与分频器资源所限,其选择有限。每1位分成4段:同步段S(Tq)、传输段Pr(Tq~8Tq)、缓冲1段P1(Tq~8Tq)和缓冲2段P2(Tq~8 Tq),它们都是可组态的参数。位值的采样在P1与P2的分界处。CAN将同步分为2种:硬同步和重同步。总线空闲时开始新帧SOF的隐位到显位的跳变沿(R/D跳变沿)引起硬同步,立即复位本地位时间到S段。在帧传送中的R/D跳变沿引起重同步,跳变沿落在上一位采样后的P2段时将该P2缩短,跳变沿落在S后时加长本位P1的长度,此时本地位时间修正的最大绝对量不超过SJW(重同步跳转宽度)的值。SJW是1个组态参数,在Tq~4 Tq之间。关于CAN位时间与同步的一些较为深入的探讨可参见参考文献。
    在CAN标准中,采用振荡器容差这一术语来代表时钟容差。实际实现时,有的实现方案用振荡器加锁相环构成时钟,此时CAN的时钟偏差就由2部分构成。为了与标准文字一致,本文不把时钟容差与振荡器容差严格区分。将振荡器的频率相对误差表示为△,时,按ISO11898-1的12.4.2.5款规定,它的约束有2条。
    ①正常传送时由于CAN填充位规则,重同步的距离最多为10位。为同步正确,有:
    (2×△f)×10×NBT    其中,NBT为标称位时间。
    ②出错时,有错的节点要发报错帧。为了区分是本地错还是全局错,要考察发出主动报错标志后的第7位是否还是显位。由于出错前可能有6位显位,所以2个同步段S相隔13位。容许的差小于缓冲段长:
    (2×△f)×(13×NBT-P2)    在2个不等式中选最小者为本应用的时钟容差。例如Tbit=1 000 ns,总线长20 m,收发器的延迟为150 ns时,整个传输延迟为Tprop=500 ns,取Tq=125 ns,算出Pr=4,P1=1,P2=2,SJW=1,NBT=8。由上述二式算出的△f分别为0.006 25和0.004 90,取其中小者0.004 90,即接近0.5%。


2 发送器时钟同步中产生的问题
    CAN总线具有显位优先于隐位的特性,即当总线上有多个节点同时发送时,只要有1个节点发的是显位,总线上最终的结果就是显位。所以当2个相距有一定距离的节点同时发送显位时,由于传输需要时间,在一个节点处看不到另一个节点的R/D跳变沿(如图1所示,e为同步的相位差),因为总线的电平早已被该节点置为显位。

    在这种情况下,节点A、B即使时钟有差别,也无法建立同步。设A比B快,仅当节点A的同步段S比节点B的同步段S越来越超前,且其超前量大于传输时间时,节点B才能看见A的R/D跳变沿,B才会开始进行同步。
    现在分析2个发送器在仲裁区的同步问题。假定它们看到总线空闲并同时开始发送,它们的ID只是最后1位不同。有文献介绍发送节点同步过程时,假定总线空闲时有1个发送器领先于其他发送器,且超过Pr/2段发送的情况。由于事件发生的随机性,这只是特例。对于定时消息,它们由本节点的时钟触发。但本地时钟问并无同步,它们之间又存在频率差异,所以定时消息规定应发出的时间的相位差会周期性地变化。1个发送器领先所有其他发送器的情况也只是特例。在本文假设下,由于在ID前各位出现的R/D跳变沿均未被对方看见,它们之间没有同步关系。到最后1位,假定时钟慢的节点有显位而时钟快的节点有隐位,并假定ID前1位是隐位,那么慢节点的R/D跳变沿将可能被快的节点看到。但是,它将有很大的相位差,可能已经超过了重同步跳转宽度SJW,从而无法使该快节点正确同步,便会导致采样在慢节点送来的电平尚未稳定的地方产生位值读错。
    在CAN 2.0B的29位ID的最后1位,即仲裁域的第31位,由于可能还有7个填充位,即已有37位未进行同步。为了采样正确,未同步时快慢发送节点同步段的差应小于重同步跳转宽度SJW:
    (2×△f)×37×NBT≤SJW (3)
    以前述例子的数据,NBT=8,SJW=1,得△f≤0.001 68,减小了很多。

[1] [2]

关键字:CAN标准  时钟容差修正

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2011/0816/article_3250.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
CAN标准
时钟容差修正

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved