在 FDCAN(灵活数据速率 CAN)协议应用中,通过 BRS(Bit Rate Switch)位切换仲裁段与数据段波特率,可实现高速数据传输。某客户反馈:当仲裁段波特率设为 1Mbit/s、数据段提升至 5Mbit/s 时,FDCAN 发送功能异常,降低数据段波特率后通信恢复正常。经波形分析与现场调试,最终定位问题根源为PCB Layout 设计不足以支撑高速波特率,导致 BRS 位切换时信号失真。本文详解故障排查、原理分析与解决方案,为 FDCAN 高速应用提供参考。
资料获取:FDCAN数据发送失败问题
1. 故障现象与基础环境
1.1 核心故障表现
- 波特率配置:仲裁段 1Mbit/s,数据段 5Mbit/s(启用 BRS 位切换);
- 故障现象:数据发送被中断,总线出现主动错误帧,FDCAN 硬件触发自动重传但仍失败;
- 异常特例:数据段波特率降低至 2Mbit/s 以下时,通信恢复正常;
- 回环测试:IC 内部回环模式下 5Mbit/s 传输正常,排除软件配置问题。
1.2 硬件与协议环境
- 主控芯片:支持 FDCAN 协议的 STM32 MCU(如 STM32H7、STM32G4 系列);
- 总线配置:标准 FDCAN 总线,终端电阻匹配(120Ω);
- 协议版本:CAN FD Extended Format(29 位标识符),启用 BRS 位(速率切换)。
2. 故障根源:BRS 位切换机制与信号失真
2.1 BRS 位的核心作用与工作原理
BRS(Bit Rate Switch)是 FDCAN 协议中实现速率切换的关键位,位于控制字段,功能如下:
- BRS=1(隐形位):数据段使用高速波特率,仲裁段保持低速波特率;
- BRS=0(显性位):仲裁段与数据段使用相同波特率;
- 切换逻辑:发送节点在 BRS 位的采样点切换至高速时钟模式,接收节点同步切换;CRC 界定符采样点时,所有节点恢复至仲裁段波特率。
2.2 BRS 位的特殊时序特性
BRS 位的位宽由两部分组成,时序计算示例如下(仲裁段 1Mbit/s,采样点 75%;数据段 2Mbit/s,采样点 80%):
代入数值:
代入数值:
2.3 故障逻辑链
客户 PCB Layout 存在以下问题(高速场景下被放大):
- 总线走线过长、线宽不一致,导致特征阻抗不匹配;
- 节点间距过大,总线分支长度超出高速传输允许范围;
- 接地不良或电源噪声干扰,加剧信号抖动;
- 这些问题导致 5Mbit/s 速率下,BRS 位信号失真,接收节点无法识别速率切换指令,进而触发总线错误帧,中断数据发送。
3. 故障排查关键步骤
第一步:排除软件配置问题
- 启用 IC 内部回环模式:5Mbit/s 传输正常,说明 FDCAN 外设配置、波特率寄存器设置、数据格式均无问题;
- 核对协议参数:确认 BRS 位使能、DLC(数据长度码)配置、错误处理机制(自动重传)均符合规范。
第二步:示波器波形分析(核心手段)
- 抓取总线波形:发现异常数据包在 BRS 位之后出现信号断裂,无后续 DLC 位信息,取而代之的是 CAN 协议标准错误帧;
- 放大 BRS 位细节:正常情况下 BRS 位(隐形位)应保持稳定电平,故障时 BRS 位出现毛刺、抖动或电平跳变异常,导致节点误判;
- 对比低速波形:数据段 2Mbit/s 时,BRS 位信号平稳,无失真现象,验证 “高速波特率与 PCB 不匹配” 猜想。
第三步:定位 PCB Layout 问题
通过对比客户 PCB 设计与 FDCAN 高速设计规范,发现以下违规点:
- 总线走线:长度超过 50cm,未采用差分走线,线宽从 0.3mm 突变至 0.5mm,特征阻抗偏离 100Ω±10%;
- 终端电阻:未靠近总线两端,距 MCU FDCAN 引脚过远(>10cm);
- 干扰源:FDCAN 总线与电源走线、高速信号线(如 SPI、UART)间距不足 3mm,无屏蔽措施。
4. 解决方案:PCB Layout 优化与设计规范
4.1 核心优化方向:提升信号完整性
(1)总线走线设计
- 长度控制:高速波特率(≥5Mbit/s)下,总线总长度不超过 30cm,分支长度不超过 5cm;
- 差分走线:采用等长差分走线,线宽 0.3~0.4mm,线间距 0.5~0.6mm(特征阻抗匹配 100Ω);
- 避免突变:线宽、线间距保持一致,不出现直角、锐角走线,采用 45° 角或圆弧过渡。
(2)终端电阻与节点布局
- 终端电阻:在总线两端各放置 120Ω 终端电阻,电阻距 MCU FDCAN 引脚不超过 5cm;
- 节点分布:所有节点均匀分布在总线上,避免星型拓扑,减少信号反射。
(3)抗干扰设计
- 间距要求:FDCAN 总线与电源走线、高速信号线间距≥5mm,或通过接地平面隔离;
- 电源滤波:MCU FDCAN 外设电源端添加 0.1μF 陶瓷电容 + 10μF 电解电容,滤除电源噪声;
- 接地处理:采用单点接地或星形接地,减少地环路干扰。
4.2 辅助优化:波特率与协议配置
(1)合理选择数据段波特率
- 若 PCB Layout 无法修改,可根据实际传输需求降低数据段波特率(如从 5Mbit/s 降至 3Mbit/s),在速率与信号完整性之间平衡;
- 调整采样点:高速波特率下,将数据段采样点设为 80%~85%,提升抗干扰能力(需所有节点统一配置)。
(2)协议参数优化
- 禁用 BRS 位:若无需高速传输,可设置 BRS=0,仲裁段与数据段使用相同波特率,避免速率切换风险;
- 错误处理:启用 FDCAN 错误状态监测,当检测到连续错误帧时,自动降低数据段波特率(软件自适应机制)。
5. 关键原理补充:FDCAN 高速传输的信号要求
FDCAN 数据段波特率提升后,信号上升沿 / 下降沿时间要求急剧提高:
- 5Mbit/s 波特率下,位宽仅 200ns,信号上升沿需控制在 20ns 以内;
- PCB Layout 的寄生电容、电感会延长信号边沿时间,导致电平采样错误;
- 终端电阻匹配不良会引发信号反射,在 BRS 位等关键节点叠加干扰,触发错误帧。
6. FDCAN 高速应用设计要点
- 先验证后定型:确定波特率配置前,先通过 PCB 样板测试不同速率下的通信稳定性,避免盲目提升波特率;
- 回环测试局限性:内部回环不经过物理总线,无法反映 PCB Layout 问题,需结合总线波形测试;
- 终端电阻不可少:高速传输下,终端电阻缺失或匹配不良会直接导致信号反射,引发 BRS 位异常;
- 参考官方规范:严格遵循 STM32 FDCAN 硬件设计指南,确保 PCB Layout 符合高速传输要求;
- 波形监测优先:遇到波特率相关故障,优先用示波器抓取 BRS 位、CRC 界定符等关键节点波形,快速定位信号问题。
FDCAN 数据段波特率提升后发送失败,核心原因是PCB Layout 设计未满足高速信号传输要求,导致 BRS 位切换时信号失真。这类问题的排查关键在于 “区分软件与硬件问题”:通过回环测试排除软件配置,通过波形分析定位信号异常,最终聚焦 PCB Layout 优化。
在 FDCAN 高速应用中,波特率并非越高越好,需结合 PCB 设计能力、总线长度、抗干扰措施综合选择。遵循本文的 PCB Layout 规范与波特率配置建议,可有效避免 BRS 位异常引发的通信故障,确保 FDCAN 总线在高速模式下稳定运行。
阅读全文
245