2017-10-03 3 views
0

Lesen Sie viele Spezifikationen und kann immer noch nicht eine einfache Sache bekommen.Automotive: Wie sagt ECU ein CAN-Frame ist ein Teil des UDS-Protokolls?

Alle UDS-Anfragen sind in ISO-TP-Pakete eingekapselt, die in einfache CAN-Frames gekapselt sind, so dass ECU ständig einen Datenstrom von Frames vom CAN-Bus empfängt.

Wie entscheidet ECU, dass dieser CAN-Rahmen Teil eines High-Level-Protokolls ist?

Zum Beispiel habe ich Sicherheitsanforderung an die ECU gesendet werden, können Datenrahmen wie diese

02 27 01 

aussehen Wie ECU feststellen, dass dies nicht nur ein Teil der Daten ist aber ein Teil des Protokolls?

Ich konnte keine Beziehung zu ISO/OSI-Stack finden, wenn High-Level-Protokolle "sprechen miteinander" mit Headern, so dass wir wissen, wie Datenpakete zu entschlüsseln.

Antwort

1

Die CAN-Nachrichten-IDs, die für bestimmte Protokolle verwendet werden, werden pro System definiert.

In den meisten Fällen wird die OBD-II über CAN ID 7DFh für die Abfrage und höhere IDs für Antworten von verschiedenen Modulen gesendet, aber auch das kann bei bestimmten Automodellen unterschiedlich sein.

Eine Möglichkeit zur Ermittlung der CAN-IDs, die für die UDS-basierte Kommunikation verwendet werden, besteht darin, einfache Tester-Present (SID 3Eh) -Nachrichten zu senden und nach CAN-IDs zu suchen, die eine angemessene Antwort zu haben scheinen.

+0

Also nach dem Filtern von CAN-Frame wissen wir, dass wir diesen Rahmen mit höherem Protokoll durch die Suche auf seiner ID interpretieren sollten und für OBD-II fand ich eine Liste von IDs in iso_15765-4 von 7DFh bis 7EFh (was relevant ist für was zu sagen), aber was ist die beste Praxis für UDS IDs? Werden alle Geräte mit uds-server auf die Tester-Present-Anfrage antworten? Ich habe gerade das Video überprüft, in dem ein Typ Geräte für die UDS-Unterstützung scannte, und nur OBD-ähnliche Adressen antworteten https://www.youtube.com/watch?v=bqI_Usv77XU&feature=youtu.be. Ich frage mich, ob UDS zum Beispiel eine Anfrage an 666 Adresse senden kann? – Semant1ka

+0

@ Semant1ka Ich habe keine bessere Lösung als das Scannen durch das Senden von Nachrichten, aber aus meiner Erfahrung, wann immer es eine CAN-ID gab, die UDS erwartete, habe ich es gefunden. Und ja, so ziemlich jede CAN-ID kann verwendet werden, um UDS-Pakete zu senden (ähnlich wie praktisch jeder TVP-Port für http verwendet werden kann) – MByD

Verwandte Themen