配置控制器局域网络(CAN)位时序,优化系统性能
控制器的位时间分为三个或四个时间段,如图3所示。每位时间的TQ总数包括一个同步以及传播延迟(PROP)、相位段1 (PS1)和相位段2 (PS2)的设定数量。有时候,会把PROP和PS1加起来。配置调节采样点,以支持传播延迟和再同步。
把采样点设在位时间的稍后部分可以支持更长的传播延迟,但就如总数据速率一样,采样点取决于其他时序变量,这些变量都 有自己的限制。例如,内部时钟/振荡器可能固定不变,只能使用整数BRP和TQ数。因此,特定电缆长度要求的理想数据速率可能根本无法实现,因此,必须缩 短电缆,或者降低数据速率。
再同步会使PS1加长,PS2缩短,加长量和缩短量为同步跳宽(SJW)规定的TQ数,因此,PS2不得短于SJW。 SJW所需TQ数取决于CAN控制器的时钟容差,对于SJW和PS2,晶振一般支持最小TQ数。
CAN控制器的配置
为了实现节点间时序可靠、同步可靠的稳健网络,系统必须能承受所选数据速率和CAN控制器时钟条件下的传播延迟。如果不能,可以选择降低数据速率、缩短总线或者使用不同的CAN控制器时钟速率。配置过程包括以下三个步骤。
第一步: 检查时钟和预分频器——匹配数据速率
先核实在给定目标数据速率和CAN控制器时钟条件下,有哪些可能的配置。TQ间隔必须基于时钟和各种BRP值计算,可能组合只有那些TQ间隔为位时间的整 数倍的组合。根据所处系统设计阶段,也可能考虑其他CAN控制器时钟速率。在表1所示计算示例中,给定的最大数据速率为1 Mbps,使用的是一个Microchip® MCP2515独立CAN控制器和一个内置CAN控制器的ADSP-BF548 Blackfin 处理器。MCP2515 fOSC 取决于所使用的外部硬件振荡器,而ADSP-BF548 fSCLK 则取决于硬件CLKIN和内部PLL设置(VCO的CLKIN乘数,SCLK的VCO分频)。只有CAN控制器时钟和BRP(整数个TQ)的某些组合支持1 Mbps的数据速率,如粗体所示。 这会限制位时序的设置,因此一旦选择某个总线数据速率,只有部分选项可用。
表1. 给定f和BRP时1 Mbps速率下的TQ数
MCP2515: 1 Mbps速率下的TQ数 | ||||
fOSC |
BRP = 1 |
BRP = 2 |
BRP = 3 |
BRP = 4 |
40 |
20 |
10 |
6.667 |
5 |
38 |
19 |
9.5 |
6.333 |
4.75 |
30 |
15 |
7.5 |
5 |
3.75 |
20 |
10 |
5 |
3.333 |
2.5 |
10 |
5 |
2.5 |
1.667 |
1.25 |
ADSP-BF548: 1 Mbps速率下的TQ数 | ||||
fSCLK |
BRP = 5 |
BRP = 6 |
BRP = 7 |
BRP = 8 |
133 | 26.6 | 22.167 | 19 | 16.625 |
100 | 20 | 16.667 | 14.286 | 12.5 |
50 | 10 | 8.3333 | 7.143 | 6.25 |
40 | 8 | 6.667 | 5.714 | 5 |
第二步: 确定位段配置
下一步是确定每个位段要求的TQ数。最困难的情况是在1 Mbps的数据速率下支持最大传播延迟,例如,电缆长40米,隔离式节点。理想情况下,应对位时间段进行配置,使采样点在位中尽量晚。在表1中,对于每个 整数的TQ总数,一个TQ必须提供给SYNC段,PS2(或TSEG2)段必须足够大,以容纳CAN控制器信息处理时间(只要BRP大于 4,MCP2515为2 TQ,ADSP-BF548为小于1 TQ)。另外,对于MCP2515,PROP和PS1最多可以各有8 TQ;对于ADSP-BF548,TSEG1 (PROP + PS1)最多可以为16 TQ。
图4和图5分别展示了MCP2515和ADSP-BF548的可能总TQ配置,对于1 Mbps速率条件下的有效时钟和BRP组合,可支持最近采样点。MCP2515的最佳TQ总数为19,要求38 MHz的硬件振荡器和1的BRP。对于ADSP-BF548,