Der CAN-Bus im Volvo
Um Kabelbäume unter anderem in Fahrzeugen zu vereinfachen entwickelte Bosch im Jahre 1983 das Controller Area Network. Seit dem Jahr 2000 findet dieses System in vielen Fahrzeugen Anwendung (bei Volvo ab V70II S80 S60 XC70 XC90).
Grundprinzip ist, dass der gesamte Datenaustausch auf zwei Leitungen stattfindet. Diese werden um Reflexionen an beiden Enden zu vermeiden jeweils mit einem 120 Ohm Widerstand terminiert. Die Signalübertragung erfolgt differenziell mit einer Spannungsdifferenz von 2V zwischen CAN-H und CAN-L. Da im KFZ die Datenleitung vielen Störfeldern ausgesetzt ist werden beide Kabel miteinander verdrillt ,damit beide Leitungen den Störungen gleichermaßen ausgesetzt sind und eine Spannungsdifferenz von 2V erhalten bleibt.
Link zur Grafik
Bei einem dominanten Zustand (logisch 0) liegen beide Leitung auf einer Spannung von 2,5 volt. Im rezessiven Zustand (logisch 1) wird die Spannung der Leitung CAN-H(igh) um 1V auf 3,5V angehoben und die Spannung auf der Leitung CAN-L(ow) um 1V auf 1,5V abgesenkt.
Link zur Grafik
Alle im Netzwerk befindlichen Geräte können auf dieser Leitung mithören und abwechselnd senden. Damit sichergestellt wird, dass immer nur ein einzelnes Gerät sendet ist das Übertragungsverfahren streng definiert. Eine Darstellung aller Mechanismen würden den Inhalt des Forums jedoch sprengen, somit ist es an dieser Stelle sinnvoll die wesentlichen Spezifikationen zu erläutern.
Ein Gerät muss immer auf eine Lücke warten, bis es anfangen darf, Daten in das Netzwerk zu senden. Gleichzeitig muss das sendende Gerät im Netzwerk mithören und vergleichen ob jeder einzelne Spannungszustand erfolgreich in das Netzwerk übertragen wird. Da bei einer 1 der Pegel als hoch und einer 0 der Pegel als tief definiert ist, kommt es dazu, dass wenn zwei Geräte gleichzeitig senden, das Gerät mit dem dominanten Bit das Netzwerk auf Null zieht und somit den rezessiven Zustand überschreibt. Weil jedes Gerät die zu sendende Meldung mit dem Zustand des Netzwerkes vergleicht, stellt das Gerät, welches zum eigentlichen Zeitpunkt eine 1 gesendet hat einen Fehler fest und stoppt die eigene Sendung. Infolgedessen haben Meldungen mit einer vorausgehenden 0 eine höhere Priorität als Meldungen mit einer vorausgehenden 1.
Zur Identifikation besteht jede gesendete Meldung aus einer ID und einem Datensatz.
Zum Beispiel die Meldung welche vom Lenkradmodul gesendet wird, um den Zustand des Blinker- und Wischerhebels wiederzugeben:
ID: 0111300A Daten: C0 00 00 27 80 8E 00 C0
Da Volvo den erweiterten J1939-CAN-Frame nutzt besteht die ID aus 4 Bytes “01 11 30 0A” welche einerseits die Priorität der Meldung festlegen und andererseits der Identifikation dienen. Jede ID in einem Netzwerk darf nur einmal vergeben sein. Die ID hat den Nutzen für andere Geräte, dass diese dadurch selektieren können, welche Informationen für sie wichtig sein können. Das Radio beispielsweise achtet auf IDs, welche vom CEM kommen und die Geschwindigkeit und Beleuchtungseinstellung enthalten, wie auch auf IDs welche vom Lenkradmodul kommen und eine Änderung der Lenkradtasten enthalten.
Ein Gerät darf auch über mehrere IDs verfügen, da es auch verschiedene Informationen versenden kann.
Die ID bei Volvo wird gefolgt von einem 8 Byte Datensatz “C0 00 00 27 80 8E 00 C0” in diesem sind die Informationen enthalten, welche das Gerät dem Netzwerk mitteilt.
In Beispiel des Lenkradmoduls codiert die 5te Stelle (Byte 4) für:
5te Stelle:
80: Nichts gedrückt
84: Blinkhebel in rechter Stellung
88: Blinkhebel in linker Stellung
C0: Resettaste am Blinkhebel wird betätigt (Boardcomputerversion)
A0: Read Taste am Blinkhebel wird betätigt
Die 6te Stelle "8E" gibt an, dass der Wischerhebel in 0 Stellung ist.
Die Gesamte Meldung wird etwa alle 15ms in das Datennetzwerk gesendet (nach Priorität häufiger oder seltener), damit jegliche Geräte über den Zustand Bescheid wissen und entsprechend reagieren können. Erhält das CCM die Meldung 84 aktiviert es das Relais für den Blinker der rechten Seite.
Link zum Datendiagramm
Im Datendiagramm ist zu erkennen, dass die gesamte Meldung (als Frame bezeichnet) aus mehr als der ID und dem Datensatz besteht. Es sind noch einige Zusätze nötig, damit eine Meldung erfolgreich übertragen werden kann, diese sind aber bei alleiniger Betrachtung der Meldungen hier nicht von Bedeutung und werden in der realen Anwendung von Controllern automatisch errechnet und durchgeführt.
Kommt es trotz aller Mechanismen dazu, dass ein Fehler auftritt, weil beispielsweise eine ID doppelt im Netzwerk auftritt, unterbricht das Gerät mit gleicher ID die Sendung sofortig und versucht zu einem weiteren Zeitpunkt seine Meldung in das Netzwerk zu senden. Kommt es weiterhin hintereinander zum selbigen Fehler, klinkt sich das Gerät für eine vergleichsweise längere Zeit (ca. 10s) aus dem Netzwerk aus und versucht den Datentransfer erneut. Dies kann jedoch gravierend sein, wenn beispielsweise für etwa 10s der Blinker nicht mehr funktioniert.
Im Volvo gibt es zwei verschiedene CAN-Netzwerke:
Link zur Grafik
Das Motor High-Speed CAN mit einer Datenrate von 250kb/s und das Comfort-Low-Speed-CAN mit einer Datenrate von 125kb/s. Beide Netzwerke laufen voneinander unabhängig, das CEM ist das einzige Gerät welches in Kontakt mit beiden Netzwerken steht und somit Daten zwischen diesen austauschen kann wie beispielsweise die Drehzahl.
Volvo hat die Codierung jeglicher Daten in jedem Baujahr geändert, was zur Folge hat, das sich Geräte aus unterschiedlichen Baujahren nicht über den CAN-Bus unterhalten können, das sie ihre Meldungen nicht mehr verstehen.
Dazu ein Beispiel für die Datenwörter, welche unter anderem für die Tasten des Lenkrades zuständig sind:
Fahrzeug aus 2001
ID: 00200066 Daten: C0 00 00 01 1F 40 40 7F
Fahrzeug aus 2002:
ID: 0261300A Daten: 80 00 00 27 80 C2 00 CF
Beide Meldungen erfüllen genau die gleiche Funktion, können aber nicht von Geräten aus anderen Baujahren interpretiert werden.
Durch diese Zusammenhänge lassen sich nicht nur Funktionen im Fahrzeug ergründen sondern auch Erweiterungen wie die eines CAN-Extenders aufbauen. Durch ein einfaches Senden einer Meldung in dieses Netzwerk lässt sich somit etwa eine Coming-Home Funktion mit zusätzlich aktivierten Nebelscheinwerfen realisieren oder es können Tastendrücke oder Fahrzeugdaten jeglicher Art erfasst werden.
Beste Antwort im Thema
Um Kabelbäume unter anderem in Fahrzeugen zu vereinfachen entwickelte Bosch im Jahre 1983 das Controller Area Network. Seit dem Jahr 2000 findet dieses System in vielen Fahrzeugen Anwendung (bei Volvo ab V70II S80 S60 XC70 XC90).
Grundprinzip ist, dass der gesamte Datenaustausch auf zwei Leitungen stattfindet. Diese werden um Reflexionen an beiden Enden zu vermeiden jeweils mit einem 120 Ohm Widerstand terminiert. Die Signalübertragung erfolgt differenziell mit einer Spannungsdifferenz von 2V zwischen CAN-H und CAN-L. Da im KFZ die Datenleitung vielen Störfeldern ausgesetzt ist werden beide Kabel miteinander verdrillt ,damit beide Leitungen den Störungen gleichermaßen ausgesetzt sind und eine Spannungsdifferenz von 2V erhalten bleibt.
Link zur Grafik
Bei einem dominanten Zustand (logisch 0) liegen beide Leitung auf einer Spannung von 2,5 volt. Im rezessiven Zustand (logisch 1) wird die Spannung der Leitung CAN-H(igh) um 1V auf 3,5V angehoben und die Spannung auf der Leitung CAN-L(ow) um 1V auf 1,5V abgesenkt.
Link zur Grafik
Alle im Netzwerk befindlichen Geräte können auf dieser Leitung mithören und abwechselnd senden. Damit sichergestellt wird, dass immer nur ein einzelnes Gerät sendet ist das Übertragungsverfahren streng definiert. Eine Darstellung aller Mechanismen würden den Inhalt des Forums jedoch sprengen, somit ist es an dieser Stelle sinnvoll die wesentlichen Spezifikationen zu erläutern.
Ein Gerät muss immer auf eine Lücke warten, bis es anfangen darf, Daten in das Netzwerk zu senden. Gleichzeitig muss das sendende Gerät im Netzwerk mithören und vergleichen ob jeder einzelne Spannungszustand erfolgreich in das Netzwerk übertragen wird. Da bei einer 1 der Pegel als hoch und einer 0 der Pegel als tief definiert ist, kommt es dazu, dass wenn zwei Geräte gleichzeitig senden, das Gerät mit dem dominanten Bit das Netzwerk auf Null zieht und somit den rezessiven Zustand überschreibt. Weil jedes Gerät die zu sendende Meldung mit dem Zustand des Netzwerkes vergleicht, stellt das Gerät, welches zum eigentlichen Zeitpunkt eine 1 gesendet hat einen Fehler fest und stoppt die eigene Sendung. Infolgedessen haben Meldungen mit einer vorausgehenden 0 eine höhere Priorität als Meldungen mit einer vorausgehenden 1.
Zur Identifikation besteht jede gesendete Meldung aus einer ID und einem Datensatz.
Zum Beispiel die Meldung welche vom Lenkradmodul gesendet wird, um den Zustand des Blinker- und Wischerhebels wiederzugeben:
ID: 0111300A Daten: C0 00 00 27 80 8E 00 C0
Da Volvo den erweiterten J1939-CAN-Frame nutzt besteht die ID aus 4 Bytes “01 11 30 0A” welche einerseits die Priorität der Meldung festlegen und andererseits der Identifikation dienen. Jede ID in einem Netzwerk darf nur einmal vergeben sein. Die ID hat den Nutzen für andere Geräte, dass diese dadurch selektieren können, welche Informationen für sie wichtig sein können. Das Radio beispielsweise achtet auf IDs, welche vom CEM kommen und die Geschwindigkeit und Beleuchtungseinstellung enthalten, wie auch auf IDs welche vom Lenkradmodul kommen und eine Änderung der Lenkradtasten enthalten.
Ein Gerät darf auch über mehrere IDs verfügen, da es auch verschiedene Informationen versenden kann.
Die ID bei Volvo wird gefolgt von einem 8 Byte Datensatz “C0 00 00 27 80 8E 00 C0” in diesem sind die Informationen enthalten, welche das Gerät dem Netzwerk mitteilt.
In Beispiel des Lenkradmoduls codiert die 5te Stelle (Byte 4) für:
5te Stelle:
80: Nichts gedrückt
84: Blinkhebel in rechter Stellung
88: Blinkhebel in linker Stellung
C0: Resettaste am Blinkhebel wird betätigt (Boardcomputerversion)
A0: Read Taste am Blinkhebel wird betätigt
Die 6te Stelle "8E" gibt an, dass der Wischerhebel in 0 Stellung ist.
Die Gesamte Meldung wird etwa alle 15ms in das Datennetzwerk gesendet (nach Priorität häufiger oder seltener), damit jegliche Geräte über den Zustand Bescheid wissen und entsprechend reagieren können. Erhält das CCM die Meldung 84 aktiviert es das Relais für den Blinker der rechten Seite.
Link zum Datendiagramm
Im Datendiagramm ist zu erkennen, dass die gesamte Meldung (als Frame bezeichnet) aus mehr als der ID und dem Datensatz besteht. Es sind noch einige Zusätze nötig, damit eine Meldung erfolgreich übertragen werden kann, diese sind aber bei alleiniger Betrachtung der Meldungen hier nicht von Bedeutung und werden in der realen Anwendung von Controllern automatisch errechnet und durchgeführt.
Kommt es trotz aller Mechanismen dazu, dass ein Fehler auftritt, weil beispielsweise eine ID doppelt im Netzwerk auftritt, unterbricht das Gerät mit gleicher ID die Sendung sofortig und versucht zu einem weiteren Zeitpunkt seine Meldung in das Netzwerk zu senden. Kommt es weiterhin hintereinander zum selbigen Fehler, klinkt sich das Gerät für eine vergleichsweise längere Zeit (ca. 10s) aus dem Netzwerk aus und versucht den Datentransfer erneut. Dies kann jedoch gravierend sein, wenn beispielsweise für etwa 10s der Blinker nicht mehr funktioniert.
Im Volvo gibt es zwei verschiedene CAN-Netzwerke:
Link zur Grafik
Das Motor High-Speed CAN mit einer Datenrate von 250kb/s und das Comfort-Low-Speed-CAN mit einer Datenrate von 125kb/s. Beide Netzwerke laufen voneinander unabhängig, das CEM ist das einzige Gerät welches in Kontakt mit beiden Netzwerken steht und somit Daten zwischen diesen austauschen kann wie beispielsweise die Drehzahl.
Volvo hat die Codierung jeglicher Daten in jedem Baujahr geändert, was zur Folge hat, das sich Geräte aus unterschiedlichen Baujahren nicht über den CAN-Bus unterhalten können, das sie ihre Meldungen nicht mehr verstehen.
Dazu ein Beispiel für die Datenwörter, welche unter anderem für die Tasten des Lenkrades zuständig sind:
Fahrzeug aus 2001
ID: 00200066 Daten: C0 00 00 01 1F 40 40 7F
Fahrzeug aus 2002:
ID: 0261300A Daten: 80 00 00 27 80 C2 00 CF
Beide Meldungen erfüllen genau die gleiche Funktion, können aber nicht von Geräten aus anderen Baujahren interpretiert werden.
Durch diese Zusammenhänge lassen sich nicht nur Funktionen im Fahrzeug ergründen sondern auch Erweiterungen wie die eines CAN-Extenders aufbauen. Durch ein einfaches Senden einer Meldung in dieses Netzwerk lässt sich somit etwa eine Coming-Home Funktion mit zusätzlich aktivierten Nebelscheinwerfen realisieren oder es können Tastendrücke oder Fahrzeugdaten jeglicher Art erfasst werden.
277 Antworten
@ DR_V70: Ich hoffe du kanst Schwedisch 🙄
http://www.svxc.se/phpBB2/viewtopic.php?f=9&t=23011
Das hab ich grade in den weiten von Googel gefunden und mir das ganze mit Googel😮 übersetzen lassen. Also das was man dann noch verstehen kann ist spannend.
Ja ist bekannt, das waren die Anfänge viele haben sich mit dem CAN-Bus beschäftigt. Inzwischen hat sich da viel verstreut, aber auch ein Teil zum Thema ist hier gelandet...
Das mit dem Gebläse ist untergegangen, aber ja es gibt Diagnosecodes dafür und der Lüfter sollte sich auch so in Betrieb setzen lassen..
Ach na dann 🙂
Ich bin auch noch an dem Lüfer bei. Werde morgen mal den Alten Lüfterkasten rausholen und ein bisschen mit dem spielen.
Naja, der lüfter selber war nicht so kompliziert, der bekommt 12V, an dem Lüfter befindet sich eine Art Transistor, da kommen 5V (hab ich so in Erinnerung) drauf und dann steuert der die vollen 12V durch zum Motor, zumindest wenn man es analog machen will...
Ähnliche Themen
Aber dann läuft der ja volle pulle.
Ich meine das es eine steuerleitung gibt. Die leider kein PWM signal verwendet. Sonst würde ich einen IPCU von Webasto nehmen und dat ding ansteuern.
Schaue morgen mal in der Signalbeschreibung, glaube das war nur ein Spannungssignal und dann sollte der bei 2,5V auf ca. 50% laufen, Transistor halt...
Ach noch mal was zum CanHacking.
Ich hab ein KKL Interface. Kann ich damit und dem Canhacker erstmal die Datensätze auslesen? Ohne den Arduino und dem Spurkfun?
Ich hab da noch nen S80I zerlegt in der Garage liegen und würde mich dann erstmal mit den Datensätzen vertraut machen.
KKL nutzt K-Line das ist ein serielles Signal, fast direkt aus dem ComPort, aber Sende und Empfangsleitung wurde auf einen Draht gelegt, es wird dann gesendet, der Empfänger wartet, dann kann der Empfänger danach antworten...
Für CAN braucht man etwas mehr Hardware, die ELMs 327 aus China sollten den Zweck am günstigsten erfüllen...
Besser zugänglich ist aber der Arduino mit Board...
*kopfklatsch* den ELM meine ich auch. Hab ich hier noch rum fliegen.
Das K-Line Prinzip ist mir bekannt :-)
Ja das KLM ist ganz schön wertvoll wenn man das so rumfliegen hat.
Wir gehen einfach mal davon aus, du hast das Original und da sollte auch die folgende Commandlist funktionieren:
http://www.elmelectronics.com/ELM327/AT_Commands.pdf
Die Befehle sollte man dann auch ganz einfach über Telnet zum Beispiel mit Putty senden können:
http://portableapps.com/de/apps/internet/putty_portable
Sogar die Anleitung dazu gibt es schon 🙂
https://sites.google.com/.../...vehicle-and-an-obd2-programmet-scanner
Am besten so im Kofferraum anschließen:
http://www.motor-talk.de/.../con-i206732574.html
Du meinst die Silberbox. Ne die hab ich leider nicht.
Ich hab diesen hier (Siehe Bild). Den hab ich mal in ein Auto gefunden was ich geschlachtet hatte und so wie der von außen schon aussieht ist das wahrscheinlich kein echter.
Egal welche Farbe der hat und welches Gehäuse, die sind alle gleich, die Belegung der Platikkiste ist ja in der Anleitung oben beschrieben...
Hab ihn grade mal zerlegt. Es ist kein echter. Da befindet sich kein ELM chip drauf. Auf jedenfall so wie es im Internet beschrieben ist.
Aber Pin 6 u 14 sind .
Würde das dann nach der Anleitung funktionieren?
Hallo DR_V70,
habe eben eine PN geschrieben mit einer Bitte.
Hier entwickelt sich dieses Thema derart, daß ich mal hier eine Bitte äußern möchte.
Ich habe als Canbus Neueinsteiger inzwischen 11 Seiten durchgelesen, das Codesystem sollte erfaßbar sein.
Allerdings weiß ich nicht, welche Hardware und welche Software nötig ist.
Also im Grunde stelle ich mal die Bitte und die Fragen:
- was braucht man für Hardware ?
- welche Erweiterungen als Schnittstelle sind nötig und wie wird die Verbindung zu einem Laptop via USB hergestellt ?
- welche Software braucht man dazu ?
Daher bitte ich dich als Experten um ein paar grundsätzliche Hinweise.
Vielen Dank...
Ließ dir noch mal Seite 1 und 2 durch.
Da ist ne Liste was man alles brauch und auch was an Software notwendig ist bzw wie die Ordner angeordnet sein müssen.
Mfg Sven