推荐文档列表

CAN总线中位定时的设定方法

时间:2021-10-01 10:06:05 计算机论文 我要投稿

CAN总线中位定时的设定方法

摘要:在CAN总线中,位定时有一点小错误就会导致总线性能严重下降。虽然在许多情况下,位同步会修补由于位定时设置不当而产生的错误,但不能完全避免出错情况,并且在遇到两个或多个CAN节点同时发送的情况时,错误的采样点会使节点启动错误认可标志,使节点不能赢得总线上的任何活动。因此要分析、解决这样的错误就需要对CAN总线位定时中的位同步和CAN节点的工作过程有一个深入的了解。本文描述了CAN总线位同步的运行规则以及如何对位定时的参数进行设置。

1. 前言

CAN总线的数据传输速率最高可达1Mbit/s,通常用石英晶振作为时钟发生器,可以独立进行位定时的参数设置,这样即使网络中节点之间的时钟周期不一样仍可获得相同的位速率。但网络中晶振的频率不是绝对稳定的,温度、电压以及器件的异常都会导致微小的差别,但只要将其稳定在振荡器容差范围之内,总线上的节点会通过重同步进行弥补。

CAN总线的一个位时间可以分成四个部分:同步段,传播段,相位段1和相位段2,每段的时间份额的数目都是可以编程控制的,而时间份额的大小tq由系统时钟tsys和波特率预分频值BRP决定:tq=BRP/tsys。如图1:

图1 参数范围说明 分频值 [1…….32] 规定时间份额的长度 同步段 1tq 固定长度,同步总线节点 传播时间段 [1…….8]tq 补偿总线物理延迟时间 相位缓冲段1 [1…….8]tq 重同步时可以暂时延长 相位缓冲段2 [1…….8]tq 重同步时可以暂时缩短 同步跳转宽度 [1…….4]tq 长度小于相位缓冲段表1:位时间的参数

2.同步段

(1)同步段用于同步总线上的各个节点,在此段内期望有一个跳变沿出现。如果跳变沿出现在同步段之外,那么沿与同步段之间的长度叫做沿相位误差。采样点位于相位缓冲段1的末尾和相位缓冲段2开始处。

(2)传播时间段用于补偿总线上信号传播时间和电子控制设备内部的延迟时间。因此,要实现与位流发送节点的同步,接收节点必须移相。CAN总线非破坏性仲裁规定,发送位流的总线节点必须能够收到同步于位流的CAN总线节点发送的显性位。图2显示了两个总线节点的相移和传播段时间。

图2

在这个例子里,节点A和节点B都是发送节点,因此总线要对两个节点进行仲裁。节点A比节点B提前发送不到1个位时间,当节点B收到延迟后的跳变沿时,B节点要同步于A节点,对位时间进行移相。移相后节点B发送的标识号有较高优先级,因此节点B赢得总线的使用权,如图节点B发送的显性位经过延迟后到达节点A。

因为存在振荡器容差,节点A的采样点在相位缓冲段的位置是不能确定的,所以节点B发送的位流必须在A节点的相位缓冲段1开始之前到达,因此传播时间段的长度将受到这个条件的限制。如果节点B发送一个隐性到显性的跳变沿,节点A在相位缓冲段1开始之后收到,那么节点A就有可能采样到一个隐性位,导致产生一个位错误。这样的错误只有当两个节点都参与总线仲裁,且总线比较长,节点的振荡器频率相差较大时才会出现。另外,CAN总线还提供一种采样方式,即采样3次,在相位缓冲段首尾以及相位缓冲段1、2的交界处各采样一次,并通过位定时逻辑确定位的正确值,这样就会要求额外的一个时间份额的延迟,因而需要更长的传播时间段。

3.相位缓冲段和同步

同步跳转宽度规定了重同步发生时采样点在相位缓冲段内移动的距离。相位缓冲段和同步跳转宽度用来补偿振荡器容差,发生重同步时相位缓冲段会被加长或缩短。当总线发生从隐性到显性跳变时,会产生同步,其作用是控制沿与采样点之间的距离。总线节点在每个时间份

[1] [2] [3]