Five mechanisms to detect an error

To detect corrupted messages, the CAN protocol defines five mechanisms: bit monitoring, monitoring of the message format (Form Check), monitoring of the bit coding (Stuff Check), evaluation of the acknowledgement (ACK Check) and verifying the checksum (Cyclic Redundancy Check).

Tasks for sender and receiver

The bit monitoring and ACK check error detection mechanisms are performed by the sender. Independent of acceptance filtering, the receivers perform the form check, stuff check and cyclic redundancy check. The figure “Error Detection” shows which fields of a data or remote frame are affected by the individual error detection mechanisms.

Stuff check,
Receiver

The stuff check serves to check the bit stream. The CAN protocol specifies that the sender must transmit a complementary bit after five homogeneous bits — for synchronization purposes. There is a stuffing error if more than five homogeneous contiguous bits are received.

Bit monitoring,
Sender

Within the framework of bit monitoring, the sender compares the sent bit level with the actual bus level. A bit error exists if the sender detects a discrepancy between the two levels. Bit monitoring ensures that all global errors and all local errors occurring at the sender are detected.

Form check,
Receiver

The form check serves to check the format of a CAN message. Each CAN message always exhibits the same bit sequences at certain positions. They are the CRC delimiter, ACK delimiter and EOF. Senders always transmit these message components recessively. A format error exists if a receiver detects a dominant bus level within one of these message components in the Form Check.

Cyclic Redundancy Check (CRC),
Receiver

In the cyclic redundancy check (CRC) the polynomial R(x) associated with the arriving data or remote frame should equal a multiple of the generator polynomial G(x) specified by ISO 11898-1. If this is not the case (CRC error), then the data or remote frame was corrupted during its transmission.

ACK check,
Sender

The acknowledgement mechanism defined in the CAN protocol specifies that all receivers must acknowledge every arriving CAN message right after the cyclic redundancy check. A single positive acknowledgement is sufficient to signal to the sender that at least one receiver received the CAN message it transmitted correctly. If not a single positive acknowledgement arrives at the sender, then an acknowledgement error has occurred (ACK error).

Last modified: Wednesday, 22 September 2021, 4:09 PM