完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请教一下CAN的自动重发间隔是多长时间?
假设can上有一个节点,由于收不到ack一直在自动重发,那么现在如果有一个节点要上来就是从busoff恢复,他需要检测128次连续11个隐性位。如果有一个节点一直在自动重发,那么新的节点还能上来了吗? 如果一个节点从busoff上来的话,要经过128个连续11个隐性位,如果就算最快的一个位是1us,那么总时间也要1ms。如果一个节点一直在自动重发,1ms能发2-3帧左右。所以这个时候busoff那个节点没办法上来。这个情况怎么处理? |
|
相关推荐
1个回答
|
|
STM32G0B1 CAN自动重发间隔取决于CAN控制器的配置。通常,CAN控制器的自动重发间隔可以通过编程设置,以适应不同的应用场景。在STM32G0系列微控制器中,CAN控制器的自动重发间隔可以通过设置CAN_MCR寄存器中的TTC和TDC字段来调整。
关于您提到的问题,如果一个节点由于收不到ACK而一直在自动重发,确实可能会影响到其他节点的通信。在这种情况下,新的节点可能无法成功从busoff状态恢复。为了解决这个问题,可以考虑以下几个方面: 1. 优化网络拓扑:确保网络中没有过多的节点,以减少冲突和重发的可能性。 2. 调整自动重发策略:可以通过编程调整CAN控制器的自动重发间隔,以减少对其他节点的影响。 3. 错误处理机制:在CAN通信协议中,可以设计错误处理机制,以便在检测到错误时采取相应的措施,如降低发送速率、暂停发送等。 4. 监听机制:在CAN网络中,节点可以监听总线上的通信,以便在总线空闲时发送数据。这样可以减少冲突和重发的可能性。 5. 错误计数器:在CAN控制器中,通常会有一个错误计数器,用于记录节点的错误次数。当错误计数器达到一定阈值时,节点会自动进入busoff状态。可以通过监控错误计数器来调整发送策略,以减少错误发生。 总之,要解决这个问题,需要从多个方面进行优化和调整。通过合理的网络设计、调整自动重发策略、设计错误处理机制等方法,可以降低CAN网络中的冲突和重发,提高通信的可靠性。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1777 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1080 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1678 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
595浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
554浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 11:07 , Processed in 0.969225 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号