7.2. Diagnostic Legislation

The OpenECU diagnostics infrastructure has been tailored to meet the following legislation. In many cases, the exact description for a particular behaviour has to be extracted from more than one document.

For European OBD documents, most of the emissions related legislation is held within Directive 70/220/EEC, which has been amended many times over the years. OBD requirements are held within Annex XI, which itself was created and subsequently modified by directives:

For heavy-duty diesel vehicles the Commission brought in Directive 2003/522. Subsequently, Directive 2005/55/EC introduced additional requirements for Euro-V emissions compliant diagnostic systems from 2008 or 2009 onwards. This was in turn amended by:

For Euro-VI heavy duty diesel vehicles, the previous regulations were revoked and a new Commission Directive 582/2011 was put in place.

The Californian (CARB) diagnostics requirements are captured within Title 13 California Code of Regulations in either section 1962.8 for passenger cars, light and medium duty vehicles or section 1971.1 for heavy duty vehicles.

Scan tool communications fall into two main categories: heavy duty using J1939 and light duty using ISO15765 based protocols. The second (light duty) category also includes the original J1979 diagnostic service requirements (also described in ISO15031-5) as well as the higher numbered KWP2000 and UDS services.

The J1939 requirements are based on the SAE standards:

The ISO related requirements are based on:

The implementation within the OpenECU platform attempts to steer a course through these various diagnostics requirements. At times they conflict and in such cases, the implementation allows the user to select one alternative or another. There are also cases where a user may want to deliberately over-ride some aspect of the protocol or diagnostic requirements (e.g. during manufacturing). In these cases, the platform provides the user application with the ability to make those changes. Therefore it is essential that the application works together with the platform to provide a coherent and legally compliant diagnostic system. It cannot be left to just one side or the other.

One of the more confusing areas is the overlap between J1939-73 and ISO15031-5 (J1979) services for the generic, mandatory services. Both protocols have the ability to transmit more or less the same information, but in wildly different ways. The following table is loosly derived from one in J1939-73 and attempts to translate between the two.

Table 7.1. Diagnostic Service Comparisons

ISO/J1979 ServiceISO DescriptionJ1939 DMJ1939 Description
0x01 PID 00Request Powertrain Data - index of supported PIDsDM24Use DM24 to declare emissions related support for powertrain data and DM25 freeze frame
0x01 PID 01Number of DTCs, MIL status, supported monitors and their status (readiness)DM5OBD compliance, previously active and active DTC count monitors supported and their status (readiness)
0x01 PIDs 03-1BActual current powertrain parameter dataVariousNormally provided PGs will be used to retrieve the parameter data
0x01 PID 1COBD legislation supportedDM5Which OBD legislation is supported
0x01 PID 21, 4D, 31, 4EDistance and time while MIL on, Distance and time since DTCs clearedDM21Diagnostic Readiness 2 reports this data
0x01 PID 41, 1F, 30Continuously monitored systems status, time since engine start, number of warm ups since DTCs clearedDM26Diagnostic Readiness 3 reports status of monitors on this data
0x02Freeze frame data - byte00 says which PIDs supported, byte02 says which DTC caused each freeze frame, bytes 04-FF have the dataDM4, DM24/DM25DM 4 contains basic freeze frames - note the PG tells what DTC caused it and the PG contains standard parameter data. DM25 provides more parameter support than DM4. DM24 says which SPNs are supported.
0x03Emission-related powertrain DTCsDM1 or DM12, DM23Emissions related active(MIL on) DTCs and lamp status regular message on DM1 or when required on DM12. DM23 can report DTCs which are confirmed but the MIL is off.
0x04Clear all emissions related OBD dataDM3 or DM11DM3 clears previously active DTCs and DM11 clears all DTCs
0x05Oxygen sensor test data (use service 0x06 instead)Not usedNo planned support for specific oxygen sensor data
0x06Test results for non-continuously monitored systemsDM10, DM7, DM8, DM30DM10 gives the test IDs supported, DM7 invokes the test and DM8 or DM30 are used to report the test results
0x07Emissions-related Pending DTCsDM6, DM27DM6 has emissions related Pending DTCs and DM27 has all Pending DTCs
0x08Request control of onboard system, test or componentDM7, DM8DM7 commands the test and DM8 reports the results
0x09 Infotype 00Infotype 00 declares which other infotypes are supportedVariousIndividual DMs used for specific infotype data
0x09 Infotype 01 / 02Vehicle's VIN numberData StreamReported on Data Stream (J1939-71), using PGN 65260
0x09 Infotype 03 / 04Vehicle information - Calibration IDDM19Bytes 5-20 contain calibration information
0x09 Infotype 05 / 06Vehicle information - Calibration verification number (CVN)DM19Bytes 1-4 contain CVN
0x09 Infotype 07 / 08In use performance ratios for diagnostic monitorsDM20Indicates how often monitors complete compared to vehicle operation
0x09 Infotype 09 / 0AECU acronym and name  
0x0APermanent DTCs (emissions related)DM28Permanent DTCs (emissions related)