SECTION 5
SECTION 5
HIGH SPEED
SERIAL DATA
1.0 PURPOSE AND SCOPE
This document describes the operational
characteristics, communication protocol, and transmitted
data for the serial data stream. The serial data output
is to be utilized to transmit predetermined data
parameters to intelligent receiving devices external to
the vehicle. Receivers external to the vehicle shall
utilize the transmitted information to identify ECM type
and for testing during the ECM assembly and in-car
installation procedures. A high speed UART link option is
available for GMAD assembly line diagnostics.
2.0 REFERENCE DOCUMENTS
- Serial Communications Protocol
Specification (EE-1800-003, Revision A),
Delco/Kokomo, dated April 7, 1979.
- ECM Serial Output Specification
(EE-1810-004, Revision A), Delco/Kokomo, dated
April 17, 1979.
- XDE 5024, system Design
Specification for High Speed Serial Data
Communication between Microcomputer Assemblies,
dated November 17, 1982.
3.0 SERIAL DATA TRANSMISSION RATE
Low speed serial data is not
implemented. The high speed serial data transmits data at
the rate of one bit each 122.07 microseconds 0.5% This is
equivalent to 8192 baud. The high speed serial data is
transmitted on the serial data output.
4.0 MESSAGE TYPE
Different data message types are
transmitted by the ECM via the serial data output port if
the ignition is on. The message type sent at any point in
time is dependent upon the state of the diagnostic
request line as summarized in the table below:
Resistance to
Power Ground Mode
Serial Data
Greater Than20K Normal Normal
Mode *
10K +-5% End of Line Test ALDL
*
(ALDL
Mode)
3.9K +-5% ECM Factory Test See
Factory Test Section
Less Than 500 ohms
Diagnostics/Field ALDL *
Service
* See High Speed Serial Data
Specification, Section 2.0
5.0 TRANSMITTED DATA SPECIFICATION
5.1 Low Speed Serial Data
Specification
Low speed serial data is not
implemented.
5.2 High Speed Serial Data
Specification
5.2.1 High Speed Serial Data Format
The approach used for the high speed
transmission is intended to be the same as that used in a
UART system. A description follows:
5.2.1.1 Bit Format
A bit time is 122.07 microseconds
+-0.5%. This is equivalent to 819? Baud. A high voltage
state indicates a logic one "1" condition and a
low voltage state indicates a lo9ic zero "0"
condition. The high speed serial data is output on the
serial data output port.
5.2.1.2 Word Format
A word consists of ten bit times. The
first bit is a logic zero and is called the Start Bit.
The last (tenth bit) in the word is always 3 logic one
and is called the Stop Bit. The remaining eight center
bits are data bits and are transmitted LSB first. A Start
Bit must always be preceded by at least one logic one bit
time (either the stop bit of the preceding word or an
Idle Line).
5.2.2 Message Format
Any and all data transmitted on the
serial data bus must be part of a message. All messages
must be of the following format:
- Idle Line
- Message Identification
Word (ID)
- Message Length Word (85 +
1 + N)
- Mode Number Word
- Message Data (N Bytes)
- Sum Check
- Idle Line
5.2.2.1 Idle Line
Ten or more consecutive logic one bit
times constitute an Idle Line. All receivers on the bus
will use the occurrence of an Idle Line followed by a
Start Bit to indicate the start of a message.
5.2.2.2 Message Identification Word
The first word of each message is a
message identification (ID) word. Each message ID must be
unique; therefore, all message ID's must be assigned in
the particular Application Document. The total number of
unique message ID's is limited to 254. ID's of $00 and
$FF shall not be used in the vehicle.
5.2.2.3 Message Length Word
The message length word indicated the
total number of data words in the remainder of the
message plus 85 (decimal). The maximum number of data
words within one message which can be transmitted by any
transmitter is 64. Thus a valid message length word must
lie in the range of 85 to 149. Many messages with no data
words are possible; for such messages, the Message Length
Word would contain the binary word 0101 0101 (MSB-LSB).
This pattern has been selected because, under an
abnormally severe noise environment, there is a higher
probability that an erroneously received message will be
detected as such.
5.2.2.4 Mode Number Word
All high speed messages have an
assigned mode number. An external ALDL tester that
requests high speed communications will specify the
desired mode of operation.
5.2.2.5 Sum Check
The last word to be transmitted in a
message is the two's complement of the sum of all the
other words in the message, including the message ID and
message length words. Any carrycuts of this eight-bit
word while it is being formed by both the transmitter and
receivers are neglected. The two's complement is used so
that the sum of all the words in the message is zero for
a valid message.
6.0 HIGH SPEED SERIAL DATA MESSAGES
The following sections define the input
and output message formats for the various modes of high
speed serial data.
The operating modes are divided into
two categories, normal and ALDL modes. The ALDL modes can
be entered independent of the diagnostic request line.
6.1 Normal Mode
The normal mode will be enabled if any
of the following conditions are satisfied:
- ALDL device not present.
- Mode 0 requested by ALDL
device.
- No ALDL message received
for a time of 5 seconds.
When the normal mode is enabled,
messages will be continuously transmitted by the
scheduler unless the ALDL mode is enabled. The scheduler
consists of a table of message addresses corresponding to
messages that can be transmitted at a given 12.5 msec
interval. Onlv one message can be transmitted in a given
12.5 msec interval.
The scheduler table *F9OMST* shown
below, shows the expected messages and rates for this
application:
Schedules Message Code Message
0 No Message
1 No Message
2 No Message
3 No Message
4 *F97*
5 No Message
6 No Message
7 No Message
8 No Message
9 No Message
A No Message
B No Message
C No Message
D No Message
E No Message
F No Message
The scheduler shows that message *F97*
is transmitted once every 200 msec.
6.1.1 Normal Mode Message *F97*
Message *F97* is used to poll for the
presence of an ALDL testing device The message ID for the
testing device is = $FO Hex, and the message length is
zero.
6.2 ALDL Mode
The ALDL Mode is enabled when the ALDL
device responds to the normal mode ALDL polling message
(*F97*).
Once in the ALDL mode, the ECM will
cease transmitting the normal mode messages.
The ALDL mode is divided into the
following sub-modes and uses a message ID of $FO Hex:
- Mode 0 (Return to normal
mode)
- Mode 1 (Transmit fixed
data stream)
- Mode 2 (Selectable memory
dump)
- Mode 3 (RAM contents)
- Mode 4 (Controller
function)
- Mode 7 (Command normal
mode message)
6.2.1 ALDL Mode 0 (Return to Normal
Mode)
When the ALDL device requests Mode 0,
the ECM will revert back to the normal mode. The ALDL
device requests Mode 0 by sending the following message:
- Message ID = $F0 Hex.
- Message Length = 85 + 1 =
86 = $56 Hex.
- Mode = $00 Hex.
- Sum Check.
The ECM will respond by transmitting
the normal mode messages as described in previous
sections.
6.2.2 ALDL Mode 1 (Transmit Fixed
Data Stream)
When the ALDL device requests Mode 1,
the ECM will respond by transmitting a predetermined 63
byte message as defined in table *F95*. See Figure 3.
The ALDL device requests Mode I by
sending the following message:
- Message ID + $FO Hex.
- Message Length = 85 + 1 =
86 = $56 Hex.
- Mode = $01 Hex.
- Sum Check.
The ECM will respond with the following
message:
- Message ID = $F0 Hex.
- Message Length = 85 + 64 =
149 = $95 Hex.
- Mode = $01 Hex.
- Data Byte 1
- -
- -
- Data Byte 63
- Sum Check
6.2.3 ALDL Mode 2 (Selectable Memory
Dump)
When the ALDL device request Mode 2,
the ECM will respond by transmitting the contents of 64
memory locations be9innin9 with the address specified in
the Mode 2 request.
The ALDL device request Mode a by
sending the following message:
- Message ID = $F0 Hex.
- Message Length = 85 + 3 =
86 = $58 Hex.
- Mode = $02 Hex.
- Starting Address Upper
byte.
- Starting Address Lower
byte.
- Sum Check.
The ECM will respond with the following
message:
- Message ID = $F0 Hex.
- Message Length = 85 + 65 =
150 = $96 Hex.
- Mode = $02 Hex.
- Contents of Address 1
- -
- -
- Contents of Address (1 +
63)
- Sum Check
6.2.4 ALDL Mode 3 (RAM Contents)
When the ALDL device requests Mode 3,
the ECM will respond by transmitting the contents of the
RAM locations specified in the request (from 0 to 8
locations).
The ALDL device requests Mode 3 by
sending the following message:
- Message ID = $F0 Hex.
- Message Length = 85 + 2N +
1 (N = 0 to 8).
- Mode = $03 Hex.
- Address I Upper byte
- Address I Lower byte
- -
- -
- Address N Upper byte
- Address N Lower byte
- Sum Check
The ECM will respond with the following
message:
- Message ID = $F0 Hex.
- Message Length = 85 + N +
I (N = 0 to 8).
- Mode = $03 Hex.
- Contents of Address 1
- -
- -
- Contents of Address N
- Sum Check
6.2.5 Mode 4 Input Message (ALDL
Tester Request)
- ID
- MESSAGE LENGTH (2N + 11 +
85)
- MODE 4
- DISCRETE OUTPUT ENABLE
CONTROL WORD *
- DISCRETE OUTPUT STATE WORD
*
- MODE CONTROL ENABLE WORD *
- MODE CONTROL STATE WORD *
- PWM OUTPUT ENABLE CONTROL
WORD *
- PWM OUTPUT DUTY CYCLE *
- FUNCTION MODIFICATION
CONTROL WORD*
- IAC DESIRED POSITION/IDLE
RPM *
- DESIRED A/F RATIO *
- SPARK ABSOLUTE/DELTA
MODIFICATION *
- START ADDRESS HIGH
- START ADDRESS LOW
- -
- -
- ADDRESS N HIGH
- ADDRESS N LOW
- CHECK SUM
Where N is the number of data bytes
requested (0 to 8). See "Mode 4 - ECM Function
Modification Mode Table".
The ECM will respond with the following
message:
- ID
- MESSAGE LENGTH = 85 + N +
1 (N = 0 to 8)
- MODE = $04 Hex.
- ADDRESS 1 CONTENTS
- -
- -
- ADDRESS N CONTENTS
- CHECK SUM
The Function Modifications will have
immediate response (next applicable program loop), and
will override the normal operation of the Outputs.
6.2.5.1 MODE 4 - ECM FUNCTION
MODIFICATION MODE TABLE
1. Discrete Output Enable Control Word
Bit 0 = Check engine Light Control
Bit 1 = Fan Control
Bit 2 = Not Used
Bit 3 = Not Used
Bit 4 = Not Used
1 = Control enabled
0 = Control disabled
2. Discrete Output State Word
Bit 0 = Check Engine Light: 1 = On, 0 =
Off
Bit 1 = Fan: 1 = On, 0 = Off
Bit 2 = Not Used
Bit 3 = Not Used
Bit 4 = Not Used
3. Mode Control Enable Word
Bit 0 = Fuel Closed Loop (C/L)
Bit 1 = Idle Air Control (IAC) C/L
Bit 2 = Not Used
Bit 3 = Spark Back-up (Does Not Force
Fuel Backup)
Bit 4 = Block Learn Memory (BLM) Reset,
(see Note 1)
Bit 5 = IAC Motor Reset, (See Note 2)
Bit 6 = Clear Malfunction Codes, (See
Note 1)
Bit 7 = Fuel Back-up (COP 2 not
toggled, also forces Spark Backup)
1= Select Function or feature
0 = Deselect
Note 1: Block Learn
Memory Reset and Malfunction Code clearing can
only occur during the first pass through the Mode
4 logic.
Note 2: IAC Motor Reset
can occur at any time while in Mode 4 logic,
however, it can only occur once
4. Mode Control State Word
Bit 0 = Fuel C/L: I = C/L, 0 = Not C/L
Bit I = IAC C/L: 1 = C/L, 0 = Not C/L
Bit 2 = Not Used
Bit 3 = Not Used
Bit 4 = Not Used
5. PWM Output Control Enable Word
Bit 0 = EGR Output
Bit 1 = A/C Output
Bit 2 = TCC Output
Bit 3 = Not Used
Bit 4 = Not Used
Bit 5 = Not Used
Bit 6 = Not Used
Bit 7 = Waste Gate
6. PWM Output Duty Cycle (0 - 100%)
7. Function Modification Control Word
Bit 0 = IAC Modification: 1 = Selected
Bit 1 = IAC: 0 = Position; 1 = RPM
Bit 2 = A/F Modification: 1 = Selected
Bit 3 = Spark Modification: 1 =
Selected
Bit 4 = Spark: 0 = A8S; 1 = Delta
Bit 5 = Spark: 0 = ADV; 1 = RTD
Bit 6 = Not Used
Bit 7 = Not Used
8.IAC Desired Position/Idle RPM
IAC Position (0 - 255) or RPM (0 -
3200)
9. Desired A/F Ratio
Open Loop A/F (0.0 - 25.5, N = A/F *
10)
10. Spark Absolute/Delta Modification
(0 - 90 deg.)
6.2.6 ALDL Mode 7 (Command Normal
Mode Message)
When the ALDL device requests Mode 7,
the ECM will transmit the normal mode scheduler message
specified in the request.
The ALDL device requests Mode 7 by
sending the following message:
- Message ID = $F0 Hex.
- Message Length = 85 + 2 =
87 = $57 Hex.
- Mode = $07 Hex.
- ECM Scheduler Message Code
(0-F)
- Sum Check
The ECM will respond with the
appropriate normal mode scheduler message if one exists
for that particular scheduler message code.
7.0 ERROR DETECTION/REMEDIAL ACTION
If any of the following errors are
detected the complete message is ignored and the serial
data handler is put into the wake-up mode in preparation
for the next message:
- Overrun Error, indicates
that one or more characters in the Data
Stream were lost.
- Framing Error, indicates
that the Data Byte received was
improperly framed by a start and stop bit
- Device Code riot
recognizable by ECM.
- Data Byte Count received
does not match Data Byte Count expected
as defined in message control block.
- Checksum Error, indicates
calculated check sum does not match
transmitted check sum.
- Noise Error, indicates
that one of three samples of the
transmitted bit was different from other
two.
8.0 SERIAL DATA TRANSMITTER
SPECIFICATIONS
8.1 High Speed Serial Data
Transmitter Specifications
Characteristics of the serial data
output are as follows:
- VOH GE 4.0V @ IOH =
-2.5mA, VOH LE 5.1 V (max.)
- VOL LE 0.9V @ IOL = 10.0
mA, VOL GE ECM. Ground (min.)
Serial Data Receiver Requirements
The following specifications are
required to be met by any device transmitting serial data
to the ECM:
- VIH GE 3.1V, -360uA LE IIH
LE -165uA **
- VIH LE l6V, (absolute max.
allowed)
- VIL LE 1.7V, -360uA LE IIH
LE -l65uA **
- VIL GE -0.5V, (absolute
min allowed)
*All voltages relative
to ECM Ground and measured at ECM
connector.
*All currents directed
into ECM.
**Current levels
defined by ECM receiver in tri-state
mode.
Requiring each receiver to meet these
specifications insures that the ECMs serial data output
will drive at least eight receivers in parallel.
Figure 1 *F9OMST* SC: Message
Schedule Table
Time Message
0 No Message
1 No Message
2 No Message
3 No Message
4 *F97*
5 No Message
6 No Message
7 No Message
8 No Message
9 No Message
A No Message
B No Message
C No Message
0 No Message
E No Message
F No Message
This table defines the order in which the Mode
0 (normal mode) ALDL transmit tables will be transmitted in the
serial data stream.
In this application, the *F97* is transmitted
every 200 msec.
Figure 2 *F97* Transmit Table for
Mode 0 (Normal Mode).
Location Content
1 $F0
Figure 3 *F95* Mode 1 ALDL Transmit
Table.
Loc. Variable Description
1 PROMIDA Last 4 digits of ECM serial #
2 PROMIDA+l
3 MALFFLG1 Bit 0 = MALF CODE 24 Vehicle Speed
Sensor
Bit 1 = MALF CODE 23 Manifold Air Temperature
Sensor Low
Bit 2 = MALF CODE 22 Throttle Position Sensor
Low
Bit 3 = MALF CODE 21 Throttle Position Sensor
High
Bit 4 = MALF CODE 15 Coolant Sensor Low
Temperature
Bit 5 = MALF CODE 14 Coolant Sensor High
Temperature
Bit 6 = MALF CODE 13 Oxygen Sensor
Bit 7 = MALF CODE 12 No Reference Pulses
(Engine Not Running)
4 MALFFLG2 Bit 0 = MALF CODE 42 EST Monitor
Error
Bit 1 = MALF CODE 41
Bit 2 = MALF CODE 35 IAC Error
Bit 3 = MALF CODE 34 MAP Sensor Low
Bit 4 = MALF CODE 33 MAP Sensor High
Bit 5 = MALF CODE 32 EVRV/EGR
Bit 6 = MALF CODE 31 Wastegate Overboost
Bit 7 = MALF CODE 25 Manifold Air Temperature
Sensor High
5 MALFFLG3 Bit 0 = MALF CODE 55 ADV Error
Bit 1 = MALF CODE 54
Bit 2 = MALF CODE 53 High Battery Voltage
Bit 3 = MALF CODE 52
Bit 4 = MALF CODE 51 PROM Error
Bit 5 = MALF CODE 45 Oxygen Sensor Rich
Bit 6 = MALF CODE 44 Oxygen Sensor Lean
Bit 7 = MALF CODE 43 ESC Failure
6 COOLDEGA N = ((Degrees C) + 40) * 256/192
7 COOLTSU N = ((Degrees C) + 40) * 256/192
8 ADTHROT TPS Position in A/D Counts
9 NTPSLD N = (Percent Throttle) * 16/6.25
10 NTRPMX N = RPM/25
11 OLDREFPER N = 65536 * ISIRPM
12 OLDRFPER+1
13 FILTMPH (Integer) N = MPH * 256 (2 Byte
Variable)
14 FILTMPH+1 (Fraction)
15 ADO2A N = Volts * 226
16 ALDLCNTR N = Counts
17 CORRCL N = Value * 128 (Simply a 0 to 2
multiplier)
18 BLM N = Value * 128 (Simple a 0 to 2
multiplier)
19 BLMCELL N = Cell (0 or 1 only)
20 INT N = Units
22 ISDWNA N = RPM/12.5
23 RAWADMAT Degrees C in A/D Counts
24 ADBAT N = Volts * 10
25 SAP N = Degrees * 256/90
26 SAP+1
27 SAC N = Degrees * 256/90
23 AOBARO N = kPa * 2.71 - 28.06
29 ADVAC N = kPa * 2.71 - 28.06
30 ADMAP N = kPa * 2.71 - 28.06
31 TREF N = Seconds * 80
32 BPW N = MSEC * 65.536
33 BPW+1
34 DESSPD N = RPM/12.5
35 ISDSMP N = Steps
36 OLDPA3
37 OLDPA3+l
38 NOCKRTD N = Degrees * 256/45
39 TIME N = Seconds
40 TIME+1
41 AFCR N = A/F Ratio * 10
42 EGRDES N = Percent (1 to 100 Percent)
43 EGRDC N = Percent (1 to 100 Percent)
44 AIRFLOW N = Grams/(4 * Second)
45 BSTPRESS N = kPa * 1.28
46 DESBOOST N = kPa * 1.28
47 LCKDLY N = Seconds * 10
48 APPW N = MSEC * 65.536
49 APPW+1
50 EGRDESA N = Percent (1 to 100 Percent
51 DBSTBASE N = kPa * 1.28
52 ADESCMON N = A/D Counts
53 EGRTITMR N = Seconds * 40
54 VE N = Percent * 2.56
55 AIRFUEL N = A/F Ratio * 10
56 WGATEDC N = Percent * 2.56
57 MWl Bit 0 Advance Flag (0 = Advance, 1 =
Retard)
Bit 1 Vehicle Moving Flag (0 = At Rest)
Bit 2 Interrupt Service Execution Exceeded 6.25
MSEC
Bit 3 Premium Fuel Active Flag (1 = Active)
Bit 4 Road Speed 1st Time Flag (0 = First Time)
Bit 5 A/C Clutch Flag (1 = Disable)
Bit 6 1 = Bypass Check Enabled (EST Monitor)
Bit 7 Engine Running Flag (1 = Running)
58 MW2 Bit 0 Not Used
Bit 1 Road Speed Filter Exercise Flag
Bit 2 Reference Pulse Occurred (6.25 MSEC
Check)
Bit 3 Diagnostic Switch In Factory Test
Position
Bit 4 Diagnostic Switch In Diagnostic Position
Bit 5 Diagnostic Switch In ALDL Position
Bit 6 High Battery Voltage - Disable Solenoid
Discretes
Bit 7 Old Cell Flag (Air/Fuel)
59 MW3 Bit 0 Loop Timing Flag For Timing Error
Logic
Bit 1 1 = Synch Map Read With 2X REF Pulses
Enabled
Bit 2 1 = 6X Enable Criteria Met Last 6.25 MS
Loop
Bit 3 0 = IAC P/S First Time
Bit 4 1 = EGR On
Bit S 1 = A/C Disengaged At High RPM
Bit 6 1 = REF Pulse Occurred (Used For FILTRPM
Logic)
Bit 7 1 = ESC Active
60 NVMW Bit 0 02 Sensor Ready Flag, 1 = Ready
Bit 1 Closed Loop Timer O.K. Flag, 1 = Timer
O.K.
Bit 2 Motor Reset Complete (1 = Yes)
Bit 3 Improper Shutdown Flag, 0 = Proper, 1 =
Improper.
Bit 4 Extended Throttle Cracker A/C Off Enabled
Flag
Bit 5 IAC Kickdown Enable Flag, 1 = Enabled
Bit 6 Extended Throttle Cracker A/C On Enabled
Flag
Bit 7 MALF 42 Fail Flag (EST Monitor)
61 FMIDBYTE1 Bit 0 Park/Neutral (1 = Drive)
Bit 1 Not Used
Bit 2 Vacuum (0 = Vacuum Present)
Bit 3 Power Steering (0 = Cramp)
Bit 4 VS Cooling Fan Discrete (1 = Fan
Requested)
Bit 5 Not Used
Bit 6 Not Used
Bit 7 Air Conditioner (1 = A/C Requested)
62 LCCPMW Bit 0 Fan On
Bit 1 Check Engine Light Delay Flag
Bit 2 Power Steering Mode Flag (1 = Active)
Bit 3 MALF 42A Repeat Flag
Bit 4. ICC MPH HYST BIT
Bit 5 1ST Time Hot Flag
Bit 6 First Time Fan Run Flag (Used In IGN OFF
Logic)
Bit 7 Transmission Locked Flag (1 = LOCKJP
Enabled)
..Or Shift Light Status (1 = On)
63 MWAF1 Bit 0 Clear Flood Flag (1 = Cranked In
Clear Flood Mode)
Bit 1 Learn Control Enable Flag (1 = Enable
Store, 0 = Disable)
Bit 2 Low Battery IAC Inhibit Flag (1 = IAC
Inhibited)
Bit 3 Not Used
Bit 4 Quast - Asynchronous Pulse Flag
(QAP Flag)
Bit S First Time CIL Flag (1 = First
Time)
Bit 6 Rich - Lean Flag (1 = Rich, 0 =
Lean)
Bit 7 Closed Loop Flag (1 = Closed Loop, 0 =
Open Loop)