Data consistency
The CAN protocol prescribes — for reasons of network-wide data consistency — that if the error-detecting CAN node is experiencing a local disturbance, it must inform all CAN nodes connected to the CAN network. The error-detecting CAN node transmits an error signal (error flag) for this purpose, which is made up of six dominant bits. This is an intentional violation of the bit stuffing rule, and it generates a bit stuffing error.
Error flags
Transmission of an error flag ensures that all other CAN nodes will also transmit an error flag (secondary error flag) and thereby also terminate the regular data transmission just like the sender of the primary error flag. Depending on the situation, the primary and secondary error flags might overlap.
Error Delimiter
Transmission of an error flag is always terminated by an error delimiter. This consists of eight recessive bits. The error delimiter replaces the ACK delimiter and the EOF of a regular message transmission, so that together with the obligatory transmission pause (ITM — Intermission) on the CAN bus, this results in eleven recessive bits (bus-idle identifier).
Close error handling
Error handling is completed by the sender of the interrupted CAN message. After the ITM, it attempts to transmit the interrupted CAN message again. The figure “Error Handling” summarizes all actions that are taken in a CAN network after an error is detected. The interactive animation “Bit Monitoring Error” invites you to interactively study error handling based on the example of a bit monitoring error. Because of priority-driven bus access there is no guarantee of an immediate repetition. In the best case, a time period of 17 bit times elapses from error detection to resending (primary error flag, error delimiter, ITM). It takes 23 bit times if the primary and secondary error flag do not overlap. It takes 31 bit times if the CAN node is in the error-passive state. In this state a CAN node has to wait the so-called Suspend Transmission Time until it may access the CAN bus again. The Suspend Transmission Time is a prescribed transmission pause of 8 bits.
Last modified: Tuesday, 8 March 2022, 12:02 PM