Motor Vehicle Maintenance & Repair Stack Exchange is a question and answer site for mechanics and DIY enthusiast owners of cars, trucks, and motorcycles. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is CAN (controller area network)?

What are the differences between an OBD-II protocol and a CAN setup?`

How do I use an OBD-II scanner on a vehicle with CAN?

share|improve this question
up vote 27 down vote accepted

Ok, before I will answer your specific questions, let's do some introduction on bus systems. It could be that you know parts of these things, but I will start here as people with little or no IT or electronics knowledge should be able to understand this as well.

Bus Systems

In electronic systems signals are sent from one chip to another using wires (let's forget about wireless things for a second). The simplest way of doing so is to use one wire per bit of information you like to transmit. One bit of information is simply an answer to a yes/no question like "Are the headlights on?" If the headlights are on, there is a voltage on that wire, say 5 volts. If they are off there are 0 volts on the wire.

Now that's fine for one bit of information. But more data requires more wires. Unfortunately: More wires means more complexity. A modern car is just a computer with tires on it, so there are a lot of wires (serveral km or miles) in it. More wires result in more weight and more costs and car manufacturers don't like that. So we need a way to reduce the amount of wires.

The usual way of doing so is to use a bus system.

What is a bus system?

Think of a bus as a way to transmit more information using fewer wires. There are other benefits of bus systems, but I will focus on this aspect.

Example:

We want to switch four lamps on or off.

Without bus system:

  • Lamp 1: +5 V on Wire1 = Lamp is on; 0 V on Wire1 = Lamp is off
  • Lamp 2: +5 V on Wire2 = Lamp is on; 0 V on Wire2 = Lamp is off
  • Lamp 3: ...
  • Lamp 4: ...

It's easy to see; we need one wire per lamp.

With a bus system:

  • Lamp 1: +1 V on Wire1 (Selector), 0 or +5 V on Wire2 for on and off (switch)
  • Lamp 2: +2 V on Wire1 (Selector), 0 or +5 V on Wire2 for on and off (switch)
  • Lamp 3: +3 V on Wire1 (Selector), 0 or +5 V on Wire2 for on and off (switch)
  • Lamp 4: +4 V on Wire1 (Selector), 0 or +5 V on Wire2 for on and off (switch)

With this primitive kind of bus system we reduced the amount of wires to two. Regardless of the number of lamps we like to control, we only need one wire to tell the other chip which lamp we like to switch and a second wire to tell it wether we like to have the lamp on or off. My example would have limits in the real world as one can't simply raise the voltage to 1000 V on Wire 1 to switch a thousand different lamps.

This example shows, why in electronics in general and in cars in particular bus systems are being used. Cars use a number of bus systems that were made especially for them:

What is CAN (controller area network)?

CAN is the most important bus system in a car. I won't go into detail on this point, just think of it as a way to transfer big amounts of data using only two wires. You can read more about CAN on Wikipedia.

OBD-II

What are the difference between an OBD-II protocol and a CAN setup?

OBD-II is a higher-level protocol used for diagnostic purposes. OBD-II can use one of (many) different bus systems to transfer diagnostic data from and to your car. Think of OBD-II as a language (English) that you speak and of CAN as the communication device (telephone) you use to talk to someone (about your car and its state of health ;).

Many people are referring to OBD (short for on-board diagnosis) or OBD-II as "standards". OBD-II is a standard, but it again consists of so many different standards, protocols and bus systems used to communicate that it's difficult to list all of them. I once made an overview graphic, and I will see if I can add that to my answer later.

How to use OBD-II scanner on a vehicle with CAN?

Just plug it into the OBD-II port of your car. CAN is one of the transport protocols of the OBD-II specification and should be supported by most OBD-II-Scanners The location of the port can be found using a Google (image) search. Usually the port is located in reach of the driver, e.g. under the dashboard or hidden in the center console.

share|improve this answer
1  
This is a great, comprehensive answer! +1 for sure! :D – Pᴀᴜʟsᴛᴇʀ2 Feb 1 at 17:46
    
Right ON !!!!!!! – Anarach Feb 1 at 18:27
5  
I like the idea of a computer that comes with tires for free. ;-) – Bob Cross Feb 1 at 19:27
1  
Further to the "vehicle with CAN" point, the vehicle may or may not be using CAN to transport data between the various black boxes on the car (other protocols are available and the manufacturer can use what they like); and it may or may not support CAN on the OBD-II port (the OBD-II standard gives a choice of three protocols, of which CAN is just one - that's why it's a 20-pin connector, so the other pins can be used for the other protocols). But it will always have an OBD-II port, and your scanner will always plug in there. – Graham Feb 2 at 12:06
    
add the overview graphic please! – tdrury Feb 12 at 14:02

OBD II is a US government mandated diagnostic interface. This interface is guaranteed to provide a specific set of information including but not limited to engine computer data and engine computer trouble codes.

When OBD II was rolled out the US government did not force the manufacturers to also standardize the communication interface to the engine computer. Early OBD II had at least a half dozen communication protocols. Later the US government realized their mistake mandated that at least the engine computer must support the CAN communication protocol.

The CAN communication protocol is one that is supported under the umbrella of OBD II.

If your OBD II scanner supports CAN, some older ones that came out between OBD II and the CAN mandate do not support it, then there is no difference in use. The scanner will automatically choose what protocol to use, either by auto detecting the available protocol or when the make model and year is entered the scan tool will use what it knows is available.

share|improve this answer
1  
What government? There are many governments. – Peter Mortensen Feb 1 at 21:16
    
@PeterMortensen I edited my answer – vini_i Feb 1 at 21:54
    
See the SAE J1979 document for current definitions of the OBD11 protocols. The details have been changed many times since the original 1996 implementation. – Fred Wilson Feb 1 at 23:09

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.