CAN-Bus mit dem Laptop lesen und steuern?
Ich habe hier ein Schrott-Auto (Audi A4), an dem ich gerne ein bisschen was über den CAN-Bus lernen will.
Was kann man über den CAN-Bus alles auslesen? Kann man erkennen, ob der Blinker oder das Licht an ist? Kann man etwas steuern, z.B. das Licht anmachen oder die Scheibenwischer? Kann man die Scheiben runterfahren?
Dazu suche ich einen OBD2->USB-Adapter und entsprechende Software.
Was ich nicht suche: Diagnose-Software zum Auslesen von Steuergeräten und Fehlercodes. Das habe ich.
Beste Antwort im Thema
USB-Interface und Software:
https://shop.dieselschrauber.org/can-usb-interface-kit-p-313.php
Software: KCANMonitor
Oder:
AGV4000 (expert) als Interface
https://www.diamex.de/.../...ace-mit-CAN-Low-Level-inkl-MoDiag-Express
plus Software
https://www.mictronics.de/projects/usb-can-bus/
Siehe auch hier:
https://www.youtube.com/watch?v=Q0i_Z3Vzi7U
Lawicel-Modus (diese Firma hat als erste fertige Interfaces rausgebracht und eine API dazu gebaut) ist quasi die generische Schnittstelle für CAN-Bus-Sniffer. Und es ist eine Möglichkeit, CAN-Bus-Nachrichten auch zu senden. Für den Lawicel-Modus gibt es recht viel CAN-Bus-Sniffing-Software in ganz verschiedener Form.
Und günstige Lösungen sind hier drin:
"Car Hacker's Handbook by OpenGarages"
http://opengarages.org/handbook/
Naja, und ein Oszi solltest du dir daneben tun. Pico-Scope USB scopes sind da recht verbreitet für den Automotive Einsatz.
https://www.picoauto.com/
Ähnliche Themen
34 Antworten
Hallo,
ich würde das hier empfehlen, verwenden wir in der Firma auch:
https://www.ixxat.com/de
Als Software dann den Busmaster:
https://www.etas.com/de/products/applications_busmaster.php
Dann kannst Du jedes Bit analysieren und auch Botschaften senden.
Allerdings unabdingbar wird eine CAN-Bus-Konfigurationsdatei (DBC-Datei) sein, denn sonst weißt Du nicht, was sich hinter den einzelnen Botschafts-IDs versteckt.
Grüße,
diezge
Hallo,
Wie weit bist Du mit deinem Projekt gekommen?
Was für ein A4 ist das Experimentierobjekt ?
Wir arbeiten an einem ähnlichen Projekt, Ersatz des Display im KI eines A4B5 mit folgender Hardware:
Arduino Mega,
Seeed CAN BUS Shield,
Shifter 9637D ISO 9141
Waveshare 3.2 TFT
Quita 2.8
Wellemann 2.8,
RTC 1302,
SD 32M
Rigol 1054 Z
CarPort
Die zugehörige Elektronik habe ich nach Auswertung der Oszilloskop Signale am KI entwickelt.
Das V2.8 hat einen sehr guten Kontrast, lässt sich aber nicht mit dem Grafikcode von RinkyDink betreiben.
Q2.8 passt ohne große Veränderungen am KI Gehäuse jedoch ist der Chipsatz für die FIS Anwendungen unbrauchbar.
Genommen wurde das W3.2. Optimal für Grafik und arbeitet mit SevenSegNumFont in exakt passenden Größe.
Belastbare Werte über OBD/K
DZ
Speed
Ladedruck
Temperatur nach LLK
Stellung Gas
Last
Motortemperatur
Über CAN BUS Train Datensätze von folgenden PIDs:
280
288
320
388
420
488
588
1A
4A
Auswertung des TOG Signals und Gegenprobe mit Rechteckgenerator mit angepassten HIGH/LOW Delay. Die Signale des TOG zeigen kein lineares Verhalten. Die Formel habe ich so erstellt dass die Werte für den Bereich 95-105 exakt sind, Abweichung bei 41 Grad -4, bei 160 +6.
Die Werte lassen sich über Loger auf die im Slot des Display eingesetzten SD speichern.
Zu deiner Frage: über die Erstellung entsprechender Files stellt das Mapping kein Problem dar.
Probleme:
Die vollständige Auswertung der PIDs
Das Auslesen weiterer Werte der K Line
Die korrekte Anfrage der K Line
Vermutlich braucht man ein anderes KWP
Das Signal „Verbrauch“ konnte noch nicht vollständig ausgewertet werden und muss aus mehrere Werte errechnet werden. Der Wert stimmt aber es geht bestimmt auch einfacher.
Fagen:
Wer kennt die Syntax für die erweiterte Abfrage der K-Line?
Hat jemand einen KWP 1281 Header/ Library?
Die Außentemperatur scheint, wie im Oszilloskop dargestellt, über die Entladezeit eines Kondensators über den Fühler (NTC) zu laufen ?
Anbei einige Bilder :
Gruß
Ein weiteres Problem stellt die zeiliche Rehienfolge und die Aufarbeitung der Werte dar.
Die Reihenfolge kann nicht beliebig gesteltet werden sonst fallen Werte aus.
Ein Wert wird abgefragt, die Antwort über die K-Line kommt instant.
Der Wert muss umgerechnet werden, auf die SD Kartegespeichert werden, auf ein für das Display darstellbares Format umgerechnet werden und dargestellt werden. Dem MC und dem Display muss dafür Zeit gegeben werden, ca 150 ms.
So kommt es dass zB zwischen der Abfrage des Drehmomentes und der Abfrage des Ladedruckes bis zu 1s vergeht. Wenn man in dieser Zeit vom Gas geht werden die beiden Werte in unterschiedliche Belastungsregime abgefragt und das lässt die beiden Werte unplausiebel zueinander erscheinen.
Hier muss die Reihenfolge der Abfragen und das Delay feinfühlig eingestellt werden.
Gruss
Ich bin leider nicht weitergekommen. Das lag auch daran, dass ich dafür immer im Auto sitzen musste. Hätte ich die Steuergeräte mit Batterie im Keller liegen, hätte die Sache anders ausgesehen.
Die Steuergeräte brauchst Du nicht separat. Wenn Du die Leitungen an CAN-Antrieb High und Low sowie die K anschleisst kannst Du den Bus über Arduino/Shield und den seriellen Monitor auslesen. Die supported PIDs werden alle inerhalb von Sekunden angezeigt.
Für die K brauchst Du einen Shifter.
Welcher A4 steht Dir zur Verfügung ?
Gruss