Структура DTC кодов
Lets see into what DTC’s are, how they are structured, how to Read and clear them.
- DTC
- DTC structure
- 1. Byte-1 and Byte-2: Identify the Component that has failed — called as «ROOT DTC»
Upper two bits help identify the major system:
00-P- code for Powertrain
01-C- code for Chassis
10-B- code for body
11-U- code for Network - 2. Byte-3: Failure Type Byte («FTB») — Identifies failure mode of the ECU
There are lot of FTBs. ISO-15031-6 has a list.
Common Codes include 11 for short circuit to ground, 13 for open circuit. - 3. Byte-4: Status Information — There are 8 different states. They are:
- Bit 0 — test failed
- Bit 1 — test failed this/current Operating cycle
- Bit 2 — pending DTC — test failed current and previous Operating cycle
- Bit 3 — confirmed DTC — Bit is set until ageing counter(more on that later) is cleared
- Bit 4 — Test not completed since last clear
- Bit 5 — Test failed since last clear
- Bit 6 — Test not completed this Operating cycle
- Bit 7 — Warning Indicator Requested
- Service 19 — Read DTC by Identifier
- 01 : Report Number of DTC by status mask
- 02 : Report DTCs by status mask
- 04 : Report snapshot record of DTC
- 06 : Report extended snapshot of DTC
- 01 : Counter 1 — This counter gives number of Operating cycles from last fail, including incomplete tests
- 02 : Counter 2 — This counter gives number of operating cycles from last fail, only having completed tests
- 03 : Counter 3 — This counter gives number of operating cycles from first fail. Also called Ageing counter.
- 04 : Counter 4 — This counter counts number of fails from first
fail. - 10 : Fault detection counter — Records 0 if test not complete in current operating cycle. Records -128 if test passes and +127 if test fails
- 0A : Report all supported DTCs
- Service 14 — Clear DTCs
DTC stands for Diagnostic Trouble Code. It is used to idenifty faults in nodes. This is the foundation of Diagnostics.
A car now-a-days consists of lots of nodes, making it closer to brain surgery than ever.
It is very difficult to identify a fault if such a fault exists.
To make life easy for service engineers, Nodes run self-tests and when this self test fails, they log something called DTC- Diagnostic Trouble code
DTCs have 4 bytes, 3 bytes to identify them and 1 byte to denote the current status of the DTC.
This service is used to Read the DTC. It has lot of subfunctions/modes supporting it. I’ll go into 5 of them
This is used to give number of DTCs failing with a specific status.
Example:
03 19 01 8F
04 59 01 8F 03
Example:
03 19 02 7F
10 13 59 02 7F 04 60 11
30 00 00 00 00 00 00 00
21 6C 90 09 51 2F F0 00
22 55 2F F0 00 87 6C 00
4 DTCs — 046011, 900951, F00055, F000087 are reported with status masks 6C,2F,2F and 6C respectively
Gives global/local data associated with DTC such as distance travelled,global real time, internal temperature Etc.,
Example:
06 19 04 04 60 11 10 00
10 23 59 04 04 60 11 2C
30 00 00 00 00 00 00 00
21 10 07 DD 00 FF FF FF
22 FF DD 01 FF FF FF DD
23 02 FF DD 04 FF DD 05
24 FF DD 06 FF 61 B7 00
25 04 00 00 00 00 00 00
07 snapshots are reported above.
DD00 — FF FF FF FF — Global Real time
DD01 — FF FF FF — Total distance
DD02 — FF — Voltage supply
DD04 — FF — In Car temperature
DD05 — FF — Outdoor Temperature
DD06 — FF — Powermode
61B7 — 00 04 (Fuel Sensor A Value)
Gives extended data of DTC. There are 5 counters here.
Lists all supported DTCs by the ECU
This service is used to clear the DTCs. It has no subfunction. Specific DTC can also be failed by giving DTC identifier.
Erases all information associated with DTC.
Example:
05 14 FF FF FF
05 54 FF FF FF