当CAN使用多播时,节点是否参与ACK过程?

huangapple go评论57阅读模式
英文:

Is a node participating in the ACK process when CAN uses multicasting?

问题

CAN标准ISO 11898-1规定,在节点传输帧时,网络中的所有节点(也称为CAN屏蔽)将在特定位置发送一个主导的ACK位,以指示帧相对于CRC的一致性。未被确认的帧被视为已损坏。

与此同时,该标准规定要进行多播(发送到网络中的多个节点)。就硬件而言,我只能感知到广播(发送到网络中的所有节点),这是多播的一个子集:消息的过滤不是在节点本身上进行,而是在连接到其CAN屏蔽接口的设备的软件上进行。

如果我的总线上有两个节点,并且设备B正在过滤一个标识符,而设备A正在传输具有另一个标识符的帧,那么设备B会确认该帧吗?

根据我的理解,应该会确认,但我无法进行测试,希望听听您的想法。

英文:

The CAN standard ISO 11898-1 states that all nodes (aka CAN shield) in a network will send a dominant ACK bit at the specific position during the node transmitting a frame to indicate the consistency of the frame w.r.t to the CRC. An unacknowledged frame is seen as corrupted.

At the same time the standard states to be multicasting (sending to multiple nodes in the network). Hardware-wise I only perceived broadcasting (it is sending to all nodes in the network), which is a subset of multicasting: the filtering of messages occurs not in the nodes itself but on the software of the device connected to its CAN shield interface.

If I have two nodes on my bus and device B is filtering for an identifier, while device A is transmitting a frame with another identifier. Will the frame be acknowledged by device B?

From my understanding it should, but I was not able to test this and would like to hear your thoughts.

答案1

得分: 0

在CAN属性中,它指出:

  • 所有的帧传输都是以“广播”方式完成的
  • 通过接收过滤进行“多播”帧传输

因此,由于所有(活动的)节点都会接收所有的帧,只需要两个节点就足以使用标识符设备B进行消息确认。

英文:

In CAN properties it states

  • all frame transfer is done as broadcast
  • multicast frame transfer by acceptance filtering

Therefore, as all (active) nodes are receiving all frames, two nodes are sufficient to acknowledge a message with an identifier device B filters out.

huangapple
  • 本文由 发表于 2023年8月9日 09:19:00
  • 转载请务必保留本文链接:https://go.coder-hub.com/76863991.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定