Protocol

H. Blemings hugh at asi1.anutech.com.au
Tue Apr 11 05:31:40 GMT 1995


Here is the first revision of the protocol document, please feel free to
comment.

Cheers,
Hugh

---------------------------------------------------------------------------=
----
 Hugh Blemings                         |
  email : hugh at asi1.anutech.com.au     |  phone : 015 485558 / +61 15 48555=
8
---------------------------------------------------------------------------=
----
             (Proverbs 3:5,6 - Read The Book for further details :)
---------------------------------------------------------------------------=
----

---------8< Clip'n' Save or throw away! 8<-------------

Standard Engine Telemetry Protocol.  This is very much  a
draft!!

Hugh Blemings

Revision 0.1 950411

1.0  Introduction

This  document  aims to encourage the  development  of  a
standard  protocol  for use in the remote  monitoring  of
internal  combustion engines both petrol and diesel.   It
is  hoped  that the protocol will prove useful  for  both
real time monitoring and the transfer of logged real time
data.   It  would  be  desirable to  provide  for  remote
programming capability in such a protocol and  discussion
on this aspect is encouraged.

A  primary  design goal is that of an efficient  protocol
which  will  not  place unnecessarily  large  demands  on
system  resources both in terms of processing  power  and
link bandwidth.  To this end only a rudimentary check sum
system  is  proposed with no provision for re-sending  of
erroneous  data when in real time mode.  It is  suggested
that  in  more  mission critical applications,  a  higher
level  link  protocol could be run over the top  of  this
protocol to provide more comprehensive error control.

With the above aim in mind the proposed protocol normally
makes use of the processors native units for most values,
the  local display or monitoring software is charged with
the  task  of converting the data sent into "real  world"
units.

Finally,  recognising the possibility that  the  protocol
would  be  used  as  an overall telemetry  system  for  a
vehicle,  provision is made for data  to  be  sent  which
strictly  speaking  is not related  to  the  engine,  for
example road speed, brake temperature, gear etc.

2.0  Telemetry Data

It   is   suggested  that  the  following  variables   be
incorporated  as  standard inclusions into  the  protocol
with  auxiliary analogue and digital channels being  made
available.  Please note that this list is based  on  what
has  come  to  mind personally and hence  should  not  be
considered  exhaustive,  I would  add  that  I=92m  not  an
automotive expert by any stretch so some of the suggested
parameters may be a little odd :)

     Engine
     RPM,  Coolant temperature, Oil temperature, Manifold
     Air Pressure, Mass Air Flow, Engine position, Firing
     order,  Ignition advance, Dwell angle, Turbo  Boost,
     Wastegate   status  (open/closed  ?),   Intake   air
     temperature,   intercooler  temperature   (is   this
     relevant),   Clutch   position,   Battery   voltage,
     Alternator current
    =20
     Gearbox/Transfer case
     Current  Gear,  Oil temperature, Transfer  case  oil
     temperature
    =20
     General
     Brake status, Brake temperature, Tyre pressure, Tyre
     temperature,  Outside  air  temperature,  Cabin  air
     temperature  (to  check  if  the  airconditioner  is
     working :)  Road speed, X/Y/Z acceleration

3.0  Protocol Structure

This  section  is  by no means complete or  fully  though
through but...

I  envisage the need for two conceptual operating  modes,
one being real time in which the data sent is assumed  to
be  current at that instant minus transmission  and  data
conversion  delays.  The second mode which should  enmesh
closely  with the protocol established for the real  time
mode  would  essentially add some sort of time  stamp  so
that data can be positioned correctly in the time domain.
This  mode  would be used for situations  where  data  is
logged then downloaded when convenient.

The  protocol would make use of a serial link  running  8
bits, no parity (?) and one stop bit, just like a desktop
PC.   Baud rate need not be specified but it is suggested
somewhere  around 9600 would be standard.  The data  will
be  sent in a binary format.  An ASCII mode might be nice
but   this   may   increase  bandwidth   and   processing
requirements unnecessarily.  Any thoughts ?

Individual  messages, which if enabled are  automatically
sent  when a variable changes, would consist of a  single
byte header and a number (typically 1 or 2) of data bytes
followed by a simple checksum.  A maximum update rate for
each  variable would need to be specified along with  the
ability  to  send a command back to the  remote  unit  to
control  whether a particular parameter is to be sent  or
not.   This  would  allow  a  bad  connection  generating
spurious data to be masked for example.

I have in mind to set the header information up in such a
fashion  as  to  allow efficient message  generation  and
subsequent  decoding.  For example, I would  foresee  all
messages that have one data byte would use a header  byte
less  than  say 0x40, over 0x40 indicates two data  bytes
etc.  More detail will follow soon...

Comments invited!

-------------------
END




More information about the Diy_efi mailing list