使用指南

CAN 位时序与采样点指南

在配置 CAN 时序寄存器前,理解时间份额、TSEG1、TSEG2、SJW、采样点和波特率误差。

最快路径

打开 CAN 位时序计算器,输入 CAN 外设时钟、目标波特率、预分频、传播段、相位段 1、相位段 2 和 SJW。先让实际波特率匹配目标值,再调整采样点。

核心公式

一个 bit 由 1 个同步段加上可配置时序段组成。每 bit 的总时间份额是 1 + PropSeg + PhaseSeg1 + PhaseSeg2,实际波特率是 时钟 / (预分频 * 总 tq)

采样点

采样点表示接收端在 bit 时间经过多少百分比后读取总线电平。较晚的采样点可以覆盖较长总线的传播延迟,较早的采样点则给相位校正留下更多空间。

SJW 与重新同步

SJW 控制控制器在检测到边沿后可以调整多少时间。除非参考手册给出特殊规则,否则应让 SJW 落在控制器限制内,并且不大于相位段 2。

寄存器映射

很多 MCU 手册使用 TSEG1 和 TSEG2 这样的字段名,而不是单独的传播段和相位段字段。有些寄存器还存储实际值减一。先完成时序计算,再映射到目标控制器的寄存器编码。

生产检查

  • 用目标波特率核对晶振误差和收发器延迟。
  • 修改固件时序前,确认总线长度、拓扑、支线长度和终端电阻。
  • 配置后反复出现 error frame 时,使用 CAN 分析仪或示波器验证总线状态。