back.gif (853 octets) ECU2PC: data format


Warning: Information from this site is provided as is, with no warranty of any kind from the author. Information is subject to change without notice. No support and no material is available from the author.

up.gif (853 octets) Purpose and scope

This page 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 ECU type and for testing during the ECU assembly and in-car installation procedures. A high speed UART link option is available for GMAD assembly line diagnostics.

up.gif (853 octets) Reference documents

up.gif (853 octets) Serial Data transmission rate

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.

up.gif (853 octets) Message type

Different data message types are transmitted by the ECU 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
> 20K Normal Mode
10K +-5% End of Line Test ALDL
3.9K +-5% ECU Factory Test
< 500 ohms Diagnostics/Field ALDL Service

up.gif (853 octets) Transmitted Data Specification

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.

Bit Format

A bit time is 122.07 microseconds +-0.5%. This is equivalent to 8192 Baud. A high voltage state indicates a logic one "1" condition and a low voltage state indicates a logic zero "0" condition. The high speed serial data is output on the serial data output port.

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 a logic one and is called the Stop Bit. The remaining eight center bits are data bits and are transmitted LSB (Least Significant Bit) 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).

Numerical Values

Unless specified, numerical values are expressed in Hexadecimal format (base16). The &H prefix is used in order to avoid confusions (some may use to $ prefix too).

Decimal Hexadecimal Binary
0 &H0 0000 0000
10 &H10 0000 1010
15 &H0F 0000 1111
16 &H10 0001 0000
255 &HFF 1111 1111

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 1Byte
Message Identification Word ID
Message Length Word 1Byte (d85 + d1 + N)
Mode Number Word  
Message Data N Bytes
Sum Check 1Byte
Idle Line 1Byte

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.

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 &H00 and &HFF shall not be used in the vehicle.

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.

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.

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.

up.gif (853 octets) 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.

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. Only 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.

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  &HF0, and the message length is zero.

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 ECU will cease transmitting the normal mode messages.

The ALDL mode is divided into the following sub-modes and uses a message ID of &HF0:

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

ALDL Mode 0 (Return to Normal Mode)

When the ALDL device requests Mode 0, the ECU will revert back to the normal mode. The ALDL device requests Mode 0 by sending the following message:

Message ID 1 Byte Message ID+&HF0
Message Length 1 Byte d85 + d1 = d86 = &H56
Mode 1 Byte &H00
Sum Check 1 Byte  

The ECU will respond by transmitting the normal mode messages as described in previous sections.

ALDL Mode 1 (Transmit Fixed Data Stream)

When the ALDL device requests Mode 1, the ECU will respond by transmitting a predetermined 63 byte message as defined in table *F95*.

The ALDL device requests Mode 1 by sending the following message:

Message ID 1 Byte Message ID+&HF0
Message Length 1 Byte d85 + d1 = d86 = &H56
Mode 1 Byte &H01
Sum Check 1 Byte  

The ECU will respond with the following message:

Message ID 1 Byte Message ID+&HF0
Message Length 1 Byte d85 + d1 = d86 = &H56
Mode 1 Byte &H01
Data 64 Byte  
Sum Check 1 Byte  

ALDL Mode 2 (Selectable Memory Dump)

When the ALDL device request Mode 2, the ECU will respond by transmitting the contents of 64 memory locations beginning with the address specified in the Mode 2 request.

The ALDL device request Mode 2 by sending the following message:

Message ID = &HF0. Message Length = 85 + 3 = 86 = &H58. Mode = &H02. Starting Address Upper byte. Starting Address Lower byte. Sum Check. The ECU will respond with the following message:

Message ID = &HF0. Message Length = 85 + 65 = 150 = &H96. Mode = &H02. Contents of Address 1 - - Contents of Address (1 + 63) Sum Check

ALDL Mode 3 (RAM Contents)

When the ALDL device requests Mode 3, the ECU 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 = &HF0. Message Length = 85 + 2N + 1 (N = 0 to 8). Mode = &H03. Address I Upper byte Address I Lower byte - - Address N Upper byte Address N Lower byte Sum Check The ECU will respond with the following message:

Message ID = &HF0. Message Length = 85 + N + I (N = 0 to 8). Mode = &H03. Contents of Address 1 - - Contents of Address N Sum Check

ALDL 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 - ECU Function Modification Mode Table".

The ECU will respond with the following message:

ID MESSAGE LENGTH = 85 + N + 1 (N = 0 to 8) MODE = &H04. 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.

MODE 4 - ECU FUNCTION MODIFICATION MODE TABLE

1. Discrete Output Enable Control Word

2. Discrete Output State Word

3. Mode Control Enable Word

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

5. PWM Output Control Enable Word

6. PWM Output Duty Cycle (0 - 100%)

7. Function Modification Control Word

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.)

ALDL Mode 7 (Command Normal Mode Message)

When the ALDL device requests Mode 7, the ECU will transmit the normal mode scheduler message specified in the request.

The ALDL device requests Mode 7 by sending the following message:

Message ID = &HF0. Message Length = 85 + 2 = 87 = &H57. Mode = &H07. ECU Scheduler Message Code (0-F) Sum Check The ECU will respond with the appropriate normal mode scheduler message if one exists for that particular scheduler message code.

up.gif (853 octets) 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.

up.gif (853 octets) 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 ECU Ground and measured at ECU connector.

*All currents directed into ECU.

**Current levels defined by ECU 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.

up.gif (853 octets) Figure 1 *F9OMST* SC: Message Schedule Table

Time 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.

up.gif (853 octets) Figure 2 *F97* Transmit Table for Mode 0 (Normal Mode).

Location Content

1 &HF0

up.gif (853 octets) Figure 3 *F95* Mode 1 ALDL Transmit Table.

Loc. Variable Description

up.gif (853 octets) Links

A very exhaustive presentation about ALDL
http://www.sunflower.com/~leroy/P4/section5.htm

ALDL Data
http://www.geocities.com/ecmguy.geo/diagnostics/7749aldl.html

up.gif (853 octets)