1. Startseite
  2. Forum
  3. Auto
  4. Volvo
  5. S60, S80, V70 2, XC70, XC90
  6. Der CAN-Bus im Volvo

Der CAN-Bus im Volvo

Volvo V70 2 (S)

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 weitere Antworten
277 Antworten

Die Leitung des CAN-Bus (grünes und weißes Kabel ineinander verdrillt) verläuft durchs ganze Fahrzeug, günstige Stellen zum Abgreifen sind aber leider nicht ganz so häufig. Möglichkeiten sind etwa: Stecker des Radios, Telefon, REM, RTI, AEM.

Eine gute Möglichkeit ist am REM zu finden, wenn kein RTI verbaut ist, dort sind zwei Steckplätze für dieses unbelegt.

Die Bilderstory unter diesem Link stellt eine mögliche Anschlussvariante am REM dar, dazu wurden einfach beide Stecker, (welche ursprünglich aus einem Computergehäuse kamen) von oben in den Stecker des REM gesteckt, dieser muss nicht dafür abgezogen werden.

Falls der Stecker abgezogen wird, unbedingt Batterie trennen.

Ein Beispiel zur Programmierung einer CommingHome Funktion mit Nebelscheinwerfern bei Betätigung des gelben Knopfes auf der Fernbedienung könnte etwa so aussehen:

Code:
if (message.id == 0xA1102A && message.data[6] == 48) {
        cantx(0xFFFFE, 0x8F, 0x40, 0xB1, 0x1A, 0x21, 0x01, 0x00, 0x40); 
        delay(15);  //15ms Pause nach Aktivierung Teil 1
        cantx(0xFFFFE, 0x4E, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00);
        delay(3900);  //3900ms Pause
        cantx(0xFFFFE, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); 
 }

ID 00313DF8 mit Datensatz 00 88 00 06 80 00 00 00

Codiert unter anderem für die gelbe Taste der Fernbedienung.
An 7ter Stelle (6tes Byte von 0 an), wird beim Betätigen des gelben Knopfes eine 30 gesetzt.

Der Controller überprüft jede Meldung im Netzwerk, falls die ID auftaucht und das 6te Byte 30 in Hex (48 in Dezimal) ist, wird die Aktivierung der Nebelscheinwerfer gesendet. Dies ist eine Diagnosemeldung, FFFFE läuft nach etwa 4 Sekunden ab, und die Nebelscheinwerfer würden wieder abgeschaltet, um dies zu verhindern, wird allgemein für den Diagnosemodus eine alive-message gesendet, (ID 000FFFFE, Datensatz D8 00 00 00 00 00 00 00) welche alle Diagnose-Aktivierungen für weitere 4 Sekunden verlängert. Sind diese wiederum abgelaufen erlöschen die Scheinwerfer.

Dieser Code ist nicht ideal und soll nur der Verdeutlichung dienen, alleine schon die Pausen blockieren den Controller für lange Zeit und lassen gleichzeitig keine anderen Funktionen zu, welche allerdings wahrscheinlich während der ComingHome Funktion nicht benötigt werden. Schöner wäre auch eine Meldung zur Deaktivierung der Nebelscheinwerfer am Ende.

Durch das Senden der Meldungen des Telefons lässt sich sogar das Tachodisplay zum Einstellen zusätzlicher Funktionen nutzen, der Hebel mit dem Drehring und dem Reset-Schalter wurde nachgerüstet, der Wagen selbst verfügt über keinen Boardcomputer:

Video

Hallo Leute,

Vielen Dank für die bisherigen Erläuterungen.....soweit ich es richtig verstanden habe, kommt das can shield in den arduino und wird auf in den can bus gehäengt...Kann nochmal jmd. beschreiben, wie die Daten des Can-Bus ausgelesen werden.Wird ein Laptop an den Arduino gehängt? Und wie könnte man die Fernzündung des Zusatzheizers realisieren? Wo gibt es weiterführende Links?

Ähnliche Themen

Dachte schon das ganze Thema würde hier komplett untergehen, 🙂 ist das alles zu sehr versteckt? Gibt es da kein Interesse, traut sich da kaum einer ran, ist es nicht verständlich, eventuell noch einen extra Thread eröffnen?

Richtig, das mit dem Arduino läuft so ab, dieser enthält einen programmierbaren Mikrocontroller, in dessen Programmspeicher werden Programme geladen. Es können einerseits Programme sein, welche bestimmte Funktionen erfüllen, wie ComingHome (Programmierbeispiel ist oben angegeben) oder es können Programme sein welche dem Logging von Daten dienen zB. mit CANHacker (einfach mal ein Screenshot mit google Bildersuche googeln), desshalb ist kein weiteres eigenes Gerät zum Loggen der Meldungen möglich.

Der Arduino wird mit einem einfachen USB Druckerkabel an den Computer angeschlossen und kann von dort programmiert werden. Zum Loggen bleibt dieser auch am Computer. Die Stromversorgung läuft auch über USB oder über das CAN-Bus Shield mit den 12V im Auto. Das Programm auf dem Arduino benötigt nur Strom und keinen Computer um eigenständig zu laufen.

Die Entwicklungsumgebung des Arduinos hat viele vorgefertigte Funktion, Bibliotheken und Implementierungen, als Programmiersprache kommt ein stark vereinfachtes C zum Einsatz, welches aber auch alle Befehle aus C akzeptiert, da es sich um den selben Compiler handelt welcher nur um einfachere Funktionen erweitert wurde. Durch viele vorgefertigte Bibliotheken, lässt sich das Shield schnell in Betrieb nehmen.

Nun zur Standheizung, es sollte sich alles was mit dem Extender möglich ist auch realisieren lassen, wie noch einiges mehr, bis jetzt haben sich jedoch leider nicht so viele Leute mit dem Thema beschäftigt, es gibt soweit mir bekannt einige wenige Entwickler in Schweden, Dänemark und das kommerzielle Extender-Projekt in den Niederlanden. Die freien Entwicklungen basieren hauptsächlich auf den S80. Ich selbst habe am S60 und V70 von 2001 gearbeitet und kann dort mit einigen Meldungen aushelfen, die wie bereits erwähnten Diagnose-Aktivierungen (0xFFFFE) scheinen in allen Modellen gleich zu sein und auch in allen Modellen zu funktionieren. Wegen LPG Benziner habe ich keine Standheizung und kann dort auch leider nicht helfen. Unter dem Suchbegriff "Hacking Volvo Blogspot" ist Olafs Projekt zu finden, welches sich sehr ausführlich mit dem Thema Fernstart der Standheizung beschäftigt (eine Mail in englisch wird auch meist sehr gern und freundlich beantwortet).

Hallo nochmal,

OK soweit ist alles klar.....heisst aber doch auch, dass wenn ich den Code auf dem Arduino habe , z.B.
Komfortblinker, dass der am Spannungsnetz des Volvos hängt, oder ? hast du dann eine Platine, um die
spannung von 12V auf 5 V runterzuregeln?
Kannst du auch die Anschlussbelegung vom D-Sub-Stecker posten ?
Achja und kann man die Fernbedinung erweitern, sprich doppelt öffnen = elektrische Fenster gehen runter ?

Vielen Dank für die Infos.....

Der Arduino selbst besitzt auch einen weiteren Eingang, über welchen er mit Spannung bis zu 12V versorgt werden kann, dieser ist fürs Auto aber ungeeignet, da es dort zu starke Spannungsschwankungen gibt. Auf dem CAN-Bus Shield von Sparkfun wurde der Spannungswandler noch durch eine Überspannungsschutzdiode einen Kondensator und durch eine Sicherung erweitert. Der Anschluss dazu erfolgt über die 9-polige D-Sub Buchse zum KFZ-Boardnetz.

Ein kompletten Schaltplan des Shields gibts auf der Seite von Sparkfun:
Sparkfun

Schaltplan

Das mit den Fenstern ist kein Problem, im Netzwerk des V70 sieht dies besipielsweise so aus:

Die ID 0A1102A scheint unter anderem für den Funkempfänger zuständig zu sein.
Alle 15ms taucht folgende Meldung auf:

ID: 00A1102A Datensatz: 80 30 00 10 04 00 00 00

Jedesmal wenn auf der Fernbedienung Schließen gedrückt wird, erscheint an der 4ten Stelle keine 10 sondern eine 90, im Falle des Öffnens eine 80.

Wenn der Arduino diese Meldung mehrfach wahrnimmt (Entweder Anzahl der Meldungen zählen alle 15ms oder Zeitraum messen in denen diese Position 90 ist), müssen einfach die Diagnosemeldungen zum Schließen der jeweiligen Fenster gesendet werden. Bis jetzt gab es bei diesem Wetter noch kein Bedarf die Funktion zu integrieren...

Die 6te Stelle codiert für den gelben Knopf auf der Fernbedienung.

Ok.....Habe mir erstmal die Teile bestellt (Arduino hatte ich schon, somit auch erste Programiererfahrung).
Werde dann mal fleissig löten und mich gegen Ende der Woche melden....Nur noch eine Frage vorab : Kann man die digitalen Inputs noch benutzen, oder sind die durch das Shield belegt? Wäre ja auch wichtig, wenn man weitere Shields auf den Arduino stecken will....

Die Kommunikation mit dem Shield, bzw. mit dem mcp2515 erfolgt über SPI, die Datenübertragung findet über die Leitungen SCK, MOSI und MISO statt (an diese Leitungen können nahezu beliebig viele Geräte gleichzeitig angeschlossen werden). Dazu wird noch eine CS Leitung benötigt, diese selektiert den mcp2515 als Slave, damit er auf die Meldungen reagiert, welche auf den Datenleitungen ankommen und ein Interrupt Eingang welcher den Arduino aus dem Standby holt, wenn wieder Meldungen gesendet werden.

Zusammengefasst, zwangsläufig belegt werden müssen: D10, D11, D12, D13, D2, alle anderen Leitungen stehen weiterhin zur freien Verfügung, die bereits belegten SPI Leitungen können von weiteren Shields mitgenutzt werden...

Mit dem Schaltplan ist es ein wenig verwirrend den Stecker zu löten, also genau hinschauen von wo der Stecker betrachtet wird,in dem Beispiel ist schwarz CAN-L und weiß CAN-H. Die Stromversorgung war in dem Beispiel noch nicht über den Stecker geführt, sondern separat.

Ok alles soweit zusammengelötet...can hacker ist aufm lappi....nun noch 3 fragen vorab:
1. Gibt es ein Trick wie man das Rem ausbaut? (V70II).....
2. Kann man das Can shield vorab am Laptop auf funtion prüfen, bzw. Muss man bestimmte Einstellungen in can hack vornehmen?
3. Wenn ich den Arduino ans Bordnetz hänge nehme ich ja An Pin 2 und 9,oder?
Lg

Hallo Ihr zwei,

bin auch noch dabei!
Hatte leider die letzte Zeit richtig stress und keine Zeit zu Schreiben.

@Schakal: leider hast du schon bestellt, kannst mir vielleicht sagen wo du die Teile bestellt hast? Gerne auch bei PN

Gruß

Kann sein das die dargestellten Arbeitsschritte alle ein wenig übertrieben erscheinen, ich möchte aber häufige Fragen vermeiden und den Gesamtaufbau wirklich von Grund auf beschreiben, so dass dieser für jeden nachvollziehbar ist.

Zu 1:
Beim V70 muss die linke Verkleidung abgebaut werden (nur eine Schraube). Oben am REM brauch nur der Blechbügel nach oben gehoben werden, dann kann es etwa 30° nach vorne gekippt werden und lässt sich dann nach oben aus der Halterung lösen.

Die Pins werden in die Plätze des RTI gesteckt, Pinbelegung gibt es beispielsweise unter:
Pinbelegung

Wichtig ist wieder drauf zu achten, von welcher Seite der Stecker belegt werden soll, also besser doppelt prüfen. Von Außen betrachtet war (nicht mehr 100%ig sicher) CAN-L (grün) links von CAN-L(grün) und CAN-H (weiß), links von CAN-H (weiß).
Unter dieser Bilderstory lässt sich zumindest erkennen, das die Stecker neben der Fahrzeugleitung einsteckt werden.

Zu 2:
Um mit CanHacker zu loggen benötigt der Arduino die richtige Software.
Olaf von Hacking Volvo Blogspot hat dazu das Lawicel Protokoll auf den Arduino adaptiert und den Arduino CanHacker tauglich gemacht.

Die Software gibt es hier:
https://github.com/hackingvolvo/SardineCAN-Arduino/archive/master.zip

Nach dem Entpacken, muss der Überordner, indem sich die sardine.ino befindet in sardine umbenannt werden, damit sich die Arduino Umgebung nicht weigert das Projekt zu öffen.
Screenshot

Weiterhin muss der Ordner Canbus in das Verzeichnis der Arduino Umgebung in den Ordner librarys kopiert werden.
Screenshot

Nun muss nur noch die Sardine.ino mit der Arduino Software geöffnet und dann auf den Arduino programmiert werden.

Anschließend lässt sich CanHacker nutzen. Dazu muss nur der COM Port des Arduinos und die Geschwindigkeit des Bus (125 kbit) eingestellt werden. Anschließend sollte ein Connect fehlerfrei gelingen, egal ob das Auto am Arduino hängt oder nicht.

Zu 3:

Genau, Pin 2 kommt auf Masse, Pin 3 kommt auf +12V.

Zur Bestellung hab mit der Firma, welche unten auf der ersten Seite angegeben ist nichts zu tun war mit der Lieferung aber sehr zufrieden.
Alternativ bietet sich Watterott an, diese sind aber ein wenig teurer als EXP-Tech und mehrere Anbieter zu kombinieren lohnt sich wegen anfallender Versandkosten meist nicht.

Also habe die Teile auch bei Exp-Tech bestellt...innerhalb von 2 'Tagen waren die Teile bei mir....
Problem beim REM ist, dass die hintere Seitenverkleidung ein abkippenb um 30 Grad verhindert. Somit muss ich die Seitenverkleidung ausbauen....dafür benötige ich aber Tageslicht 😉

Der Code ist auf dem Arduino nun aufgespielt...allerdings bekomme ich zum Can-Hacker
keine Verbindung....meine Recherche ergab :
"Note that at least read tests will fail if Sardine CAN is not connected to the car."

So werde ich mich auf WE vertösten und auf einigermaßen angenehmes Wetter hoffen...

Ich hab den Link zur neusten Version gepostet, dabei ist mir leider nicht aufgefallen, dass das Lawicel USBCAN Protokoll aus dieser Version entfernt wurde.

Version mit USBCAN für CanHacker gibt es unter:
https://github.com/hackingvolvo/SardineCAN-Arduino/archive/CANUSB.zip

Informationen dazu unter:
https://github.com/hackingvolvo/SardineCAN-Arduino/tree/CANUSB

Die Installation muss genauso wie oben beschrieben ablaufen, wichtig ist auch das Kopieren des Ordners Canbus in den Ordner librarys, da dieser ebenfalls verändert wurde.

Zusätzlich wird noch benötigt:
http://www.arduino.cc/playground/uploads/Code/TimerOne.zip

Die Dateien TimerOne.cpp und TimerOne.h aus diesem download müssen ebenfalls in den Canbus Ordner kopiert werden.

Der Inhalt sollte dann so aussehen:
Screenshot

Nach erfolgreichem Upload auf den Arduino muss in CanHacker nur noch die Geschwindigkeit und der COM-Port eingestellt werden:
Screenshot

Ein Connect sollte dann auch ohne angeschlossenes Auto funktionieren (siehe unten links):
Screenshot

Ok....mit der neuen Datei klappt der Connect....REM ist auch schon ausgebaut- nun habe ich die Steckerbelegung für Can-H und Can-L auf folgender Seite gesucht:

http://accessories.volvocars.com/.../V70(00-08)/2002/D5/Manual/L.H.D/ShowDocument/ShowIiDocument/VCC-144932-1/V70_(00-08)_2002

Muss ich Pin 15 + 17 belegen und was ist High und was ist Low?

Sendet das Auto auch schon Codes wenn der Wagen aus ist, oder muss gestartet werden?

Lg

Deine Antwort
Ähnliche Themen