Updated at 18 Mar, 2021
— CAN Bus (Controller Area Network) is a vehicle bus standard, designed to allow devices and microcontrollers to communicate with each other’s applications.
Find the perfect solution service for your business
All solutions are customizable and designed to meet all your needs.
Find the solution
CAN bus stands for Controller Area Network Communication and consists of two electrical wires called CAN_Low and CAN_High. The information within each vehicle is being transmitted from and to ECUs. In addition, CAN bus is built to handle robust performance within harsh environments.
We have prepared a simple introduction to CAN bus. Several topics have been covered, in order to give you the best explanation of the CAN protocol.
While working on the article, we combined the knowledge from our top experts within the company, as well as non-expertise team members.
Why? The idea was to write a professional but simple guide introduction to CAN bus for everyone, no matter how much experience you have.
In conclusion, it do not matter if you have no knowledge about the CAN bus protocol whatsoever or you are already a pro. This simple guide intro to CAN bus will give you all the information needed.
What is CAN bus?
CAN bus is a set of two electrical wires in the car network (CAN_Low and CAN_High), where the information is being sent to and from ECUs. The network that allows ECUs to communicate is called Controller Area Network (CAN).
The CAN bus is a serial communication bus, designed for robust performance within harsh environments, primarily in industrial and automotive applications.
It is basically a vehicle bus standard that allows microcontrollers and devices to communicate with each other.
CAN bus is one of the protocols used in On-Board Diagnostics (OBD). Nowadays, the OBD-2 is mandatory in all newer cars and light trucks all around the globe.
CAN bus system easily explained
Let us try to look at it from a totally different point of perspective.
Imagine that the car is like the human body and the nervous system in the human body is the Controller Area Network (CAN bus) in the car, which also enables the communication.
Nodes or electronic control units (ECUs) are something like body parts that are interconnected through the CAN bus communication. Information can easily be shared between parties. That is much easier to understand, isn’t it?
The CAN bus system
Depending on the type of the car, it can have up to 70 ECUs (Electronic Control Units) and each of them needs to be shared with other parts of the network.
Some of the examples are for instance; audio system, airbags, engine control unit, door control unit and so on. The CAN bus enables the ECUs to communicate to each other.
Think about ECUs as specific people. One ECU can formulate and transmit the information via CAN bus to other ECUs that accept the data. After that, they will check the data and decide if they want to receive it or ignore it.
The CAN bus uses two wires for communication - CAN low and CAN high (CANL and CAN H). ISO 11898-2 describes the physical layer of the CAN bus and ISO 11898-1 describes the data link layer.
The physical layer represents types of cables, node requirements, electrical signal levels, cable impedance, etc.
On the other side, ISO 11898-2 represents things such as baud rate, cable length and termination.
Cable lengths should be 40 meters (1 Mbit/s) or 500 meters (125 kbit/s).
The CAN bus has to be terminated using a 120 Ohms CAN bus resistor at the end of each bus.
CAN nodes have to be connected through two wire bus with baud rates up to 1 Mbit/s (CAN) or 5 Mbit/s (CAN FD).
5 benefits of CAN bus protocol
CAN bus standard is commonly used in all vehicles due to its key benefits, such as:
CAN bus standard is ideal for safety applications such as vehicles due to its durability and reliability. There are also 5 mechanisms to detect errors in the CAN protocol such as bit stuffing, bit monitoring, frame check, acknowledgment check and cyclic redundancy check.
When the CAN protocol was created, its purpose was to enable fast communication between electronic devices and modules, while reducing errors, weight, wiring and costs.
Currently defined by two physical layers - High Speed CAN (CAN h) and Low Speed CAN (CAN L), both with its own advantages and disadvantages.
CAN bus protocol is well-known as a message-based protocol, meaning nodes can easily be added or removed without performing any updates on the system. This makes it really easy for engineers to integrate new electronic devices without significant programming and modify it to your requirements.
High priority data will get prioritized by ID, in order to get immediate bus access - not interrupting other frames.
CAN bus wiring
One of the best advantages of CAN bus is the reduced amount of wiring in combination with an ingenious prevention of message collision.
In other words, no data will be lost during message transmission.
The two examples below illustrates the CAN protocol and what it would look like with CAN bus system and without the CAN bus system.
Clearly, with CAN bus, it is much easier for nodes to communicate and navigate through.
On the other side, without a CAN bus, it is much harder for nodes to communicate with each other and the communication is ineffective.
There are several different types of networks. You can find an easy explanation below.
High speed CAN bus (ISO 11898)
Supports bit rates between 40 kbit/s and 1 Mbit/s.
Most commonly used these days.
Basis for higher layer protocols such as OBD2, CANopen, j1939 and more.(Video) CAN Bus Properties and Troubleshooting
Low speed CAN bus
Supports bit rates between 40 kbit/s and 125 kbit/s.
Allows communication to continue despite the fault in one of the two wires.
Also known as a fault tolerant CAN.
Each CAN node has own CAN termination.
Usually consists of a LIN bus master, which is acting as a gateway - up to 16 slave nodes.
Typically includes vehicle functions such as door functionality or air condition.
Ethernet supports high bandwidth requirements of Advanced Driver Assistance Systems (ADAS), cameras, infotainment systems and so on.
Provides much higher data transfer rates than CAN bus.
Lacks safety features of CAN and CAN FD.
Most likely will be used commonly in the upcoming years within the automotive industry.
Typically used in modern high performance vehicles.
CAN FD is an extension to the original CAN bus protocol.
Released in 2012 by Bosch.
Developed to meet the need to increase the data transfer.
What is a CAN message frame?
CAN frames are used to communicate over CAN bus. CAN uses the differential signal with two logic states - dominant and recessive.
CAN network uses two CAN messages - standard CAN and extended CAN that are described below.
The image below shows a typical CAN frame with an 11-bit identification, which is the kind used in most cars. Except for the larger ID, the expanded 29-bit identifier frame is identical.
Standard CAN frame
The first bit is the start of the frame (SOF), which represents the start of the CAN message. Next one is the 11 bit identifier that organizes the priority of the CAN message. The smaller the identifier is, the higher priority it has.
The Remote Transmission Request (RTR) is typically dominant, but it becomes recessive when nodes are requesting data from each other.
Next one is the identifier extension (IDE) bit, which is dominant when the standard CAN frame is sent - not extended one. The r0 bit is reversed and not currently used.
Next one is the Data Length Code (DLC), which indicates how many bytes of data are in the current message. Another important part is the data itself, where it is the same number of bytes as in DLC bits.
The next one is the cyclic redundancy check (CRC), which is a 16-bit checksum that detects errors and issues in the transmitted data.
In case the message is properly received, the receiving node will overwrite the recessive acknowledge bit (ACK) with a dominant bit. The end of frame (EOF) indicates the end of the CAN message.
It is 7 bits wide and it detects bit stuffing errors. The last part of the CAN message is the interframe space (IFS), which is being used as a time delay.
Extended CAN frame
Extended CAN frame uses a 29 bit identifier with a couple additional bits. The extended 29 bit identifier (CAN 2.0B) is identical, but has a longer ID and is usually used in the j1939 protocol - heave-duty vehicles. CAN uses two logic states; dominant and recessive.
Pinpoints that the differential voltage is greater than the minimum threshold. In addition, the dominant state is also achieved by driving a logic ‘0’ onto the bus.
Pinpoints that the differential voltage is less than the minimum threshold. On the other side, recessive state is achieved by a logic ‘1’.
It also has a substitute remote request (SRR) bit, which comes after 11 bit identifier and acts like a placeholder, in order to keep the same structure as a standard CAN frame.
The identifier extension (IDE) should be recessive and the extended identifier should follow it accordingly.
The remote transmission request (RTR) comes right after the 18 bit ID. The reverse bit r1 follows the path and the rest of the message stays the same.
CAN bus data logging
Logging CAN data can be done from several types of vehicles such as cars, heavy duty vehicles, predictive maintenance and machine blackbox.
The vehicle data are gathered through the OBD2 port and are usually used to reduce fuel costs, improve car mileage and more.
On the other side, data from the heavy duty vehicles are gathered through j1939 and are usually used to improve safety and reduce costs.
Vehicles and machinery can be also monitored through IoT CAN loggers. That can be done in the cloud to avoid breakdowns. A CAN logger can provide data for disputes or diagnostics. It is also called blackbox.
CAN bus logging is commonly used in fleet management, due to its effectivity and increased number of opportunities.
A CAN logger is required to record CAN data. This allows you to save timestamped CAN data on an SD card. In some situations, a CAN interface is required to transmit data to a PC, such as when decoding data.
Example: TMU SocketCAN
The TMU SocketCAN allows you to record data from any CAN bus to an 8-32 GB Micro SD Card with ease. Simply attach it to a car or truck to begin logging, and then code the data using our free management software.
Furthermore, the TMU SocketCAN has WiFi, allowing you to automatically upload data to your own server - as well as upgrade devices over-the-air.
Decoding raw CAN data
Raw CAN data is not easily readable. Therefore we have prepared a guide for you. Check out the guide on how to log raw CAN messages.
The CAN bus supports the basis for communication, but not more than that. The CAN protocol doesn’t indicate how to handle messages greater than 8 bytes, or how to decode the RAW data.
In order to indicate how data is communicated between CAN nodes of a network, a set of standardized protocols come in handy. There are several higher layer protocols such as; OBD2, CANopen, CAN FD and SAE J1939.
OBD has a self-diagnostic capability that mostly mechanics use to analyze car issues and the overall health of the car. OBD2 determines trouble codes (DTCs) and real time data (RPM, speed, etc) that can be recorded through OBD2 loggers.
CANopen is typically used in embedded control applications such as industrial automation and is based on a CAN meaning that the CAN bus data logger is also capable to log CANopen data.
CAN FD is essentially a CAN bus with flexible data rate and an extension of the classical CAN data link layer. In comparison with classical CAN protocol, CAN FD increases the payload from 8 to 64 bytes. It also allows a higher data bit rate, depending on the CAN transceiver.
J1939 is commonly used in heavy duty vehicles. J1939 parameters such as RPM and speed are analyzed by a suspect parameter number (SPN). Afterwards, they are grouped in parameter groups and classified by a PG number (PGN).
A high speed transfer data rate offers DoIP diagnostics, more precisely approximately 100 times of CAN diagnosis.
History of CAN bus
Control Area Network (CAN bus) have a rich history and went through several development stages. The actual development stages within years can be seen below.
Development of CAN bus goes all the way back to 1983 when Bosch originally invented Control Area Network and was later codified into ISO 11898-1 standard.
The CAN protocol was later released to the Society of Automotive Engineers (SAE) in 1986.
Intel was the first one to introduce the CAN controller chips in 1987, and Phillips joined Intel shortly after that.
In 1991, Bosch published CAN 2.0 (CAN 2.0A: 11 bit, 2.0B: 29bit).
CAN bus as an international standard in ISO 11898, was adopted in 1993.
In 2003, ISO 11898 became a standard series.
In 2012, Bosch has released the CAN FD 1.0 - flexible data rate.
In 2015, the CAN FD protocol has become standardized in ISO 11898-1.
Lastly, the physical CAN layer up to 5Mbit/s has become standardized in ISO 11898-2, in 2016.
In the future, CAN bus will still be commonly used, but influenced by major automotive industry trends such as; growth of Internet of Things and connected vehicles, impact of autonomous vehicles, the rise of cloud computing, the need for advanced vehicle functionality and more.
The need of CAN FD increases and many experts assume it will slowly replace the classical CAN bus protocol. Stay updated to see what happens.
Make your fleet management KEYLESS
Customized solutions for fleets that allows fleet managers to remotely manage their fleet.
Explore the solution
Philip Hundevad Nymann
Business Developer / Sales
Like what we do? Contact us.
Find the perfect solution service for your business
All solutions are customizable and designed to meet all your needs.
Find the solution
It provides simple cabling and is used in practically all automotive applications today. It also serves as the basis for several higher layer protocols such as OBD2, J1939, NMEA 2000, CANopen etc.What is CAN bus protocol? ›
The Controller Area Network protocol (CAN or CAN Bus) ia a two-wire (twisted-pair), bidirectional serial bus communication method that allows electronic subsystems to be linked together and interact in a network.What is the difference between CAN and J1939? ›
J1939 is based on CAN, which provides the basic "physical layer" and "data link layer", the lowest layers in the OSI model. Basically, CAN allows the communication of small packets on the CAN bus, but not a lot more than that. Here, J1939 serves as a higher layer protocol on top, enabling more complex communication.What will replace CAN bus? ›
A promising alternative to CAN is Automotive Ethernet.What are the biggest limitations of the CAN bus? ›
Advanced software capabilities require a high-performance hardware foundation, and the current CAN bus networking backbone is stretched to its limit. The biggest problem with CAN is the limited bandwidth it provides.Why do I need CAN bus? ›
HID CANBUS version kits and LED decoder add-ons are designed to prevent warning signals/errors from appearing on the vehicle's dashboard after replacing the incandescent/halogen bulbs.Which cars use CAN bus? ›
- 2008-2011 BMW 1 Series.
- 2007-2008 BMW 3 Series.
- 2006-2011 BMW 323i.
- 2002-2006 BMW 325i.
- 2002-2006 BMW 330i.
- 2008-2010 BMW 6 Series.
- 2014-2020 BMW i3.
- 2008-2013 BMW M3.
A Controller Area Network (CAN bus) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other's applications without a host computer.What industry invented the CAN bus protocol? ›
History of CAN technology. In February of 1986, Robert Bosch GmbH introduced the Controller Area Network (CAN) serial bus system at the Society of Automotive Engineers (SAE) congress. It was the hour of birth for one of the most successful network protocols ever.For what purpose is the J1939 protocol mostly used? ›
J1939 is a higher-layer protocol based on Controller Area Network (CAN). It provides serial data communications between microprocessor systems (also called Electronic Control Units - ECU) in any kind of heavy duty vehicles.
The J1939 fault code error message consists of a Source Address (SA) identifying the Electronic Control Unit (ECU) sending the DTC (SA0 = Engine Controller #1), a Suspect Parameter Number (SPN) which identifies the parameter sending the fault code error message, and a Failure Mode Identifier (FMI) which identifies the ...What is code J1939 mean? ›
J1939 is a set of standards that defines how information is transferred within a CAN to communicate information between ECUs. While a CAN provides a tool for communication, J1939 is a higher-layer protocol that provides a language for communicating using that tool.Which is better CAN or Ethernet? ›
Still, Ethernet can transport data over a link 100 times faster than a CAN bus. Ethernet is good for midbandwidth communications in applications such as navigation systems and control. It can be used in much the same way as a CAN bus while provid- ing much more bandwidth.Is OBD a CAN bus? ›
In particular, the OBD2 standard specifies the OBD2 connector, incl. a set of five protocols that it can run on (see below). Further, since 2008, CAN bus (ISO 15765) has been the mandatory protocol for OBD2 in all cars sold in the US.Do all vehicles have CAN bus? ›
CAN Bus systems are commonly found in European vehicles such as BMW, Audi, Mercedes, Volkswagen, Porsche, and in many American vehicles.What are the disadvantages of CAN? ›
- It does not support a maximum number of nodes.
- It can connect only up to 64 nodes because of electrical loading.
- CAN maintenance is costly when compared to other networks like LAN, SAN, WAN etc.
- It can support up to 40 meter length.
- There are undesirable interactions in between all nodes.
|High speed data rate||Limited number of nodes (up to 64 nodes)|
|Low cost and light in weight and robustness||High cost for software development and maintenance|
|Supports auto retransmission for attribution lost messages||Possibility of signal integrity issues|
A maximum of 63 slaves nodes are connected to a CAN bus in addition to the CAN bus Master.CAN bus explained for dummies? ›
The CAN bus is a serial communication bus, designed for robust performance within harsh environments, primarily in industrial and automotive applications. It is basically a vehicle bus standard that allows microcontrollers and devices to communicate with each other.Do LED lights need a CAN bus? ›
Because LED car bulbs use a lower wattage than other bulbs, the CANbus canceller helps to increase the current safely and without damaging the bulb. This will ensure that your vehicle doesn't bring up any error messages and the LED can work as expected.
Before CAN bus gained popularity, vehicle wiring harnesses could contain miles of wire, with bundles of wires required to carry various signals to and from interconnected vehicle systems.Does Tesla use a CAN bus? ›
The Tesla Model S uses the ISO 15765-4 CAN bus protocol. Additionally, it uses an 11-bit header and communicates over a 500000 baudrate.How CAN I tell if my car has CAN bus wiring? ›
Typical places to pick up CAN include the ABS system (look for a pair of twisted wires, but ignore the four wheel speed wires) or on the back of the dashboard (look for a pair of twisted wires). If the vehicle does have CAN Bus on the OBD connector, it will normally be on Pins 6 and 14 as indicated below.CAN bus speeds car? ›
Most motor vehicle CAN networks operate at a bus speed of 250 kB/s or 500 kB/s.How many wires are in a CAN bus? ›
CAN-Bus Hardware. The bus line is a twisted pair wire with a termination resistor (120 Ohm) on each side. One wire is called CAN High and one wire is called CAN Low. Both wires are needed for proper communication.What cable is used for CAN bus? ›
This is twisted pair of 22 AWG yellow and green wire. This cable is designed to be used as a CAN Bus cable. Can be purchased in a custom length of continuous cable under 99 feet or as spools in fixed lengths.CAN you tap into CAN bus? ›
Well no worries, you just tap the two CAN wires directly into the bus. We've done this on a VW right at the boot between the driver door and the body so you don't even need to disassemble anything. Refer to your vehicles wiring diagrams to identify the location of the CAN network you want to connect to.When did cars start using CAN? ›
After CAN's debut at the 1986 SAE Congress in Detroit, controller chips were developed by Intel and Phillips, and the protocol first made it into a production vehicle in the Mercedes W140 S-Class in 1991.What is the difference between Lin and CAN? ›
The CAN bus allows for components to talk to each other seamlessly in the automobile. The LIN bus allows for further expansion to peripheral devices. This bus hierarchy was designed to save costs and wiring. Wire is one of the most expensive components in a car.What is a J1939 engine? ›
SAE (Society of Automotive Engineers) J1939 is a protocol and network standard used in a wide range of vehicles and equipment that are powered by diesel engines with electronic controls. Today, J1939 can be found in everything from ships to ski lifts.
J1939 is a set of standards defined by SAE (there's an overview here). They are used in heavy-duty vehicles such as trucks and buses, mobile hydraulics, etc.How many ohms is a J1939? ›
The J1939 data link has two 120 ohm resistors in parallel in the data link. When the data link is in good condition the total resistance will be approximately 60 ohms on pins C and D of the 9 pin data link connector.What color are J1939 wires? ›
J1939 is a high-speed vehicle data link that can communicate at either 250kb/s or 500kb/s. The datalink consists of three wires: yellow is CAN +, green is CAN - and Shield is connected to ground.At what baud rate does J1939 operate? ›
In J1939/11, the baud rate is 250Kbps.How do I test a J1939 connector? ›
Verify J1939 backbone terminating resistance.
2.3 With the multimeter set to the resistance (Ω) scale, measure the resistance at the diagnostic connector across pin C (J1939+) and pin D (J1939–). Compare the resistance values: • 60 ± 6 Ω : The J1939 wiring is intact and both terminating resistors are installed.
The port labeled J1939 is used to connect the device to the existing engine network. You must route the cable within 6 m (20 ft.) of the engine network backbone. The Garmin GPSMAP J1939 accessory cable requires connection to a power source and proper termination.Is J1939 an OBD2? ›
J1939 to OBD2 Adapter Cable.
They were introduced in 2004. In 1994, the nonprofit SAE association released the first J1939 documents. In the meantime, application-specific network solutions have been developed, which are based on the J1939-21 application layer.Why Ethernet is not used in automotive? ›
However, traditional Ethernet did not meet the EMI/RFI requirement set by the OEMs and is interference-sensitive, making it less than ideal for use in the harsh conditions in a vehicle.What is the difference between K line and CAN bus? ›
Note 1: A K-Line message is different to a CAN message, as CAN always sends an entire message at once while K-Line may send messages split into several parts. Note 2: A CAN Bus network operates constantly as a communication network and a diagnostic network between the ECMs whilst the vehicle is in operation.
However, with the constant advancement in wifi technology, the difference in speed is getting smaller. An ethernet connection can support speeds up to 10 Gbps, depending on the cable you use, and the speeds offered on your plan. New wifi standards can offer speeds up to 866.7 Mbps.Do airplanes use CAN bus? ›
Some larger aircraft use CAN bus, such as the Airbus A380, which uses the technology for entertainment systems but not for vital avionics. As for the flight deck, some avionics available for experimental and certified light airplanes use CAN bus.What is CAN bus failure? ›
Introduction CANBUS is a high-speed network which requires high quality wiring in order to operate properly. As such, it is sensitive to improper wiring. The majority of CANBUS communication problems are caused by poor wiring, incorrect termination, or the use of multiple frequencies on the same bus.Does BMW use CAN bus? ›
Together, CAN bus technology and the BMW Motorrad Single Wire System represent a data network concept that requires just one single data line.Do electric cars use CAN bus? ›
Because of its communication capabilities, CANbus plays a critical role in electric vehicles. With the latter, it is especially important for components and systems to communicate with one another to ensure safe and efficient operation.What is the range of CAN bus? ›
Standard CAN bus transceivers operate over a limited common mode voltage range that extends from −2V to +7V.Where is CAN bus used? ›
The CAN bus is primarily used in embedded systems, and as its name implies, is a network technology that provides fast communication among microcontrollers up to real-time requirements, eliminating the need for the much more expensive and complex technology of a Dual-Ported RAM.Do all cars have CAN bus? ›
CAN bus is one of five protocols used in the on-board diagnostics (OBD)-II vehicle diagnostics standard. The OBD-II standard has been mandatory for all cars and light trucks sold in the United States since 1996.CAN you control a car with CAN bus? ›
Self-Driving Cars and the CAN Bus
By reverse engineering the CAN bus of a vehicle, it enables an engineer to issue commands to the car via software. The most necessary commands, as you can imagine, are steering (angle) and acceleration and braking.
In the end, Ethernet provides greater capacity than the CAN bus, at the expense of greater complexity, but still struggles to handle the highest-bandwidth applications such as video. FPD-Link is a technology developed for point-to-point transport of high-bandwidth data.