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:
J1939-03 On Board Diagnostics Implementation Guide
J1939-73 Application Layer - Diagnostics
J1939-21 Network Layer (Transport Protocol)
The ISO related requirements are based on:
ISO15031, parts 5,6 and 7
ISO15765, parts 2,3 and 4
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 Service||ISO Description||J1939 DM||J1939 Description|
|0x01 PID 00||Request Powertrain Data - index of supported PIDs||DM24||Use DM24 to declare emissions related support for powertrain data and DM25 freeze frame|
|0x01 PID 01||Number of DTCs, MIL status, supported monitors and their status (readiness)||DM5||OBD compliance, previously active and active DTC count monitors supported and their status (readiness)|
|0x01 PIDs 03-1B||Actual current powertrain parameter data||Various||Normally provided PGs will be used to retrieve the parameter data|
|0x01 PID 1C||OBD legislation supported||DM5||Which OBD legislation is supported|
|0x01 PID 21, 4D, 31, 4E||Distance and time while MIL on, Distance and time since DTCs cleared||DM21||Diagnostic Readiness 2 reports this data|
|0x01 PID 41, 1F, 30||Continuously monitored systems status, time since engine start, number of warm ups since DTCs cleared||DM26||Diagnostic Readiness 3 reports status of monitors on this data|
|0x02||Freeze frame data - byte00 says which PIDs supported, byte02 says which DTC caused each freeze frame, bytes 04-FF have the data||DM4, DM24/DM25||DM 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.|
|0x03||Emission-related powertrain DTCs||DM1 or DM12, DM23||Emissions 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.|
|0x04||Clear all emissions related OBD data||DM3 or DM11||DM3 clears previously active DTCs and DM11 clears all DTCs|
|0x05||Oxygen sensor test data (use service 0x06 instead)||Not used||No planned support for specific oxygen sensor data|
|0x06||Test results for non-continuously monitored systems||DM10, DM7, DM8, DM30||DM10 gives the test IDs supported, DM7 invokes the test and DM8 or DM30 are used to report the test results|
|0x07||Emissions-related Pending DTCs||DM6, DM27||DM6 has emissions related Pending DTCs and DM27 has all Pending DTCs|
|0x08||Request control of onboard system, test or component||DM7, DM8||DM7 commands the test and DM8 reports the results|
|0x09 Infotype 00||Infotype 00 declares which other infotypes are supported||Various||Individual DMs used for specific infotype data|
|0x09 Infotype 01 / 02||Vehicle's VIN number||Data Stream||Reported on Data Stream (J1939-71), using PGN 65260|
|0x09 Infotype 03 / 04||Vehicle information - Calibration ID||DM19||Bytes 5-20 contain calibration information|
|0x09 Infotype 05 / 06||Vehicle information - Calibration verification number (CVN)||DM19||Bytes 1-4 contain CVN|
|0x09 Infotype 07 / 08||In use performance ratios for diagnostic monitors||DM20||Indicates how often monitors complete compared to vehicle operation|
|0x09 Infotype 09 / 0A||ECU acronym and name|
|0x0A||Permanent DTCs (emissions related)||DM28||Permanent DTCs (emissions related)|