Since model year 2003, a growing number of vehicles have been built with a new onboard communications protocol called CAN (Controller Area Network). CANBus is essentially an engineering standard for how computers and modules talk to one another via the serial data bus in a vehicle's wiring system. It's a high speed standard designed for powertrain control modules, antilock brakes and stability control systems.
The CANBus protocol was created back in 1984 by Robert Bosch Corp. in anticipation of future advances in onboard electronics. The first production application was in 1992 on several Mercedes-Benz models, but CAN is now being used on more and more new vehicles. By 2008, all new vehicles sold in the U.S were required to have a CAN-compliant onboard diagnostic system.
If you're not up to speed on the latest electronics and don't know a data bus from a school bus, diagnosing CAN systems will be a challenge. Even so, you don't have to be an engineer to perform basic diagnostics on CAN equipped vehicles because the diagnostics is essentially the same as current OBD2 vehicles. The only difference is that you need a CAN-compliant SCAN tool to read the vehicle serial data. Most current generation scan tools don't have the right hardware or software to talk to CAN-equipped vehicles. Some scan tools have the right hardware but must be upgraded with new software to handle the faster communication rates and to decipher the CAN messages.
Like many current vehicles, information in a CAN-equipped vehicle is shared over a serial data bus. The bus is the circuit that carries all the electronic chatter between modules (nodes). The bus may have one wire or two. If it has two, the wires are usually twisted to cancel out electromagnetic interference. The speed at which the bus carries information will vary depending on the "class" rating of the bus as well as the protocol to which it conforms.
The CAN standard requires a "base frame" format for the data. What this means is that for each distinct message sent or received by a module on the network, there is a beginning bit (called the "start of frame" or "start of message" bit), followed by an "identifier" code (an 11 bit code that tells what kind of data the message contains), followed by a priority code ("remote transmission request") that says how important the data is, followed by 0 to 8 bytes (one byte equals 8 bits) of actual data, followed by some more bits that verify the information (cyclic redundancy check), followed by some end of message bits and an "end-of-frame" bit.