Zum Inhalt springen
AutoST by Zyberum GmbH
Menü
GlossarUDSCAN

Funktionale vs. physische Adressierung

Physische Adressierung schickt einen UDS-Request an ein Steuergerät, funktionale an alle. CAN-IDs 0x7E0 und 0x7DF, die Single-Frame-Regel und die Antwortregeln.

Aktualisiert Diese Seite als Markdown

Kurz gesagt

In der UDS-Diagnose schickt physische Adressierung einen Request an genau ein Steuergerät (1:1), funktionale Adressierung an eine Gruppe oder alle Steuergeräte gleichzeitig (1:n). Auf 11-Bit-CAN ist das klassische Beispiel 0x7E0 (physisch, Motorsteuergerät) gegenüber 0x7DF (funktional, alle OBD-Steuergeräte). ISO 15765-2 erlaubt funktionale Requests nur als Single Frame, und ISO 14229-1 unterdrückt dafür mehrere negative Antworten. Steuergeräte, die sich auf beiden Wegen unterschiedlich verhalten, liefern regelmäßig Findings.

Was ist funktionale vs. physische Adressierung?

Physische Adressierung heißt: Ein Request geht an ein bestimmtes Steuergerät, und dieses antwortet. Funktionale Adressierung heißt: Ein Request geht an eine Gruppe von Steuergeräten, unter Umständen an alle, und jedes, das ihn unterstützt, antwortet. In ISO 15765-2 ist das der Target Address Type (TAtype) einer Nachricht.

Auf 11-Bit-CAN mit der OBD-artigen Adressierung, der viele Fahrzeuge folgen, sendet ein Tester physisch an das Motorsteuergerät auf 0x7E0 und bekommt die Antwort auf 0x7E8, und funktional auf 0x7DF, wo jedes OBD-relevante Steuergerät mithört. Herstellerspezifische Diagnose nutzt eigene ID-Paare, das Prinzip bleibt gleich. Bei DoIP sendet der Tester an eine logische Adresse; ISO 13400-2 reserviert neben den physischen Adressen der Steuergeräte eigene Bereiche für funktionale Adressierung.

Wo ist es definiert?

ISO 15765-2 definiert physische und funktionale Adressierung für ISO-TP auf CAN und beschränkt funktionale Nachrichten auf Single Frames, weil Flow Control von vielen Empfängern gleichzeitig kollidieren würde. ISO 14229-1 legt fest, wie ein Server antwortet: Auf funktional adressierte Requests sendet er die negativen Antworten serviceNotSupported (0x11), subFunctionNotSupported (0x12), requestOutOfRange (0x31) und die beiden “not supported in active session”-Codes (0x7E, 0x7F) nicht. ISO 13400-2 definiert die logische Adressierung für DoIP.

Was es in der Praxis bedeutet

Typische funktionale Requests sind TesterPresent (3E 80 auf 0x7DF), DiagnosticSessionControl, um alle Steuergeräte in die Extended Session zu bringen, sowie CommunicationControl und ControlDTCSetting vor dem Flashen. Alle ändern den Zustand vieler Steuergeräte auf einmal, und genau deshalb zählen die Zugriffsregeln.

Die Findings am Prüfstand entstehen aus Inkonsistenz. Wir sehen Steuergeräte, die einen Service physisch mit 7F 28 22 ablehnen, ihn funktional aber annehmen, Steuergeräte, die auf einen funktionalen Request ohne die Prüfungen in eine Session wechseln, die sie physisch anwenden, und Gateways, die funktionale Requests in Domänen weiterleiten, in denen physische Requests gesperrt sind. Unterdrückte negative Antworten verbergen außerdem Information: Stille auf einen funktionalen Request heißt nicht, dass das Steuergerät ihn ignoriert hat.

Wie AutoST es testet

Die Enumeration von AutoST findet die physischen ISO-TP-Endpunkte eines Steuergeräts im 11-Bit- und 29-Bit-Bereich und führt dann Session-, Service- und DID-Enumeration gegen jedes Paar aus, sodass jedes Ergebnis an ein Steuergerät und eine Adresse gebunden ist. Über DoIP läuft dieselbe Enumeration gegen jede logische Adresse, an die das Gateway routet.

Häufige Missverständnisse

Funktionale Adressierung ist kein “Broadcast ohne Folgen”. Ein funktionales DiagnosticSessionControl oder CommunicationControl trifft jedes Steuergerät, das es unterstützt, und ein Test, der so etwas in ein Fahrzeugnetz schickt, betrifft mehr als das Testobjekt.

FAQ

Häufig gestellte Fragen

Warum darf ein funktionaler Request nur ein Single Frame sein?

Eine mehrteilige ISO-TP-Übertragung braucht Flow Control vom Empfänger. Würden mehrere Steuergeräte einen funktionalen First Frame empfangen, antworteten alle gleichzeitig mit Flow-Control-Frames. ISO 15765-2 beschränkt funktionale Adressierung deshalb auf Single Frames, auf klassischem CAN höchstens 7 Datenbytes.

Antworten alle Steuergeräte auf einen funktionalen Request?

Nein. Ein Steuergerät, das den Service oder die Sub-Funktion nicht unterstützt, bleibt still, statt serviceNotSupported, subFunctionNotSupported oder requestOutOfRange zu senden. Der Tester hört also nur von den Steuergeräten, die etwas damit anfangen können.

Was ist 0x18DB33F1?

Die funktionale 29-Bit-Request-ID für OBD auf CAN mit erweiterten Identifiern: Ziel 0x33 (alle OBD-Steuergeräte), Quelle 0xF1 (der Tester). Physische 29-Bit-Requests nutzen 0x18DA, gefolgt von Ziel- und Quelladresse.

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