CAN标准中的时钟容差修正建议 - 电子发烧友网
(2×△f)×37×NBT≤SJW (3)
以前述例子的数据,NBT=8,SJW=1,得△f≤0.001 68,减小了很多。
由于接近快节点的接收器均能见到快节点的R/D跳变沿,它们已按快节点进行了同步。最后,它们要按未曾同步的慢节点进行同步,同样会遇到相位差很大时的同步问题。如果ID最后第2位已是显位,那么快节点将见不到慢节点的跳变沿,因为此时并不存在可供同步的R/D跳变沿,在仲裁域内快节点以及附近已与它同步的接收器将完全无法与慢节点同步。它们将按自己原来的相位及位时间进行采样。最坏的情况下,要再经过7位可以见到慢节点的下一个R/D跳变沿,如图2所示。
在仲裁域内未能见到跳变沿的发送器此时已变为接受器,虽然如此,若在后面的跳变沿能保证正确同步的话,那么在仲裁域中采样点的偏移就更小,应该能保证采样的正确,即仲裁的正确。此时仲裁域内未同步最多为40位(含可能的8位填充位),随后最近的跳变沿在6位后,于是为了能正确采样,应该有:
(2×△f)×46×NBT≤SJW (4)
仍以第一部分中例子的数据,NBT=8,SJW=1,可得△f≤0.001 35,又小了一些。如果在某系统中有NBT=25,SJW=1,可得△f≤0.00043。这是相当小的值。
根据上述分析,最坏的情况是(4)式。对于CAN2.0 A,对应可以导出最坏情况为:
(2×△f)×21×NBT≤SJW (5)
如果传输时间比较短,慢节点已按快节点延迟Pr/2后进行了同步,那么在慢节点最后胜出的那一位,快节点将见到e=Pr的来自慢节点的同步沿。为能保证同步,至少应有:
Pr≤SJW (6)
如果(6)式满足,就可以发生同步。例如在传输延迟占位时间份额小的系统,用原ISO11898-1的算式。使用中,读取ACK位时,最坏的同步沿将相隔 11位(CRC分界符不在填充位规则内),(1)式还应该修改。如不满足(6)式,例如高速系统,就应考虑(4)或(5)式。ISO11898-1应添加上述内容。一般地说,(4)、(5)式比(1)、(2)式要求严格,如需要简化,用它们就足够了。例如对于CAN2.0A,用前面例子的数据,NBT=8,SJW=1,由(5)式可得△f≤0.002 97,也优于原来的0.004 90。
3 ISO 16845:2004应添加的条款
ISO16845关于发送器时间同步相关功能的一致性测试条款共9项(8.7.1~8.7.9),其中用于有相位差的重同步仅2项:8.7.4款,当 e<0且|e|≤SJW时的同步;8.7.5款,当P<0且e>SJW时的同步。由第2部分的分析可知,发送器在仲裁中退出的最后一位是需要进行同步的,此时它还是发送器状态。只有同步以后,才能正确采样,决定是否退出并保证退出以后能正确跟踪胜出的发送器。因此,需要添加 e>O,且| e |≤SJW,以及e>0,且| e |>SJW时的测试条款。这些条款可以参考接收器的相应条款(7.7.3和7.7.4)。
ISO 16845中的低层测试设备LT是专用设备,它与被测的CAN(称为被测试的实现IUT)的Tx、Rx相连,LT产生必要的输入条件到Rx,然后从Tx测取IUT的反应是否合格。非测试输入时LT不应影响IUT。以e>O且|e|>SJW时的测试为例,安排IUT发1帧在ID域带填充位为显位的帧。当发到第5个隐位时,LT延迟e将Rx变为显位,然后在延迟后的新采样点(原P1+SJW)处为Rx建1个隐位值,此时IUT的输出Tx将在LT提供的R/D跳变沿后一位按同步规则提供显位,如图3所示。上述测试设计基于如下原理:如果IUT动作正常,它将同步于LT提供的R/D跳变沿,并采到LT 提供的隐位,这时发出它的下一个填充位,填充位的R/D跳变沿已被IUT先前的同步所移动。如果同步不正常,或者跳转的量不对,IUT将采到显位,它会仲裁失败而退出,不会再发送。测试的P的范围是(SJW+1)~(NBT-P2-1)。这个设计不同于标准的7.7.4款。笔者认为7.7.4款的方法是不能达到目的的,该问题的详细讨论超出了本文的范围,不再赘述。
需要指出的是,8.7.2款中的正在发送显位的发送器,将不对e>0的R/D跳变沿作同步。这个要求与本文所述e>0时的同步问题是不同的。本文讲的是发送器发隐位,它见到了其他发送器的R/D跳变沿;而8.7.2款只是描述CAN芯片的Tx、Rx分开作输出、输入测试时的特性,实际应用时是分不开的,不会遇到这种情形。
4 小 结
CAN的一般技术资料均提到,高速时的可靠性要比低速时的差,应用中能用低速就用低速。从上述位同步时钟容差的分析可知,高速时时钟容差小,所以一旦时钟有问题就会影响同步与采样。CAN标准ISO11898-1:2003仅考虑了部分场合的要求,对发送器仲裁阶段未能同步的情况未作考虑,从而给出的容差结果偏宽,设计者有可能依此选用不合适的振荡源,造成电子控制器(ECU)可靠性不够。例如,现在已经有一些精度接近0.
CAN标准时钟容 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)