Wie funktioniert OBD2 mit CAN?

Ich verstehe, wie CAN funktioniert (glaube ich). Gute Info hier, wenn Sie sehen möchten: Unterschied zwischen OBDII und CAN

Kurz gesagt, es gibt mehrere Module und jedes Modul sendet interessante Daten über die Drähte. Jedes Modul erhält die Daten, es entscheidet dann, ob die Daten für dieses Modul interessant sind, ob es gespeichert wird, wenn nicht, ignoriert es. (Mir ist klar, dass dies sehr kurz ist und nicht auf Prioritäten eingeht, wenn mehrere Beiträge gleichzeitig usw. vorliegen, aber darüber müssen wir uns hier keine Gedanken machen.)

Ich habe einen Bluetooth-ELM327-OBD2-Scanner und einen Arduino / ESP32 verwendet, um Daten von meinem Auto zu lesen.

Ich habe gelesen, dass Sie bei einigen Autos nicht schneller als 10 Hz abfragen können, da dies zu internen Problemen führen kann. Hier wurde ich verwirrt.

Nehmen wir also an, alles, was ich bekommen möchte, ist die Drehzahl des ELM327.

Nach meinem Verständnis von CAN fragen Sie keine Daten ab, sondern speichern sie einfach jedes Mal, wenn sie gepostet werden, wenn sie für Sie interessant sind.

Mit meinem obigen Verständnis von CAN wäre das ELM327 sicherlich ein Modul und jedes Mal, wenn die Drehzahldaten gepostet würden, würde es die Daten speichern. Dann würde es mir nur die gespeicherten Drehzahldaten zurückgeben, wenn ich mit dem Arduino danach frage. Dies gilt zwar möglicherweise nicht, da die OBD2-Geräte Fehlercodes erhalten können, die auf den verschiedenen Modulen gespeichert und nicht veröffentlicht werden.

Oder gibt es ein "OBD2-Modul" im Auto, mit dem sich der ELM327 verbindet und der ELM327 es abfragt? Wenn dies der Fall wäre, sehe ich keine Notwendigkeit, dass die CAN-Kabel im OBD2-Stecker vorhanden sind, was sie sind.

Ich bin mir bewusst, dass OBD2 PIDs hat, ich bin mir nicht sicher, wie sie funktionieren. Was passiert bei der Abfrage? Sucht es nur nach zuvor gespeicherten Beiträgen im "OBD-Modul", indem es die PID als eine Art Schlüssel verwendet, oder konvertiert es es tatsächlich in CAN und fragt die Dose ab, was meiner Meinung nach gegen die Funktionsweise von CAN verstößt?

Liege ich völlig falsch, wie OBD2 mit CAN interagiert? Oder verstehe ich CAN nicht richtig?

Ich möchte die RPM-Daten schneller als 10 Hz erhalten, aber ich möchte nichts zerstören. Mein Auto ist ein 2006er Renault, falls das überhaupt hilft.

Vielen Dank im Voraus

Willkommen bei der Kfz-Wartung und -Reparatur!
Sie haben hier viele Fragen, die nicht alle zusammenhängen. Bitte reduzieren Sie Ihre Frage auf eine Schlüsselfrage. Lesen Sie auch ähnliche Fragen - ich denke, wir haben Beiträge, die die meisten Ihrer Fragen beantworten.
@RoryAlsop Ich habe nicht das Gefühl, mehrere Fragen zu stellen, ich wollte verstehen, wie OBD2 CAN-Daten (in diesem Fall RPM-Daten) erhält, z. B. durch Abfragen oder Warten auf die Posts und diese speichert. Ich habe die zusätzlichen Informationen in die Frage eingefügt, damit ich alle meine Annahmen wissen lassen kann (was ich zu wissen glaube), falls das falsch ist und mich in die Irre führt. Aus der Antwort unten geht hervor, dass CAN nicht wirklich für RPM verwendet wird, da ich weiß, dass dies die Antwort im obigen Link für mich verständlicher macht

Antworten (2)

Ihre Frage ist etwas weit gefasst, aber ich werde versuchen, den wichtigsten Punkt zu beantworten.

Sie sagten: "Nach meinem Verständnis von CAN fragen Sie keine Daten ab, Sie speichern sie einfach jedes Mal, wenn sie gepostet werden, wenn sie für Sie interessant sind.", aber so funktioniert es nicht.

OBD2 basiert auf einem Request/Response-Schema. Der OBD2-Adapter übersetzt zwischen UART und dem eigentlichen Fahrzeugprotokoll (in Ihrem Fall CAN) und sendet die Ziffern über den Bus. Es wartet dann auf Antworten. Wenn es Antworten erhält, sammelt es sie, übersetzt sie in Ziffern und meldet sie über den UART.

Wenn es innerhalb der Wartezeit (Standardeinstellung 200 ms) keine Antworten erhält, antwortet es mit "NO DATA" über den UART.

Wenn ich mich nicht irre, sind OBDII und CAN zwei separate Kommunikationsprotokolle auf separaten Drähten. OBDII verwendet serielle (ältere und langsame) Kommunikation auf zwei Drähten. Canbus verwendet zwei von OBDII getrennte Kabel, und Kommunikationsprotokolle sind nicht seriell, sondern werden auf parallelen Kabeln gesendet, im Gegensatz zu seriellen Kabeln, die im Grunde genommen Daten in einem Zug senden. Canbus wurde entwickelt, als die Elektronik in unseren Autos immer ausgefeilter wurde und nicht mehr in serieller Kommunikation gehandhabt werden konnte, was die überarbeitete serielle Kommunikation effektiv belasten würde. Händler mit ihren speziellen Scantools haben Zugriff auf alles, im Gegensatz zu generischen Lesegeräten, die nur Zugriff auf OBDII-Codes haben. Neuere Lesegeräte lesen ABS-Codes für mehr Zugriff auf Daten. Die Drehzahl wird von den seriellen OBDII-Kommunikationsleitungen abgelesen, nicht vom Canbus. Serielle Kommunikation ist zwar langsamer, aber für die meisten Menschen, die an Live-Daten interessiert sind, in Ordnung und fast nicht wahrnehmbar. Händler verwenden Canbus, um Sensoren und Programmierung zu testen. Serielle Kommunikation kann keine Sensoren testen oder die verschiedenen Module programmieren. Ich habe ein preisgünstiges Lesegerät, aber es kann keine Canbus-Daten anzeigen und ist auf die Dekodierung generischer Fehler beschränkt. Mein Aftermarket-Clone-Scantool von GMs macht (glaube ich, habe aber nicht alles ausprobiert) praktisch alles, was ein Scantool eines Händlers tut, aber zu viel geringeren Kosten, indem es auf OBDII- und Canbus-Daten zugreift. Mein Scantool wurde verwendet, um Ersatzfernbedienungen für das Karosseriesteuermodul (BCM) zu programmieren, alle Messgeräte und Anzeigen für einen Displaytest einschließlich Verkabelung und Modul einzuschalten und verschiedene Fehler wie den Verlauf der Batterietrennung oder Fehler im Zusammenhang mit Batterietrennungen zu ziehen. Mein allgemeiner Leser kann nicht so tief in jedes Modul eintauchen wie das Scantool. Wenn ich für den Online-Zugriff auf die Website von GM bezahle,

Ich bin mir nicht sicher, ob es abgenutzt ist, es in Absätze aufzuteilen, oder hier nicht möglich ist. Ja, ich neige dazu, langatmig zu sein, aber versuche, relevante Informationen bereitzustellen, die möglicherweise nicht einfacher zu verstehen sind, wenn sie gekürzt werden, also füge ich Beispiele hinzu.
Deine Grundannahme ist falsch. CAN ist Controller Area Network, das Rückgrat für das gesamte Kommunikationsnetzwerk im gesamten Fahrzeug. Es wurde entwickelt, um getrennten Knoten die Kommunikation im gesamten Fahrzeug zu ermöglichen, ohne dass ein zentraler Computer erforderlich ist, und um die Kupferverkabelung einzusparen. OBD2 fährt auf dem CAN-Bus. Es ist die Selbstdiagnose- und Berichtsfähigkeit des Fahrzeugs. Worauf ich hier hinaus will, ist, dass Ihre Antwort völlig unangebracht und falsch ist. Ein "wenig" richtige Information mit viel Schlechtem obendrauf.
Erklären Sie dann, warum es zwei Adernpaare gibt, eines für die seriellen Pins 2 und 5, das andere Paar an den Pins 6 und 14?
Canbus und serielle Kommunikation verwenden meines Wissens nicht die gleichen Kabel, wodurch zwei Paare von Kommunikationsleitungen für separate Kommunikationsprotokolle erstellt werden.
Ich frage mich, wie das Ihre Antwort richtiger macht? Hier, vielleicht hilft dir das weiter?
Mir ist die Canbus-Technologie bekannt, sie wurde jedoch nicht in OBDI-Systemen verwendet, daher ist Ihr Standpunkt strittig. Canbus wurde hinzugefügt, nicht Huckepack auf serielle Leitungen, als OBDII mehr Daten verbesserte, als mehr Module hinzugefügt wurden. Serielle Kommunikation wurde lange vor Canbus verwendet. Jeder Drucker aus dem ersten Jahr nutzte jahrzehntelang serielle Kommunikation. Pinbelegung für 9-polige serielle Anschlüsse verwendet zwei Pins. Die Beibehaltung serieller Konfigurationen, wie sie für die Fahrzeugkommunikation übernommen wurden, bedeutete die Verwendung derselben Pinbelegungen. Canbus teilt nicht die gleichen Leitungen mit serieller Kommunikation.
Vielleicht können einige Hintergrundinformationen für OBDI und OBDII Fehlinformationen klären, während sie das ursprüngliche OBDI mit RS232-Kommunikationsprotokollen beschreiben, serielle Kommunikation, bevor Canbus später übernommen wurde, als OBDII OBDI ersetzte; geotab.com/blog/obd-ii
Dies half mir zu verstehen, dass OBD2 CAN nicht so verwendet, wie ich dachte. Andere Dinge, die ich gelesen habe, wie der Link in meiner Frage, deuten darauf hin, dass CAN wie die Daten darunter und OBD2 die "nette" Sprache oben ist