CAN总线的帧确认

问题描述 投票:0回答:1

CAN总线上的发送方如何知道某个节点没有正确接收数据?

我目前正在学习CAN总线的功能。根据我目前所看到的情况,一个接收者在成功获取数据包时,会将总线驱动到一个主导状态,一个接收节点就足以完成这个任务。但是,在预定的接收者没有成功获得数据包而其他接收者成功获得数据包的情况下,如何让发送者知道这种情况,以便其重新发送数据包?

非常感谢任何帮助,对这个话题进行一些澄清。谢谢您的帮助。

can-bus
1个回答
0
投票

除非你实现了更高一层的协议,否则发送方是无法知道的。原始CAN帧中的ACK槽允许发送方检测它(而不是接收器)是否有总线问题。如果发送方没有采样到ACK,它可以得出结论:"在总线上没有人听到我的声音。也许我的物理连接断开了,或者是完全出了问题。"

例如在CANopen中,如果一个预期的PDO数据包没有按时到达,一般是接收方的工作是抱怨。虽然在CAN总线中谈主从是不正确的,但你指定一个主角色的设备可以被编程为期望从属的PDO报告包定期到达,如果它们没有在预期的时间窗口内到达,可以上升一个错误标志。

© www.soinside.com 2019 - 2024. All rights reserved.