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

CAN FD 跑不起来?别只怪线缆,看看采样点与位时序

摘要:CAN FD 号称能跑到 5Mbps,实际一上 2Mbps 就丢包?不是收发器不行,而是 CAN FD 的采样点要求比经典 CAN 严苛得多。本文解析 CAN FD 的“双波特率”陷阱与物理层升级必要性。


一、问题描述(现象)

**经典 CAN 500kbps 稳如老狗;

换成 CAN FD,仲裁场 500k,数据场 2Mbps;

示波器看波形有严重变形,ACK 经常不对。**

很多工程师的排查方向是:

  1. 换了“高速”CAN 收发器?

  2. 波特率算错了?

  3. 线缆太长?


二、原理分析

1. 物理模型

CAN FD 有两个波特率:

  • Arbitration Phase(仲裁场):慢速(如 500kbps)。

  • Data Phase(数据场):高速(如 2Mbps)。

| SOF | Arbitration | Control | Data (CRC) | ACK | | 500k | 500k | 2M | 2M | 500k|

2. 核心参数

  • 采样点(Sample Point):CAN FD 要求极其精准,通常在75% ~ 80%

  • Synchronization Jump Width (SJW):必须 ≥ 1。

  • Propagation Segment (PROP):用于补偿物理延迟。

3. 反直觉真相

CAN FD 不是“经典 CAN 的简单加速版”。

  • 线缆要求更高:普通 120Ω 双绞线通常只能跑到 1Mbps。

  • 收发器必须支持 FD:老的 CAN 收发器(如 TJA1050)会把 FD 的高速脉冲削掉。

  • 位时序必须重新算:FD 的 BS1/BS2 比例和经典 CAN 完全不同。


三、工程级解决方案

方案 1:物理层升级(必须做)

如果要跑 CAN FD > 1Mbps:

项目

经典 CAN

CAN FD (>1Mbps)

线缆

普通双绞线

低电容、屏蔽双绞线

收发器

TJA1050

TJA1044 / TCAN1044

终端电阻

120Ω

120Ω(精度 ±1%)

方案 2:位时序精确计算(示例)

以 STM32 + 72MHz + 数据场 2Mbps 为例:

  1. 目标位时间 = 500ns。

  2. 选 Prescaler = 9 → tq = 125ns。

  3. 500ns / 125ns = 4 tq。

  4. 分配:Sync=1, BS1=2, BS2=1。

关键:​ 采样点在 75%(3/4),非常激进,任何信号反射都会导致采样错误。

方案 3:开启位时序重同步

确保 SJW 不为 0。

hfdcan.Init.SyncJumpWidth = 1; // 至少为 1

四、选型避坑建议

  1. 不要混用:一条总线上,只要有一个节点不支持 FD,整个 FD 网络就会瘫痪。

  2. PCB 布局:CAN FD 信号走线尽量短,避免过孔。

  3. 共模扼流圈:必须选用支持高频(> 10MHz)的型号。


五、总结 Checklist

  • [ ] 是否使用了支持 FD 的收发器(如 TJA1044)?

  • [ ] 是否使用了低电容屏蔽双绞线?

  • [ ] 数据场采样点是否控制在 75%~80%?

  • [ ] 是否确认所有节点都支持 CAN FD?


六、写在最后(关注我,少走弯路)

我是 gqqsherry,一个拒绝调包、专注底层逻辑的嵌入式工程师。

CAN FD 是汽车电子迈向高速化的必经之路,但它的物理层门槛比经典 CAN 高了一个台阶。

关注我的专栏《嵌入式底层避坑指南》,我会持续更新 CAN、UART、SPI 等外设的真实调试案例量产级解决方案

👉下一篇预告:《CAN 总线有波形但收不到数据?别只怪 ID,看看过滤器(Filter)》


References

  • ISO 11898-2:2016 – CAN FD protocol

  • NXP Application Note AN1798 – CAN FD Bit Timing Calculation


如果你在调试 CAN FD 时遇到过“示波器波形看着对,但数据就是不对”的情况,欢迎在评论区交流。

原创文章,转载请注明出处。

http://www.jsqmd.com/news/956736/

相关文章:

  • 物料清单BOM在橙色云CRDE智橙PLM产品中是如何实现协同的?
  • Python一键批量还原luac/LuaJIT字节码为可读Lua源文件
  • Libre Barcode终极指南:开源条码字体一站式解决方案
  • 2026年温州焊接闸阀生产厂家选择指南:聚焦核心能力与价值 - 新闻快传
  • HarmonyOS Connect深度解析:从统一方案到开发者认证,如何重塑物联网开发
  • KiCad封装库终极指南:如何一键获取500+专业封装库
  • Hudi核心技术解析:文件布局与事务机制深度剖析
  • 2026年夹克生产厂家:解读三大核心发展趋势 - 资讯快报
  • CANN/asc-devkit SIMD矢量比较函数asc_le文档
  • NuExtract-1.5-smol滑动窗口技术揭秘:超长文本处理的高效解决方案
  • 紧急修复!Tails 7.8.1 发布,修复 Linux 内核与 Tor 客户端安全漏洞
  • 科研工作者的知识管理革命:用Obsidian模板3天建立高效研究系统
  • HR管理和本体层:人员管理与跨系统打通的关键一步
  • Ultralytics YOLO关键点检测:高效数据集标注与实战指南
  • 2026年6月无人机培训评估决策指南:关键指标解析与热门优选 - 新闻快传
  • pandas_ta 库指标分类
  • 六轴机械臂C++逆解程序:输入位姿输出全部8组关节角
  • SGuard限制器:5分钟解决腾讯游戏卡顿的终极方案
  • 高效B站视频下载实战指南:开源工具BilibiliDown深度解析
  • 从酒鬼掉悬崖到推荐系统:用Python模拟Random Walk算法,理解PageRank的基石
  • AI农业革命:数字田园的下一个十年
  • Apollo-6B论文精读:轻量化医疗LLM的创新突破与未来方向 [特殊字符]
  • 性能异常排查:复杂 CSS 转换动画在低端渲染引擎下导致黄金比例应用组件卡帧
  • 从模组混乱到游戏畅玩:BG3 Mod Manager 终极指南
  • 5分钟完成Mac Boot Camp驱动自动安装:Brigadier终极解决方案
  • 如何一键备份QQ空间历史说说:开源工具的完整指南
  • 【信息科学与工程学】计算机科学与自动化——第十篇 芯片设计30 芯片中的数学5
  • 从录制到去重,一套直播素材AI处理流程分享
  • 卫星多天线数据传输下水库水情测报编解码技术与方法解析【附数据】
  • SpaceX启动IPO路演,估值近2万亿美元,马斯克或成首个万亿富翁?