Структура DTC кодов

Lets see into what DTC’s are, how they are structured, how to Read and clear them.

  • DTC
  • 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

  • DTC structure
  • DTCs have 4 bytes, 3 bytes to identify them and 1 byte to denote the current status of the DTC.

    • 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
  • This service is used to Read the DTC. It has lot of subfunctions/modes supporting it. I’ll go into 5 of them

    • 01 : Report Number of DTC by status mask
    • This is used to give number of DTCs failing with a specific status.
      Example:
      03 19 01 8F
      04 59 01 8F 03

    • 02 : Report DTCs by status mask
    • 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

    • 04 : Report snapshot record of DTC
    • 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)

    • 06 : Report extended snapshot of DTC
    • Gives extended data of DTC. There are 5 counters here.

      • 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
    • Lists all supported DTCs by the ECU

  • Service 14 — Clear DTCs
  • 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