Obd Datasheet Obd2
Obd Datasheet Obd2
Obd Datasheet Obd2
Electronics
BR16F84-1.07 OBDII
Interface Chip
Designed to function with all three of the
protocols used by the following vehicle
manufacturers:
PWM (Ford)
VPW (General Motors)
ISO 9141-2 (Asian/European)
BR16F84-1.07
Final Release Date: Jul 8 2001 Firmware Version: 1.07 Chip ID# 107F
If you are using a completed unit, you don't need to read this data sheet. This data sheet is intended for
those who are building their own hardware using the BR16F84-1.07 Chip, or writing custom software to
employ this device in a particular application.
GENERAL DESCRIPTION:
This device is a CMOS microcontroller which is designed to interface a personal computer or laptop with a
vehicle's On Board Diagnostic (OBD II) interface. It is intended to function with all three of the protocols used
by vehicle manufacturers to implement the OBD II system as defined by SAE and ISO specifications. The
OBD II system became mandatory for 1996 and up vehicles, but some vehicles were already fully or partially
compatible with OBD II requirements prior to 1996. The chip is not suitable for the earlier vehicles such as
OBD I.
The device is intended to function as a simple scan tool and is capable of sending and receiving any OBD II
message defined in SAE J1979 for any of the three types of OBDII bus implementations (PWM, VPW, ISO
9141-2). It can also be used as an inexpensive interface for custom instrumentation monitoring various
vehicle parameters such as speed, RPM, coolant or intake air temperature, engine load, intake air flow rate,
etc.
FEATURES:
Operating Voltage 5.0 V
Operating Current 5 Ma. Typ
Clock: 20 MHz
1
ELECTRICAL and PHYSICAL CHARACTERISTICS:
This device is a CMOS microcontroller produced by Microchip Technologies. You can obtain detailed
specifications for the chip from Microchip data books, or on the Microchip website, so this section will only
provide a brief summary. It is available in several package designs and temperature ratings. The baseline
BR16F84-1.07 chip is a microchip 16F84A-20/P part, which is a commercial temperature range plastic 18 pin
DIP rated at 20 MHz. The device can be special ordered if other package designs, temp ratings, etc are
desirable.
Refer to the schematic of a typical application. This design uses readily available components.
APPLICATION HINTS
(1) The cable to vehicle can be simple unshielded wires. This cable should be kept as short as possible, and
definitely no longer than 4 feet, especially for PWM operation. Somewhat longer cables could be used if the
circuit's termination resistors are replaced with lower values.
(2) The cable to Computer serial port can also be unshielded. The application circuit has been tested with
unshielded cables up to 30 Ft., but specific implementations may vary, so you may want to experiment if you
are attempting long runs. For every long runs, you might also wish to use an RS 232 transceiver chip in your
design.
(3) Circuit layout is not critical. The circuit has been tested on both hard wired perfboard prototypes and
plugboard breadboards. However, if your layout is very sloppy, you may want to add additional bypass
capacitors.
(4) Free software to utilize the application circuit is available for download. The program will run under DOS,
so it can be used on older computers as well as newer machines running windows. It is small enough that it
will fit on a DOS boot floppy, so you can still run it if your main operating system is not DOS compatible. The
computer need not even have a hard drive.
2
PARTS LIST :
Miscellaneous:
Board, connectors, cable, wire, sockets, enclosure, etc,
Depending on your implementation.
NOTES:
1) All Resistors can be 5% Carbon Film types (Don't use wirewound types)
2) Capacitor voltage ratings can be higher than specified.
3) Capacitors can be ceramic or monolithic.
4) Microprocessor uses Ver 1.07 firmware
5) Transistor packages can be substituted. Example: 2N3904 for PN3904
CHIP COMMANDS AND RESPONSES:
This section details the information needed to send and receive data to the chip from a host computer. It will
enable you to write your own software to utilize the chip with whatever host computer or other control device
you may wish. If you are using the provided program, you need not read this section. Please note that in the
following discussion, all numerical values are in hexadecimal base unless otherwise mentioned.
This is an overview of communications between the chip and the host computer or controller. There are
exceptions to these rules which are defined in the more detailed sections of this document. All
communications is via a simple 3 wire serial link. No handshaking is used. The chip listens for a message,
completes the task and then returns the results to the host. Then, it immediately waits for the next message.
The typical exchange to or from the chip is a series of bytes. The first byte is called the control byte. The
concept of the control byte is discussed here because it applies to many of the commands and responses
(but not all; exceptions are noted in the specific commands defined below). Normally, the control byte is
simply a number between 0 and 15 decimal (0-F hex) which indicates how many bytes follow this control
byte. For example, if three bytes are to be sent, the control byte would be 3 decimal (or 03 hex), then the
three bytes would follow; 03, byte1, byte2, byte3. This is the method used to ask the chip to retrieve a
particular item of vehicle OBD data, and it is the method used by the chip to return the Vehicles response to
the request message. Note that this only requires using the lower four bits of the control byte. The upper bits
are reserved for certain special commands and responses. These bits are used for the host computer to
make initial connection with the chip, to set the protocol to be used, and for the chip to return data indicating
success or failure. In particular, note that the chip will set the most significant bit of the control byte if the
action was not successful. If the operation was successful, the upper four bits of this control byte will be zero.
These special uses of the control byte are discussed below, and exceptions where the control byte is not
used are also indicated.
4
INITIALIZING THE CHIP AND THE VEHICLE
Before normal communications can start, the host must establish communication with the chip, then it must
initialize the chip and the vehicle's data link.
(2) INITIALIZATION
This initializes the protocol to be used, and also initializes the vehicle in the case of ISO. There are three
protocols, VPW (general motors), PWM (Ford products), and ISO 9141-2 (Asian/European). There are many
exceptions to these general protocols, for example, some Mazda's use Ford's PWM protocol. So, if you have
problems with a particular protocol, you should try another. The protocol selection is done by sending a
control byte which is 41H, followed by a protocol select byte. The latter byte is defined as follows; 0=VPW,
1=PWM, 2=ISO 9141. For example, 41H 02H is the sequence to initialize to ISO 9141 protocol.
The chip will respond with a control byte and a status byte. The control byte will have the MSB set if there
was a problem, and in this case the next byte is a status byte which indicates internal conditions. If the
initialization was a success, the control byte will be 01H, which indicates one verification status byte follows.
This status byte is a verification byte and is defined as follows; For VPW or PWM, this byte is simply an
echo of the protocol byte that you sent (0 or 1). For ISO 9141 it will be a "KEY number" that was returned
from the vehicle itself and specifies one of two slightly different versions of ISO. It is for informational
purposes only. Note that for VPW and PWM, the protocol select is rapid, because it is only needed to inform
the chip which protocol is to be used. But, for ISO vehicles, it can take up to approximately 5 seconds,
because there is a detailed initialization sequence that the chip must perform at 5 baud with the vehicle. Also
NOTE that some legacy ISO 9141 vehicles will lose initialization if no data requests are made during a 5
second interval, so the host PC should automatically send a request every few seconds durin g idle periods.
Once connection and initialization is complete, messages would typically be request messages from the host
computer, or response messages from the chip.
The operation of this chip is significantly different for the SAE (VPW or PWM) protocols, and the legacy
ISO9141-2 protocols, so the information is presented separately for the two cases to avoid confusion.
5
SAE (VPW or PWM) COMMUNICATIONS
For these protocols, the chip can only buffer one frame of data, so you must specify which frame it should
grab and return. The vehicle may send more than one frame, so if it’s a data item that can possibly have a
multiple frame response, you would need to repeat the request until you have obtained all of the frames.
Generally, this is only necessary for a few types of data.
The Response message always takes the following form if the resu lt was a success;
[Control byte], [SAE Response Message]. The control byte simply indicates how many bytes follow. These
bytes are the SAE response message, and they contain the header bytes, frame message bytes for this
response, and the CRC byte as per S AE specs referenced above.
The Response message always takes the following form if the result was not successful;
[Control byte], [Status byte]. The control byte will have the most significant bit set. The lower 4 bits will be
001, which simply indicates that one byte follows, and it is the status byte for internal conditions. This is a
commonly occurring condition, because specifications allow a vehicle to return no data, or invalid data if the
requested information is not supported by the vehicle, or if the data is not currently available in the vehicle's
processor. If the chip received no response, or if it received an invalid response, the most significant bit of
the control byte will be set, and one byte of internal condition status will follow.
The ISO 9141-2 system used by many Asian and European vehicles is quite different from SAE vehicles, so
it is discussed separately. The request message from the host is very similar to SAE vehicles, but the chip
does not require or allow a frame number. The request message is simply the control byte indicating the
number of bytes following, then the request message frame, including the checksum. The response from the
chip is simply a pure retransmission of data received from the vehicle. There is no control byte, so the host
should simply receive bytes until a time-out period of 55 Milliseconds occurs with no bytes received. This
indicates the end of the vehicles response. The response is therefore one or more message frames as
defined in SAE J1979. The chip performs no analysis of frames, does not reject non-diagnostic frames, etc.
The host must process this data to extract particular frames by looking for the header bytes. For most data
requests, there is only one response frame.