There is a lot of information about On Board Diagnostics (OBD) systems for
current vehicles we will cover it with the view of a scanner
implementation. At the time of this writing there are already
manufacturers using engine management software that are labeled as OBDIII
but here we focus on the standards concerning the connectivity to a
scanner.
History
In 1988
California
required that all automotive makers provided a system that would identify
trouble codes this was OBD generation I or OBD1 and required a Check
Engine light to signal the driver of a problem. OBD1 was then in effect
for 1988-1995 model years and they were mainly Emission codes. OBD
generation II or OBD2 was a requirement for ALL cars 1996 and newer in the
US and was a superset of the OBD1 with additional codes for diagnosing
emission and regular maintenance items and required that the computer
monitors and performs diagnostics tests on vehicle emission control
systems on a regular basis while the vehicle is driven, also the Check
Engine Light officially became a Malfunction Indicator Light(MIL)
Flavors of Current OBD
In the US vehicles 1996 and newer have been required by Federal
regulations to have the OBD2 system in place, in the EU 2001 and newer
vehicles are required to have the EOBD which is pretty much equivalent to
OBD2 and most of the P0 codes are the same. EOBD (ISO15031) states that
the same protocols can be used as OBDII with the exception of CAN (
controller area network ISO 15765 ). This is not used in the american
OBDII system
The OBD connector
(J1962)
The OBD implementation provides a standard 16-pin connector(J1962) where
the user can plug the OBD2 scanner to read/reset the Diagnostics Trouble
Codes(DTC) and even though the protocol of the information is a standard
simple packet based one there are three main different transmission schema
of this protocol, there is the ISO which is used by most European, Asian
and Chrysler makes, then GM and FORD use a VPW and PWM respectively. The
J1962 accommodates all of the 3 transmission protocols as follows:
4,5,7,15 and 16 it is ISO-9141-2 or KWP-2000
2,4,5,10 and 16 it is SAE J1850 PWM
2,4,5,and 16 but not 10 it is SAE J1850 VPW
The chart below has some useful information about these pins.

The OBD Message Format in simple terms
The OBD transfers the information like most other protocols with a Message
format(OBD) which consists of a header, a body and a CRC byte as a
checksum per frame of info, a picture is worth a thousand words the figure
below shows how the scanner queries for a Current Engine coolant Temp. and
how the OBD responds
This information is transmitted in the three different flavours stated
above but in essence the information is encoded the same way. Additionally
there are some extra rules for the protocol like a minimum response time,
once a connection is established some pulses need to be interchanged to
keep the connection alive.
Implementations
Once the transmission encoding and the packing of the information is
defined implementing it is straightforward. There has been some very
simple implementations where all is needed is connecting the signal pins
for each of the transmission protocols to a regular serial port and
through software the decoding was accomplished. Then there are proprietary
implementations whereby a black box does all the decoding and the
information displayed on a display panel. Also there are chipsets that
help on building such interfaces e.g. the ELM 323 for ISO standard
performs all the encoding/decoding/syncing it from the OBD port to a
regular serial port there are quite a few users following this method and
shareware programs are widely available for such systems.
Controller Area
Network(CAN) and OBD
First established by Bosch as an industrial control network was soon
chosen by car companies for its robustness. e.g. Mercedes has used CAN to
enable communications between internal modules as early as 1992. As we
have seen before the OBDii allowed for different ways of
encoding(PWM,VPW,ISO) creating the respective complications. CAN allows
for a single encoding and communcations and has already been integrated
into the OBDii spec by the ISO committee. The California CARB has already
embraced the CAN protocol and manufacturers can start implementing in 2003
and must be compliant by 2008. There is already pin definitions(CAN-H,
CAN-L, GND) in the connector to carry out
CAN.
Sources of information
The Society of Automotive Engineers(SAE) publishes full description of
their standards as Jxxx documents and the ISO do the same on their
documentation. i.e. The ISO9141 is the standard used by European, Asian
and Chrysler makes, the J1962 is the SAE standard that defines the OBD
connector and so on.
DATALOG
TUNING