注意,只通过等到两倍单向延迟(或者相当于总双向传输时间)节点A才能判别这种情况,其中节点 A 和 B 的消息具有相同的优先级(情况 3),以及节点 B 的消息拥有更高的优先级。由于 CAN 协议固有的逐位仲裁机制,这种双向延迟必须较好地位于一个位时间预算范围内,也即 1000ns。否则,在第二个位仲裁完成以前,节点 A 就可能开始传送其第三个位。
信号传输速率及线缆长度限制
我们知道双向延迟至关重要,CAN 定义可编程传输延迟 (PROP_SEG) 为每个位的组成部分,以保证每个节点在对总线数据采样以前都确实等待足够长的时间。PROP_SEG 的计算涉及双向延迟和本地系统时钟频率相关知识,其超出了本文的讨论范围。实际上,PROP_SEG 将采样点规定在约总位时间的 5/6 或者更低以照顾其他段,这样双向延迟便被规定为位时间的一小段。
CAN 标准规定,线缆为 5ns 每米传输延迟,1Mbps 信号速率时最大线缆长度为 40 米。位时间为 1000ns 时,最迟采样点(由PROP_SEG设定)约为 850ns。线缆本身具有 200ns 的单向延迟(即 400ns 双向延迟),从而使收发器和相关电路的总延迟只剩约 450ns。
CAN 收发器的制造商通常规定“环路延迟”,其包括驱动器和接收机延迟。由于双向计算中涉及两个收发器,因此每个收发器都应有 225ns 或者更低的环路延迟,以支持 1Mbps 信号速率下 40 米的总线长度。如果收发器电路包括更多的组件,例如:隔离、电压电平转换或保护组件,则这些组件产生的延迟必须也包括在总延迟预算中。甚至,高速光耦合器一般具有 40ns 或更长的单向延迟,而全部双向信号都必须通过四个光耦合器。这就极大地缩短了使用光隔离 CAN 系统的容许线缆长度(即增加了位时间)。1Mbps 条件下,即使快速光耦合器的延迟也会缩短容许线缆长度,计算方法如方程式 1:
下面显示了信号速率和线缆长度之间的权衡因素,以及收发器延迟带来的影响。收发器带来的延迟(包括相关隔离、电平转换和保护)对于 500 kbps 及以上的信号速率特别明显。
图 4 收发器延迟影响信号速率和线缆长度的权衡(点击图片放大)
在单个封装(ISO1050)中的高速 CAN 收发器集成 SiO2 隔离现已上市。利用低于 210ns 的极限总环路延迟(包括驱动器、接收机和两个隔离信道!),您可以减少双向环路延迟,并简化您隔离式 CAN 解决方案的系统计时和设计。您还可以执行一个电平转换功能,将一个 3.3V 控制器的电压转换至 5V CAN 收发器,无需更多的延迟。
当然,在进行信号速率和线缆长度相关性能优化设计时还存在其他一些问题。网络的传输线路效应表明,负载、节点到节点间隔和短截线长度对系统的信号保真度和抗干扰性都很重要。本文结尾列举了较好的参考文献。
实验室数据例子
为了说明这些概念,可建立一个带有两个隔离 CAN 节点和 50 米线缆的实验室装置。我们预计单向线缆延迟为 250ns,隔离收发器环路延迟约为 150ns,即 ISO1050 标准的典型值。因此,节点 A 的采样点应约为比特开始以后的 800ns,如图 5 所示。
图 5 50 米线缆的 1 Mbps CAN 信号速率(点击图片放大)
就 1Mbps 信号速率而言,在该比特结束以前,采样点留有足够的裕量,其表明使用快速收发器,40 米以上的线缆长度是可行的。
总结
广大设计人员正在各种应用中使用 CAN 通信,他们需要了解计时限制和线缆长度权衡方法。信号链中每个组件都会影响总计时预算,同时必须考虑双向延迟以确保可靠的通信。使用如 ISO1050 等快速收发器可保证 CAN 信号按时完成双向传输,只有比 Pecos Bill 更快才能游过墨西哥湾。