
Altering Flow Control Messages
A CAN message provides for only eight data bytes
per frame of data. Of course, there are many cases
where the data which needs to be sent is longer than 8
bytes, and ISO 15765 has made provision for this by
allowing data to be separated into segments, then
recombined at the receiver.
To send one of these multi-line messages, the
transmitter in a CAN system will send a ‘First Frame’
message, and then wait for a reply from the receiver.
This reply, called a ‘Flow Control’ message contains
information concerning acceptable message timing,
etc., and is required to be sent before the transmitter
will send any more data. For ISO 15765-4, the type of
response is well defined, and never changes. The
ELM329 will automatically send this ISO 15765-4 Flow
Control response for you as long as the CAN Flow
Control option is enabled (CFC1), which it is by
default.
The ELM329 allows you to customize how it
responds when it needs to send a Flow Control
message, by changing the Flow Control ‘modes’. You
can leave it as a fully automatic response (mode 0),
can provide only the data bytes that you want sent
(mode 2) or can define both the header (ID bits) and
the data bytes (mode 1).
The default Flow Control mode is number ‘0’. At
any time while you are experimenting, if you should
wish to restore the automatic Flow Control responses
(for ISO 15765-4), simply change the mode to 0:
>AT FC SM 0
OK
This will immediately restore the responses to their
default settings.
Mode 1 has been provided for those that need
complete control over their Flow Control messages. To
use it, simply define the CAN ID (header) and data
bytes that you require to be sent in response to a First
Frame message. Note that if you try to set the mode
before defining these values, you will get an error:
>AT FC SM 1
?
You must set the headers and data first:
>AT FC SH 7E8
OK
>AT FC SD 30 00 00
OK
and then you can set the mode:
>AT FC SM 1
OK
From this point on, every First Frame message
received will be responded to with the custom
message that you have defined (7E8 00 11 22 in this
example). Note that the number of bits in the flow
control header does not have to match the number in
the active protocol (you may define a 29 bit header for
11 bit systems, etc.)
The third mode currently supported allows the
user to set the data bytes which are to be sent. The ID
bits (header bytes) in this mode are set to those which
were received in the First Frame message, without
change. To use this mode, first define your data bytes,
then activate the mode:
>AT FC SD 30 00 00
OK
>AT FC SM 2
OK
For most people, there will be little need to
manipulate these ‘Flow Control’ messages, as the
defaults are designed to work with the CAN OBD
standards. If you wish to experiment, these special AT
commands offer that control for you.
The following chart summarizes the currently
supported flow control modes:
ELM329
Provides
FC
Mode
0
1
2
ID Bits &
Data Bytes
User
Provides
ID Bits
Data Bytes
no values
no values
ID Bits &
Data Bytes
Flow Control Modes
Note that the ELM329 will only send Flow Control
messages if the current data format is ISO 15765-4.
56 of 83
ELM329DSC
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
ELM329