The CAN bus is an automotive bus developed by Bosch, allowing microcontrollers and devices to communicate with each other within a vehicle without a host computer. CAN bus is a message-based protocol, designed specifically for automotive applications but now also used in other areas such as aerospace, industrial automation and medical equipment. It become an international standard (ISO 11898) in 1994, and was specially developed for fast serial data exchange between electronic controllers in motor vehicles. It connects the individual systems and sensors as an alternative to conventional multi-wire looms. It allows automotive components to communicate on a single or dual-wire networked data bus up to 1Mbps.
CAN bus is one of five protocols used in the OBD-II vehicle diagnostics standard.
Fig.1 Automotive CAN BUS network
Principle of operation of the CAN BUS
CAN bus uses two dedicated wires for communication. The wires are called CAN high and CAN low. The CAN controller is connected to all the components on the network via these two wires. Each network node has a unique identifier. All ECUs on the bus are effectively in parallel and that’s why all the nodes see all of the data, all of the time. A node only responds when it detects its own identifier. Individual nodes can be removed from the network without affecting the other nodes.
When the CAN bus is in idle mode, both lines carry 2.5V. When data bits are being transmitted, the CAN high line goes to 3.75V and the CAN low drops to 1.25V, thereby generating a 2.5V differential between the lines: each of the CAN lines is referenced to the other one, not to vehicle ground. Since communication relies on a voltage differential between the two bus lines, the CAN bus is NOT sensitive to inductive spikes, electrical fields or other noise. This makes CAN bus a reliable choice for networked communications on mobile equipment.
CAN power can be supplied through CAN bus. Or a power supply for the CAN bus modules can be arranged separately. The power supply wiring can be either totally separate from the CAN bus lines resulting in two 2-wire cables being utilized for the network, or it can be integrated into the same cable as the CAN bus lines resulting in a single 4-wire cable.
The nature of CAN bus communications allows all modules to transmit and receive data on the bus. Any module can transmit data, which all the rest of the modules receive. It is very important that the CAN bus bandwidth is allocated to the most safety-critical systems first. Nodes are usually assigned to one of a number of priority levels. For example, engine controls, brakes and airbags are very important from a safety viewpoint, and commands to activate these systems are given highest priority. This means that they will be actioned before less critical ones. Audio and navigation devices are often medium priority, and lighting activation may be lowest priority. A process known as arbitration decides the priority of any messages.
Most motor vehicle CAN networks operate at a bus speed of 250 kB/s or 500 kB/s. The latest vehicles use up to 3 separate CAN networks, usually of different speeds connected together by gateways. The data on one of the three networks is available to the other two networks. Engine management functions usually are on a high-speed bus at 500 kB/s and chassis systems run on a slower 250 kB/s CAN bus. Other functions such as lights, satnav and mirrors are on a separate low-speed, single-wire LIN (Local Interconnect Network) bus.
Procedure to verify the reliability of the CAN bus with an oscilloscope
- Identify the CAN-H and CAN-L pins at an accessible point on the CAN network.
Such point usually is the ECU multi-way connector.
- Set the oscilloscope inputs to 5V
- Connect the signal test lead of one of the oscilloscope channels, to the CAN-H wire.
Then connect the ground lead to the chassis ground.
Connect the signal test lead of one of the other oscilloscope channels, to the CAN-L wire.
- Switch the ignition on.
- Watch the oscilloscope screen. You should observe the following waveforms.
The measurement allows following checks to be performed:
• Check whether the peak to peak voltage levels are correct
• Check whether signal is present on both CAN wires (CAN uses differential signalling, so the signal on one line should be a mirror image of the data on the other line).
Possible reasons for failure in the CAN BUS network:
• Peak to peak voltage levels is not correct.
• Signal is not present on both CAN wires.
The ISO 11898 standard enumerates several failure modes of the CAN bus cable:
- CAN_H interrupted
- CAN_L interrupted
- CAN_H shorted to battery voltage
- CAN_L shorted to ground
- CAN_H shorted to ground
- CAN_L shorted to battery voltage
- CAN_L shorted to CAN_H wire
- CAN_H and CAN_L interrupted at the same location
- Loss of connection to termination network