English
Language : 

ELM329LP Datasheet, PDF (36/87 Pages) ELM Electronics – Fully configurable with AT commands
ELM329L
Setting the Header / ID Bits
The emissions related diagnostic trouble codes
that most people are familiar with are described in the
SAE J1979 standard (ISO15031-5). They represent
only a portion of the data that a vehicle may have
available – much more can be obtained if you are able
to be more specific with your requests.
Accessing most OBDII diagnostics information
requires that requests be made to what is known as a
a ‘functional address.’ Any processor that supports the
function will respond to the request and, theoretically,
many different processors can respond to a single
functional request. In addition, every processor (or
ECU) will also respond to what is known as their
physical address. It is this physical address that
uniquely identifies each module in a vehicle, and
permits you to direct more specific queries to only one
particular module. To direct the queries to a specific
address requires changing the values that the ELM329
uses for the header (ID bits).
The ID bits in an ISO 15765-4 header may follow
one of two different formats - an 11 bit one, and a 29
bit one. First, consider the 29 bit standard, which has a
structure that is very similar to the header structure of
older OBD protocols (J1850, etc.).
There are two ways that you may use to define the
value that the ELM329 uses for a 29 bit header. The
first is to simply provide all of the bits as 4 bytes, or 8
hex digits, using the Set Header command:
>AT SH ww xx yy zz
5 bits
only
the CAN Priority and Set Header commands:
>AT CP ww
>AT SH xx yy zz
ww
5 bits only
xx yy zz
ww xx yy zz
29 bit ID
Setting a 29 bit (extended) CAN ID
The ISO 15765-4 CAN standard defines each of
the above ‘byte’ values for diagnostics. The priority
byte (‘ww’ in the diagrams) will always be 18 (this is
the default value used by the ELM329). The next byte
(‘xx’) describes the type of message that this is, and is
set to hex DB for functional addressing, and to DA if
using physical addressing. The final two bytes are
used in a way that is very similar to other standards –
‘yy’ is the receiver (or Target Address), and ‘zz’ is the
transmitter (or Source Address). For the functional
requests, the receiver is always 33, and the transmitter
is F1 (which is very similar to ISO 14230-4).
The other header structure that the CAN standard
defines uses an 11 bit ID (and is likely the most
common system in use today). The ELM329 uses a
special 3 digit version of the Set Header command in
order to set these bits:
ww xx yy zz
29 bit ID
Setting a 29 bit (extended) CAN ID
>AT SH xyz
x
y
z
The ELM329 will ignore the first three bits, leaving
29 that are then used for the messages.
The second way (which is how the ELM327 does
it) is to change the values in two steps. In this method,
the ELM329 splits the 29 bits into a CAN Priority byte
and three header bytes. This makes it a little quicker to
change only one portion of the header (usually, it is the
priority bits that do not change). The two are then
combined by the ELM329 into a 29 bit value that it is
able to use. To set the header in this way, simply use
11 bit ID
Setting an 11 bit (standard) CAN ID
In this case, the ELM329 uses the 11 least
significant (‘right-most’) bits of the provided header
bytes, and ignores the most significant bit.
The 11 bit ISO 15765-4 CAN standard typically
makes functional requests (ID/header = 7DF), but
ELM329L DSA
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
36 of 87