ED BMSdiag
Komponenten und Verbrauchsmaterialien
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Apps und Onlinedienste
|
Über dieses Projekt
Absicht
Ich fahre ein Elektroauto – einen Smart für zwei Elektroantrieb. Der Zustand der Traktionsbatterie ist von wesentlicher Bedeutung und wird durch ein Batteriemanagementsystem (BMS) aufrechterhalten. Es überwacht alle 93 Zellen während des Ladens / Entladens und sorgt für eine gleichmäßige Spannungsbalance. Normalerweise können nur Servicetools Informationen von diesem Steuergerät lesen.
Das Auto ist mit einem GSM-Modem für den Zugriff auf Statusdaten wie Ladezustand (SOC), verfügbare Reichweite und andere einfache Informationen ausgestattet. Für eine gewisse Zeit war das Modem im erweiterten Modus und sammelte Diagnoseinformationen über das Auto. Neugierig auf den Inhalt habe ich versucht, in den CAN-Bus zu schnüffeln, um zu wissen, was übertragen wurde.
Inspiriert von ähnlichen Projekten für andere Elektroautos – wie dem Nissan Leaf – habe ich den kompletten CAN-Bus-Verkehr während der Fahrt oder beim Laden des Autos aufgezeichnet. Die ersten gesnifften Streams enthielten wirklich diese Diagnosedaten - aber wie kann man sie entschlüsseln?
Details zum CAN-Bus-Sniffing und Reverse Engineering finden Sie hier in einem separaten Artikel.
Was wird benötigt
Besorgen Sie sich die erforderliche Hardware. Bei modernen Autos erfolgt die physikalische Schicht über den CAN-Bus. Mindestens zwei CAN-Bus-Schirme sind vorhanden - siehe Komponentenliste. Sie müssen an den Diagnoseanschluss des Autos - den OBD-Anschluss - anschließen, also kaufen Sie ein Kabel oder stellen Sie Ihr eigenes her. HINWEIS:Es gibt zwei Standards für OBD-zu-DSUB-9-Kabel – wählen Sie den richtigen! Siehe Bilder unten:
Wenn Sie Ihr eigenes Kabel herstellen, empfiehlt es sich, ein altes Twisted-Pair-Netzwerkkabel zu verwenden. Verwenden Sie eines dieser gepaarten Kabel für CAN-H und CAN-L. Dadurch wird die Signalintegrität verbessert. Überschreiten Sie außerdem NICHT die Länge von 1 m, um Signalreflexionen zu minimieren.
Erste Schritte
Schritt 1
Bereiten Sie die Hardware vor und finden Sie ein schönes Gehäuse für die Boards.
Schritt 2
Laden Sie das Projekt aus meinem Github-Repository herunter. Siehe dort Details zur Installation. Kompilieren Sie den Code und flashen Sie ihn auf den Arduino.
Schritt 3
Verbinden Sie sich mit dem Auto und schalten Sie es ein. Starten Sie die Diagnosesitzung und erhalten Sie nützliche Informationen zu Ihrem Akku...
Schritt 4
Verwenden Sie ein Tabellenkalkulationsprogramm und finden Sie korrelierende Daten heraus. Vergleichen Sie beispielsweise den SOC (State of Charge, aus dem Dashboard) mit dem realen SOC aus dem BMS. Oder zeichnen Sie die Zellenspannungen auf und sehen Sie, dass einige Zellen den Akku beim Laden begrenzen, weil sie zuerst die Abschaltgrenze erreichen...
Schritt 5
Verbessern Sie den Code, wenn Sie möchten – hacken Sie selbst. Das Spakfun-Shield verfügt über einen SD-Kartenleser, sodass Sie Ihren eigenen CAN-Bus-Logger bauen können.
Oder Sie bauen ein schönes Frontend / eine App, die die Daten anzeigt...
Ich hoffe, dieses Tool wird hilfreich sein - Viel Spaß!
Code
ED_BMSdiag Arduino-Software
https://github.com/MyLab-odyssey/ED_BMSdiag.gitSchaltpläne
für Sparkfun CAN-Bus Schirm für CANdiy-ShieldHerstellungsprozess