振荡器容差即参考时钟误差,在CAN总线中,振荡器基准的作用是给节点上每个节点定时,具有十分重要的作用。在实际应用中,振荡器基准频率fSYS可能会因为时间的工作引起的容差偏移、老化和环境温度的变化而偏离其标准值,然后偏离之和便会形成振荡器容差△f。振荡器容差是一个相对容差,她表示和振荡器基准频率的偏离。标准化后的公式是: △f=|fCLK,max/min-fCLK.ref|/fCLK.ref 其中,fCLK,max/min表示的是适中频率的极限值,即最大或最小值,fCLK.ref表示参考频率的标准值。 CAN总线控制器的时钟可以从振荡器基准频率中直接得到,因此,CAN总线时钟的最小值和最大值得大概如下:
tSCL.min=tCLK.ref/(1+△f)≈tSCL.ref*(1-△f) tSCL.max=tCLK.ref/(1-△f)≈tSCL.ref*(1+△f) 要使上述等式成立,需要嘉定△f<<1。实际系统开发中的时钟基准一般都能满足这样的要求,典型的比如石英振荡器(△f<0.1%)、锁相环取得的频率(△f<0.5%)以及陶瓷振荡器(△f<1.2%)都能实现。 由CAN位定时原理知,如果要让振荡器的容差或者是总线的长度增加,必须采取降低位速率的方式。加入要保证在一定的位速率的情况下,获取最大的总线长度,则采样点必须尽可能的靠近位周期末尾,同时振荡器容差也要尽可能的减小。CAN总线长度与位速率的关系如下表所示。
位速率(Kbit/s) | 总线长度(m) | 1000 | 30 | 500 | 100 | 250 | 250 | 125 | 500 | 62.5 | 1000
|
|