[STM32F1] CAN通信压力一上来就开始掉帧

[复制链接]
93|20
万图 发表于 2025-12-27 07:22 | 显示全部楼层 |阅读模式
CAN总线在低负载时很稳定,一旦节点多、频率高,就开始偶发掉帧。错误计数会上升但不至于总线关闭,感觉像软件处理不过来,又不太像单纯中断慢。
mintspring 发表于 2026-1-2 20:01 | 显示全部楼层
总线负载超阈值、接收 FIFO 溢出、中断 / 应用层处理延迟、物理层信号异常
heisexingqisi 发表于 2026-1-8 16:23 | 显示全部楼层
总线层丢帧:仲裁失败、错误帧导致报文被丢弃(CAN 控制器自动重发,重发失败才丢)
cr315 发表于 2026-1-8 16:41 | 显示全部楼层
STM32F1的CAN控制器硬件资源有限,在高负载情况下,若发送或接收速度超过硬件处理能力,可能导致数据丢失。
duo点 发表于 2026-1-8 17:41 | 显示全部楼层
终端电阻缺失或值不正确可能导致信号失真,进而引发丢帧。
elephant00 发表于 2026-1-8 16:42 | 显示全部楼层
波特率设置过高?
flycamelaaa 发表于 2026-1-8 18:42 | 显示全部楼层
滤波器配置不当?
jcky001 发表于 2026-1-8 19:43 | 显示全部楼层
CAN中断优先级若低于其他高频中断,可能导致CAN中断被延迟处理,进而引发丢帧。
onlycook 发表于 2026-1-8 20:43 | 显示全部楼层
是不是总线负载过重
powerantone 发表于 2026-1-8 21:44 | 显示全部楼层
电源波动或噪声可能影响CAN节点的正常工作,导致丢帧或通信错误。
probedog 发表于 2026-1-8 21:44 | 显示全部楼层
在多线程环境下,若线程优先级设置不当或线程竞争条件存在,可能导致数据处理线程无法及时响应,引发丢帧。
solty 发表于 2026-1-8 22:45 | 显示全部楼层
总线两端安装120Ω的终端电阻
spicy 发表于 2026-1-8 17:14 | 显示全部楼层
建议根据总线长度、节点数量和电气环境等因素合理设置波特率。
stormwind123 发表于 2026-1-8 18:21 | 显示全部楼层
调整中断优先级,将CAN中断优先级设置为高于其他高频中断
七毛钱 发表于 2026-1-8 18:15 | 显示全部楼层
降低总线负载。减少不必要的消息发送,或合并多个小消息为一个大消息以降低总线负载。
今天会画卧蚕吗 发表于 2026-1-8 19:17 | 显示全部楼层
STM32F1的CAN控制器仅有3个发送邮箱,当多个节点同时发送且消息频率过高时,邮箱可能被占满,导致新消息无法及时发送,触发仲裁丢失或掉帧。即使未达到总线关闭条件,频繁的仲裁失败也会导致错误计数上升。
内政奇才 发表于 2026-1-8 19:18 | 显示全部楼层
中断服务程序耗时过长?
又见江南雨 发表于 2026-1-8 20:21 | 显示全部楼层
FIFO可能溢出会导致后续消息丢失。
在海边聆听 发表于 2026-1-8 21:20 | 显示全部楼层
总线两端未安装120Ω终端电阻,或电阻接触不良,可能会导致信号反射和失真。
zhuomuniao110 发表于 2026-1-9 10:56 | 显示全部楼层
总线负载过高、仲裁失败 / 错误重传、接收 FIFO 溢出、硬件 / 软件处理瓶颈、电气层异常。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

206

主题

8327

帖子

1

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