The Controller Area Network (CAN) is an automotive standard network that
utilizes a 2 wire bus to transmit and receive data. It is more common
in modern cars that we can find CAN bus system for information exchange.
CAN bus system uses frames to transmit the Application data. Each node
on the network has the capability to transmit 0 to 8 bytes of data in a
message frame. A message frame consists of a message header, followed
by 0 to 8 data bytes, and then a checksum. The message header contains a
unique identifier that determines the message priority also message ids
are unique in the bus system. Any node on the network can transmit data
if the bus is free. If multiple nodes attempt to transmit at the same
time, an arbitration scheme is used to determine which node will control
the bus. Arbitration uses wired AND operation to determine the winner.
The message with the highest priority, as defined in its header, will
win the arbitration and its message will be transmitted. The losing
message will retry to send its message as soon as it detects a bus free
state. Course aims to cover complete CAN bus system standard with clear
explanation