位时序
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% 之间。
- 尽量采用单次采样。