English
Language : 

70353C Datasheet, PDF (63/76 Pages) Microchip Technology – Section 21. Enhanced Controller Area Network
Section 21. Enhanced Controller Area Network (ECAN™)
21.10
ECAN ERROR MANAGEMENT
21.10.1 CAN Bus Errors
The CAN specification defines five different ways of detecting errors:
• Bit Error
• Acknowledge Error
• Form Error
• Stuffing Error
• CRC Error
The bit error and the acknowledge error occur at the bit level; the other three errors occur at the
message level.
21.10.1.1 BIT ERROR
A node that is sending a bit on the bus also monitors the bus. A bit error is detected when the bit
value that is monitored is different from the bit value that is sent. An exception is when a
recessive bit is sent during the stuffed bit stream of the Arbitration field or during the ACK slot. In
this case, no bit error occurs when a dominant bit is monitored. A transmitter sending a passive
error frame and detecting a dominant bit does not interpret this as a bit error.
21.10.1.2 ACKNOWLEDGE ERROR
In the Acknowledge field of a message, the transmitter checks if the Acknowledge Slot (which it
has sent out as a recessive bit) contains a dominant bit. If not, this implies that no other node has
received the frame correctly. An acknowledge error has occurred, and as a result, the message
must be repeated. No error frame is generated in this case.
21.10.1.3 FORM ERROR
A form error is detected when a fixed-form bit field (EOF, Inter-frame Space, Acknowledge
Delimiter or CRC Delimiter) contains one or more illegal bits. For a receiver, a dominant bit during
the last bit of EOF is not treated as a form error.
21.10.1.4 STUFFING ERROR
A stuffing error is detected at the bit time of the sixth consecutive equal bit level in a message
field that should be coded by the method of bit stuffing.
21.10.1.5 CRC ERROR
The node transmitting a message computes and transmits the CRC corresponding to the
transmitted message. Every receiver on the bus performs the same CRC calculation as the
transmitter. A CRC error is detected if the calculated result is not the same as the CRC value
obtained from the received message.
21.10.2 Fault Confinement
Every CAN controller on a bus tries to detect the errors outlined above within each message. If
an error is found, the discovering node transmits an error frame, thus destroying the bus traffic.
The other nodes detect the error caused by the error frame (if they have not already detected the
original error) and take appropriate action (that is, discard the current message).
The ECAN module maintains two error counters:
• Transmit Error Counter (CiEC<15:8>)
• Receive Error Counter (CiEC<7:0>)
There are several rules governing how these counters are incremented and/or decremented.
That is, a transmitter detecting a fault increments its transmit error counter faster than the
listening nodes will increment their receive error counter. This is because there is a good chance
that it is the transmitter that is at fault.
Note: The error counters are modified according to the CAN Specification 2.0B.
21
© 2008-2011 Microchip Technology Inc.
DS70353C-page 21-63