STM32CubeMX中的CAN配置参数的解释

STM32CubeMX中的CAN配置参数的解释

STM32CubeMX的CAN配置参数如下图所示:

一、Bit Timings Parameters参数解释

1.1 标准 CAN 协议四段式时序图(SS+PTS+PBS1+PBS2)

各段官方释义

  1. SS 段(同步段):固定 1Tq总线电平跳变必须落在该区间,所有 CAN 节点完成时钟对齐,硬件固定无需配置。
  2. PTS 段(传播延时段):1~8Tq补偿 CAN 线束、TJA1050 收发器带来的信号传输延迟,布线越长需要配置更多 Tq。
  3. PBS1 段(相位缓冲段 1):1~8Tq等待总线电平稳定,采样点就位于 PBS1 末尾,同时可小幅修正节点间时钟偏差。
  4. PBS2 段(相位缓冲段 2):2~8Tq位末尾时序容错缓冲,用来抵消不同 MCU 晶振的微小频率误差,避免时序错位报错。

1.2 STM32 bxCAN 三段式时序图(CubeMX 实际配置对应关系)

关键合并规则(CubeMX 只看到 BS1、BS2 的原因)

STM32 硬件把标准协议里的PTS + PBS1 两段合并为 BS1,PBS2 直接对应 BS2:

  • BS1 = PTS(传播段)+ PBS1(相位缓冲段1)→ 采样点在 BS1 末尾;
  • BS2 = PBS2(相位缓冲段2)

结合当前配置:BS1=5Tq、BS2=4Tq、SS=1Tq,总Tq = 1+5+4 = 10Tq,采样点位置 =(1+5)÷10=60%。

1.3 两种时序结构对比图(清晰看懂映射关系)

二、结合 CubeMX 参数的图文对应说明

1. Bit Timings Parameters(位时序核心参数)

  1. Prescaler (for Time Quantum) = 9预分频器:对 APB1 时钟 9 分频,生成 CAN 最小计时单位1Tq=250ns,分频值越大,波特率越低。
  2. Time Quantum = 250.0 nsCAN 时序最小时间刻度,所有位段都由若干个 Tq 组成。
  3. Time Quanta in Bit Segment 1 = 5 Times(BS1=5Tq)对应 PTS+PBS1,补偿线路传输延迟 + 等待电平稳定,在本段末尾采集总线电平。
  4. Time Quanta in Bit Segment 2 = 4 Times(BS2=4Tq)对应 PBS2,位尾部时钟误差容错缓冲。
  5. Time for one Bit = 2500 ns单个数据位总时长 = 总 Tq × 单 Tq 时长 = 10 × 250ns。
  6. Baud Rate = 400000 bit/s总线波特率:每秒传输 40 万个二进制比特。
  7. ReSynchronization Jump Width = 1 Time(SJW=1Tq)单次时钟偏差最多修正 1 个 Tq,工程常规默认配置。

2. Basic Parameters(基础功能参数)

  • Time Triggered Communication Mode:Disable时间触发通信,仅工业定时调度场景使用,普通项目关闭。
  • Automatic Bus-Off Management:Enable总线离线自动管理,总线短路报错时硬件自动保护,故障恢复后自动重连(车载必开)。
  • Automatic Wake-Up Mode:Enable休眠模式下,总线上收到报文自动唤醒 MCU,用于汽车低功耗休眠唤醒场景。
  • Automatic Retransmission:Disable发送失败不重复重发,避免多节点下总线拥堵。
  • Receive Fifo Locked Mode:Disable接收缓冲区满时,新数据覆盖旧数据,始终保留最新总线报文。
  • Transmit Fifo Priority:Disable遵循 CAN 原生优先级规则:报文 ID 数值越小,发送优先级越高。

3. Advanced Parameters(高级参数)

  • Test Mode:Normal正常工作模式:外接 CAN 收发器,和其他硬件进行真实总线通信; 可选:Loopback 内部回环调试、Silent 总线监听抓包模式。