跳转到内容

位时序计算

使用的缩写:tNBT - 标称CAN位时间 tsyn - 同步段 PD - 传播延迟 tseg1 - 时间段1 tseg2 - 时间段2 tq - 时间量子 BRP - 波特率预分频器 fsys - 控制器系统时钟 fclk - 时钟频率 NBT - tNBT中的tq数量 tPD - 传播延迟时间

CAN协议支持1Kbps至1000Kbps范围内的位速率。每个节点都有自己的时钟发生器和振荡器。

为每个节点配置位时序参数有助于在总线上实现共同的位速率。

标称CAN位时间(NBT)分为四个段,如下所示。

NBT.bmp

因此,tNBT = tsyn + tPD + tseg1 + tseg2

标称位速率是每秒的位数。

标称位速率 = 1 / 标称位时间

每个段由特定可编程数量的时间量子组成,时间量子是位时间的基本单位。同步段是CAN总线电平边沿所在的位时间部分。

fsys和tq之间的映射:控制器需要调节其系统时钟周期(1 / fsys)以实现所需的时间量子(tq)。调节系数定义为波特率预分频器(BRP)。因此,

tq = 2 * (BRP/ fsys ) (I)

fsys = fclk / 2 (II),其中fclk为时钟频率

tNBT = 1 / baud rate (III)

NBT = tNBT / tq (IV)

因此根据公式(I)、(II)和(III)

NBT = ( 1 / baud rate ) / (4 x BRP/ fclk)

=> NBT x BRP = fclk / (4 X Baud Rate)

乘积值NBT x BRP将是一个整数值。将计算适当的波特率以使上述乘积获得整数值。这将确保特定CAN控制器的时钟频率保持相同。

此外,

NBT x tq = tNBT = tsyn + tPD + tseg1 + tseg2 (V)

显然,

tsyn = tq (VI)

tseg1 = TSEG1 x tq (VII)

tseg2 = TSEG2 x tq (VIII)

tPD = PD x tq (IX)

因此根据公式(VI)、(VII)和(VIII)。

NBT = TSEG1 + TSEG2 + PD + 1.

采样点 = ((NBT - TSEG2) / NBT) x 100 %.

neoVI硬件包含三个寄存器,即CNF1、CNF2、CNF3,其详细信息如下:

BTR.bmp

SAM (采样) = 0 or 1 (1 or 3)

SJW = 2 x SJW1 + SJW0 + 1

BRP = 32 x BRP5 + 16 x BRP4 + 8 x BRP3 + 4 x BRP2 + 2 x BRP1 + BRP0 + 1

TSEG1 = 4 x TSEG1.2 + 2 x TSEG1.1 + TSEG1.0 + 1

TSEG2 = 4 x TSEG2.2 + 2 x TSEG2.1 + TSEG2.0 + 1

FLAG = 0 or 1 ( “TSEG2 Ignored” or “TSEG2 Considered”)


权威来源: BUSMASTER DITA help source bit_timing.dita, compiled into BUSMASTER.CHM with the application.