我们偶尔会看到 CAN 总线数据包丢失。 我们确实比较了波形、但它看起来良好情况和不良情况之间的差异不大。
当我阅读应用报告 《控制器局域网(CAN)简介》时、我注意到 CAN 总线数据包用于短数据包。
1) 1)我们使用的有效载荷似乎通过多个 CAN 总线数据包进行传输、这意味着一个高级数据包被斩波为3-4个 CAN 总线数据包。
您是否在此问题上看到任何问题?
2) 2)我们还简化了 CAN 总线数据包、只需将一个高级数据包发送到接收器、然后接收器发回 ACK。
总 CAN 总线数据包约为16个 CAN 总线数据包、持续时间~700ms。 在本例中、我们仍然看到问题?
3) 3) CAN 总线是否要求接收器端将整个 CAN 总线数据包作为 ACK 发送给发送器? 从应用报告中可以看到、接收端只需翻转 ACK 位即可通知发件人。
但是、正如我从示波器中看到的、它看起来好像在一个 CAN 总线数据包之后、接收器端发送 ACK 作为 CAN 总线数据包、而不仅仅是简单的 TX 信号下降。 例如、在屏幕截图中。 红圈1应该是一个高级数据包、您可以看到来自 D0的第一个 TX、然后 D3切换一个 ACK 位(我从应用手册中的理解是、这是通知发送者的 ACK 位)。 但是、在这之后、我可以看到 D3发送了另一个 CAN 总线数据包。 CAN 总线协议是否需要这样做?
非常感谢您的帮助。
