Lesen von Fahrzeugdaten über den CAN-Bus: Praktische Erfahrungen mit Fahrzeug-Gateways

db2c83dc83eaff3d8e4b985838952320

 

Als wir letztes Jahr ein Flottenmanagementsystem für ein Logistikunternehmen einrichteten, wollte der Kunde eine Echtzeitüberwachung des Kraftstoffverbrauchs, der Motordrehzahl und der Kühlmitteltemperatur für jeden Lkw. Die Daten sollten nicht nur lokal gespeichert werden, sondern per Streaming an die Cloud-Plattform übermittelt werden, damit die Disponenten den Fahrzeugstatus überwachen konnten.

Das hörte sich ganz einfach an. Aber als wir dann loslegten, erwies sich das Abrufen von Daten aus dem Fahrzeuginneren als viel komplizierter als erwartet. Alle Fahrzeuginformationen werden über den CAN-Bus übertragen, aber die Nachrichtenformate sind von Fahrzeugmodell zu Fahrzeugmodell sehr unterschiedlich. Das Auslesen der Motordrehzahl eines FAW-Lastwagens im Vergleich zu einem Dongfeng-Lastwagen bedeutet, dass man es mit völlig unterschiedlichen CAN-Nachrichten-IDs, Datenfeldpositionen und Umrechnungsfaktoren zu tun hat.

Wir haben schließlich ein duales 5G-Fahrzeug-Gateway verwendet, um dieses Problem zu lösen. Das Gateway verbindet sich über CAN-Schnittstellen mit dem Fahrzeugbus, analysiert alle Nachrichten und lädt dann alles über das 5G-Netzwerk in die Cloud hoch. Dieses ganze Projekt hat mir ein tiefes Verständnis dafür vermittelt, wie Fahrzeug-Gateways und CAN-Bus zusammenarbeiten müssen.

Was der CAN-Bus in Fahrzeugen leistet

Beginnen wir damit, was der CAN-Bus eigentlich ist. CAN steht für Controller Area Network. Bosch hat diesen Kommunikationsbus in den 1980er Jahren für den Einsatz in Kraftfahrzeugen entwickelt.

Warum brauchen wir den CAN-Bus? Moderne Fahrzeuge enthalten Dutzende oder sogar Hunderte von elektronischen Steuergeräten. Motor-Steuergerät, Getriebe-Steuergerät, ABS-Steuergerät, Kombiinstrument-Steuergerät, Karosserie-Steuergerät - die Liste geht weiter. Diese Steuergeräte müssen miteinander kommunizieren. Würde man einzelne Kabel zwischen jedem Steuergerätepaar verlegen, wäre der Kabelbaum ein Alptraum.

Der CAN-Bus verbindet alle Steuergeräte mit einem gemeinsamen Bus. Stellen Sie sich das wie eine U-Bahn-Linie vor - alle Stationen liegen auf der gleichen Strecke. Jedes Steuergerät kann Nachrichten senden, die von allen anderen Steuergeräten empfangen werden. Jedes Steuergerät verarbeitet selektiv die für seine Funktion relevanten Nachrichten.

Nutzfahrzeuge verfügen in der Regel über 2-3 separate CAN-Busse. Der Antriebsstrang-CAN verbindet Motor, Getriebe, ABS und andere Steuergeräte des Antriebsstrangs und läuft normalerweise mit 500 kbps oder 250 kbps. Der Karosserie-CAN steuert Beleuchtung, Verriegelung, Klimatisierung und Komfortsysteme, in der Regel mit 125 kbit/s. Es kann auch ein spezieller Diagnose-CAN-Bus vorhanden sein.

Fahrzeug-Gateways müssen sich in diese CAN-Busse einklinken, um Daten zu lesen. Der SV910 zum Beispiel verfügt über 3 CAN-Anschlüsse, die gleichzeitig mit mehreren Fahrzeug-CAN-Bussen verbunden werden können.

Der Prozess des Lesens von CAN-Daten

 

eb74286b34280d8de3302dac742a76ee

 

Wie genau liest man diese Daten? Lassen Sie uns das Lesen der Motordrehzahl als Beispiel durchgehen.

Schritt eins ist die physische Verbindung. Verbinden Sie die CAN-Schnittstelle des Gateways mit dem OBD-Diagnoseanschluss des Fahrzeugs oder direkt mit dem CAN-Bus. Nutzfahrzeuge haben in der Regel Standard-OBD-Anschlüsse, die sich in der Regel unter dem Armaturenbrett oder neben dem Fahrersitz befinden. Der Stecker ist trapezförmig und hat 16 Stifte.

Der CAN-Bus verwendet eine differentielle Signalisierung mit zwei Drähten: CAN_H und CAN_L. Am OBD-Stecker ist Pin 6 CAN_H und Pin 14 CAN_L. Die CAN-Schnittstelle des Gateways hat entsprechende Drähte - passen Sie sie einfach an. Wichtiger Hinweis: CAN-Bus-Enden benötigen 120-Ohm-Abschlusswiderstände, um Signalreflexionen zu verhindern. Einige Gateways haben intern Abschlusswiderstände integriert, die per Software konfiguriert werden können.

Schritt zwei ist die Konfiguration der Baudrate. Die CAN-Bus-Kommunikationsgeschwindigkeit muss übereinstimmen, sonst erhalten Sie keine Daten. Der CAN-Bus des Antriebsstrangs von Nutzfahrzeugen läuft in der Regel mit 250 kbit/s oder 500 kbit/s - das müssen Sie zuerst überprüfen. Schauen Sie im Wartungshandbuch des Fahrzeugs nach oder testen Sie mit einem professionellen CAN-Analysator.

Konfigurieren Sie die CAN-Schnittstelle des Gateways auf die gleiche Baudrate. Gateways wie der SV910 unterstützen mehrere Baudraten, die über Konfigurationsdateien oder Verwaltungsschnittstellen eingestellt werden können.

Schritt drei ist die Überwachung und Analyse von CAN-Nachrichten. CAN-Bus-Daten werden in Form von Frames übertragen. Jeder Rahmen enthält mehrere Teile: Nachrichten-ID, Datenlänge, Dateninhalt, Prüfsumme.

Die Nachrichten-ID ist der Schlüssel zur Identifizierung des Inhalts jeder Nachricht. Für die Motordrehzahl definieren Normen wie GB/T 27930 und SAE J1939 die IDs. J1939 ist für Nutzfahrzeuge gebräuchlich - die Motordrehzahl verwendet die ID 0x0CF00400, mit Daten in den Bytes 4 und 5.

Das Gateway überwacht kontinuierlich den CAN-Bus, erfasst Frames mit bestimmten IDs und extrahiert dann Drehzahlwerte aus den Datenbytes. Bei dem extrahierten Wert handelt es sich um Rohdaten, die mithilfe einer Formel in die tatsächliche Drehzahl umgerechnet werden müssen. Im J1939-Standard beträgt die Auflösung der Motordrehzahl 0,125 U/min/Bit, also multiplizieren Sie den Rohwert mit 0,125, um die tatsächliche Drehzahl zu erhalten.

Schritt vier ist das Verpacken und Hochladen von Daten. Nach dem Parsen des RPM-Werts verpackt das Gateway diesen in ein geeignetes Format, um ihn über das 5G-Netzwerk in die Cloud hochzuladen. Zu den gängigen Formaten gehören JSON, Protobuf und MQTT-Nachrichten.

Die Häufigkeit der Uploads hängt von den Anforderungen ab. Für die Echtzeitüberwachung sind möglicherweise Aktualisierungen im Sekundentakt erforderlich, während für das allgemeine Flottenmanagement 10- oder 30-Sekunden-Intervalle in Frage kommen. Eine höhere Frequenz bedeutet höhere Datenkosten.

Die Herausforderung der verschiedenen Fahrzeugmodelle

 

bd701919857254e4a166a9dbd40f32db

Klingt in der Theorie einfach. In der Realität bereitet die Anpassung an unterschiedliche Fahrzeugmodelle die größten Kopfschmerzen.

Die nationale Norm GB/T 32960 definiert Datenformate für Fahrzeuge mit neuer Energie, deckt aber nur Elektrofahrzeuge ab. Herkömmliche benzinbetriebene Nutzfahrzeuge folgen meist der SAE J1939-Norm, wobei die spezifischen Implementierungen noch variieren.

Noch kniffliger ist, dass viele Autohersteller über die Standarddefinitionen hinaus proprietäre CAN-Nachrichten verwenden. Einige Marken stellen Fehlercodes und Wartungserinnerungen in privaten Nachrichten mit undokumentierten Formaten bereit. Um diese Daten zu lesen, ist Reverse Engineering oder die Beschaffung technischer Unterlagen vom Autohersteller erforderlich.

Bei Projekten passen wir uns an jedes Fahrzeugmodell individuell an. Sammeln Sie zunächst die CAN-Protokolldokumentation für das jeweilige Modell. Wenn keine Dokumentation verfügbar ist, verwenden Sie einen CAN-Analysator, um Busdaten aufzuzeichnen und Nachrichtenformate manuell zu analysieren. Anschließend konfigurieren wir entsprechende Parsing-Regeln im Gateway.

Gateways wie der SV910 unterstützen eine flexible Konfiguration. Sie können benutzerdefinierte Parsing-Regeln definieren und angeben, welche Bytes in welcher Nachrichten-ID welche Daten darstellen und welche Konvertierungsformel angewendet werden soll. Für unterschiedliche Fahrzeugmodelle sind lediglich unterschiedliche Konfigurationsdateien erforderlich, ohne dass der Code geändert werden muss.

Wir haben eine Fahrzeugmodell-Datenbank aufgebaut, in der CAN-Protokollkonfigurationen für verschiedene Marken und Modelle gespeichert sind. Bei neuen Projekten wird zunächst geprüft, ob bereits Konfigurationen vorhanden sind. Wenn nicht, passen wir sie an und fügen sie der Datenbank hinzu. Die Bibliothek enthält jetzt Konfigurationen für vierzig bis fünfzig Fahrzeugmodelle.

Sicherstellung von Echtzeitleistung und Datengenauigkeit

Das Lesen von CAN-Daten mit Fahrzeug-Gateways erfordert eine gute Echtzeitleistung. Insbesondere beim autonomen Fahren oder in ADAS-Szenarien können Datenverzögerungen die Sicherheit beeinträchtigen.

Der CAN-Bus selbst hat eine sehr geringe Latenzzeit, gemessen in Mikrosekunden. Aber die Gateway-Verarbeitung, die Verpackung und das Hochladen führen zu einer zusätzlichen Verzögerung. Wie lässt sich dies kontrollieren?

Erstens: Minimierung der Verarbeitungsschritte. Nach dem Empfang von CAN-Frames werden diese sofort in Interrupt-Handlern oder Tasks mit hoher Priorität analysiert, anstatt sie in eine Warteschlange zu stellen. Nach dem Parsen direkt in den Sendepuffer legen und über das 5G-Netzwerk senden.

Zweitens: Verwenden Sie Hardware-Beschleunigung. Einige moderne Fahrzeug-Gateways integrieren CAN-Controller mit Hardware-Filterung. Konfigurieren Sie Filterregeln auf Hardware-Ebene, um nur Nachrichten-IDs von Interesse zu akzeptieren und andere zu verwerfen. Dies reduziert die CPU-Last und erhöht die Verarbeitungsgeschwindigkeit.

Drittens: Zeitstempel sorgfältig verwalten. Jeder CAN-Frame sollte unmittelbar nach dem Empfang durch das Gateway einen Zeitstempel erhalten. Dieser Zeitstempel muss auf Mikrosekunden genau sein. Die in die Cloud hochgeladenen Daten sollten diesen Zeitstempel tragen, damit die Cloud weiß, wann die Daten erfasst wurden.

Der SV910 unterstützt die Zeitsynchronisationsprotokolle PTP/GPTP und gewährleistet so eine hochpräzise Taktsynchronisation zwischen dem Gateway und anderen Geräten. Dies ist entscheidend für Szenarien, die eine Koordination mehrerer Geräte erfordern.

Auch die Datengenauigkeit muss gewährleistet sein. Obwohl der CAN-Bus über eine eingebaute Fehlerprüfung verfügt, treten gelegentlich immer noch fehlerhafte Daten auf. Die Gateways benötigen eine sekundäre Validierung. Bei der Motordrehzahl kann der normale Betrieb nicht plötzlich von 1000 auf 5000 U/min und zurück springen. Kennzeichnen Sie solche anomalen Daten als verdächtig, anstatt sie direkt zu verwenden.

Behandeln Sie auch Situationen, in denen der Bus schweigt. Wenn eine bestimmte Nachricht über einen längeren Zeitraum nicht empfangen wurde, ist möglicherweise das entsprechende Steuergerät ausgefallen oder die Busverbindung unterbrochen worden. Die Gateways müssen diesen Zustand erkennen und die Anomalie melden.

Vorteile der dualen 5G-Architektur

Der SV910 verfügt über eine duale 5G-Architektur mit zwei 5G-Modulen. Warum duales 5G?

Der erste Grund ist die Redundanzsicherung. Nutzfahrzeuge, die auf Langstrecken unterwegs sind, können durch Gebiete mit schlechtem Signal fahren. Bei einfachem 5G bedeutet ein Signalverlust keine Datenübertragung. Bei Dual 5G werden SIM-Karten von verschiedenen Betreibern verwendet - China Telecom und China Unicom oder China Mobile und China Unicom. Wenn sich ein Signal verschlechtert, wird auf das andere umgeschaltet.

Die Umschaltung kann automatisch erfolgen. Das Gateway überwacht Signalstärke und Latenz auf beiden 5G-Verbindungen in Echtzeit und nutzt diejenige, die die bessere Qualität aufweist. Sie können auch beide Verbindungen gleichzeitig für die Link-Aggregation nutzen und so die Bandbreite verdoppeln.

Der zweite Grund ist die Verkehrsverteilung. Fahrzeuganwendungen umfassen in der Regel mehrere Datenströme - CAN-Bus-Daten, Kamera-Video, Positionsdaten, V2X-Kommunikation. Diese Datentypen haben unterschiedliche Eigenschaften und unterschiedliche Bandbreiten-/Latenzanforderungen.

Leiten Sie kritische Steuerdaten über eine 5G-Verbindung und hochfrequentierte Videos über die andere. Dies verhindert Störungen und gewährleistet die Echtzeit-Übertragung wichtiger Daten.

Der dritte Grund ist die Sicherheitsisolierung. Einige Flottenmanagementplattformen erfordern aus Sicherheitsgründen eine physische Trennung zwischen Fahrzeugsteuerungs- und Datenerfassungskanälen. Dual 5G erfüllt diese Anforderung perfekt. Steuerbefehle werden über dedizierte Verbindungen übertragen, die gesammelten Daten über eine andere. Selbst wenn Hacker den Datenkanal kompromittieren, können sie die Steuerbefehle nicht manipulieren.

Integration mit Flottenmanagement-Plattformen

704ce1f0fc109f61b29494d0c34b7e95

Nach der Datenerfassung laden die Fahrzeug-Gateways die Daten auf Flottenmanagement-Plattformen hoch. Bei den Plattformen handelt es sich in der Regel um Cloud-Dienste, die Fahrzeugüberwachung, Routenwiedergabe, statistische Berichte, Fehlerwarnungen und andere Funktionen bieten.

Für das Hochladen von Daten gibt es mehrere Protokolloptionen. MQTT ist am weitesten verbreitet. Es ist ein leichtgewichtiges Nachrichtenwarteschlangenprotokoll, das speziell für das IoT entwickelt wurde. Gateways fungieren als MQTT-Clients, die sich mit MQTT-Servern in der Cloud verbinden und in regelmäßigen Abständen Nachrichten veröffentlichen.

MQTT unterstützt verschiedene QoS-Stufen (Quality of Service). QoS 0 ist höchstens einmal - Feuer und Vergessen, möglicher Verlust. QoS 1 ist mindestens einmal - garantierte Zustellung, aber mögliche Duplikate. QoS 2 ist genau einmal - garantierte Zustellung ohne Duplikate. Wählen Sie je nach Wichtigkeit der Daten die geeignete QoS-Stufe.

HTTP/HTTPS ist ebenfalls weit verbreitet. Die Gateways verpacken die gesammelten Daten regelmäßig und laden sie über HTTP-POST-Anfragen in die Cloud-APIs hoch. Dieser Ansatz ist einfach und direkt mit guter Kompatibilität. Der Nachteil ist, dass der HTTP-Overhead den von MQTT übersteigt und für die Übertragung kleiner Daten mit hoher Frequenz weniger geeignet ist.

Es gibt auch einige Spezialprotokolle. So ist beispielsweise JT/T 808 das Standard-Kommunikationsprotokoll des Verkehrsministeriums für Satellitenortungssysteme für Straßenfahrzeuge. Viele Flottenmanagementplattformen für Nutzfahrzeuge verwenden diesen Standard. Die Unterstützung von JT/T 808 erfordert die Implementierung des gesamten Protokollstapels.

Das Datenformat muss mit der Plattform abgestimmt werden. JSON ist weit verbreitet, für Menschen lesbar und leicht zu debuggen. JSON braucht jedoch viel Platz. Wenn die Datenkosten wichtig sind, sollten Sie binäre Formate wie Protobuf oder benutzerdefinierte kompakte Formate verwenden.

Implementierung von Diagnosefunktionen

Neben dem Lesen von Echtzeitdaten können Fahrzeug-Gateways auch Diagnosen durchführen.

Fahrzeug-ECUs erzeugen Diagnosefehlercodes (DTCs). Wenn der Motor eine Fehlfunktion aufweist, werden Codes wie P0001 und P0002 erzeugt. Diese Codes werden in Steuergeräten gespeichert und können über den CAN-Bus ausgelesen werden.

Standard-Diagnoseprotokolle sind ISO 14229 (UDS - Unified Diagnostic Services) und SAE J1939-73. Das Gateway fungiert als Diagnose-Client und sendet Diagnoseanfragen an Steuergeräte, die Fehlercodes und zugehörige Informationen zurückgeben.

Übersetzen Sie die Fehlercodes nach dem Lesen in lesbare Beschreibungen. Was bedeutet P0001? Kraftstoffmengenregler-Steuerkreis/offen. Diese Übersetzung erfordert eine Fehlercodedatenbank. Die Gateways können Beschreibungen für gängige Codes intern speichern oder zur Übersetzung in die Cloud hochladen.

Mit Fehlercodes können Flottenmanagementplattformen Frühwarnungen ausgeben. Wird beispielsweise ein Code für eine hohe Kühlmitteltemperatur erkannt, werden Fahrer und Wartungsabteilungen sofort benachrichtigt, um Schäden durch Überhitzung des Motors zu verhindern.

Fortschrittliche Anwendungen ermöglichen eine vorausschauende Wartung. Analysieren Sie Trends bei verschiedenen Fahrzeugparametern, um mögliche Ausfälle vorherzusagen. Beispielsweise hat ein allmählicher Rückgang des Motoröldrucks noch keine Fehlercodes ausgelöst, zeigt aber Warnzeichen - der Fahrer wird aufgefordert, den Ölstand zu überprüfen.

Lektionen aus realen Projekten

Nach zahlreichen Projekten sind wir auf viele Hindernisse gestoßen.

Erste Lektion: den CAN-Bus richtig schützen. Der Fahrzeug-CAN-Bus ist kritisch. Wenn Gateway-Fehler den Bus herunterziehen oder fehlerhafte Nachrichten übertragen, kann der normale Fahrzeugbetrieb beeinträchtigt werden.

Gateway-CAN-Schnittstellen müssen elektrisch isoliert sein, um die Ausbreitung von Fehlern zu verhindern. Busschutzschaltungen sollten bei Überspannung oder Überstrom automatisch abschalten. Auch die Software benötigt Schutzmechanismen - sie muss die Übertragung unterbrechen, wenn Anomalien festgestellt werden, um Busstörungen zu vermeiden.

Zweite Lektion: Fahrzeugänderungen müssen den Vorschriften entsprechen. Der Einbau von Fahrzeug-Gateways in Nutzfahrzeuge stellt eine Veränderung des Fahrzeugs dar. Sie müssen den nationalen und lokalen Vorschriften entsprechen, ohne die Sicherheit des Fahrzeugs zu beeinträchtigen. In einigen Regionen ist nach Änderungen eine Registrierung bei der Fahrzeugverwaltung erforderlich.

Dritte Lektion: Datensicherheit und Schutz der Privatsphäre sind sehr wichtig. Fahrrouten und Fahrverhalten von Fahrzeugen betreffen die Privatsphäre. Datenübertragung verschlüsseln, Speicherung anonymisieren. Der Zugang zu Cloud-Plattformen braucht eine Berechtigungskontrolle - er darf nicht einfach an Dritte weitergegeben werden.

Insgesamt bildet das Auslesen von Fahrzeugdaten über den CAN-Bus mit Fahrzeug-Gateways die Grundlage für vernetzte Fahrzeuganwendungen. Die Technologie selbst ist nicht komplex, aber um sie gut zu machen, müssen viele Details beachtet werden. Die Anpassung verschiedener Fahrzeugmodelle, die Sicherstellung der Echtzeitleistung, die Datengenauigkeit, die Zuverlässigkeit der Kommunikation - jeder Aspekt muss sorgfältig verfeinert werden, um einen stabilen, zuverlässigen Service zu bieten.

Die vorl:

Mo