Controller Area Network (CAN)

CAN or Controller Area Network is a two wired half-duplex high-speed serial network technology. It is basically used in communication among different devices in a low radius region, such as in an automobile. A CAN protocol is a CSMA-CD/ASM protocol or carrier sense multiple access collision detection arbitrations on message priority protocol. CSMA ensures each node must wait for a given period before sending any message. Collision detection ensures that the collision is avoided by selecting the messages based on their prescribed priority.

It provides a signaling rate from 125kbps to 1 Mbps. It provides for 2048 different message identifiers.

It is ISO-11898 standard and makes use of the 7 layer Open Systems Interconnection model.


It was developed by Robert Bosch in 1982 and officially released by Detroit’s Society of Automotive Engineers in 1986. The first car integrating CAN bus was manufactured by Mercedes Benz in 1992.

ISO 11898 Architecture:
Image source – theremino

The layered architecture consists of three layers

  • Application Layer: It interacts with the operating system or the application of the CAN device.
  • Data Link Layer: It connects the actual data to the protocol in terms of sending, receiving, and validating data.
  • Physical Layer: It represents the actual hardware.
    The standard CAN frame consists of the following bits:

Controller areaThe standard CAN frame consists of the following bits:

  • SOF- Start of Frame. The message starts from this point.
  • Identifier: It decides the priority of the message. Lower the binary value, higher is the priority. It is 11 bit.
  • RTR– Remote Transmission Request. It is dominant when information is required from another node. Each node receives the request, but only that node whose identifier matches that of the message is the required node. Each node receives the response as well.z
  • IDE– Single Identification Extension. If it is dominant, it means a standard CAN identifier with no extension is being transmitted.
  • R0– reserved bit.
  • DLC– Data Length Code. It defines the length of the data being sent. It is 4 bit
  • Data– Up to 64 bit of data can be transmitted.
  • CRC– Cyclic Redundancy Check. It contains the checksum (number of bits transmitted) of the preceding application data for error detection.
  • ACK– Acknowledge. It is for 2 bit. It is dominant if an accurate message is received.
  • EOF– end of the frame. It marks the end of can frame and disables bit stuffing.
  • IFS– Inter Frame Space. It contains the time required by the controller to move a correctly received frame to its proper position.
5 Different message types are:
  1. Data Frame: It consists of an arbitrary field, data field, CRC field and the acknowledge fields.
  2. Remote Frame: It requests for transmission of data from another node. Here the RTR bit is recessive.
  3. Error Frame: It is transmitted when an error is detected.
  4. Overload Frame: It is used to provide a delay between messages. It is transmitted when the nodes become too busy.
  5. Valid Frame: A message is valid if the EOF field is recessive. Else the message is transmitted again.
CAN Physical Layer:
Controller area net
Image source –

It consists of a two-wire serial link- CAN_H and CAN_L and their voltage levels relative to each other determine whether a 1 or 0 is transmitted. This is differential signaling. The current flowing in each signal line is equal but opposite in direction, resulting in a field-canceling effect that is a key to low noise emissions. This ensures a balanced differential signaling which reduces noise coupling and allows high rate of transmission over the wires. Usually, the wires are twisted pair cables with a bus length of 40 m and a maximum of 30 nodes. It is a shielded or unshielded cable with a characteristic impedance of 120 Ohms.


controller area network

CAN for vehicles by Hugo Provencher. The two wires CANH and CANL are at normally 2.5V determined by the two transistors and the 2.5V voltage source. Basically the difference between the two wires should always be 0. The driver control determines the voltage applied to the CANH and CANL wires. When both the transistors are conducting, the voltage drop across the 1st transistor and the diode is 1.5V, making the CANH wire pull up to 3.5V. The voltage drop across the 2nd transistor and the diode is 1V, making the CANL wire pull down to 1.5V. The diodes are used for high voltage protection. The receiver is a discriminator circuit that gives an output of 1 when the two inputs CANH and CANL are the same and an output of 0 if the two inputs are different.  The TXD dominant block is used for ground fault protection and the Thermal shutdown block disables the driver control if the diodes and the transistors get overheated.

Advantages of CAN:
  • It reduces wiring since it is a distributed control and this ensures enhancing the system performance.
  • Many CAN chip manufactures provided the data link layer and the physical layer interfaced to the chip and all the software developer needs to do only is to develop the application coding.
  • It provides the ability to work in different electrical environments and ensures noise-free transmission.
  • Traffic congestion is eliminated as the messages are transmitted based on their priority and it allows the entire network to meet the timing constraints.
  • It provides for error-free transmission as each node can check for errors during the transmission of the message and send the error frame.
CAN Working Example:

The controller Area Network has vast applications in Industrial as well as in vehicles. One of the major applications is involved in communication among the different devices in a vehicle. Another can be among different microcontrollers, suppose for detecting a password, used to meet any requirements like opening a locked door using a password or switching on a bulb, etc.

Controller area network circuit
Controller area network circuit

The basic application consists of 3 microcontrollers communicating with each other using two wires as in a CAN network. The 1st microcontroller is interfaced with a keypad, the 2nd with an LCD, and the third with a buzzer and a relay operating a lamp. When a password is entered in the keypad, the 2nd microcontroller acts as a receiver and receives the transmitted message bit by bit from the 1st transmitter and displays the message on the LCD. When the whole message is transmitted, the 2nd microcontroller makes the verification and if the password is wrong, it sends a signal to the 3rd microcontroller, which in turn sends buzzer is turned on with this signal. When the password is right, the 3rd microcontroller switches on the relay which in turn switches on the lamp.

Comments are closed.