CAN is a multi-master bus with an open, linear structure with one logic bus line and equal nodes. Instead of point to point wiring, one serial bus is used to connect all the control systems. The number of nodes is not limited by the protocol.
In the CAN protocol, the bus nodes do not have a specific address. Instead, the address information is contained in the identifiers of the transmitted messages, indicating the message content and the priority of the message. The CAN protocol uses Non-Return-to-Zero or NRZ bit coding and for synchronization; bit stuffing is used.
The bus access is handled via the advanced serial communications protocol Carrier Sense Multiple Access/Collision Detection with Non- Destructive Arbitration. This means that collision of messages is avoided by bitwise arbitration without loss of time.
There are two bus states, called "dominant (0)” and "recessive (1)". [10]
I. Collision Handling and arbitration
The CAN protocol handles bus accesses according to the concept called “Carrier Sense Multiple Access with Arbitration on Message Priority”. This arbitration concept avoids collisions of messages whose transmission was started by more than one node simultaneously and makes sure the most important message is sent first without time loss.
Any node has the right to request transmission rights at any time. The necessary bus arbitration method to avoid transmission conflicts is the same: Frame with the highest assigned identifier get buss access without delay. All frame types (data, remote, error and overload frame) are transmitted in broadcast. The data frame structure comprising several field is the same.
1) As a node transmits each bit, it verifies that it sees the same bit value on the bus that it transmitted.
2) A “0” on the bus wins over a “1” on the bus.
3) Losing node stops transmitting, winner continues. [10] [11]