UDS – ISO 14229 (Unified Diagnostic Services)
UDS (Unified Diagnostic Services) ist ein Diagnoseprotokoll das auf dem KWP2000 und der ISO 15765 (Diagnostic communication over Controller Area Network (DoCAN)) beruht. Dieses einheitliche Diagnoseprotokoll ermöglicht es alle in einem Fahrzeug verbauten Steuergeräte mit Hilfe von UDS ansprechen und warten zu können. Der Diagnosedienst nutzt dabei die fünfte und siebte Schicht des OSI-Modells.
Vor allem im Automobilbereich findet der UDS-Dienst Verwendung. Er wird aber auch in anderen Branchen als Standard eingesetzt. Die in UDS definierten Botschaften werden dabei an die Steuergeräte im Fahrzeug gesendet, welche die vorgegebenen UDS-Dienste bereitstellen müssen. Somit ist es beispielsweise möglich, den Fehlerspeicher auszulesen oder die Steuergeräte mit einer neuen Firmware zu aktualisieren.
Funktion
Eine UDS-Botschaft ist immer einheitlich aufgebaut und unterteilt sich in SID-Feld (Service-ID), Parameterfeld und Datenfeld. Dabei funktioniert die Kommunikation nach dem Anfrage-Antwort-Prinzip. Der Client startet mit einer Anfrage an das Steuergerät und dieses sendet nach Beendigung des Dienstes eine positive oder negative Antwort zurück. Dauert die Ausführung länger als die vorgegebene Laufzeit, dann muss das Steuergerät in regelmäßigen Abständen eine vorläufige Antwort (requestCorrectlyReceived-ResponsePending) senden. Somit wird der Erhalt der Anfrage bestätigt und mitgeteilt, dass die Ausführung des Dienstes noch andauert. UDS selbst erlaubt dabei Botschaften mit beliebiger Länge, die maximale Größe wird durch das verwendete Transportprotokoll definiert.
Das oft eingesetzte ISO-TP (ISO 15765-2) erlaubt beispielsweise Botschaften bis zu einer Länge von 4095 Byte. Es kann aber auch gänzlich auf eine Antwort des Steuergerätes verzichtet werden. Dazu ist in jeder UDS Botschaft ein extra Bit vorgesehen. Ist dieses Bit gesetzt, wird keine Antwort auf einen erfolgreich durchgeführten Dienst zurückgesendet. Nur in gewissen Fehlerfällen gibt es noch eine negative Antwort vom Steuergerät. Dies wird vor allem bei der sogenannten funktionalen Adressierung eingesetzt. Dabei handelt es sich um einen Broadcast an alle Steuergeräte. Dienste, die nur an ein Steuergerät adressiert sind, nennt man dagegen physikalisch adressiert.