CAN(Controller Area Network)总线作为一种广泛应用于汽车、工业自动化等领域的串行通信协议,其传输速率一直是人们关注的重点。在实际应用中,CAN2.0 的波特率被限制在 1Mbps,这背后主要有以下四个方面的原因。
CAN 通信安全的特点在于其发送错误自监测要求,即发送器会将将要发送的位电平与总线上检测到的位电平进行比较。这就要求所有发送回路必须具备反馈功能,也就是说,发送节点发出一个数据位,该数据位传播到远的接收节点,接收节点应答一个数据位后再传播回发送端。而电信号在这个回路上的传播是需要时间的。根据物理学研究结果,铜线中的电信号传播速度大约为2.3×108m/s。

以 40 米长的电缆为例,电信号来回会有5ns/m×40m×2=400ns的延迟,再加上1.25倍的设计余量,即400ns×1.25=500ns,这样算下来传输速率为 2Mbps。如果电缆长度为 20 米,传输速率则可达 4Mbps。然而,电缆过短会导致通信系统的空间规模变小。考虑到 CAN 的实际使用环境,电缆长度按 40 米设计。

在 CAN 总线的设计中,按照tbit=8Tq,的PSEG1=2,PSEG2=2,PTS=4tbit来计算。如果波特率为 1MHz,那么振荡器频率需满足≥8×1MHz=8MHz;若波特率为 2MHz,振荡器频率则需≥8×2MHz=16MHz。由此可见,波特率要求越高,时钟源振荡器频率也必须越高。
一项新技术能否得到广泛普及,成本是一个关键因素。为了节省线缆成本,CAN 通信采用异步传输方式,时钟信号由网络上的每个 ECU(Electronic Control Unit,电子控制单元)自己提供。为了保证收发时序的同步,所有时钟信号的频率误差必须控制在一定范围内。从理论上来说,通信速率越高,每个位的时间就越短,这就要求时钟频率更高,且误差更小。
在 CAN 的设计之初,就排除了频率误差较大的 RC 振荡器(误差在 1% 以上),剩下的可选方案有陶瓷谐振器和晶体谐振器(俗称晶振)。晶振的频率误差更低,但价格相对昂贵。石英晶体谐振器的频率稳定度高达百万分之几(ppm),做成振荡器后其频率稳定度可达10?6量级;如果是温补振荡器,频率稳定度可达10?7量级;恒温振荡器甚至可做到10?8 10?9量级,多层恒温振荡器更可达到10?9量级,用作系统时钟时可以达到几百年不差一秒,用于导弹或航天领域时,飞行上万公里误差不到一米。而陶瓷谐振器的频率稳定度只有千分之几,与石英晶体谐振器相比明显较差。不过,陶瓷谐振器具有起振容易、价格低廉的特点,在对时钟要求不太高的电路中,其性价比优于石英晶体谐振器。
根据 ISO11898 - 1 - 2003 标准描述,选用 N 位填充时,频率误差df公式表明,填充位的位数 N 越大,对振荡器的精度要求就越高。经过分析,按照tbit=8Tq,的PSEG1=2,PSEG2=2,PTS=4带入公式计算,可得df≤2/(2×(13×8?2))=0.98%=9800ppm,对于这样的误差,陶瓷谐振器完够满足要求。
在前面分析物理定律限制时,仅考虑了总线上信号的传播延迟,实际上发送单元和接收单元的芯片处理信号本身也需要时间。因此,对于 40 米长的电缆,单程5ns/m×40m=200ns的时间是不够的。按照传播延迟通常有 2 个Tq来考虑,tbit=8Tq,的PSEG1=2,PSEG2=2,PTS=4。当波特率为 1Mbps 时,Tq=125ns,2Tq=250ns;当波特率为 2Mbps 时,Tq=62.5ns,2Tq=125ns。显然,1MHz 的波特率能够覆盖住这个传输延迟时间。此外,ISO11898 - 5 - 2007 标准也限制了这个时间为 255ns。