ReadDataByIdentifier (0x22)
UDS ReadDataByIdentifier (0x22) liest einen Data Identifier (DID) aus einem Steuergerät. Die Request- und Response-Bytes, welche Session nötig ist und was zu prüfen ist.
Aktualisiert Diese Seite als Markdown
Kurz gesagt
ReadDataByIdentifier (0x22) liest einen Datensatz aus einem Steuergerät über seinen zwei Byte langen Data Identifier (DID). Der Request 22 F1 90 fragt den VIN-DID an, die positive Antwort 62 F1 90 gefolgt von den Daten liefert ihn. Viele DIDs sind in der Default Session lesbar, andere brauchen die Extended Session oder SecurityAccess. Es ist der meistgenutzte UDS-Lese-Service, also entscheiden seine Zugriffsregeln, was ein Tester lesen kann.
Was ist ReadDataByIdentifier (0x22)?
ReadDataByIdentifier liest einen benannten Datensatz aus einem Steuergerät. Die zwei Bytes nach der Service-ID sind der Data Identifier (DID); die Antwort spiegelt den Identifier und hängt die Daten an.
Ein normaler Ablauf:
| Richtung | Bytes | Bedeutung |
|---|---|---|
| Request | 22 F1 90 | DID 0xF190 lesen (VIN) |
| Positive Antwort | 62 F1 90 57 30 4C ... | Identifier plus 17-Byte-VIN |
| Negative Antwort | 7F 22 31 | requestOutOfRange, DID nicht unterstützt |
Weitere typische negative Antworten sind 7F 22 13 (incorrectMessageLengthOrInvalidFormat, ungerade Anzahl Identifier-Bytes), 7F 22 33 (securityAccessDenied, DID nur nach einem Unlock lesbar) und 7F 22 7F (serviceNotSupportedInActiveSession).
Wo ist es definiert?
ISO 14229-1:2020 definiert ReadDataByIdentifier (0x22) im Data transmission functional unit. Die Norm beschreibt den Request als SID gefolgt von einem oder mehreren zwei Byte langen Identifiern, die positive Antwort als jeden Identifier gefolgt von seinem Datensatz und den reservierten Identifikations-DID-Bereich 0xF180 bis 0xF1FF. Dateninhalt und Länge jedes DID kommen aus der OEM-Diagnosebeschreibung. Der Transport auf CAN ist ISO 15765-2, weshalb ein langer Datensatz als Mehr-Frame-Nachricht ankommt.
Was es in der Praxis bedeutet
ReadDataByIdentifier ist das Rückgrat der Diagnose. Identifikationsdaten, Messwerte, Kalibrierstatus und Fehlerkontext werden alle so gelesen. Die Zugriffsregel pro DID, welche Session, ob SecurityAccess nötig ist, kommt aus der Spezifikation. Bei der Validierung wird geprüft:
- jeder DID antwortet nur in der vorgesehenen Session und auf dem vorgesehenen Security-Level;
- ein nicht unterstützter Identifier gibt NRC 0x31, nicht einen falschen oder leeren Datensatz;
- ungerade oder abgeschnittene Requests geben NRC 0x13;
- Länge und Typ der Antwort passen zur Spezifikation.
Wir sehen regelmäßig Identifikations-DIDs wie Seriennummern und Fingerprints, die ohne Session und ohne Unlock lesbar sind, was oft in Ordnung ist, und gelegentlich sensible Datensätze, die in der Default Session liegen und das nicht sollten.
Wie AutoST es testet
AutoST liest DIDs bei der Enumeration, entweder den Identifikationsbereich 0xF180 bis 0xF19F als Default oder den vollen Bereich 0x0000 bis 0xFFFF, und hält fest, welche Identifier in welcher Session antworten. Mit einer importierten ODX-, PDX- oder CDD-Datei wird jeder gefundene Identifier mit seinem echten Namen und dekodierten Wert statt einer rohen Zahl gezeigt, sodass das Ergebnis wie deine Diagnosespezifikation liest und nicht wie ein Hex-Dump.
FAQ
Häufig gestellte Fragen
Kann ein Request mehrere DIDs lesen?
Ja. ISO 14229-1 erlaubt mehrere zwei Byte lange Identifier in einem einzigen 0x22-Request, etwa 22 F1 90 F1 87. Das Steuergerät antwortet mit jedem Identifier gefolgt von seinen Daten, begrenzt durch die Transportschicht und das P2-Timing.
Was bedeutet 62 F1 90?
Die Response-Service-ID ist die Request-SID plus 0x40, also wird aus 0x22 das 0x62. F1 90 spiegelt den gelesenen Identifier, und die Bytes danach sind der Datensatz, hier die 17 ASCII-Zeichen der VIN.
Welche DIDs sind standardisiert?
ISO 14229-1 reserviert den Bereich 0xF180 bis 0xF1FF für Identifikations-DIDs wie die VIN (F190) sowie Applikations- und Boot-Software-Identifier. Die meisten anderen Identifier definiert der OEM in der ODX- oder CDD-Datei.
Quellen
Passende Seiten
- GlossarDID (Data Identifier)Eine DID ist der 16-Bit-Identifier, mit dem UDS Datensätze adressiert, gelesen mit 0x22, geschrieben mit 0x2E. Bereiche nach ISO 14229-1 Anhang C und schreibbare DIDs.
- GlossarUDS (Unified Diagnostic Services)UDS (ISO 14229) ist das Diagnoseprotokoll der meisten Steuergeräte: Sessions, Services, DIDs, SecurityAccess. Was es definiert und warum es die erste Angriffsfläche ist.
- GlossarWriteDataByIdentifier (0x2E)UDS WriteDataByIdentifier (0x2E) schreibt einen Data Identifier (DID) in ein Steuergerät. Die Request- und Response-Bytes, welche Session nötig ist und was zu prüfen ist.
- PlattformKenne jede Tür ins ECU.AutoST enumeriert ein ECU über UDS: Diagnose-Endpunkte, Sessions, alle 255 Services und lesbare DIDs, plus XCP/CCP. Riskante Services werden markiert.
- PlattformDein ODX und CDD, zu Tests gemacht.AutoST importiert ODX-, PDX- und Vector-CDD-Dateien, um gefundene DIDs zu benennen und die richtigen Routinen (0x31) aufzurufen. Write-Probing ist optional.
- Kostenlose ToolsUDS-DID-Suche: Standard-Data-IdentifierSchlage die von ISO 14229-1 reservierten Data Identifier nach: VIN (F190), aktive Session (F186), Software- und Hardwarenummern, Fingerprints, OBD- und Safety-Bereiche.
