你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32G0B1的CAN自动重发

[复制链接]
吃绿色菜 提问时间:2024-4-24 10:16 / 未解决

请教一下CAN的自动重发间隔是多长时间?

假设can上有一个节点,由于收不到ack一直在自动重发,那么现在如果有一个节点要上来就是从busoff恢复,他需要检测128次连续11个隐性位。如果有一个节点一直在自动重发,那么新的节点还能上来了吗?

如果一个节点从busoff上来的话,要经过128个连续11个隐性位,如果就算最快的一个位是1us,那么总时间也要1ms。如果一个节点一直在自动重发,1ms能发2-3帧左右。所以这个时候busoff那个节点没办法上来。这个情况怎么处理?

点评

ack错误不会进入busoff,但是自动重发的间隔很短,导致另一个节点触发不了can中断  发表于 2024-8-15 13:29
收藏 评论4 发布时间:2024-4-24 10:16

举报

4个回答
butterflyspring 回答时间:2024-4-24 14:23:46
自动重发那个节点可以设错误计数器,到了一定数量就busoff。

一个节点从 bus off 到重新上线,是要等待129给IDLE 状态,这是协议规定的,没法减少。

STM32G0 fdcan BUS OFF RECOVERY 1.PNG
吃绿色菜 回答时间:2024-4-24 17:14:07

butterflyspring 发表于 2024-4-24 14:23
自动重发那个节点可以设错误计数器,到了一定数量就busoff。</p>
<p>一个节点从 bus off 到重新上线,是要等待129 ...

感谢支持!

如有只有一个节点的话,他的错误就是ack错误,这个应该是不会进入busoff,这个是标准规定的,所以才会一直发报文

ca6889186cb10ef8337d474cbe3f020.jpg

按11898描述

8baf6e95b9bcd7fde48550e8bb3e995.png计数器在这两种特例的情况下 是不会累加的

butterflyspring 回答时间:2024-4-25 10:00:32
吃绿色菜 发表于 2024-4-24 17:14
[md]感谢支持!

如有只有一个节点的话,他的错误就是ack错误,这个应该是不会进入busoff,这个是标准规 ...

有个 timeout counter, 用这个试试

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版