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

STM32G0B1的CAN自动重发

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

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

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

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

收藏 评论3 发布时间:2024-4-24 10:16

举报

3个回答
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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版