English
Language : 

ELM322 Datasheet, PDF (12/18 Pages) ELM Electronics – OBD (VPW) to RS232 Interpreter
ELM322
Monitoring the Bus
Some vehicles use the OBD bus for information
transfer during normal vehicle operation, passing a
great deal of information over it. A lot can be learned if
you have the good fortune to connect to one of these
vehicles, and are able to decipher the contents of the
messages. By the same token, you can do a lot of
harm if you are careless, so be very careful.
To see how your vehicle uses the OBD bus, you
will have to enter one of the ELM322’s monitoring
modes. The simplest is the “Monitor All” mode, which
is entered into by sending the command AT MA from
your terminal program. Once received, the IC will
continually display any information it sees on the OBD
bus, regardless of transmitter or receiver addresses.
Monitoring modes can only be stopped by sending
something over the RS232 connection to the ELM322.
It is not critical what you send, as any single character
will interrupt the IC, returning it to the command mode
(waiting for an input). Note that the character you send
is discarded and has no effect on any subsequent
commands. The IC will always finish a task in progress
(printing a line, for example) before returning to wait
for input, so always wait for the prompt character (‘>’)
before continuing to issue other commands.
If the headers are not currently displayed, simply
typing ATMA shows only the contents of messages,
not the transmitter and receiver addresses. To show
who is sending to whom, you will need to first turn
headers on (AT H1) before beginning to monitor (AT
MA). Either way, you may end up with an
overwhelming amount of information that you may
want to filter, showing only specific messages.
If, for example, you find that the engine controller’s
address seems to be 10, you may want to restrict the
data displayed to only messages from that ECU. To do
so, you would monitor only for messages transmitted
from address 10, by issuing AT MT 10 from your
terminal program. Only messages with 10 in the third
byte of the header will be displayed. Similarly, you may
wish to only see messages which are being received
by address 3B. To monitor for these, send AT MR 3B
and only messages with 3B as the second header byte
will be shown.
The ELM322 is somewhat limited in its monitoring
abilities, in that it does not have an internal buffer to
store OBD bus data which appears while a previous
message is being sent to the user. If the bus is very
active in your application, there is a chance that some
messages may be missed due to this inability to buffer
in the background. For this reason, you may want to
restrict the amount of RS232 data sent by using the
MR or MT commands, or using the ‘packed data’
mode. For most users, this limitation will not be
noticeable.
Computer Control – Using Packed Data
If a person is simply asking a vehicle for the
current Diagnostic Trouble Codes, speed is normally
not an issue, as data is displayed (essentially) as
quickly as it can be read. If interfaced to a computer,
however, speed may be important.
The packed data mode is a convenient means to
effectively triple the ELM322’s data transfer rate while
maintaining the connection at 9600 baud. Once
entered (with AT PD), all OBD messages will be
returned as a single length byte followed by the actual
data bytes. There are no space characters sent
between bytes, no carriage returns or linefeeds – the
data is retransmitted exactly as received from the
vehicle (except for the change to 9600 baud). While no
longer readable on a terminal, computers will
understand the information just the same, and will gain
speed through both reduced transfer and conversion
times. The ELM322 does not function any differently
when in this mode – if the headers are to be displayed,
they are sent, if in monitoring mode, data is continually
sent, etc. The only difference is in the format in which
the OBD responses are returned to the controlling
computer.
Often there is no response from the vehicle for a
particular request. When in the default (formatted data)
mode, this is shown with ‘NO DATA’ being printed, but
while in the packed data mode you will only receive a
single length byte of value 0 (zero).
While rare, errors may occasionally be detected in
the vehicle’s data. Normally, a ‘<DATA ERROR’ would
be printed for this, but in the Packed Data mode, the
checksum (CRC) errors are identified by setting the
most significant bit of the length byte. Because of this,
one should always check the length byte for a value of
128 or greater before processing the remainder of the
message.
ELM322DSE
Elm Electronics – Circuits for the Hobbyist
< http://www.elmelectronics.com/ >
12 of 18