KW2000 Supported Services
Short Description
KWP2000 ECU communication protocol...
Description
TBD
Rev.
Date
Description
R00
17/03/2006
Initial revision
G. Pirovano
R01
13/04/2006
Inserted the Request freeze frame frame data service
G. Pirovano
Author
REG PIRO04/SAM04 – ISO14230 – KW2000 PROTOCOL – SUPPORTED SERVICES Written by: Giancarlo Pirovano April 2006, SIT la precisa s.p.a.
TBD
INDEX
CHAPTER 1: INTRODUCTION
1
CHAPTER 2: NORMATIVE REFERENCES
1
CHAPTER 3: DEFINITIONS
2
CHAPTER 4: KW2000 GENERAL INFORMATION
2
4.1 HEADER 4.1.1 FORMAT BYTE 4.1.2 TARGET ADDRESS BYTE 4.1.3 SOURCE ADDRESS BYTE 4.1.4 DATA LENGTH BYTE 4.2 DATA BYTES 4.3 CHECKSUM BYTES 4.4 TIMINGS
3 3 4 4 4 4 4 5
CHAPTER 5: INITIALIZATION INITIALIZATION
5
5.1 CARB INITIALIZATION 5.2 5 BAUD INITIALIZATION (OR SLOW INIT) 5.3 FAST INIT INITIALIZATION EY BYTES 5.4 K EY 5.5 MULTIUSER BUS ISSUE
6 6 7 7 8
CHAPTER 6: SERVICES SUPPRTED BY GAS ECU
10
6.1 START COMMUNICATION SERVICE 6.2 STOP COMMUNICATION SERVICE EQUEST CURRENT POWERTRAIN DIAGNOSTIC DATA 6.3 R EQUEST EQUEST POWERTRAIN FREEZE FRAME DATA 6.4 R EQUEST EQUEST EMISSION RELATED DIAGNOSTIC TROBLE CODES 6.5 R EQUEST 6.6 CLEAR EMISSION RELATED DTC 6.7 TESTER PRESENT 6.8 START DIAGNOSTIC SESSION 6.9 STOP DIAGNOSTIC SESSION
11 13 14 16 18 19 19 19 20
i
TBD
6.10 SECURITY ACCESS 6.11 ECU RESET EAD ECU IDENTIFICATION 6.12 R EAD 6.12.1 HARDWARE IDENTIFICATION 6.12.2 FIRMWARE IDENTIFICATION 6.12.3 CONFIGURATION IDENTIFICATION EQUEST VEHICLE INFORMATION 6.13 R EQUEST 6.13.1 R EPORT EPORT SUPPORTED INFO TYPES REQUEST 6.13.2 MESSAGES TO REPORT THE VEHICLE IDENTIFICATION NUMBER REQUEST 6.13.3 VEHICLE IDENTIFICATION NUMBER 6.14 WRITE DATA BY LOCAL IDENTIFIER 6.14.1 VEHICLE IDENTIFICATION NUMBER EAD DATA BY LOCAL IDENTIFIER 6.15 R EAD 6.15.1 VEHICLE IDENTIFICATION NUMBER 6.15.2 ECU MEASUREMENTS EAD DIAGNOSTIC TROBLE CODES 6.16 R EAD 6.17 CLEAR DIAGNOSTIC INFORMATION EAD STATUS OF DIAGNOSTIC TROUBLE CODES 6.18 R EAD 6.19 I/O CONTROL BY LOCAL IDENTIFIER 6.19.1 GAS VALVE CONTROL 6.19.2 GAS INJECTORS CONTROL 6.19.3 PETROL INJECTORS CONTROL 6.19.4 PETROL CONNECTION CONTROL 6.19.5 LAMBDA EMULATION CONTROL 6.19.6 TEST SWITCH LEDS 6.19.7 R EAD EAD SWITCH BUTTON 6.19.8 SET LAMBDA EMULATION VOLTAGE 6.19.9 R EAD EAD ANALOG VOLTAGE 6.19.10 R EAD EAD STATUS OF RPM SIGNAL 6.19.11 R EAD EAD PERIOD OF RPM SIGNAL 6.19.12 SET STATUS OF DIAGNOSTIC LIGHT
ii
21 23 23 24 24 25 25 25 26 26 27 28 28 30 30 30 31 32 34 36 36 37 38 38 39 40 41 42 43 44 45
TBD
TABLES Tab. 1: KW200 message structure ............................................. .................................................................... ............................................... ................................... ...........2 2 Tab. 2: Format byte structure............................. structure..................................................... ................................................ ............................................... .................................. ...........3 3 Tab. 3: mode bits........................................... bits................................................................... ................................................ ................................................ .......................................3 ...............3 Tab. 4: format byte structure required by ISO14230-4.................................. ISO14230-4......................................................... ......................................4 ...............4 Tab. 5: supported services...................................................... services............................................................................. .............................................. .....................................11 ..............11 Tab. 6: PIDs supported for service 0x01............................................ 0x01.................................................................... .............................................. ........................ ..16 16 Tab. 7: Freeze frame data supported PIDs ................................................ ....................................................................... .........................................18 ..................18 Tab. 8: diagnostic diagnostic modes ................................................ ........................................................................ ................................................ ...........................................20 ...................20 Tab. 9: access mode parameter values .............................................. ....................................................................... ............................................... ........................ ..21 21 Tab. 10: identification identification options ............................................... ...................................................................... .............................................. .....................................24 ..............24 Tab. 11: vehicle identification number number transmission sequence ................................................ ......................................................... .........27 27 Tab. 12: write data by local identifier - record local identifiers identifiers ........................................... ........................................................27 .............27 Tab. 13: read data by local identifier - record local identifiers......................................................... identifiers........................................................... 29 Tab. 14: DTC's status description ............................................. ..................................................................... ................................................ ................................. .........34 34 Tab. 15: input output local identifiers.......................................................... identifiers................................................................................. ......................................35 ...............35 Tab. 16: gas injectors status codification codification...................... ............................................. .............................................. ............................................ ....................... ..37 37 Tab. 17: output configurations for the test of the leds of the switch.................................. switch..................................................40 ................40 Tab. 18: analog channels codes................................... codes.......................................................... .............................................. .............................................. ......................... ..43 43
PICTURES Fig. 1: tester request and ECU responses.................................................. responses......................................................................... ...........................................5 ....................5 Fig. 2: normal timing set with default values .............................................. ...................................................................... ........................................5 ................5 Fig. 3: 5 baud init general form............................................ form................................................................... .............................................. .........................................6 ..................6 Fig. 4: fast init general form............................................ form.................................................................... ................................................ .............................................7 .....................7 Fig. 5: key bytes....................... bytes .............................................. .............................................. .............................................. ............................................... .......................................8 ...............8 Fig. 6: address ranges...................... ranges .............................................. ................................................ ............................................... ............................................. ............................ ......13 13 Fig. 7: read status of DTC - multiple frame positive positive response ................................................ .......................................................... ..........33 33
iii
TBD
Safety symbols Warning
Calls attention to a procedure, practice, or condition, that could possibly cause bodily injury or death.
Caution
Calls attention to a procedure,practice, or condition that could possibly cause damage to equipment or permanent loss of data.
Attention
Calls attention to a procedure, practice or condition that requires special attetion from the operator to be fulfilled correctly.
iv
TBD
Chapter 1: Introduction ISO 14230 has been established in order to define common requirements for diagnostic systems implemented on a serial data link. To achieve this, it is based on the Open Systems Interconnection (OSI) Basic Reference Model in accordance with ISO 7498 which structures communication systems into seven layers. When mapped on this model, the services used by a diagnostic tester and an Electronic Control Unit (ECU) are broken into diagnostic services (layer 7), communication services (layers 1 to 6). This documents deals with the diagnostic services supported by the PIRO04 and SAM04 gas fuel injection control units (form now on GAS ECU). The implementation of the physical and data communication layers is in accordance with the ISO14230 standard part 1 and 2. The vehicle environment to which this part of ISO 14230 applies may consist of a single tester that may be temporarily connected to the on-vehicle diagnostic data link and several on-vehicle Electronic Control Units connected directly or indirectly.
Chapter 2: Normative references The following standards contain provisions which, through reference in this text, constitute provisions of this document. document. All standards standards are subject subject to revision, revision, and parties parties to agreement agreement based on on this document are encouraged to investigate the possibility of applying the most recent editions of the standards listed below. Members of ISO maintain registers of currently valid International Standards. ISO 14229: ISO 14230-1: 14230-1: ISO 14230-2: 14230-2: ISO 14230-3: 14230-3: ISO 14230-4: 14230-4: SAE J 1930: 1930: SAE J 1979: SAE J 2012:
Road vehicles — Diagnostic systems — Diagnostic services specification. Road vehicles vehicles — Diagnostic Diagnostic systems — Keyword Protocol Protocol 2000 2000 — Part Part 1 : Physical layer. Road vehicles vehicles — Diagnostic Diagnostic systems — Keyword Protocol Protocol 2000 2000 — Part Part 2 : Data link layer. Road vehicles vehicles — Diagnostic Diagnostic systems — Keyword Protocol Protocol 2000 2000 — Part Part 3 : Application Application layer. Road vehicles vehicles — Diagnostic Diagnostic systems — Keyword Protocol Protocol 2000 — Part 4 : Requirements Requirements for emission related systems. 1995, Electrical/electronic Electrical/electronic systems systems diagnostic — Terms, definitions, abbreviations abbreviations and and acronyms. 1997, E/E diagnostic diagnostic test modes— modes— Terms, definitions, abbreviations abbreviations and and acronyms. acronyms. 2002, Diagnostic trouble codes definition
1
TBD
Chapter 3: Definitions For the purposes of this document, the definitions given in ISO 14229 and SAE J 1930 apply. CARB Client DTC EPA GAS ECU LSB MSB OBD Server SID TBD TBV VIN
California Air Resource Board The tester connected to the ECUs to request diagnostic parameters. Dignostic Trouble Codes Environment Protection Agency The controller of the gas injection. May refer to PIRO04 or SAM04. Least significant byte Most significant byte On Board Dignostic One of the ECUs connected to the tester that respond to the tester’s requests. Service IDentifier To Be Defined To Be Verified Vehicle Identiofication Number
Chapter 4: KW2000 general information The KW2000 message has the following structure: FORMAT BYTE TARGET ADDR SOURCE ADDR DATA BYTES SERVICE ID PAR 1 PAR 2 … PAR 254 CHECKSUM Tab. 1: KW200 message structure
Format byte, target address byte, source address byte and data bytes compose the header section. Service identifier and its parameters compose the data section The checksum is the LSB of the sum of the bytes composing the header and the data section. The maximum length of the message is 260 bytes (255 data + 4 header + 1 checksum).
2
TBD
Target address, source address and data length are not mandatory and their use or not is specified by the format byte. The standard doesn’t define the communication caractheristics of the byte but it was discovered that the bytes are sent as: -
8 bit no parity 1 stop bit
4.1 Header The header is composed by: format byte, target address byte, source address byte, data length. 4.1.1 Format byte The format byte has the following structure: A1
A0
L5
L4
L3
L2
L1
L0
Tab. 2: Format byte structure
A1, A0 defines the use of the address bytes, according to the following table: A1
A0
Mode
0
0
No address information
0
1
CARB mode (exception mode)
1
0
Physical addressing mode
1
1
Functional addressing mode Tab. 3: mode bits
If the mode bits are 00, the target and source address will not be present. A.1,A.0=01 (CARB mode) is an exception mode. The CARB mode is not specified in ISO 14230. CARB uses format bytes $68 (0110 1000) and $48 (0100 1000). For more details refer to ISO 9141-2 and SAE J1979. Physical addressing is used when the tester sends its request to one ECU at a time. Functional addressing is used when the tester sends its request to more than one ECU at the same time. L5..L0 defines the length of the data section if the data length byte is not used. The following cases can be encountered: encountered: 1) 2)
L5..L0 = 0: L5..L0 >0:
the data length byte is present the data length byte is not present
3
TBD
ISO14230-4 requires functional addressing for the tester requests; the functional target address must be 0x33. Physical addressing is used by the ECU for the response. The data length must be specified in the format byte. In this case the format byte has the following structure: 1
0
X
X
X
X
X
X
ECU response
1
1
X
X
X
X
X
X
Tester request
Tab. 4: format byte structure required by ISO14230-4
4.1.2 Target address byte This is the address of the destination of the message. It can be physical or functional. Physical addrressing is used by the tester to address one single ECU. Functional addressing is used by the tester to send the same request to more than one ECU. The ECU will always respond to the tester requests using physical addressing. ISO14230-4 requires that the tester uses the functional address 0x33 in its requests. 4.1.3 Source address byte This is the physical address of the device that sends the message. ISO14230-4 requires that the tester uses the physical address 0xF1 as source address. This address will be used by the ECUs as target address in their responses. 4.1.4 Data length byte This byte is present only if the bits L5..L0 of the format byte are 0. ISO14230-4 requires that the length of the data bytes is indicated in the format byte. Moreover it requires a maximum of seven data bytes to be present in the message.
4.2 Data bytes The data section is composed by the service identifier and its parameters. Its length could be upto 63 bytes if the data length byte is not present in the message or upto 255 bytes if the data length byte is present present in the message. message. ISO14230 requires, anyway, a maximum of seven data bytes, one service identifier and upto six parameters. parameters.
4.3 Checksum bytes The checksum byte has the function to let the destination of the message to check for errors in the transmission. It is the 8-bit sum of the bytes of the header and data sections.
4
TBD
4.4 Timings The KW2000 protocol is timeout based. This means the the end of a message is detected when the bus remains remains in idle for for a certain certain time. The protocol requires a interbyte time for the teser request and the ECU requests, a time between the tester request and the ECU response and a time from the end of the response of the ECU and a new request of the tester. If no request is detected on the bus, the communication is over, so the tester must continually send a presence signal signal or requests requests on the the bus.
Fig. 1: tester request and ECU ECU responses
The following table describes the minimum and maximum default values for the P x timings. Timing
Min (ms)
Max (ms)
Description
P1
0
20
Interbyte time for ECU response
P2
25
50
Time between the end of a tester request or a ECU response and another ECU response
P3
55
5000
Time between the end of the ECU responses and a new request from the tester
P4
5
20
Interbyte time for tester request
Fig. 2: normal timing set with default default values
The KW2000 protocol has a service to modify the minimum and maximum timings, but in ISO 14230-4 it is required for the tester and the ECUs to use only the normal timing set with default values.
Chapter 5: Initialization The KW2000 protocol requires that the comunication is initialized before the tester can send requests to the servers. 1) CARB initialization 2) 5 baud address initialization 3) fast initialization There are general facts that are common to all modes of initialization:
5
TBD
-
prior to any activity there shall be a bus-idle time; then the tester sends an initialization pattern; all information which is necessary to establish communication is contained in the response of the ECU.
ISO14230-4 requires that the tester must support both 5-baud and fast init initialization, instead the ECU shall support only one of the two initialization methods. The GAS ECU will suppoprt only the fast init initialization.
5.1 CARB initialization For CARB purposes 5 Baud initialization is used only. It is a functional initialization.Messages are send to all emission related ECUs (see ISO 9141-2 and ISO 14230-4).
5.2 5 baud initialization (or slow init) The general form of the 5-baud initialization is shown in the following pictures:
Fig. 3: 5 baud init general form
1) the bus must stay idle for at least 300ms 2) the tester sends the target address (0x33 as required by ISO14230-4) at 5 baud (200ms/bit) 6
TBD
3) the ECU sends the synchronization synchronizat ion pattern 0x55, which is used by the tester to detect the actual baud rate used by the ECU. 4) the ECU sends the key bytes KB1 and KB2 5) the tester sends back KB2 inverted 6) the ECU sends back the address sent by the tester inverted ISO 14230-4 requires that the 5-baud address is 0x33 and the actual communication rate is 10400 baud.
5.3 Fast init initialization The general form of the fast init initialization is described in the following picture:
Fig. 4: fast init general form
1) 2) 3) 4)
the bus must be idle the tester holds the bus in its dominant state (0) for 25ms the tester releases the bus and after 25 ms sends the startcommunication request the board responds with the startcommunication response (hopefully positive); in the response the key bytes KB1 and KB2 are sent to the tester
5.4 Key bytes With these bytes an ECU informs the tester about the supported header, timing and length information. So an ECU does not necessarily have to support all possibilities. 7
TBD
The decoding of the key bytes is defined in ISO 9141. KB2 is fixed at 0x8F. KB1 reports the supported modes. ISO14230 requires that the keybytes are 8FE9, wich means: 1) 3 byte header 2) no additional length byte 3) normal timing
Fig. 5: key bytes
AL0 AL1 HB0 HB1 TP0 TP1
support of data length in format byte (0=NO, 1=YES) support of additional data length byte (0=NO, 1=YES) support of 1 byte header (0=NO, 1=YES) support of target/source target/sourc e addresses in header (0=NO, 1=YES) use of extended timing parameters (0=NO, 1=YES) use of normal timing parametrs (0=NO, 1=YES)
Obviously TP0 and TP1 are mutually exclusive so only TPO=0 TP1=1 or TP0=1 TP1=0 can be used.
5.5 Multiuser bus issue This is extracted from the standard: The physical layer may be used as a multiuser-bus, so a kind of arbitration or bus management is necessary. There are several proposals which are not part of this part of ISO 14230. The car manufacturers are responsible for the correct working of bus management. (ISO14230-2 clause 1).
The KW2000 protocol allows the ECU to be connected on the bus and the tester can address more than one ECU at a time using functional addressing. ISO14230 requires that the tester uses functional addressing. The GAS ECU will be installed in a unknown environment and will have to respond to many tester requests toghether with (at least) the petrol ECU.
8
TBD
Some form of general purpose bus management must be designed not to disturb the communication of the tester with the petrol ECU 1.
11
The tester must be designed to manage multiple ECU responses: what happens when the tester receives two resposes to a functional request asking for data (f.i. engine coolant temperature)? Which one is showed? The first?, The last?, Both? The matter has to be investigated!
9
TBD
Chapter 6: Services supprted by GAS GAS ECU The supported services are described in the following table: Service name
SID
Sup
Start communication communication
0x81
Stop communication communication
0x82
Access timing parameters parameters
0x83
Tester shall not support this service
Request powertrain diagnostic data
0x01
See details for supported PIDs
Request powertrain freeze frame data
0x02
Request emission related diagnostic troble codes
0x03
Clear/Reset emission related diagnostic information
0x04
Request oxygen sensor monitoring test result
0x05
Request on-board monitoring test results for specific monitored systems
0x06
Request emission related diagnostic troble codes detected during current or last completed driving cycle
0x07
Pending DTCs are not supported by the ECU
Request control of on-board system, test or component
0x08
SAE J1979 consider only the test of the evaporative system (PID=0x01). All of the other PIDs are r eserved by the document
Request vehicle information
0x09
Only VIN is supported
Start diagnostic session
0x10
ECU reset
0x11
Read freeze frame data
0x12
Read diagnostic troble codes
0x13
Clear diagnostic information
0x14
Read status of diagnostic troble codes
0x17
Read diagnostic troble codes by status
0x18
Read ECU identification
0x1A
Stop diagnostic session
0x20
Read data by local identifier
0x21
Read data by common identifier identifie r
0x22
Read memory by address
0x23
Set data rates
0x26
Security access
0x27
10
Note GAS ECU address 0x12
Only PowerOn is supported
TBD
Service name
SID
Sup
Dynamically define local identifier
0x2C
Write data by common identifier
0x2E
Input output control by common identifier
0x2F
Input output control by local identifier
0x30
Start routine by local identifier
0x31
Start routine by common identifier
0x32
Request routine result by local identifier
0x33
Request download
0x34
Request upload
0x35
Transfer data
0x36
Request transfer exit
0x37
Start routine by address
0x38
Stop routine by address
0x39
Request routine result by address
0x3A
Write data by local identifier
0x3B
Write memory by address
0x3D
Tester present
0x3E
Esc code
0x80
Note
Tab. 5: supported services
6.1 Start communication service The GAS ECU recognizes the KW2000 fast-init initialization method. This requires that the tester sends the Start communication command by mean of this service. The GAS ECU address will be 0x12. Fig. 6 shows the address ranges defined by the protocol: we consider the GAS ECU to be a engine controller. The tester shall use the address 0xF1. No negative response from from the GAS ECU ECU is foreseen. foreseen.
11
TBD
Request Data Byte #1
Description
Byte Value (Hex)
Format byte
81
1
Mnemonic FMT
2
C1 #2
Target address byte
12
3
TGT
4
33
5
#3
Source address
F1
SRC
#4
Start communication communication SID
81
SCR
#5
Checksum
XX
CS
Byte Value (Hex)
Mnemonic
Positive response Data Byte
Description
#1
Format byte
83
FMT
#2
Target address byte
F1
TGT
#3
Source address byte
12
SRC
#4
Start communication communication SID
81
SCRPR
#5
Key byte #1
E9
#6
Key byte #2
8F
KB2
#7
Checksum
XX
CS
6
KB1
Though ISO14230 requires that the data length must be limited to 7 bytes, the gas ECU is able to manage upto 63 data bytes. The limitation refers only to the diagnostic services 0x00-0x0F defined in J1979 and referred by ISO14230-3. The StartCommunication service is used in the fast init initialization: before the request the wakeup pattern defined in ISO14230-2 must be sent to the gas ECU. The following figure shows the ranges of the possible physical addressing, as suggested by the KW2000 standard.
1
Physical addressing is used Functional addressing is used 3 Physical addressing is used. 4 Functional addressing is used. 5 Required by ISO14230-4, but other address numbers could be used. 6 KB1 and KB2 are required to be E9 and 8F (2025) by ISO14230-4 2
12
TBD
Fig. 6: address ranges
6.2 Stop communication service Usally the communication between the client and the server is broken due to a communication timeout. If no tester request is received within P3 max, the GAS ECU stops the communication. communication service service to stop the communication with the server. The client may also use the stop communication No negative response is foreseen from from the GAS GAS ECU.
13
TBD
Request Data Byte #1
Description
Byte Value (Hex)
Format byte
81
1
Mnemonic FMT
2
C1 #2
Target address byte
12
3
TGT
4
33
5
#3
Source address
F1
SRC
#4
Stop communication SID
82
SPR
#5
Checksum
XX
CS
Byte Value (Hex)
Mnemonic
Positive response Data Byte
Description
#1
Format byte
81
FMT
#2
Target address byte
F1
TGT
#3
Source address byte
12
SRC
#4
Stop communication communication SID positive response
82
SPRPR
#6
Checksum
XX
CS
From now on, format byte, source and target addresses and checksum will not be reported in the message examples/descriptions.
6.3 Request current current powertrain powertrain diagnostic data Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Request current powertrain diagnostic data req. SID
01
SIDRQ
#2
PID
XX
PID
1
Physical addressing is used Functional addressing is used 3 Physical addressing is used. 4 Functional addressing is used. 5 Required by ISO14230-4, but other address numbers could be used. 2
14
TBD
Positive response (request supported PIDs) Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Request current powertrain diagnostic data resp. SID
41
SIDPR
#2
Supported PID
XX
PID
#3
Data A
XX
DATA_A
#4
Data B
XX
DATA_B
#5
Data C
XX
DATA_C
#6
Data D
XX
DATA_D
The values for data A to D depends on the PID requested, please refer to appendix A and appendix B of J1979 for definition of PIDs and response values. The PID supported by GAS ECU are the following: Parameter name
PID
Support for group 1 PIDs
0x00
Monitor status and DTC number
0x01
DTC that caused freeze frame data storage
0x02
Engine coolant temperature
0x05
Fuel rail pressure (lower range)
0x0A
Intake manifold absolute pressure
0x0B
Engine RPM
0x0C
Location of oxigen sensor
0x13
Oxygen sensor Bank 1 – Sensor A
0x14
Note Mandatory
Only if an absolute pressure sensor (AEB 025 type) is installed. The standard requires that only one of Pid 0x0A, 0x22, 0x23 is supported Only if map signal is connected or an absolute pressure sensor (AEB 025 type) is installed
The standard requires that only one of Pid 0x13, 0x1D is supported Pid 0x13 is used for sensor location. Short term fuel trim is always 0% Only if the GAS ECU is configured for 2 lambda probes (2 banks)
Oxygen sensor Bank 2 – Sensor A
0x18
Pid 0x13 is used for sensor location. Short term fuel trim is always 0%
OBD requirement to which the ECU is designed
0x1C
Support for group 2 PIDs
0x20
15
TBD
Parameter name
PID
Fuel rail pressure relative to manifold vacuum
0x22
Fuel level input
0x2F
Note Only if a diffrential pressure sensor (AEB 013 type) is installed. The standard requires that only one of Pid 0x0A, 0x22, 0x23 is supported
Tab. 6: PIDs supported for service 0x01
Negative responses with rejection code subfunction not supported can be received from the GAS ECU if a non-supported PID is requested or the GAS ECU configuration doesn’t allow the PID to be suported (f.i. requesting the bank 2 – sensor A oxygen sensor voltage if the GAS ECU is configured for a single oxygen sensor).
6.4 Request powertrain powertrain freeze frame frame data Every time a new error code is store, a picture of the system is taken and stored. This service let the user acquire the data stored in the ECU memory. Only one data frame can be stored by the ECU, so the parameter Frame # shall be set to 0. Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Request current powertrain diagnostic data req. SID
02
SIDRQ
#2
PID
XX
PID
#3
Frame #
XX
FRNO
Positive response (request supported PIDs) Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Request current powertrain freeze frame data req. SID positive response
42
SIDRQPR
#2
PID
XX
PID
#3
Frame #
XX
FRNO
#4
Supported PIDs: Data A (Mandatory)
XX
DATA_A
#5
Supported PIDs: Data B (Mandatory)
XX
DATA_B
#6
Supported PIDs: Data C (Mandatory)
XX
DATA_C
#7
Supported PIDs: Data D(Mandatory)
XX
DATA_D
16
TBD
Positive response (report freeze frame PID value) Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Request current powertrain freeze frame data req. SID positive response
42
SIDRQPR
#2
PID
XX
PID
#3
Frame #
XX
FRNO
#4
Supported PID: Data A (Mandatory) (Mandatory)
XX
DATA_A
#5
Supported PID: Data B (Conditional) (Conditional)
XX
DATA_B
#6
Supported PID: Data C (Conditional) (Conditional)
XX
DATA_C
#7
Supported PID: Data D (Conditional) (Conditional)
XX
DATA_D
Byte Value (Hex)
Mnemonic
Negative response Data Byte
Description
#1
Negative response SID
7F
NACK
#2
Request current powertr rtrain freeze frame data req. SID
02
SID
#3
Response code
XX
RC
The parameter Frame # shall be set to 0. If a frame different from 0 is requested, a negative response message will be received by the client. The values for data A to D depends on the PID requested, please refer to appendix A and appendix B of J1979 for definition of PIDs and response values. In simple words PIDs 0x00, 0x20, 0x40 upto 0xE0 request information on supported PIDs; request supported PIDs PIDs positive response will will be sent to the client client by the server. server. PIDs in the range 0x01..0x1F (0x21..0x2F) (0x31..0x3F) … (0xE1..0xFF) are used to request specific data to the server and shall be used by the client only if declared as supprted by the server. Support for PID 0x00 is mandatory; support for the other PIDs is optional. The PIDs supported by the OMVL gas ECU are the following: Parameter name
PID
Support for group 1 PIDs
0x00
DTC that caused freeze frame data storage
0x02
Engine coolant temperature
0x05
Fuel rail pressure (lower range)
Intake manifold absolute pressure
0x0A
0x0B
17
Note Mandatory
Only if an absolute pressure sensor (AEB 025 type) is installed. The standard requires that only one of Pid 0x0A, 0x22, 0x23 is supported Only if map signal is connected or an absolute pressure sensor (AEB 025 type) is installed
TBD
Parameter name
PID
Engine RPM
0x0C
Oxygen sensor Bank 1 – Sensor A
0x14
Oxygen sensor Bank 2 – Sensor A
0x18
Support for group 2 PIDs
0x20
Fuel rail pressure relative to manifold vacuum
0x22
Fuel level input
0x2F
Note
Only if the GAS ECU is configured for 2 lambda probes (2 banks)
Only if a diffrential pressure sensor (AEB 013 type) is installed. The standard requires that only one of Pid 0x0A, 0x22, 0x23 is supported
Tab. 7: Freeze frame data supported PIDs
6.5 Request emission emission related diagnostic troble troble codes This service is used to get stored errors from the server. As upto 3 DTC can be transmitted in a single message, if more than 3 DTC are stored inside the server, more than one response message will be sent to the client. Please refer to SAE J1797 for detailed information about this service. The DTC detected and managed by the ECU are reported in PIRO/SAM04 Diagnostic Codes. Request Data Byte #1
Description Request emission related DTC request SID
Byte Value (Hex)
Mnemonic
03
SIDRQ
Byte Value (Hex)
Mnemonic
Positive response Data Byte
Description
#1
Request emission related DTC positive response
43
SIDPR
#2
DTC #1 (MSB)
XX
DTC1HI
#3
DTC #1 (LSB)
XX
DTC1LO
#4
DTC #2 (MSB)
XX
DTC2HI
#5
DTC #2 (LSB)
XX
DTC2LO
#6
DTC #3 (MSB)
XX
DTC3HI
#7
DTC #3 (LSB)
XX
DTC3LO
Before sending this message, current powertrain diagnostic data should be requested (SID = 0x01) with PID Number of emission related DTC and MIL status (PID = 0x01). The code 0x0000 defines a void DTC and is sent by the server to fill the fields of the response message. 18
TBD
6.6 Clear emission related DTC Use this service to delete all of the DTCs and Freeze frame data stored in the ECU memory. Only a positive response is foreseen. Request Data Byte #1
Description Clear emission related diagnostic information SID
Byte Value (Hex)
Mnemonic
04
SIDRQ
Positive Response Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Clear emission related diagnostic information positive response
44
SIDPR
6.7 Tester present This service is used to keep the communication with the ECU alive. As required by ISO14230-4, no optional parameter shall be used by the teser and the ECU will always generate a positive response message. Please refer to ISO14230-3 and ISO14230-4 for details about this service. Request Data Byte #1
Description Tester present request SID
Byte Value (Hex)
Mnemonic
3E
TP
Byte Value (Hex)
Mnemonic
7E
TPPR
Positive response Data Byte #1
Description Tester present request positive response SID
6.8 Start diagnostic session Use this service to enable different diagnostic modes in the server. After the communication between the client and the server has been established, a default diagnostic session is automatically enabled in the server. At the moment two different diagnostic session are managed by the server: diagnostic mode: the ECU continues its normal operation while it continues the • Default diagnostic communication with the tester
19
TBD
• I/O control diagnostic diagnostic mode: the ECU enters a special state, to let the tester control the I/Os of the ECU. The ECU enters the petrol mode and only the communication with the tester or the PC is kept alive. See paragraph 6.19 I/O control by local identifier for more information on the diagnostic mode.
The server will always answer with a positive response message. Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Sart diagnostic session SID
10
SDS
#2
Diagnostic mode
XX
DIAGMODE
Byte Value (Hex)
Mnemonic
Positive response Data Byte
Description
#1
Sart diagnostic session positive response SID
7E
SDSPR
#2
Diagnostic mode
XX
DIAGMODE
Diagnostic Modes
Description
00-7F
Reserved by ISO14230-3
80
Default diagnostic mode
81-A4
Reserved for future expansions
A5
I/O control diagnostic mode
A6-FF
Reserved for future expansions
Notes
Normal ECU operation
Tab. 8: diagnostic modes
6.9 Stop diagnostic session Use this service to stop the current diagnostic mode of the server and return to the default diagnostic mode. If the diagnostic mode of the ECU is the default diagnostic mode, the command has no effect. If the diagnostic mode of the ECU is I/O control mode, the ECU exit this diagnostic mode and returns to the default diagnostic mode. Request Data Byte #1
Description Stop diagnostic session SID
20
Byte Value (Hex)
Mnemonic
20
SPDS
TBD
Positive response Data Byte #1
Description
Byte Value (Hex)
Mnemonic
60
SPDSPR
Stop diagnostic session positive response SID
6.10 Security access This service is used to unlock the server and allow access to specific diagnostic services to the client. The service is completed in two steps: 1. the client send the security access request and the servers respond with a seed number 2. the client compute the key number based on the seed number and sends it to the server The parameter AccessMode AccessMode can assume values based on the following table Access Mode
Description
0x00
Invalid
0x01
Default seed request
0x02
Default key transmission
2n-1 n = 0x02..0x40
Seed request for different security levels
2n n = 0x02..0x40
Key transmission for different security levels
0x81..0xFF
Manufacturer specific
Tab. 9: access mode parameter values
The ECU supports only the default seed request and default key transmission. The seed is a 16 bit number the key is the 1-complement of the seed. For instance seed = 0xC75A, key = 0x38A5. If two unsuccessful access attempts are performed , no more access attempts are allowed for 10 seconds. The same timeout is set at the power-up or reset. The following table summarizes the negative responses of this service
21
TBD
Negative response code
Description
REQUIRED TIME DELAY NOT EXPIRED The 10 seconds timeout at power-up or after two access attempts has not expired. Retry later REQUEST OUT OF RANGE
The AccessMode parameter is out of allowed range.
CONDITION NOT CORRECT
The value for the AccessMode parameter in a SendKey security access is not the one used in the RequestSeed increased by 1.
EXCEED NUMBER OF ATTEMPTS
Two access attempts were unsuccessfull. Restart the security access procedure.
After a successfull security access the server enter the UNLOCKED status. Request #1 Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Security access SID
27
SA
#2
Access mode : request seed
01
ACCMODE
Byte Value (Hex)
Mnemonic
Positive response #1 Data Byte
Description
#1
Security access positive response SID
67
SA
#2
Access mode : request seed
01
ACCMODE
#3
Seed LSB
XX
SEED
#4
Seed MSB
XX
#5
Security access status
34
SACCSTAT
Byte Value (Hex)
Mnemonic
Negative response #1 Data Byte
Description
#1
Negative response #1 SID
7F
NACK
#2
Security access SID
27
SA
#3
Response code
XX
RC
22
TBD
Request #2 Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Security access SID
27
SA
#2
Access mode : send key
02
ACCMODE
#3
Key LSB
XX
KEY
#4
Key MSB
XX Positive response #2
Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Security access positive response SID
67
SA
#2
Access mode : send key
02
ACCMODE
#3
Security access status
34
SACCSTAT
Byte Value (Hex)
Mnemonic
Negative response #2 Data Byte
Description
#1
Negative response #2 SID
7F
NACK
#2
Security access SID
27
SA
#3
Response code
XX
RC
6.11 ECU reset Use this service to reset the ECU. The client must be prepared to re-establish the communication with the server. The ECU will perform a real hardware reset. Only the PowerOn value is allowed for the ResetMode parameter. PowerOnWhileMaintainingCommunic ningCommunication ation value is not allowed and a negative response will The PowerOnWhileMaintai be received received by the client. client. If ResetMode = PowerOn the hardware and software watch dogs are stopped and the ECU halts wating for the reset signal. After the rest signal has arrived the ECU starts its operations like after a power-up. The client will receive no response and shall prepare itself to re-establish re-establish the communication with the server.
6.12 Read ECU identification The Read ECU identification request message requests identification data from the server. The type IdentificationOption of identification data requested by the client shall be identified by the IdentificationOption parameter. parameter. The server sends an identification identification data record included in the Read ECU identification identification positive response response message. message. Identification options in the range 0x00÷0xFF are reserved by ISO14230-3.
23
TBD
The identification options supported by the ECU are listed in the following Tab. 10. Identification option
Value
Identification record
HW IDENTIFICATION
0x81
Hardware identification string
FW IDENTIFICATION
0x82
Firmware identification string
CFG IDENTIF IDENTIFICA ICATION TION
0x83 0x83
Config Configura uratio tion n file file identi identific ficati ation on
Tab. 10: identification options
Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Read ECU identification request SID
1A
RECUID
#2
Identification option
XX
IDOPT
Byte Value (Hex)
Mnemonic
Positive Response Data Byte
Description
#1
Read ECU identification positive response SID
5A
RECUIDPR
#2
Identification record byte #1
XX
IDRECVAL
: #n
:
:
Identification record byte #n-1
XX
IdentificationOption has a value not supported by the server a negative response If the parameter IdentificationOption message is sent to the client with response code REQUEST OUT OF RANGE . Negative Response Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Negative response SID
7F
NACK
#2
Read ECU identification request SID
5A
RECUID
#3
Responsde code
31
RC
6.12.1 Hardware identification The string identifying the electronic board of the ECU is transmitted as identification record. The string is terminated by a NULL character. 6.12.2 Firmware identification The string identifying the firmware version installed in the ECU is transmitted as identification record. The string is terminated by a NULL character.
24
TBD
6.12.3 Configuration identification The strings identifying the configuration file installed in the ECU are transmitted as identification record. Each string is terminated by a NULL character. The strings correspond to the three fields -
Make Model & Notes Configuration Configuratio n date
of the configuration file.
6.13 Request vehicle information The purpose of this service is to enable the external test equipment to request specific vehile information such as Vehicle Identification Number. The implementation of this service is based on the infotypes techniques: the tester uses the 0x00 parameter parameter to request the supported infotypes, and after that requets the value for the supported infotypes. The ECU supports the following infotypes: o o o
0x00 0x01 0x02
Report supported info types Number of messages to report the Vehicle Identification Number Vehicle Identification Number
Shuld a non-supported infotype be requested, a negative response message with code “SUBFUNCTION NOT SUPPORTED” will be sent to the tester . 6.13.1 Report supported supported info types request request Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Request vehicle information request SID
09
SIDRQ
#2
Infotype group
00
INFTYP
25
TBD
Response Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Request vehicle information request SID
49
SIDPR
#2
Infotype group
00
INFTYPREC
#3
Number of data items
01
NODI
#4
Supported infotypes (0x01-0x08)
C0
DATA_A
#5
Supported infotypes (0x09-0x10)
00
DATA_B
#6
Supported infotypes (0x11-0x18)
00
DATA_C
#7
Supported infotypes (0x19-0x20)
00
DATA_D
6.13.2 Messages to report report the Vehicle Identification Number request request Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Request vehicle information request SID
09
SIDRQ
#2
Message count VIN
01
MC_VIN
Byte Value (Hex)
Mnemonic
Response Data Byte
Description
#1
Request vehicle information request SID
49
SIDPR
#2
Message count VIN
01
MC_VIN
#3
Number of data items
01
NODI
#4
Number of messages to report VIN
05
DATA #1
Byte Value (Hex)
Mnemonic
6.13.3 Vehicle Identification Number Request Data Byte
Description
#1
Request vehicle information request SID
09
SIDRQ
#2
Vehicle Identification Number
02
VIN
26
TBD
Response #n Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Request vehicle information request SID
49
SIDPR
#2
Vehicle Identification Number
02
VIN
#3
Number of data items
01
NODI
#4
Vin char # 4*(n-1) – 2
XX
DATA #1
#5
Vin char # 4*(n-1) – 1
XX
DATA #2
#6
Vin char # 4*(n-1)
XX
DATA #3
#7
Vin char # 4*(n-1) +1
XX
DATA #4
The reponse is given with 5 messages (n=1..5). In the first message (n=1) Data #1, #2, #3 is 0x00, Data #4 is the first VIN char. The subsequest messages report the subsequent VIN chars: Response #1
Response #2
Response #3
Response #4
Response #5
DATA #1
00
VIN-2
VIN-6
VIN-10
VIN-14
DATA #2
00
VIN-3
VIN-7
VIN-11
VIN-15
DATA #3
00
VIN-4
VIN-8
VIN-12
VIN-16
DATA #4
VIN-1
VIN-5
VIN-9
VIN-13 VIN-13
VIN-17
Tab. 11: vehicle identification number transmission sequence
6.14 Write data by local identifier identifier The WriteDataByLocalIdentifier service is used by the client to write RecordValues (data values) to RecordLocalIdentifier . a server. The data are identified by a RecordLocalIdentifier The following RecordLocalIdentifie RecordLocalIdentifier r are defined: Record Local Identifier Vehicle Identification Number
Value
Notes
0x01
Tab. 12: write data by local identifier - record local identifiers
Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Write data by local identifier request SID
3B
WDBLID
#2
Record local identifier
XX
RECLID
#3 : #n
Record byte #1
XX : XX
RECVAL
Record byte #n
27
TBD
Positive Response Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Write data by local identifier request SID
7B
WDBLIDPR
#2
Record local identifier
XX
RECLID
If a record local identifier not included in Tab. 12 is received by the server a negative response message will be sent to the client with error code SubfunctionNotSupported . Negative Response Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Negative response SID
7F
NACK
#2
Write data by local identifier request SID
7B
WDBLIDPR
#3
Responsde code
12
RC
6.14.1 Vehicle Identification Number Use this record local identifier to store the VIN into the server memory. Seventeen record bytes must be sent in the message. These record bytes will be stored as vehicle identification number.
6.15 Read data by local identifier identifier The ReadDataByLocalIdentifier request message requests data record values from the server identified by a RecordLocalIdentifier. The server sends data record values via the ReadDataByLocalIdentifier positive response response message. message. If the server sends messages periodically and the client wants to stop the repeated positive response messages by a ReadDataByLocalIdentifier request message it shall send the request message after the P1 timing has expired and before the P2min timing becomes active. Refer to the message flow diagram and ISO 14230-2 more detail. In addition, the user optional/conditional MaximumNumberOfResponsesToSend parameter indicates to the server how many repetitions of positive response messages are requested by the client. The timing is not affected by this parameter. At the moment the slow, medium and fast data rates are not supported, if multiple samples are requested by the client they will be sent by the server after the P2 timeout has expired, as in normal communication requiring multiple response messages.
28
TBD
Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Read data by local identifier request SID
21
RDBLID
#2
Record local identifier
XX
RLOCID
#3
Transmission mode (single, slow, medium, fast, stop)
XX
TXM
#4
Maximum number of responses to send
XX
MNORTS
number of responses responses to send send are optional. The parameters Transmission mode and Maximum number If Transmission mode is not specified, single is selected by default. Maximum number number of responses responses to send send is not specified 1 is selected by default. If Maximum The parameter Maximum number of responses to send can be specified only if Transmission mode has been specified. Maximum number number of responses to If single has been specified as Transmission mode, the parameter Maximum send is set to 1. Positive response Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Read data by local identifier positive response SID
61
RDBLIDPR
#2
Record local identifier
XX
RLOCID
#3
Record byte #1
XX
RECVAL
Record byte #n
XX
: #n
Negative response Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Negative response SID
7F
NACK
#2
Read data by local identifier request SID
XX
RDBLID
#3
Response code
XX
RC
If the transmission mode is set to an invalid value, or zero is selected as maximum number of responses to send, a negative response message is sent by the server with response code RequestOutOfRange RequestOutOfRange. RecordLocalIdentifier r is requested, a a negative response message is sent by the If a non supported RecordLocalIdentifie server with response code SubfunctionNotSupported . Tab. 13 reports the supported record identifiers. Record Local Identifier
Value
Vehicle Identification Number
0x01
ECU Measurements Measurements
0x02
Notes
Tab. 13: read data by local identifier - record local identifiers
29
TBD
6.15.1 Vehicle Identification Number Use this record local identifier to get the vehicle identification number from the server. The response message will contain the seventeen bytes that compose the VIN. 6.15.2 ECU Measurements Use this record local identifier to acquire input and output parameters of the ECU. Each parameter is transmitted with two bytes in the order LSB / MSB (LSB first). The following parameters are transmitted to the tester: • • • • • • • • • • • •
Engine speed: measured rpm of the engine with 1 rpm resolution Bank #1 petrol injection time: measured petrol injection time for cylinder #1 with 1 µs resolution (ex. 3527 = 3.527 ms). Bank #2 petrol injection time: measured petrol injection time for cylinder #5 with 1 µs resolution(ex. 3527 = 3.527 ms). Bank #1 computed gas injection time: computed gas injection time for cylinder #1 with 1 µs resolution (ex. 11728 = 11.728 ms). Bank #2 computed gas injection time: computed gas injection time for cylinder #5 with 1 µs resolution (ex. 11728 = 11.728 ms). Water temperature: measured water temperature with 1°C resolution and 20°C offset (ex. 70 = 50°C) Gas temperature: measured gas temperature with 1°C resolution and 20°C offset (ex. 70 = 50°C) Differential pressure: measured pressure between the gas rail and the manifold with 1 mBar resolution (ex. 2128 = 2.128 Bar) Bank #1 lambda signal percentage: measured lambda signal as percentage of sensor range with 1% resolution. (0% means lean, 100% means rich) (ex. 83 = 0.83V for a 0-1 lambda probe). Bank #2 lambda signal percentage: measured lambda signal as percentage of sensor range with 1% resolution. (0% means lean, 100% means rich) (ex. 83 = 0.83V for a 0-1 lambda probe). Battery voltage: battery voltage measured at the petrol injector coil with 10 mV resolution (ex 1321 = 13.21 V). Fuel state: code of the fuel powering the vehicle (0x0000 for gas, 0xFFFF for petrol).
6.16 Read diagnostic troble codes The ReadDiagnosticTroubleCodes service is used by the client to read diagnostic trouble codes from the server's memory. NumberOfDTCStored to If the server does not have any DTC stored it shall set the parameter NumberOfDTCStored "0x00". This causes the server not to include DTC in the parameter ListOfDTC in the positive response message. The parameter GroupOfDTC is not supported by the ECU. Regardless of the inclusion of this parameters parameters in the request request message, message, the server server will include include all of the DTCs in in its response response message. message.
30
TBD
As the data bytes of the response message are limited to 63, due to the inclusion of the message length in the format byte, a maximum of 30 DTCs can be transmitted by the server. Request Data Byte #1
Description Read diagnostic trouble codes SID
Byte Value (Hex)
Mnemonic
13
RDDTC
Byte Value (Hex)
Mnemonic
Positive response Data Byte
Description
#1
Read diagnostic trouble codes positive responseSID
53
RDDTCPR
#2
Number of DTC
XX
#DTC
#3
DTC #1 MSB
XX
LSTOFDTC
#4
DTC #1 LSB
XX
:
:
:
#2n+1
DTC #n MSB
XX
#2n+2
DTC #n LSB
XX
No negative response is foreseen by by the server server NumberOfDTC is 0, the parameter ListOfDTC ListOfDTC is invalid as no DTC is stored in the If the parameter NumberOfDTC list. A maximum of 30 DTCs can be present in the response message.
6.17 Clear diagnostic information The ClearDiagnosticInformation service is used by the client to clear diagnostic information in the server's memory. If the server does not have any DTC and/or diagnostic information stored the server shall send a positive response response message message after after an appropriate appropriate request request message message has been received. received. The parameter GroupOfDiagnosticInformation is not supported by the server, even if it can be specifyed (reserved for future expansions). Regardless of the GroupOfDiagnosticInformation parameter, all of the DTCs and freeze frame data stored in the server’s memory will be cleared. If one or more GroupOfDiagnosticInformation parameters are specifyed in the request message, the same parameters will be included in the response message. If no DTC is stored in the server memory, the positive response message is sent to the client after a valid request. The server will always send a positive response message to the client if a valid request has been received.
31
TBD
Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Clear diagnostic information SID
14
CLRDTC
#2
Group of diagnostic information informati on #1
XX
GODIN
: #m
:
:
Group of diagnostic information #m-1
XX
Positive response Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Clear diagnostic information positive responseSID
54
CLRDTCPR
#2
Group of diagnostic information informati on #1
XX
GODIN
: #m
:
:
Group of diagnostic information #m-1
XX
6.18 Read status of diagnostic diagnostic trouble codes The Read Status Of Diagnostic Diagnostic Trobule Codes Codes service is used by the client to read diagnostic troble codes with their associated status from the server’s memory. The option parameter GroupOfDtc is not supported by the server and if specified will ignored. If the server has no DTC stored in its memory, it will set the NumberOfDtcStored NumberOfDtcStored to 0x00 and no DTC and status information will be included in the parameter ListOfDtc in the positive response message. No negative response message message will be sent by the the server. Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Read status of diagnostic trouble codes SID
17
RDSDTC
#2
Group of DTC
XX
GODTC
: #m
:
:
Group of DTC-1
XX
32
TBD
Positive response Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Read status of diagnostic trouble codes positive responseSID
57
RDSDTCPR
#2
Number of DTC
XX
#DTC
#2
DTC #1 MSB
XX
LSTDTCST
#3
DTC #1 LSB
XX
#4
DTC status #1
XX
:
:
:
#m-2
DTC #mMSB
XX
#n-1
DTC #m B
XX
DTC status #m
XX
#n
If the transmission buffer size is not sufficient to transmit all of the DTCs and their status in a single frame, multiple frames will be transmitted separated by the P 2 timeout. In Fig. 7 an example is given of a multiple frame positive response. The transmission buffer depth is set to 63 byte (message length specified in the format byte) and the numer of DTC stored is set to 23. The first 20 records (DTC + DTC’s status) are transmitted in the first frame, the remaining 3 records are transmitted in the second frame. The number of DTC parameter is set to 23 in each frame.
Fig. 7: read status of DTC - multiple frame positive response
33
TBD
The Number of DTC output parameter indicates the number of DTCs stored in the ECU, so, in a multiple frame response, it will be the same in all of the frames. The DTC’s status can have the value indicated in Tab. 14. Description
Value
Notes
Not ready
0x00
The system is not ready to detec the DTC
Present
0x01
The DTC has been stored and the signal is in error condition
Stored
0x02
The DTC has been stored and the signal is in normal condition
Invalid
0xFF
Invalid information (an error was encountered) encountered)
Tab. 14: DTC's status description
6.19 I/O control by local identifier identifier service can be available only if previously, a Start diagnostic The I/O control by local identifier session request has been received with parameter I/O control diagnostic mode. This diagnostic mode is a special mode of the ECU: the vehicle is forced into the petrol mode, no measurement is performed on the input, no control is performed on the outputs. Only the communication with the PC or the tester continues to work. This allows for the tester to request for input signal of the ECU (eventually forcing them to a known state) or for control of output signals of the ECU to be measured. Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Input output local identifier
XX
IOLID
#3
Optional parameter #1
XX
CRTLOPT
: #n
:
:
Optional parameter #n-2
XX Positive response
Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Input output local identifier
XX
IOLID
#3
Control status #1
XX
CRTLSTAT
: #n
:
:
Control status #n-2
XX
34
TBD
Negative response Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Negative response SID
7F
NACK
#2
Input output control by local identifier request SID
30
RDBLID
#3
Response code
XX
RC
If the system is in a diagnostic mode different from I/O control diagnostic mode, a negative response is sent to the tester with response code Condition not correct . If a input output local identifier is used, such that it is not recognized by the server, a a negative Subfunction not supported . response is sent to the tester with response code Subfunction diagnostic mode must be activated with a Start diagnostic session request using the The I/O control diagnostic proper parameter. parameter.
The server does not check for consistence of the parameters or that the number of parameters of the service is correct. Unpredictable results may result if the service is misused. To get back to the normal system operation the tester shall: • •
send a Stop diagnostic session request to exit the diagnostic session send a Reset ECU request to reset the ECU Input output local identifier
Value
Notes
Gas valve control
0x01
Controls the gas valve
Gas injectors control
0x02
Controls the gas injectors
Petrol injectors control
0x03
Verify the status of the petrol injectors
Petrol injectors disconnection control
0x04
Disconnect the petrol injectors from the petrol ECU
Lambda emulation control
0x05
Connects / disconnects the oxygen sensor to / from the petrol ECU
Test switch led
0x06
Set the leds of the switch
Read switch button
0x07
Reads the status of the switch button
Set lambda emulation voltage
0x08
Set the output voltage of the emulation circuit
Read analog voltage
0x09
Read the analog voltage of a analog input channel
Read status of rpm signal
0x0A
Read if the rpm signal is active or not
Read rpm period
0x0B
Read the period of the rpm signal
Set status of diagnostic lights
0x0C
Set on or off the diagnostic lights on the PCB
Tab. 15: input output local identifiers
35
TBD
6.19.1 Gas valve control Use this input output control local identifier to set the gas valve ON or OFF. Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Gas valve control
01
IOLID
#3
Gas valve status (ON = 0x01, OFF = 0x00)
XX
Positive response Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Gas valve control
01
IOLID
#n
Gas valve status (microcontroller (microcontroller pin status) (0 = OFF, 1 = ON)
XX
status parameter in the request selects if the gas valve shall be turned on or off. The gas valve status The gas valve status parameter in the response sends the actual status of the microcontroller output line. Pay attention using this service as gas is likely to flow into the engine when the gas valve is turned on.
6.19.2 Gas injectors control Use this I/O control local identifier to set a gas injector ON (open) or OFF (closed). Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Gas injectors control
02
IOLID
#3
Injector number (0x00-0x07)
XX
#4
Gas injector status (ON = 0x01, OFF = 0x00)
XX
36
TBD
Positive response Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Gas injectors control
02
IOLID
#3
Gas injectors status (microcontroller pin status).
XX
The injector number parameter in the request selects which gas injector is affected by the request the parameter can range from 0 (Cil #1) to 7 (Cil #8) for the PIRO04, or from 0 (Cil #1) to 3 (Cil #4) for the SAM04. The injector status parameter specifyes if the gas injector shall be turned ON (open) or OFF (closed). In the response the gas injectors status output parameter reports the state of all of the gas injectors of the ECU. The information is coded in the bits (1 = ON, 0 = OFF), as explained in the following table: bit
b7
b6
b5
b4
b3
b2
b1
b0
cyclinder #
8
7
6
5
4
3
2
1
Tab. 16: gas injectors status codification
The status is referred to the microcontroller pins. Pay attention using this service as gas is likely to flow into the engine when one or more gas injectors are turned on.
6.19.3 Petrol injectors control Use this I/O control local identifier to verify the status of the petrol injectors, as seen by the ECU. The output parameter gives a picture of all of the petrol injectors as indicated in Tab. 16. A bit set to 1 means that the corresponding petrol injector is driven (on, powered, open, etc..), a bit cleared to 0 means that the corresponding petrol injector is not driven (off, not powered, closed, etc.).
Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Petrol injectors control
03
IOLID
37
TBD
Positive response Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Petrol injectors control
03
IOLID
#3
Petrol injectors status (microcontroller pin status).
XX
6.19.4 Petrol connection control This I/O local identifier allow the user to connect or disconnect the petrol injectors from the petrol ECU. The disconnection is actually performed inserting a resistance betwenn the cold terminal of the petrol injectors and the relevant input pin of the petrol ECU. At the moment, all of the petrol injectors are connected/disconnected at the same time but provision is made for the selection of a specific injector to be conneted/disconnected. Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Petrol injectors disconnection disconnection control
04
IOLID
#3
Petrol injectors connection status (1 = connected, 0 = disconnected)
XX
#4
Petrol injector number Positive response
Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Petrol injectors connection control
04
IOLID
#3
Petrol injectors connection status (microcontroller pin status).
XX
The petrol connection status return parameter indicates the status of the pin of the microcontroller relevant to the connection/disconnection of the petrol injectors. If equal to zero, the petrol injectors are disconnected from the petrol ECU, if non-zero, the the petrol injectors are connected to the petrol ECU. 6.19.5 Lambda emulation control Use this I/O local identifier to connect (emulation OFF) (disconnect (emulation ON)) the oxygen sensor of the vehicle to (from) the petrol ECU. If the emulation is turned on, the petrol ECU does not measure the oxygen sensor signal, but a signal generated by the gas ECU.
38
TBD
Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Lambda emulation control
05
IOLID
#3
Lambda emulation status (1 = ON, 0 = OFF)
XX
Positive response Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Lambda emulation control
05
IOLID
#3
Lambda emulation status (microcontroller pin status).
XX
The lambda emulation status return parameter indicates the status of the lambda emulation referred to the microcontroller pins. If zero, the lambda emulation is off and the oxygen sensor is connected to the petrol ECU, if non-zero, the emulation is on and the oxygen sensor is disconnected from the petrol ECU. If the emulation of the oxygen sensor is turned on and the engine is running in petrol mode, the petrol ECU can dected a failure in the sensor or affect the short and long term fuel trim as the combustion feedback is missing.
6.19.6 Test switch leds Use this I/O local identifier to sel the led indication on the switch. The parameter let the user test the different operating modes of the switch indications and the functioning of the led indicators: Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Test switch leds
06
IOLID
#3
Ouput configuration configurat ion
XX Positive response
Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Test switch leds
06
IOLID
39
TBD
Negative response Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Negative response SID
7F
NACK
#2
Input output control by local identifier request SID
30
RDBLID
#3
Response code
31
RC
The parameter output configuration can have the following values: output configuration
Value Petrol
Gas
Level
Buzzer
Off
0x00
OFF
OFF
OFF
OFF
Petrol mode
0x01
ON
OFF
OFF
OFF
Wait mode
0x02
ON
FLASH
½
OFF
Gas mode
0x03
OFF
ON
½
OFF
Reserve
0x04
OFF
ON
RES
OFF
¼ tank
0x05
OFF
ON
¼
OFF
½ tank
0x06
OFF
ON
½
OFF
¾ tank
0x07
OFF
ON
¾
OFF
full tank
0x08
OFF
ON
FULL
OFF
low pressure alarm
0x09
ON
OFF
FLASH (full / res)
ON
Tab. 17: output configurations for the test of the leds of the switch
If the output configuration parameter has a value that is not within those indicated in Tab. 17, a negative response message will be received by the tester with response code Request Out Of Range. 6.19.7 Read switch button Use this I/O local indentifier to test the status of the switch button. The status will be acquired as it is, without filtering and without any care to polarizing voltages, etc. Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Read switch button
07
IOLID
40
TBD
Positive response Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Read switch button
07
IOLID
#3
Button status (0 = RELEASED, 1 = PRESSED)
XX
The button status output parameter is referred to the actual status of the input line to the microcontroller: this means that the status is how the system sees the switch button, regardless of its actual state. 6.19.8 Set lambda lambda emulation voltage Use this I/O local identifier to set the output voltage of the oxygen sensor emulator circuit. To have this voltage connected to the output pin of the ECU, the emulation control must be set (see 6.19.5 ). ). The service let the user select the bank and the desired output voltage. Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Set lambda emulation voltage
08
IOLID
#3
Bank number (0 == bank #1, 1 == bank #2)
XX
#4
Output voltage (0÷50 = 0÷5.0V)
XX
Positive response Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Set lambda emulation voltage
08
IOLID
#3
Lambda emulation voltage (0÷40 = 0÷4.0V)
XX
Negative response Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Negative response SID
7F
NACK
#2
Input output control by local identifier request SID
30
RDBLID
#3
Response code
31
RC
The bank number parameter selects the emulation channel affected by the command. If a non supported value is specified, a negative response will be sent to the tester with response code Request Out Of Range.
41
TBD
The output voltage has a 0.1V resolution. If a value above 5.0V is required a negative response will be sent to the the tester with with response response code Request Out Of Range. Due to circuit limitations, the maximum output voltage of the emulation circuit can be 4.1V. The “lambda emulation voltage” output parameter reports the actual voltage generated by by the emulation emulation circuit. circuit.
6.19.9 Read analog voltage Use this I/O local identifier to acquire the voltage present at a specific input of the ECU. The service will respond with the voltage value present at the input of the ECU. This voltage value is actually the voltage acquired by the microcontroller and referred to the input pin. Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Read analog voltage
09
IOLID
#3
Channel number (0-23)
XX Positive response
Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Read analog voltage
09
IOLID
#3
Channel number (4-23)
XX
#4
Measured voltage LSB
XX
#5
Measured voltage MSB
XX Negative response
Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Negative response SID
7F
NACK
#2
Input output control by local identifier request SID
30
RDBLID
#3
Response code
31
RC
The channel number parameter specify the analog channel affected by the service. If a invalid channel number is receiived by the server, a negative response message will be sent to tester with response code Request Out Of Range. The codes for the channel numbers are listed in Tab. 18. The measured voltage parameter in the response gives the measured voltage in V multiplied by 100 (0.01V resolution, ex.1376 means 13.76V).
42
TBD
Channels 16 to 23 in the PIRO04 and 16 to 19 in the SAM04 measure the current in the gas injectors; the measurement ranges from 0 to 1.7A (0,374V) if a higher current flows in the injector, the system return its full-scale value. The measured voltage parameter is a 16-bit value. It is transmitted in the LSB fisrt order: the lower byte is transmitted transmitted first and the the higher byte byte after.
Channel
Piro04
Sam04
4
Oxygen sensor bank #1
Oxygen sensor bank #1
5
Oxygen sensor bank #2
GND
6
Reserved
Switch power
7
Reserved
GND
8
Key signal (battery voltage)
Key signal (battery voltage)
9
Sensors power
Sensors power
10
Manifold pressure
Throttle position sensor
11
Rail pressure sensor / Differential pressure sensor
Manifold pressure sensor
12
Gas level sensor
Gas level sensor
13
Rail temperature
Rail temperature
14
Water temperature
Water temperature
15
Throttle position sensor
Differential pressure sensor
16
Gas injector #1 current
Gas injector #1 current
Internal signal
17
Gas injector #2 current
Gas injector #2 current
Internal signal
18
Gas injector #3 current
Gas injector #3 current
Internal signal
19
Gas injector #4 current
Gas injector #4 current
Internal signal
20
Gas injector #5 current
GND
Internal signal
21
Gas injector #6 current
GND
Internal signal
22
Gas injector #7 current
GND
Internal signal
23
Gas injector #8 current
GND
Internal signal
Tab. 18: analog channels codes
6.19.10 Read status status of rpm signal signal Use this I/O local identifier do acquire the status of the rpm signal.
43
Note
Internal signal
Internal signal
TBD
Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Read status of rpm signal
0A
IOLID
Byte Value (Hex)
Mnemonic
Positive response Data Byte
Description Descriptio n
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Read status of rpm signal
0A
IOLID
#3
Rpm signal status (1=ACTIVE, 0=NOT ACTIVE)
XX
The rpm signal status output parameter can have the following states: • ACTIVE: the signal is driven low • NOT ACTIVE: the the signal is not driven driven low
6.19.11 Read period period of rpm signal Use this I/O local identifier do acquire the period of the rpm signal. Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Read period of rpm signal
0B
IOLID
Byte Value (Hex)
Mnemonic
Positive response Data Byte
Description Descriptio n
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Read period of rpm signal
0B
IOLID
#3
Rpm signal period LSB
XX
#4
Rpm signal period MSB
XX
The rpm signal period is measured with 10us resolution (ex. 4568 = 45.68ms). The measurement takes in account the Pulses per revolution configuration parameter, that is the period of the engine speed is returned by this service. Changes in the configuration parameters affect the measurement. The system coniders not valid and discard measurements below 8ms (the system is measuring rpms!) that correspond to 7500 rpm.
44
TBD
If the rpm signal is disconnected, disconnected, the server just doesn’t measure it anymore and the service will will report the the last available available measurement measurement (the (the period should should be ∞ ).
6.19.12 Set status of diagnostic diagnostic light This I/O local identifier to set the status of the diagnostic lights mounted on the board. Request Data Byte
Description
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier request SID
30
IOCBLID
#2
Set status of diagnostic light
0C
IOLID
#3
Diagnostic light (1 = RED, 2 = GREEN)
XX
#4
Status of diagnostic light (0=OFF, 1=ON)
XX
Positive response Data Byte
Description Descriptio n
Byte Value (Hex)
Mnemonic
#1
Input output control by local identifier positive response SID
70
IOCBLIDPR
#2
Set status of diagnostic light
0C
IOLID
Byte Value (Hex)
Mnemonic
Negative response Data Byte
Description
#1
Negative response SID
7F
NACK
#2
Input output control by local identifier request SID
30
RDBLID
#3
Response code
31
RC
The diagnostic lights are not accessible to the user. This service is supplied in case an open board is being tested, tested, for whatever whatever reason. No user replaceable replaceable part is present on the electronic electronic board. Do not even think to remove the covers to access the board inside. Permanent damage may ba caused to the board and the warranty will be void.
The diagnostic light parameter selects which diagnostic light is affected by the command. If a non supported value is received by the server, a negative response message will be sent to the tester with response code Request Out Of Range. diagnostic light parameter selects if the diagnostic light must be turned ON or OFF. The status of diagnostic Zero sets the light OFF, a non zero value sets the light ON.
45
View more...
Comments