Kann ich das Lenkrad im Honda Civic 2017 (No Honda Sending) drehen, indem ich Befehle über den CAN-Bus (OBD II-Anschluss) sende?

Ich möchte das Lenkrad meines Honda Civic LX 2017 (ohne Honda Sensing) drehen, indem ich Befehle über den CAN-Bus (OBD II-Port) sende. Mein Auto hat eine elektronische Servolenkung. Ich mache das, weil ich einige Experimente mit selbstfahrender Software machen muss, die den Lenkwinkel als Ausgabe sendet.

Ich werde zu diesem Zweck Panda OBD Dongle von comma.ai verwenden. Ich habe Leute gesehen, die dies in Fahrzeugen mit Honda-Abtastung getan haben. Wollte nur wissen ob es bei meinem Fahrzeug möglich ist.

Ich bezweifle es, es scheint, dass das Sensorpaket die Spurhalteassistent-Funktion enthält, die Sie benötigen würden. Wenn Ihres das tut, dann können Sie es wahrscheinlich.

Antworten (2)

Nein, nicht direkt über den OBDII-Port. Es gibt keine Möglichkeit, Lenkaktivierungen über OBD zu senden, selbst mit Diagnosegeräten auf Händlerebene. Stellen Sie sich die Auswirkungen auf die Sicherheit vor, wenn dies möglich wäre.

Selbst wenn Sie direkt auf den CAN-Bus der Lenkung zugegriffen haben, bezweifle ich, dass es Daten gibt, die Sie senden könnten, um die Lenkung zu aktivieren.

In den Systemen, mit denen ich gearbeitet habe (Scania, Landrover, Volvo, Toyota), ist das Lenksteuerungssystem in sich abgeschlossen, sodass sich die H-Brücken-Motorsteuerung und -verarbeitungseinheit einschließlich des Lenkwinkelsensoreingangs in einem Steuergerät befinden, daher können Sie es nicht senden es keine falschen Informationen. Die einzigen Informationen, die über den CAN-Bus gesendet werden, sind Motordrehzahl, Fahrzeuggeschwindigkeit, duplizierter Lenkwinkel und Hunderte anderer Datenbits von anderen Sensoren. Alles, was sicherheitskritisch ist, wird normalerweise über Flex-ray mit mehreren Redundanzbereichen gesendet.

Es gibt eigentlich nur drei Möglichkeiten, die Kontrolle über die Lenkung zu übernehmen:

1: Emulieren Sie den Lenkwinkelsensor. Das ist schwieriger als es sich anhört, da es das Abfangen der Ausgabe des Lenkwinkelsensors erfordert, einige ziemlich schnelle Ein- und Ausgaben. Es könnte einige ernsthafte Sicherheitsprobleme geben, wenn Sie dies tun, also würde ich es nicht tun.

2: Hacken Sie direkt in die H-Brückeneingänge. Ich habe das viele Male gemacht und ist wahrscheinlich am sichersten und einfachsten, wenn Sie über grundlegende Elektronik- und Softwarekenntnisse verfügen. Nehmen Sie einfach das EPS-Steuergerät auseinander und suchen Sie die Eingänge von der MCU zur H-Brücke, diese werden höchstwahrscheinlich 3,3 oder 5 V betragen. Versorgen Sie diese einfach über etwas wie ein Arduino oder ein benutzerdefiniertes Board. Sie könnten einige zusätzliche Sicherheitsfunktionen hinzufügen, indem Sie den CAN-Bus auf Eingaben vom Treiber usw. überwachen. Sie müssen einen Weg finden, Ihr System daran zu hindern, gegen den neuen Controller zu kämpfen, was ich Dazu müssen Sie die PCB-Leiterbahnen von der MCU zur H-Brücke schneiden und die MCU-Ausgänge mit den Eingängen meines Controllers verbinden und die H-Brücken-Eingänge mit den Ausgängen meines Controllers verbinden.

3: Fügen Sie benutzerdefinierten Code in die EPS-MCU ein. Ohne Zweifel die beste und sicherste Lösung, wenn Sie über umfangreiche Software- und Reverse-Engineering-Kenntnisse verfügen. Fügen Sie einfach einen Code ein, um die Lenkung zu aktivieren, wenn bestimmte Nachrichten auf dem CAN-Bus sind. Der Vorteil davon ist, dass Sie keine Sicherheitsfunktionen umgehen und da der Code eingebettet ist, denkt das Auto nicht, dass etwas falsch ist. Das einzige Problem, das ich dabei sehe, ist das Timing, da Sie offensichtlich eine extrem hohe Aktualisierungs- / Reaktionsrate benötigen, wenn es um die Steuerung geht.

Beim Civic bin ich mir nicht sicher, aber mit Openpilot von comma.ai konnte ein Freund in Taiwan L2 auf seinen Prius ohne LKAS-Funktion bekommen (überhaupt kein Kameramodul in seinem Auto).

Willkommen auf der Seite. Bitte stellen Sie keine Fragen in Antworten. Stattdessen sollten Sie die Option „ Frage stellen“ verwenden , um ein separates Q&A zu starten, falls es noch kein Q&A zu dem Thema gibt.