What is CAN ?
CAN Stand for Controller Area Network. CAN is an Asynchronous ,message-based ,serial communication protocol. CAN is used for data exchange between ECUs connected on a network in vehicle.
CAN protocol introduced in 1968 by Robert Bosch.
How CAN transfer data ?
CAN transfers Data in the form of frames and the data transfers through a twisted pair wire which connects all nodes(ECUs).
The twisted pair contains CAN_High and CAN_Low is terminated with a 120Ω resistor to match the impedance of the cables as shown below. All nodes and connected to a twisted pair cable called a bus as shown below. The below picture Represents the CAN bus Topology.
How do the twisted pair of wires, CAN_High and CAN_Low, work together to carry signals on a CAN bus network?
Understanding CAN_High and CAN_Low
We know CAN_High and CAN_Low are the two wires that form the backbone of a CAN bus network. CAN_High carries high-voltage signals, while CAN_Low carries low-voltage signals. Together, they enable the transmission of data between different nodes in the network.
Differential signaling is a technique used to transmit data over a pair of wires by representing the difference in voltage between the two wires. This method enhances noise immunity and allows for longer transmission distances compared to single-ended signaling.
Data transmission occurs through the voltage difference between CAN_High and CAN_Low wires. When a logical ‘0’ is transmitted, CAN_High is at a higher voltage than CAN_Low, and both are nearly having same Voltage levels for a logical ‘1’.
Example for Logic 0 : let’s assume CAN_high is having 3.5v and CAN_low is having 1.5v.
CAN_high > CAN_low which means logic 0
Differential Voltage(Delta V) = CAN_high – CAN_low = 3.5v – 1.5v which is equal to 2V (non zero)
Example for Logic 1 : let’s assume CAN_high is having 2.5v and CAN_low is having 2.5v.
CAN_high = CAN_low which means logic 1
Differential Voltage(Delta V) = CAN_high – CAN_low = 2.5v – 2.5v which is equal to 0V (zero)
- Logic 0 is called Dominant bit
- Logic 1 is called Recessive bit
CAN_High | CAN_Low | Delta V( diff Voltage) | ||
Logic 1 | Recessive bit | 2.5 v | 2.5 v | 0 |
Logic 0 | Dominant bit | 3.5 v | 1.5 v | 2 |
Every node(ECU) can send and receive series of ‘0’ and ‘1’ , these series are called as “Frame“