Diagnose-Session (DiagnosticSessionControl 0x10)
UDS DiagnosticSessionControl (0x10) wechselt ein Steuergerät zwischen Default, Extended und Programming Session. Bytes, Timing-Parameter und was zu prüfen ist.
Aktualisiert Diese Seite als Markdown
Kurz gesagt
Eine Diagnose-Session ist der Modus, in dem ein UDS-Server läuft, gewählt mit DiagnosticSessionControl (0x10). Der Request 10 03 geht in die Extended Session, die positive Antwort 50 03 trägt das P2- und P2*-Timing. Default (01), Programming (02) und Extended (03) sind standardisiert. Jede Session gibt andere Services frei, also entscheidet das Session-Handling, welche Funktionen ein Tester erreicht.
Was ist eine Diagnose-Session?
Eine Diagnose-Session ist der Betriebsmodus eines UDS-Servers, und DiagnosticSessionControl (0x10) ist der Service, der ihn wählt. Jedes Steuergerät startet nach dem Einschalten in der Default Session. Der Tester wechselt in eine andere Session, um Services zu erreichen, die im Default nicht verfügbar sind.
Ein normaler Ablauf:
| Richtung | Bytes | Bedeutung |
|---|---|---|
| Request | 10 03 | extendedDiagnosticSession betreten |
| Positive Antwort | 50 03 00 32 01 F4 | P2server_max 50 ms, P2*server_max 5000 ms |
| Negative Antwort | 7F 10 22 | conditionsNotCorrect, z. B. Geschwindigkeit nicht null |
Weitere typische negative Antworten sind 7F 10 12 (subFunctionNotSupported), 7F 10 13 (incorrectMessageLengthOrInvalidFormat) und 7F 10 7E (subFunctionNotSupportedInActiveSession, etwa Programming Session aus dem Default angefragt, wenn das Steuergerät zuerst die Extended Session verlangt). Mit gesetztem suppressPosRspMsgIndicationBit, 10 83, wechselt das Steuergerät ohne Antwort.
Wo ist es definiert?
ISO 14229-1:2020 definiert DiagnosticSessionControl (0x10) im Diagnostic and communication management functional unit, zusammen mit ECUReset, TesterPresent und CommunicationControl. Die Norm listet die Session-Typen, den Response-Parameter-Record und die Regel, dass ein Session-Wechsel session-abhängige Zustände zurücksetzt, etwa ein entsperrtes Security-Level. Der Transport auf CAN ist ISO 15765-2.
Was es in der Praxis bedeutet
Die Session ist das erste Tor eines Diagnose-Designs. Welche Services und Data Identifier in welcher Session antworten, legt die OEM-Diagnosespezifikation fest, meist in einer ODX- oder CDD-Datei. Bei der Validierung wird geprüft:
- jeder Service ist nur in den Sessions verfügbar, die die Spezifikation nennt, und antwortet sonst mit
7F xx 7F(serviceNotSupportedInActiveSession); - erlaubte und verbotene Session-Wechsel, etwa Programming nur aus Extended;
- eine falsche Länge (
10allein oder10 03 00) gibt NRC 0x13; - der S3-Timeout bringt das Steuergerät in die Default Session zurück und verwirft jeden Zustand der alten Session;
- die Timing-Werte in der Antwort passen zur Spezifikation.
Wir sehen regelmäßig Services, die in der Default Session erreichbar sind, obwohl die Spezifikation sie in die Extended Session legt. Das ist ein Konfigurationsfehler und ohne vollständigen Sweep pro Session leicht zu übersehen.
Wie AutoST es testet
Die AutoST-Enumeration findet die Sessions, die ein Steuergerät akzeptiert, inklusive Extended und Programming, und sweept dann in jeder Session jeden Service von 0x00 bis 0xFE und klassifiziert die Antwort. Das Ergebnis ist eine Matrix aus Session und Service, die du gegen deine Diagnosespezifikation vergleichen kannst. Die Programming Session wird zuletzt getestet und lässt sich überspringen, weil manche Steuergeräte darin hängen bleiben.
FAQ
Häufig gestellte Fragen
Welche Sessions definiert ISO 14229-1?
Die Norm definiert defaultSession (0x01), programmingSession (0x02), extendedDiagnosticSession (0x03) und safetySystemDiagnosticSession (0x04). Werte von 0x40 bis 0x5F sind für Hersteller und 0x60 bis 0x7E für Systemlieferanten reserviert, also ergänzen viele Steuergeräte eigene Sessions.
Was bedeuten die vier Bytes nach 50 03?
Es ist der Session-Parameter-Record: zwei Bytes P2server_max in Millisekunden und zwei Bytes P2*server_max in Einheiten von 10 ms. 00 32 01 F4 heißt 50 ms und 5000 ms.
Warum fällt das Steuergerät von selbst in die Default Session zurück?
In jeder Non-Default Session läuft der S3-Server-Timer. Kommt vor dessen Ablauf kein Request und kein TesterPresent, kehrt das Steuergerät in die Default Session zurück, wie es die Norm verlangt.
Quellen
- ISO 14229-1:2020 Straßenfahrzeuge, Unified diagnostic services (UDS), Teil 1: Anwendungsschicht, Diagnostic and communication management functional unit, DiagnosticSessionControl (0x10)
- ISO 15765-2 Straßenfahrzeuge, Diagnosekommunikation über CAN (DoCAN), Teil 2: Transportprotokoll und Netzwerkschichtdienste
Passende Seiten
- 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.
- GlossarTesterPresent (0x3E)UDS TesterPresent (0x3E) hält eine Non-Default Session am Leben. Request- und Response-Bytes, das Suppress-Bit, der S3-Server-Timer und die Session-Bugs am Prüfstand.
- GlossarProgramming Session (0x10 0x02)Die UDS Programming Session (10 02) ist der Diagnosemodus zum Flashen eines Steuergeräts. Wie man hineinkommt, welche Services sie freischaltet, warum sie heikel 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.
- InsightsECU-Reset- und Session-Handling-Fehler, und wie du sie testestWie du UDS-Session- und Reset-Verhalten testest: Session-Rückfall, S3-Timeout, Security-Zustand nach Reset, TesterPresent und was jedes Ergebnis bedeutet.
- Kostenlose ToolsUDS-Nachrichten-DecoderUDS-Bytes aus einem Trace einfügen und sehen, was sie bedeuten: Service, Sub-Funktion, Session, DIDs, Routine Identifier, SecurityAccess-Level oder NRC, nach ISO 14229-1.
