为什么传播延迟很重要
传播延迟会影响节点间的并发传输和仲裁。 冲裁依赖于CAN信号发送;逻辑0表示“主动”(总线间的差分电压),逻辑1表示“被动”(全部输出为高阻抗),意味着主动位将覆盖被动位。 发射时,所有节点监控总线;而发射被动位时则停止,从而允许另一个节点赢得仲裁(图1中的节点A)。
图1. 两个节点间的仲裁
传播延迟不可过大,否则可能在其他节点传播主动状态之前会监控总线状态。 对于图2中的节点A和节点B,往返时间很关键;该时间等于TPropAB加TPropBA,或者等于通过电缆和收发器延迟时间的两倍,包括隔离(如有)。 相比光耦合器,数字隔离器可降低传播延迟,但系统允许的总传播延迟是固定的,因此加入隔离可能会降低最大电缆距离。
图2. 带传播延迟的仲裁
传播延迟补偿
若要补偿隔离引起的传播延迟,可调节特定的CAN控制器参数。 首先为CAN控制器时钟设置波特率预分频器(BRP)值,该值定义划分位时间的“时间量子”(TQ)。 它们适用于3或4段,如图3所示;一个用来同步,另外数个用于传播延迟(PROP)以及相位段1和2(PS1和PS2)。 PS2和总TQ表示采样点位置。
第一步: 匹配时钟、预分频器和数据速率
对于给定的数据速率来说,第一步是检查如何组合时钟和BRP,才能让TQ等于整数。 1 Mbps示例如表1所示。该例采用ADI ADSP-BF548 Blackfin微处理器,内置CAN控制器。 采用典型系统时钟(fsclk)值,TQ整数值以粗体显示(用于1 Mbps的有效时钟/BRP组合)。
表1. 用于1 Mbps的时钟和BRP组合
第二步: 位段配置
下一步是定义位段,并将采样点设得尽可能晚。 对于表1中的每一个有效选项,SYNC段必须允许有一个TQ,并且TSEG2 (PS2)段必须适应CAN控制器处理时间(只要BRP大于4,BF548就要低于1 TQ)。 TSEG1 (PROP + PS1)为16 TQ(最大值)。
图3. 1 Mbps时最大传播延迟的可能BF548位段
第三步: 计算总线长度
图3显示1 Mbps的尽可能最新采样点时,ADSP-BF548的可能配置。 除5 TQ总和外的所有配置均为至少85%采样点,但10 TQ时可达最佳值,此时要求fsclk = 50 MHz且BRP = 5。
最后一步是确定最优配置下的最大传播延迟,并决定所选CAN收发器/隔离的可能电缆长度。 对于图4中处理器的最佳配置,可能的最大传播延迟为900 ns。
图4. 采用ADM3053的隔离式CAN节点,集成isoPower
图1中的ADI ADM3053集成CAN收发器、数字隔离器和隔离式电源。 250 ns环路延迟包括隔离器延迟(两个节点为500 ns)。 假定电缆传播延迟为5 ns/m,这意味着采用BF548,则总线长度可达40 m(根据ISO 11898标准的1 Mbps最大值)。
结论
隔离可增加鲁棒性,但同时也会增加发送和接收两个方向的传播延迟,并且仲裁时针对两个节点而加倍。 为了补偿延迟,可针对可能的最大传播延迟配置CAN控制器。这样,就有可能实现所需的数据速率和总线长度,哪怕是隔离节点的情况下。