Ich bin im Allgemeinen kein "Auto-Mensch", also kann ich das hoffentlich gut genug erklären, um hier Hilfe zu bekommen:
Beim Senden von Nachrichten an ein OBD-II-Gerät erhalte ich in den meisten von mir getesteten Fahrzeugen eine Antwort. Bei Autos, die anscheinend mehr als einen ECU-Chip haben, bekomme ich jedoch eine Antwort von jedem von ihnen. Wenn ich beispielsweise einen 01 0C
PID-Befehl an ein Fahrzeug mit 3 ECU-Chips sende , erhalte ich 3 Antworten, die im Allgemeinen sehr ähnlich, aber immer noch unterschiedlich sind.
Ein 01 00
Befehl soll 4 Bytes zurückgeben, die die unterstützten PIDs des Fahrzeugs angeben, aber dies gibt auch 4 Bytes für jede ECU zurück - eines sind vollständig ausgearbeitete 4 Bytes mit mehreren Flags ein und aus, während die anderen nur zu haben scheinen eine Handvoll Flags aktiviert (diese Flags scheinen bisher immer Flags zu sein, die in der 'Haupt'-Antwort enthalten sind, aber ich bin mir nicht sicher, ob dies immer der Fall ist).
Beispiel:
SENT: 01 00
RECEIVED:
00 BF BF AC D3 - This response has the most binary flags turned on
00 98 18 80 11 - 8 flags on here
00 98 18 80 13 - 9 flags on here
Die letzten beiden Zeilen bestehen aus Flags, die auch in der ersten Zeile markiert sind, aber die Zeile 3 hat ein zusätzliches Flag, das Zeile 2 nicht hat.
Es scheint mir, dass es vielleicht ein einzelnes Steuergerät gibt, das sich als der "primäre" Chip qualifiziert, den ich beim Senden von Befehlen hören sollte, und (ich denke) ich verstehe, dass ich eine CAN-ID-Maske / einen CAN-ID-Filter verwenden kann achte nur auf die, die ich brauche.
Die Frage ist: Gibt es wirklich ein „primäres Steuergerät“, auf das ich achten sollte, oder sind alle diese Antworten gleich wichtig? Wenn es einen primären gibt, auf den ich zielen muss, gibt es einen Befehl, den ich senden kann, um zu bestimmen, welcher der "wichtigsten" ist?
Fahrzeuge getestet an:
2011 Chevy Cruze [2 ECUs]
2015 BMW M5 [3 ECUs]
2015 Range Rover Autobiography [3 ECUs]