Introduction to CAN (ISO 11898)

Cars are prior means of transportation, in older cars they had basic electrical wiring as time went on the demand for more features was increased to gain competitive advantage and also comply with new regulations, As we are literally and figuratively turning the corner into the era of the driver-less or autonomous car, hacking automobiles will become even more important and dangerous.

The automobile industry uses many protocols in modernized vehicles with embedded systems and Electronic control units (ECU) which can communicate with each other using protocols like CAN.

The most widely used protocols in Automobiles is CAN and its flavors, Let’s learn about CAN, it was first developed by Bosch and released in SAE {1986} it was designed for robust communications within the vehicle microcontrollers and devices without the need of a computer.

CAN protocol runs over two wires CAN-H and CAN-L, it works on the method of differential signaling it transmits the message by differing the voltage between two wires.

CAN protocol runs over two wires CAN-H and CAN-L, it works on the method of differential signaling “Differential signaling is a method for electrically transmitting information using two complementary signals. The technique sends the same electrical signal as a differential pair of signals, each in its own conductor. The pair of conductors can be wires or traces on a circuit board.” it transmits the data by differing the voltage between two wires. This provides a viable data transmission as it can resist noises and disturbances.

CAN logic to general logic

CAN is a multi-master serial bus connected with ECU’s{nodes}. all of them are connected to each other through a two-wire bus which consists of a
120-ohm resistor at the end of them to terminate the data.

CAN-H will be at 5 v and CAN-L at 0 v and while transmitting a dominant (0) and does not drive either wire when transmitting a recessive (1). Designating “0” as dominant gives the nodes with the lower ID numbers priority on the bus.

The dominant differential voltage is a nominal 2 V. The termination resistor passively returns the two wires to a nominal differential voltage of 0V.

  • Data frame: a frame containing node data for transmission.
  • Remote frame: a frame requesting the transmission of a specific identifier.
  • Error frame: a frame transmitted by any node detecting an error.
  • Overload frame: a frame to inject a delay between data or remote frame.
  • Arbitration ID: This is different for different nodes and acts as a unique identifier to each node.
  • Data Length Code represents the bytes of data in the message.
  • Data: The data sent or received.
  • SOF and EOF are used to separate messages.

The data is autonomous in the CAN network and if a receiver node wants to request certain data from a sender the remote frame is used. if an error is detected from the network by a node it reacts with,

six dominant bits — error active.
six recessive bits — error passive.

There are two types of CAN packets: standard and extended.

Extended packets are like standard ones but with a larger space to hold IDs.extended packets use substitute remote request SRR instead of RTR with SSR set to 1. They’ll also have the IDE set to 1, and their packets will have an 18-bit identifier.

Conclusion

CAN protocol reduces wiring and 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. But, CAN is like a basic flavor of protocols. many other protocols are developed by highlighting specific capabilities of CAN. I will be writing another blog on CAN flavors very soon.