CAN总线上的发送器如何知道节点未正确接收数据?
我目前正在学习CAN总线的功能。根据我到目前为止所看到的,当接收器成功地获得分组时,接收器将总线驱动到主导状态,并且一个接收节点就足以完成这一任务。但是,如果目标接收方未成功获取数据包,而其他接收方成功获取数据包,如何让发送方知道这种情况,以便它可以重新传输数据包?
在这个主题上提供一些清晰的帮助是非常感谢的。谢谢。
发布于 2020-06-10 13:40:15
除非你实现一个更高层的协议,否则发送者不会知道这一点。原始CAN帧中的ACK插槽允许发送方检测它(而不是接收方)是否有总线问题。如果发送者没有对ACK进行采样,它可以得出结论:“在总线上没有人听到我的声音。可能是我的物理连接断开了,或者有什么东西完全错了。”
例如,在CANopen中,如果预期的PDO数据包没有按时到达,通常是接收者的工作。尽管在CAN总线中讨论主机和从机是不正确的,但可以对分配了主机角色的设备进行编程,使其等待来自从机的周期性PDO报告数据包,并且如果这些数据包没有在预期的时间窗口内到达,则会发出错误标志。
https://stackoverflow.com/questions/62293781
复制相似问题