如何计算控制器参数使隔离式CAN网络以1 Mbps的速度运行
品慧电子讯CAN 是一种差分信号标准,广泛用于汽车、工业和仪器仪表行业。它用于不同系统之间的串行通信,这些系统常常是经长距离连接到不同的电源系统。由于环境限制,常常使用电流隔离来中断接地环路或提供物理安全性。
隔离式CAN网络的传播延迟比非隔离式CAN网络要长,设计起来可能颇具挑战性。图1显示一个使用信号和电源隔离CAN收发器ADM3053 的隔离式 CAN 节点,我们将以它为例来计算所需的 CAN控制器参数,以便在 20 米电缆上以 1 Mbps 的速度进行通信。
图 1. 使用信号和电源隔离 CAN 收发器 ADM3053 的隔离式 CAN 节点
一个CAN比特由四个独立的时间段组成 :同步段 (SYNC_SEG)、传播段 (PROP_SEG)、相位段1(PHASE_SEG1) 和相位段 2(PHASE_SEG2)。这些时间段可以在 CAN 控制器中进行编程,对于计算 CAN 控制器的设置参数至关重要。图 2 所示为标称比特时间的不同时间段。
计算中使用如下假设条件 :
• 电缆长度为 20 m
• 数据速率或比特率为1 Mbps
• 电缆传播延迟为 5 ns/m
• CAN 控制器振荡器频率为36 MHz
图 2. CAN 标称比特时间
CAN 采用逐位仲裁方式,不同的节点可以争夺总线访问权,这就导致多个节点可以同时传输数据。传输节点必须对总线上的数据进行采样,以便确定它是否赢得仲裁。由于系统的传播延迟,控制器必须补偿各位采样的时间。在控制器中设置 PROP_SEG 可以提供此补偿,其计算方法如下 :
对于 ADM3053,从 TxD 到 RxD 的传播延迟为 250 ns(最大值)。
电缆的物理延迟等于 5 ns/m 乘以电缆长度 20 m,结果为 100 ns。
因此,通过系统并返回的总传播时间为 :2 x ( 传播延迟 + 收发器传播延迟 ) = 700 ns (2 × (100 + 250) = 700 ns)。
为了给控制器编程,必须将寄存器设置为“时间量子”的整数倍。时间量子的时长等于 CAN 系统时钟的时间周期,本例中为 28 ns。
对于 28 ns 的时间量子,每位包括 36 (1000/28 = 36) 个时间量子。
PROP_SEG = ROUND_UP (700 ns/28 ns) = 25 个时间量子
从每位的 36 个时间量子中,减去用于 PROP_SEG 的 25个时间量子和用于 SYNC_SEG 的 1 个时间量子,余下的时间量子分配给 PHASE_SEG1 和 PHASE_SEG2,每段5 个。
CAN 系统时钟存在容差,因而会出现累积相位误差。这要求系统通过再同步跳跃 (RJW) 同步,RJW 为 4 和PHASE_SEG1 二者中的较小值。
由此便可计算系统的振荡器容差要求 :
?f < RJW/(20 × NBT) = 4/(20 × 36) = 0.006
?f < Minimum (PHASE_SEG1 and PHASE_SEG2)/2(13 × NBT –PHASE_SEG2) = 5/2(13 × 36 – 5) = 0.005
这两个值中的较小者就是所需的振荡器容差 0.5%。
计算得出下列设置参数 :
• SYNC_SEG = 1
• PROP_SEG = 25
• PHASE_SEG1 = 5
• PHASE_SEG2 = 5
• RJW = 4
推荐阅读:
贸泽荣膺Bel Fuse 2019年度全球分销商大奖
HT566 I2S数字输入2x20W立体声无电感闭环D类音频功放解决方案
从ADAS到驱动器更换——实际雷达性能是否足够好?
用低噪声仪表放大器设计高性能系统
高性能模块化仪器仪表如何实现更好的应用和更小的尺寸