[其他ST产品] FDCAN 数据段波特率增加后发送失败的问题分析

[复制链接]
33|0
STM新闻官 发表于 2026-6-20 22:13 | 显示全部楼层 |阅读模式
1. 问题描述客户在使用 FDCAN 协议,仲裁段波特率配置位 1Mbit/s,数据段波特率配置为 5Mbit/s时,发现 FDCAN 发送功能异常。

2. 问题的测试和分析首先建议客户使用 IC 内部回环模式进行测试,发现 5M 时没有问题,确认不大可能是软件上的问题。之后同客户进行现场调试,观察 FDCAN 波形并分析问题产生的具体原因。建议客户降低数据段波特率进行测试,发现降低数据段波特率后,可以正常通讯,下面是波特率降下来后正常通讯的数据包的波形:


166136a369f605ae59.png

2.1. 对 FDCAN 总线上数据包的波形进行分析
使用示波器抓取 FDCAN 有问题的波形并进行分析,下面是有问题的波形,红色框中是两个有问题的数据包,发生错误时数据包发送会被停止(红色箭头部分),由于使能了FDCAN 的数据包发送失败的自动重传功能,因此,数据包没成功发送时 FDCAN 硬件会再次自动重传数据包。

图1. 有问题的波形
538386a369f8068903.png
对上图的波形进行放大:
840286a369f94334e7.png
继续放大:
353836a369faa91b70.png
把上图红色箭头部分的波形继续放大,可以看到下面的波形,图中红色箭头指向的为BRS 位,正是在 BRS 位时 FDCAN 数据包传输出了问题,发现数据出错后 FDCAN 外设将停止发送数据并发出主动错误帧到总线上:
115676a369fbe2bca2.png
客户正常的 FDCAN 数据包的前半部分协议解析如下图:
995096a369fd041785.png
938416a369fdcf0b92.png
1196a369fe67a617.png
客户产品在 FDCAN 发出 BRS 位的后半部分出现了问题,BRS 之后的 DLC 位信息没有出现在总线上,出现的是 CAN 协议中的错误帧。BRS (Bit Rate Switch) 为位速率转换开关,当 BRS 为隐形位(1)时,表示转换可变速率,即发送节点在 BRS 位的采样点,将会切换到高速传输的时钟模式,后续其他接收节点也必须使用转换位时钟模式。在 CRC 界定符的采样点,所有节点的波特率将会再切换回仲裁场的波特率。也就是说,所有 CAN FD 节点都有两种类型的波特率。例如:低波特率 1MBit/s,采样点 75%,高波特率 2MBit/s,采样点 80%;当低速率向高速率切换,BRS 位宽如下:BRS 位宽=( 1us ×75%)+( 0.5us ×20%)= 850nsBRS 位宽等于低波特率位的宽度中采样点之前的段加上高波特率位的宽度中采样点之后的段。因此 BRS 位会存在波特率切换的过程。客户产品问题就是出现在 BRS 位上,由于 PCB layout 问题,造成 BRS 高速段 5Mbit/s条件下波形异常,进而导致通讯异常。

3. 结论当 FDCAN 数据段波特率增加时,也同时需要更好的 PCB Layout 来支撑。如果数据段波特率增加时通讯不正常,降低波特率数据通讯就可以正常进行时,建议检查 PCB Layout。
93616a369ff9f06e7.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:意法半导体(中国)投资有限公司
简介:您的嵌入式应用将得益于意法半导体领先的产品架构、技术、多源产地和全方位支持。意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器。

1625

主题

2134

帖子

25

粉丝
快速回复 在线客服 返回列表 返回顶部
0