Zum Inhalt springen
AutoST by Zyberum GmbH
Menü
GlossarUDS

ReadDTCInformation (0x19)

UDS ReadDTCInformation (0x19) liest Diagnose-Fehlercodes und ihren Status aus einem Steuergerät. Die Sub-Funktionen, Request- und Response-Bytes und was zu prüfen ist.

Aktualisiert Diese Seite als Markdown

Kurz gesagt

ReadDTCInformation (0x19) liest Diagnose-Fehlercodes (DTCs) und ihren Status aus einem Steuergerät. Die Sub-Funktion wählt den Report-Typ, etwa reportDTCByStatusMask (02): Der Request 19 02 FF fragt alle DTCs an, die zur Maske passen, die positive Antwort 59 02 trägt die Status-Verfügbarkeitsmaske und eine Liste aus drei Byte langen DTCs mit Status. Er ist meist in der Default Session verfügbar und der Hauptweg, den Fehlerspeicher zu lesen.

Was ist ReadDTCInformation (0x19)?

ReadDTCInformation liest den Fehlerspeicher eines Steuergeräts. Das Sub-Funktions-Byte wählt den Report-Typ, der entscheidet, was das Steuergerät zurückgibt: eine Anzahl, eine gefilterte DTC-Liste, einen Snapshot (Freeze Frame) oder erweiterte Daten zu einem DTC.

Ein normaler Ablauf:

RichtungBytesBedeutung
Request19 02 FFreportDTCByStatusMask, Maske 0xFF
Positive Antwort59 02 FF 01 23 45 2F ...Status-Verfügbarkeitsmaske, dann DTC 0x012345 mit Status 0x2F
Negative Antwort7F 19 12subFunctionNotSupported

Weitere typische negative Antworten sind 7F 19 13 (incorrectMessageLengthOrInvalidFormat, fehlende Statusmaske) und 7F 19 31 (requestOutOfRange, unbekannte DTC-Nummer bei einem Snapshot-Request).

Wo ist es definiert?

ISO 14229-1:2020 definiert ReadDTCInformation (0x19) im Stored data transmission functional unit, mit der vollständigen Liste der Report-Typ-Sub-Funktionen, dem drei Byte langen DTC-Format und den acht Status-Bits. Die DTC-Nummerierung und der Bezug zu OBD-Fehlercodes stehen in Begleitnormen, aber der UDS-Service und seine Statusmaske stehen in ISO 14229-1. Der Transport auf CAN ist ISO 15765-2, sodass eine lange DTC-Liste als Mehr-Frame-Nachricht ankommt.

Was es in der Praxis bedeutet

Der Fehlerspeicher wird in fast jeder Diagnosesitzung gelesen, und der Service ist normalerweise in der Default Session verfügbar, weil er nur liest. Bei der Validierung wird geprüft:

  • die unterstützten Sub-Funktionen passen zur Spezifikation, und unbekannte geben NRC 0x12;
  • ein Request ohne Statusmaske gibt NRC 0x13;
  • die Status-Verfügbarkeitsmaske und die Status-Bits pro DTC sind konsistent;
  • Snapshot- und Extended-Data-Requests für einen unbekannten DTC geben NRC 0x31;
  • das Lesen von DTCs ändert die gespeicherten Fehler nicht.

Beim Security-Testen ist das DTC-Verhalten auch ein Signal. Ein Fuzzing-Lauf, der die DTC-Anzahl springen lässt, hat wahrscheinlich einen Fehlerpfad getroffen, der eine Meldung wert ist, also dient der Service zugleich als Monitor.

Wie AutoST es testet

AutoST liest DTC-Informationen bei der Enumeration, sodass das Ergebnis festhält, ob der Fehlerspeicher lesbar ist und in welcher Session. In der Fuzzing-Engine liest ein optionaler DTC-Count-Monitor 0x19 zwischen den Iterationen und meldet jede Änderung der Fehlercode-Anzahl während eines Laufs, was einen wachsenden Fehlerspeicher in ein Signal dafür verwandelt, dass ein Payload einen Fehlerpfad erreicht hat. Die Änderung wird neben dem exakten Payload festgehalten.

FAQ

Häufig gestellte Fragen

Was ist ein DTC-Status-Byte?

Jeder DTC trägt einen ein Byte langen Status mit Bits wie testFailed, testFailedThisOperationCycle, confirmedDTC und testNotCompletedThisOperationCycle. ISO 14229-1 definiert die acht Bits, sodass ein Tester einen gespeicherten, bestätigten Fehler von einem nur anstehenden unterscheiden kann.

Welche Sub-Funktionen sind verbreitet?

reportNumberOfDTCByStatusMask (0x01), reportDTCByStatusMask (0x02), reportDTCSnapshotRecordByDTCNumber (0x04), reportDTCExtendedDataRecordByDTCNumber (0x06) und reportSupportedDTC (0x0A) implementieren die meisten Steuergeräte.

Ändert das Lesen von DTCs etwas?

Nein. ReadDTCInformation liest nur; das Löschen des Fehlerspeichers ist ein eigener Service, ClearDiagnosticInformation (0x14). Lesen lässt sich deshalb sicher während der Enumeration ausführen.

Quellen

Passende Seiten

Sieh es auf deinem ECU

Ein Begriff, der für dein Steuergerät zählt?

In 15 Minuten sagen wir dir, wie AutoST ihn testet, wie ein Finding aussieht und was er für deinen ISO/SAE-21434-Nachweis bedeutet.

  • Direkte Antwort von einem ECU-Security-Engineer
  • Welcher Test den Begriff abdeckt
  • Kostenlos und unverbindlich
Tom Zaubermann

Deine Demo ist mitTom ZaubermannGründer von Zyberum, früher Leiter des VW InCar Security Testing Lab

Bereits im Einsatz bei Tier-1-, Tier-2-Zulieferern und OEMs. Referenzen auf Anfrage.

Ruf uns an: +49 176 439 17074automotive@zyberum.com

Oder schreib uns eine Nachricht

Wir antworten innerhalb eines Werktags.

Ruf uns anAutoST-Team fragen

Wähle einen Termin, der dir passt

In neuem Tab öffnen