CAN总线速率调得太高会丢包?
用了500Kbit就偶尔收不到帧,是线缆问题,还是MCU处理不过来了?开双缓冲试试看效果。 500K我也丢过,降成250K就稳了。 是不是终端电阻没加? 线缆多长?超过10米就不稳了。 MCAN模式比bxCAN稳定些。 收数据用FIFO模式更安全点。 G431的CAN要开时钟别忘了。 是不是主从频率配得不一样? 有没有试过抓CAN帧看看具体丢哪? 我觉得滤波器配错也会丢。 CAN总线速率提高后,信号在传输线上的衰减会加剧,可能导致接收端无法正确识别信号电平,进而引发丢包。 CAN通信依赖精确的位时钟同步。速率过高可能导致节点间时钟偏差累积,使得数据帧的位对齐出现偏差,最终导致丢帧 改用屏蔽双绞线 高速率信号对电磁干扰(EMI)更敏感。噪声可能导致信号畸变,使接收节点误判为错误帧或直接丢包 CAN 总线的信号传播需要一定时间,速率提高后,每一位数据的传输时间缩短。如果总线长度较长,信号从发送节点传播到接收节点的时间占每一位数据传输时间的比例增大。 增加滤波和屏蔽措施,减少电磁干扰对信号的影响。 高速率下,若总线上的节点数量过多或消息发送频率过高,可能导致总线带宽被过度占用,引发消息冲突和丢包。 一般情况你再快也快不了了啊
你要是距离比较长,是容易丢包的,但是有协议在,有校验就不怕
页:
[1]
2