当前位置: 首页 > news >正文

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 总线监听抓包模式。
http://www.jsqmd.com/news/1091624/

相关文章:

  • 为什么92%的ChatGPT Plus订阅在第3个月自动降级?国内用户必须知道的OpenAI账户健康度监测协议(含自动续费预警脚本开源)
  • 如何在Windows上快速搭建AirPlay 2投屏服务器:完整开源解决方案
  • Spring Boot 过滤器链执行顺序
  • ⚡SimpleDAO 企业实战教程(06) mergeParams 多组条件合并
  • GPT 低价订阅真的划算吗?长期用户先看这几个风险
  • 百考通帮你去AI化保留原创灵魂
  • 基于Delaunay三角剖分与排斥算法的Fillinger智能填充技术深度解析
  • 学习的意义是什么?
  • DLSS Swapper终极指南:一键智能管理游戏图形技术,彻底释放显卡性能
  • java se Java SE基础不牢?Eclipse这工具能让你从菜鸟飞成老鸟
  • 软件追踪管理中的分布式跟踪
  • ncmdump终极指南:一键解锁网易云音乐NCM加密格式,重获音乐自由
  • 想要“无感知复用“?架构里必须有闲置计时器和会话保持机制
  • 2026年番禺成人如何选择优质口才培训机构
  • 告别命令行:用MongoDB Compass图形化工具轻松玩转数据增删改查与迁移
  • 微服务架构下的HTTP请求头“大小写”丢失排查之旅
  • 理解 Agent 中的 Slash Command:从概念到自定义命令实践
  • 开放集成体系:即时通讯成为效率引擎
  • 如何快速掌握时间序列预测:iTransformer终极解决方案指南
  • 苹果设备激活锁终极解决方案:applera1n图形化工具完整指南
  • 在 Django 中落地领域驱动设计 (DDD) 与 Service 层抽离
  • 零基础非技术员工怕学不会AI?从日常办公任务自动化开始构建个人工作流的实战指南
  • 从报文交换到纳秒对齐:深入解析gPTP的硬件级时间同步机制
  • [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
  • 服务治理实践
  • 每月68元的专业版豆包值不值?实测:帮做网站、汇总信息,效率惊人!
  • C++ ODB ORM 完整使用指南(从入门到实战)
  • 3分钟搞定Mac Boot Camp驱动:跨平台自动下载安装完整指南
  • 云计算中的资源编排与自动化运维
  • 《LangGraph 开发AI Agent 实践》—— 手把手教你构建有状态的复杂工作流智能体