Increase Your Knowledge of
Controller Area Networks (CAN)
By Jeff Bach
Knowing how these networks operate
and process information can help you troubleshoot better.
CAN is short for controller area network, which was developed by Robert Bosch in the early 1980s as a standard for vehicle bus communication. This protocol allowed networked controllers and components to communicate with each other without a single "host" or "master" computer. The goal was to make automobiles safer, more reliable, less polluting and more fuel efficient. Developed originally for the automotive sector, it is quickly becoming a standard communication system in many industries. CAN's use in the OBD-II system has been required since 1996 by the Environmental Protection Agency (EPA) to be standard on all cars sold in the United States. All vehicles sold in this country since 2008 are also required to use the CAN bus system.
History of CAN
Mercedes had the first production application of the CAN protocol back in 1992. CAN is a highly reliable and practical high-speed communication protocol. Previous communication systems from a technician's standpoint have at times been somewhat difficult to diagnose. Beginning in the early '80s for me, the first actual digital data I had the pleasure of dealing with was the digital fuel injection (DFI) system used on Cadillacs. These early systems were not always considered to be as reliable as the older Bendix analog fuel injection systems that they replaced. The federal government required all cars sold in the United States to monitor emission systems for electrical failures and report problems by turning a light on.
These systems had a baud rate of 1,024 bits per second. The digital age marched on, and many of the systems previously mechanically controlled were now run by modules. The increased data load meant that communication speeds needed to increase. The universal asynchronous receive transmit (UART) bus had grown to 8,192 baud but the demand for faster data transfer was ever increasing. Around 1995 a separate Class 2 data bus began being used in controllers such as engine and brake modules, which ran at a baud rate of 10,400 bps and could be programmed at 41,600 bps. CAN bus systems, on the other hand, can transmit at speeds up to 1 mbit/sec. That's "m" as in million. It can do this in a network configuration of up to 40 meters.
Shifting Data Streams
There were many different data rates and communication protocols being used with each manufacturer having its own unique system. Different data link connectors and scan tools made it difficult and expensive for independents to have coverage for all of the makes and models they were willing to service.
In 1996 the government-mandated OBD-II system having a universal connector helped somewhat but there were still many different data streams. Some of these older communication systems, as many of you will recall, could get expensive to diagnose and even more so if you didn't have a good supply of "known good modules" to pick from. There were a lot of shops that simply "passed" when it came to technical electrical issues by sending them to the dealer. The problem with these older systems stemmed from the way the communication was dependent on a single controller. If the main controller went down, it took all the communication with it. Also, any component that had communication lines could take down the network. CAN addresses these issues by using a message-based protocol instead of an address-based system.
The amazing architecture of the CAN bus system message structure allows for multiple modules (or nodes as they are referred to) to receive and transmit data (but not simultaneously) without the need for a master controller. Each node sends and receives data while listening at the same time. Messages are considered either dominant or recessive.
This ensures that the message with the highest priority always gets through. To accomplish this and prevent message collisions with data being lost, it has what's known as "multi-master priority- based bus access that uses carrier sense multiple access with collision detection and non-destructive arbitration (CSMA/CD + NDA)."
This means that all nodes can have access to the bus based on the priority of its message while each node constantly monitors the bus for idle time. If more than one node starts sending a message at the same time, that node can see the message from the other node at the same time it sees its own message. The message bits continue until one node's message bit goes low while the other node's message bit is still high. The low bit has priority and continues its message while the lower priority message backs off and listens to the bus until it's idle again. Every message sent on the bus gets repeated until each node on the bus acknowledges the message. This way a message that was started and not acknowledged gets re-sent. Hence, nondestructive arbitration.
For us, this means one module can fail and not take the others with it. Good news for those of you familiar with having to unplug modules one at a time trying to get data back on a car with no data coming from any module. Another neat thing about the CAN bus system is that a module that realizes it is not able to complete its function will generally take itself off the bus to avoid crashing it. Also, in many cases, if one of the bus lines gets shorted (either to voltage or ground), communication still occurs on the other bus line. Usually, the other nodes on the bus will store an error code for the module not sending data.
It begins with start of frame (SOF), which synchronizes all of the nodes to the beginning of a message. Next is the identifier, which is where arbitration occurs. The control field contains information concerning data length. The data field is basically "the message."
Cyclic redundancy check (CRC) - is partly responsible for CAN reliability.
Acknowledgment (ACK) - is where each node decides whether to accept or reject the message.
End of frame (EOF) - is the fixed space of non-transfer activity.
Bus idle is the space between frames when no one is transmitting.
The physical layer in the CAN bus is a three-wire medium (CAN_H, CAN_L, GND) composed of a Giga-bit UTP (unshielded twisted pair) cable. The CAN bus must be terminated at both ends by a 120-ohm resistor placed across CAN_H and CAN_L. This makes testing less complicated than many of the older data systems and modules.
There are so many module-controlled systems on modern automobiles that it has become virtually impossible to sidestep the electronic part of auto repair and remain in business. I have had countless incidences in the past, of cars being brought in because of an antilock braking system (ABS) light on after recent brake work by shops that "don't do electrical." Many times, these problems turn out to be relatively simple repairs consisting of repairing connections to wheel-speed sensors disturbed during caliper removal. Most scan tools capable of reading wheel-speed data are all that is needed to quickly pinpoint this "easy fix" issue and avoid a repair that needs to be "sublet" (that word makes me cringe).
|Figure 1 shows a CAN message frame.
Research Before Buying
The versatility and widely accepted standards used in CAN have generated a myriad of manufacturers to make a wide array of automotive-oriented products that can be used for nearly all makes and models of automobiles. There are also an endless supply of scan tools, programmers and basic code readers available now. CAN looks to be with us for a pretty good stretch. If you have been waiting before investing heavily in technology that quickly becomes obsolete, now is your time. I would recommend doing some research before getting in too deep looking for a "DO-it-all-puter."
Keep your expectations in check when buying an "all makes and models" tool. I still get the best coverage from manufacturer scan tools but there is increasingly better competition from aftermarket tools. PC-based scan tools that record are one of the better options in my opinion. "A man is only as good as his tools" is a quote that is more relevant now to our industry than ever before. Now is a good time to become "a better man."
||Jeff Bach is the owner of CRT Auto Electronics, an ASA-member shop in Batavia, Ohio. For more information on this topic, contact Bach at (515) 732-3965. His e-mail address is firstname.lastname@example.org and his Web site is www.currentprobe.com.
AutoInc. Web Site |
ASA Web Site |
Leveraging Insurer's Needs and Pressures |
NCOIL to Resume Consideration of Parts, Steering Acts |
Electronic Parts Ordering Makes Your Life Easier |
Do You Know Your Profit Margin? |
Tech to Tech |
Tech Tips |
News Briefs |
Around ASA |
Shop Profile |
Net Worth |
Chairman's Message |