4
\$\begingroup\$

I am reading the CAN spec and it says the following about data consistency:

Data Consistency: Within a CAN network it is guaranteed that a message is simultaneously accepted either by all nodes or by no node. Thus data consistency of a system is achieved by the concepts of multicast and by error detection

Is my understanding that when no node accepts the message that the transmitter will send the message again and that the error count will increment correct?

Does the transmitter know that all nodes accepted the message based upon the acknowledge bit by the receivers? How does the transmitter know that all nodes sent this acknowledge bit on the bus and not just some of the nodes?

\$\endgroup\$
5
\$\begingroup\$

The transmitter doesn't know if all the nodes acknowledged the message during the ACK bit.

However, any node which has not received the message correctly will create an error-frame which all nodes will see - they will then discard the message. The sender will then retransmit.

| improve this answer | |
\$\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.