【发布时间】:2019-02-13 18:27:48
【问题描述】:
我知道一个显性确认位是由另一个节点传输的消息的接收者发送的。
我无法理解的是,接收方是在接收到整个消息后发送单个显性位还是接收方发送相同的消息,其中 ACK 位字段为显性?
或者是接收器在发送数据帧时将 ACK 字段驱动到不同的电压电平?
另外,两个 CAN 节点可以确认相同的消息吗?如果是,那么如何?如果不是,那为什么?
我需要澄清一下。
【问题讨论】:
-
这里的接收器是指物理级别的,表示任何 ECU 接收到具有正确填充位和 CRC 的 CAN 帧,而不仅仅是设置了实际接收过滤器并使用消息内容的那个。
-
实际发送显性 ack 位的 ECU 和只读取消息内容的 ECU 之间有区别吗?基本上,我无法得到这条线。 “不仅仅是设置了实际接收过滤器并使用消息内容的那个。”
-
任何接收到 CAN 帧的 ECU 都成功设置了 ACK 位,即使高层没有接收/使用该消息。例如考虑一个 BasicCAN 邮箱,它在 SW 中过滤掉 CAN 消息。 ACK 位处理是 CAN 协议物理层的事情。