其他节点如何在 CAN 总线上确认传输的 CAN 消息?
How are transmitted CAN messages acknowledged on CAN bus by other nodes?
我知道显性确认位是由另一个节点传输的消息的接收方发送的。
我无法理解的是接收方是在接收到整个消息后发送单个显性位还是接收方发送相同的消息并将ACK位字段作为显性?
或者是在发送器发送数据帧时接收器将 ACK 字段驱动到不同的电压电平?
还有,两个CAN节点能确认同一条消息吗?如果是,那么如何?如果不是,那是为什么?
我需要澄清一下。
Or is it that the receiver drives the ACK field to a different voltage
level while the transmitter is transmitting the Data frame?
正确答案。
在 CAN 帧的确认槽中,发送器将总线设置为隐性电平。
每个没有错误地接收到帧的接收器将 CAN 总线驱动到确认槽中的显性状态。所以一个接收器就足以做到这一点。多个接收方确认消息并没有什么区别,因为一个就足以将 CAN 总线驱动到显性状态。
另一方面,发送器检测到 CAN 总线被驱动到显性状态,因此知道消息已被至少一个其他节点无误地接收到。
我知道显性确认位是由另一个节点传输的消息的接收方发送的。
我无法理解的是接收方是在接收到整个消息后发送单个显性位还是接收方发送相同的消息并将ACK位字段作为显性?
或者是在发送器发送数据帧时接收器将 ACK 字段驱动到不同的电压电平?
还有,两个CAN节点能确认同一条消息吗?如果是,那么如何?如果不是,那是为什么?
我需要澄清一下。
Or is it that the receiver drives the ACK field to a different voltage level while the transmitter is transmitting the Data frame?
正确答案。
在 CAN 帧的确认槽中,发送器将总线设置为隐性电平。
每个没有错误地接收到帧的接收器将 CAN 总线驱动到确认槽中的显性状态。所以一个接收器就足以做到这一点。多个接收方确认消息并没有什么区别,因为一个就足以将 CAN 总线驱动到显性状态。
另一方面,发送器检测到 CAN 总线被驱动到显性状态,因此知道消息已被至少一个其他节点无误地接收到。