In: Electrical Engineering
How does CAN protocol ensure the integrity of the data frame, making it suitable for the harsh environment like an automobile?
CAN(Controller Area Network) protocol is a communication protocol which enables the communication between ECUs(Electric Control Units) of an automotive without having complex wiring system to all ECUs.
There are several benefits of CAN, but to be specific to your question, CAN is a centralized system that allows a centralized error diagnosis and configuration across all ECUs. Every node on the network has a CAN controller chip and is therefore able to decide if a message is relevant or if it should be filtered or processed. This structure allows modifications to CAN networks with a negligible impact on the overall system.
Now going to the structure of CAN , standard CAN is an
11 bit identifier, there is a
Acknowledgement(ACK) bit in those 11 bits. This is
a recessive(low) bit and every node in the network receiving an
accurate message overwrites this bit in the original message with a
dominant(high) bit which indicates an error-free message has been
sent. When an erroneous message is detected, this bit is left
recessive(low) by the receiving node. The message is discarded and
the sending node resends the message after rearbitration. In this
way, each node acknowledges (ACK) the integrity of its data. ACK is
2 bits,
one is the acknowledgment bit and the second is a delimiter.This
addressal of correctness at each node level for a particular
message allows CAN to work flawlessly in a complex environment like
an automotive with multiple nodes(ECUs).