Ethernet für Fahrzeuge - DoIP

BLOG Automobil-Ethernet189900

1. Was kann DoIP tun?f2adf6936e9aef84fef6d1065dde7eee

Ethernet wurde erstmals von BMW in Fahrzeugen eingeführt, wobei das Anwendungsszenario das Flashen/Programmieren war, um Softwaredaten-Updates für Komponenten wie LCD-Instrumentencluster zu ermöglichen. Im Vergleich zur traditionellen Kfz-Diagnose bezieht sich DoIP auf die Übertragung von UDS-Protokolldaten über Ethernet-Kommunikation, d. h. Diagnosekommunikation über das Internetprotokoll. Da DoIP große Datenmengen mit schnellen Reaktionszeiten übertragen und Ferndiagnosen über Ethernet durchführen kann, hat sich DoIP zu einem unvermeidlichen Trend für die Kfz-Diagnose entwickelt. Im Vergleich zu herkömmlichen Kfz-Systemen enthalten alle aktuellen Kfz-Systemrahmen eine DoIP-Protokollschicht über TCP/IP. Um OBD-Diagnose, Ferndiagnose, FOTA und andere Technologien besser zu unterstützen, wurde die gesamte Automobilarchitektur angepasst, wobei Switches verwendet werden, um MPUs, MCUs und andere Ethernet-ECUs über Ethernet zu verbinden, während externe und interne Netzwerke isoliert werden.

2. Zusammensetzung des DoIP-Protokolls

Dieses Protokoll arbeitet über TCP/IP. Um DoIP-Protokollnachrichten zu empfangen, muss laut Protokollspezifikation ein spezieller Port mit der Nummer 13400 abgehört werden, der dem DoIP-Protokollstapel zugewiesen ist. Sowohl UDP als auch TCP müssen diesen Empfangsport abhören, während der Sendeport ein zufälliger Wert innerhalb des Bereichs [49152~65535] ist.Protokollformat:DoIP-Nachrichten bestehen aus Header (8 Byte) + Payload (N Byte)Protocol Header [8 Byte] umfasst vier Felder:

  • Protokollversion [1 Byte]
  • Inverse Protokollversion [1 Byte]
  • Nutzlasttyp [2 Bytes]
  • Nutzdatenlänge [4 Bytes]

Inverse Protokollversion ist der invertierte Wert der Protokollversion; in diesem Beispiel wird 0x02 invertiert zu 0xFD. In der Protokollspezifikation wird ausdrücklich erwähnt, dass die Protokollversion 0xFF sein kann. Dieser Wert dient dem Zweck, Clients und Servern mit nicht übereinstimmenden Protokollversionen die Möglichkeit zu geben, den Fall zu umgehen, dass Anfragen aufgrund einer nicht übereinstimmenden Protokollkopfversion abgelehnt werden.

Art der Nutzlast:

Der Nutzlasttyp steht für die Funktionen, die der DoIP-Protokollstapel unterstützen kann.

Nutzlast Typ WertNameProtokoll
0x0000Allgemeine DoIP-Header-NegativbestätigungTCP/UDP
0x0001Nachricht zur Anforderung der FahrzeugidentifizierungUDP
0x0002Fahrzeugidentifizierungsanfrage mit EIDUDP
0x0003Fahrzeugidentifizierungsanfrage mit VINUDP
0x0004Fahrzeugankündigungsnachricht / FahrzeugidentifizierungsantwortnachrichtUDP_Discovery / UDP_test_request
0x0005Routing-AktivierungsanforderungTCP
0x0006Routing der AktivierungsantwortTCP
0x0007Antrag auf einen Alive-CheckTCP
0x0008Antwort auf den Alive-CheckTCP
0x4001DoIP-Anfrage zum EntitätsstatusUDP
0x4003Abfrage von Informationen über den StromversorgungsmodusUDP
0x8001Diagnostische MeldungTCP
0x8002Diagnosemeldung positive QuittierungTCP
0x8003Negative Quittierung der DiagnosemeldungTCP

Die Nutzdatenlänge beträgt hier 4 Bytes, d.h. DoIP-Nachrichten können maximal 4 GB (0xFFFFFFFF) übertragen.

Zwei Methoden der Fahrzeugentdeckung:

(1) Nach dem Start des DoIP-Geräts sendet es zunächst eine DoIP-Nachricht (Fahrzeugankündigung, Payload-Typ 0x0004) über UDP an alle anderen Knoten im Netz, einschließlich Diagnosetools, mit Zielport 13400. Diese Nachricht enthält Informationen über die DoIP-Version, die Fahrgestellnummer, die logische Adresse usw. des DoIP-Geräts. Diese Nachricht wird dreimal gesendet, und Diagnosewerkzeuge, die zuvor auf Port 13400 gelauscht haben, erhalten diese Informationen und erfahren die grundlegenden Informationen über das DoIP-Gerät.(2) Wenn das Diagnosewerkzeug die Nachricht nicht erhält, gibt es eine andere Methode: Das Diagnosewerkzeug fordert aktiv an, indem es eine DoIP-Anforderungsnachricht (Payload Type 0x0001) über UDP mit Zielport 13400 sendet. Das DoIP-Gerät, das seit dem Start auf Port 13400 lauscht, empfängt diese Nachricht und antwortet mit einer Antwort, die seine eigenen Informationen an das Diagnosetool enthält.

 

Die vorl: Die nächste:

Enter the result

Verification failed