1
\$\begingroup\$

Most controllers have a "Listen Only Mode" or "CANalyzer Mode" in which CAN module doesn't acknowledge any message but it will read the message silently.

Assuming there is only two nodes on the bus configured at Same baud rate: Node A is Active and other node, Node B, is in "Listen Only" mode.

When Node A will transmit a message, as there is no other node on bus, it will get ACK_SLOT error and message transmission will fail. My question is

  1. Should Node B get message correctly OR should it discard as message is not completed.

  2. If a node doesn't get ACK for a message, does it transmit CRC or stops the message transmission there?

  3. If it stops message transmission immediately, in above case, Node B will not have complete message i.e. without CRC and Stop bit. Shouldn't it discard the message then?

\$\endgroup\$
1
\$\begingroup\$

Node B will discard the message. If it is not ACKed it's not a valid message. Node A will then retransmit and increase its error counters until it gets to the point it goes off the bus.

The ACK bits are after the CRC so your questions 2 and 3 are not relevant - CRC is always transmitted.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.