Edit online

位时序

8 Aug 2024
Read time: 1 minute(s)
为了实现位同步,每个正常位时间划分为几个不重叠时间的片段,包括同步段 SS,传播段 PS,相位缓冲段 PBS1,相位缓冲段 PBS2,一个完整的位由 8~25 个时间定额 Tq 组成。
  • 如图所示,将传播段 PS 和相位缓冲段 PBS1 合并形成新的时间段 TS1
  • 在复位模式下,配置总线时序 0 寄存器 CAN_BTR0 和总线时序 1 寄存器 CAN_BTR1 中的 BRP、SJW、TS1、TS2、SAM 等参数,决定 CAN 的波特率。
  • SJW 表示 CAN 波特率的容许偏差量,其大小与波特率值没有直接关系,SJW 值越大则总线获得更宽波特率容忍度。


位时序各参数计算关系如下:

  • 时间定额 Tq = 2 × (BRP[5:0] + 1) × Tpclk,其中 Tpclk 为 APB 时钟(通常为 24 MHz)周期。
  • 位时间 Tbit = [1 + (TS1 + 1) + (TS2 + 1)] × Tq。
  • 波特率 Baud = 1 / Tbit
  • 采样点 SP = [1 + (TS1 + 1)]/ [1 + (TS1 + 1) + (TS2 + 1)]。

位时序各参数计算

假设单次采样的参数值如下:

SAM = 0,且 SJW = 2,TS1 = 8,TS2 = 1,BRP = 0,则波特率为 24 MHz / [2 × (0 + 1) × (1 + 9 + 2)] = 1 Mbps,采样点为 (1 + 9) / (1 + 9 + 2) = 83%。

建议选取规则:
  • TS2 ≥ SJW
  • BRP 尽量小、SJW 尽量大。
  • 采样点选取范围 75%~85% 之间。
  • 尽量采用单次采样。