最快路径
打开 CAN 位时序计算器,输入 CAN 外设时钟、目标波特率、预分频、传播段、相位段 1、相位段 2 和 SJW。先让实际波特率匹配目标值,再调整采样点。
核心公式
一个 bit 由 1 个同步段加上可配置时序段组成。每 bit 的总时间份额是
1 + PropSeg + PhaseSeg1 + PhaseSeg2,实际波特率是
时钟 / (预分频 * 总 tq)。
采样点
采样点表示接收端在 bit 时间经过多少百分比后读取总线电平。较晚的采样点可以覆盖较长总线的传播延迟,较早的采样点则给相位校正留下更多空间。
SJW 与重新同步
SJW 控制控制器在检测到边沿后可以调整多少时间。除非参考手册给出特殊规则,否则应让 SJW 落在控制器限制内,并且不大于相位段 2。
寄存器映射
很多 MCU 手册使用 TSEG1 和 TSEG2 这样的字段名,而不是单独的传播段和相位段字段。有些寄存器还存储实际值减一。先完成时序计算,再映射到目标控制器的寄存器编码。
生产检查
- 用目标波特率核对晶振误差和收发器延迟。
- 修改固件时序前,确认总线长度、拓扑、支线长度和终端电阻。
- 配置后反复出现 error frame 时,使用 CAN 分析仪或示波器验证总线状态。