Forum: Fahrzeugelektronik Can Bus Simulator mit Mcp2515


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Big 1. (big11)


Lesenswert?

Hallo,
Hat hier jemand eine Idee, wie ich mit einem Mcp2515 Modul einen Can-Bus 
Simulator "basteln" kann? PI, Arduino oder ESP32 etc.

Ich will nicht lesen oder auswerten, ich möchte nur, dass der Can-Bus 
aktiv wird, wenn ich das will (Taster, Befehl, etc.)

Ich möchte damit China-Radios mit Can-Bus "offline" (außerhalb des 
Autos) einschalten können...

Mehr nicht...

Das Modul hätte ich daheim, sowie diverse EinplatinenComputer..

Falls jemand ne Lösung wüsste, Danke

von Achim M. (minifloat)


Lesenswert?

Suchmaschine bereits benutzt? Die Library für Arduino liefert gleich ein 
Beispiel mit.

Dann musst du noch wissen, welche Baudrate das Radio spricht und welche 
CAN-Frames und deren Dateninhalt zum An-/Ausknipsen gesendet werden 
müssen.

Big 1. schrieb:
> Ich will nicht lesen oder auswerten

Dank CRC und ACK-Bit bei nur zwei Busknoten und ausschließlich 
getriggerten (nicht zyklischen) Frames:  immer mit Lesen und Auswerten. 
Ist aber im MCP2515 in Hardware gegossen.

mfg mf

von Big 1. (big11)


Lesenswert?

Zitat:

"Dank CRC und ACK-Bit bei nur zwei Busknoten und ausschließlich 
getriggerten (nicht zyklischen) Frames: immer mit Lesen und Auswerten. 
Ist aber im MCP2515 in Hardware gegossen."

Das ist mir zu viel technisch...

Und ja, Sufu schon benutzt aber ausschliesslich Projekte zum Auslesen 
oder Steuern gefunden....

von Achim M. (minifloat)


Lesenswert?

Big 1. schrieb:
> Das ist mir zu viel technisch...

Wenn du lernfähig bist, kein Problem.

Big 1. schrieb:
> Und ja, Sufu schon benutzt aber ausschliesslich Projekte zum Auslesen
> oder Steuern gefunden....

Du willst die Radios steuern, oder?
Vielleicht zwischendurch auch einen Status *(aus)lesen*? Ich verstehe 
nicht, was da nicht passt.

mfg mf

: Bearbeitet durch User
von Big 1. (big11)


Lesenswert?

Ich möchte einfach nur, dass sich das Radio einschalten lässt und 
eingeschaltet bleibt...
Grundsätzlich funktioniert das ja auch ohne canbus, aber einige Modelle 
rebooten kurz nach dem Android-Start wieder, wenn kein Can-Signal 
anliegt..

von Achim M. (minifloat)


Lesenswert?

Big 1. schrieb:
> aber einige Modelle rebooten kurz nach dem Android-Start wieder, wenn
> kein Can-Signal anliegt..

Kannst du in Erfahrung bringen, was die Radios da an Traffic erwarten?

Kannst du die genauen Typen der jeweiligen Radios nennen?

Ich vermute stark, dass für deine Zwecke ein Arduino, ein MCP2551 und 
ein MCP2515 ausreichen.

mfg mf

von Big 1. (big11)


Lesenswert?


von Achim M. (minifloat)


Lesenswert?

Das VW Selbststudienprogramm "SSP 269" (bitte lesen, kannste googeln) 
hat mir gerade verraten, dass VAG ab 2022 und ab Golf IV einen 
Lowspeed-CAN 100kbit/s im  Infotainment einsetzt.

Dafür ist der MCP2515 eigentlich der falsche Transceiver, müsste aber 
dennoch für deinen Zweck funktionieren.

Big 1. schrieb:
> Das ist das Radio..

Gucke ich mir an, Danke für den Link.

Big 1. schrieb:
> Ein MCP2515 und Arduino Uno,

Du kannst ja schon mal den Arduino, den MCP2551 und den MCP2515 nach 
Datenblatt- bzw. Library-Vorgabe zusammenstecken.

mfg mf

PS. Hast du ein Oszi? Könnte nützlich zum debuggen werden...

: Bearbeitet durch User
von Big 1. (big11)


Lesenswert?

Nein... Leider

Bin zwar engagierter Hobby-Bastler aber ein Oszi hab ich noch nie 
wirklich gebraucht.

von Achim M. (minifloat)


Lesenswert?

Mal ne ganz doofe Frage. Hast du Klemme 30 "Dauersaft" und Klemme 15 
"Zündungsplus" beide angeschlossen? Nicht dass das Radio meint, Klemme 
15 ist weg, Zündung aus, und geht deswegen wieder schlafen?

Andererseits, Benz-Variante, wahrscheinlich auch immer "elektronisches 
Zündschloss". Da bräuchte man genaues Wissen darüber, welche

Achim M. schrieb:
> CAN-Frames

getriggert oder zyklisch kommen müssen... Wie bereits gesagt.

mfg mf

von Big 1. (big11)


Lesenswert?

Ja.. Beide angeklemmt gelassen...

von Big 1. (big11)


Lesenswert?

Ich hab mir jetzt mal so etwas bestellt....

Ich habe gerade diesen erstaunlichen Artikel auf AliExpress gefunden. 
Probiere ihn aus! €12.99  25%OFF | 7 zeilen decoder canbus gateway 
emulator simulator für mib pq rcd360 rcd330 plus für vw golf jetta mk5 
mk6 passat touran
https://a.aliexpress.com/_EHr951j

von Achim M. (minifloat)


Lesenswert?

Könnte gehen...

Dein Link zum Radio liest sich so als wäre das ein VW-kompatibles Radio. 
Auf der verlinkten Seite steht aber nur was von Benz.

Wenn es wirklich Benz sein sollte, hier ... 
https://www.hackster.io/news/integrating-an-android-infotainment-head-unit-with-a-mercedes-can-bus-649980300f84 
... hat einer seinen Benz gehackt.

Auf dem verlinkten ... https://github.com/rnd-ash/MBUX-Port ... findet 
man ein Textfile ... 
https://github.com/rnd-ash/MBUX-Port/blob/master/203_b.txt

Der Frame mit ID 0x0000, insbesondere dessen Bits 0...7 sind sehr 
interessant:
1
FRAME EZS_A1 (0x0000)
2
  B: KL_15C_EIN, OFFSET 7 LEN 1 - Authentic key is inserted (position 0)
3
  B: KL_15R_EIN, OFFSET 6 LEN 1 - Terminal 15R is switched on
4
  B: KL_15_EIN, OFFSET 5 LEN 1 - Terminal 15 is switched on
5
  B: KL_15X_EIN, OFFSET 4 LEN 1 - Terminal 15X is switched on
6
  B: KL_50_EIN, OFFSET 3 LEN 1 - Terminal 50 is switched on
7
  B: KG_KL_AKT, OFFSET 0 LEN 1 - Keyless Go terminal control active
8
  ...

Mit viel Glück passt das vielleicht für ein derartiges Benzradio, man 
muss nur alle virtuellen Klemme15-Bits und valider-Schlüssel-erkannt als 
eingeschaltet zyklisch senden.

mfg mf

: Bearbeitet durch User
von Big 1. (big11)


Lesenswert?

Das dürfte ein Universal-Modell sein, dass sich nur durch den 
entsprechenden Adapter unterscheidet... Der Can-Bus Decoder ist da aber 
eingebaut....
Dazu muss ich noch sagen, das das Radio sowohl mit eine Benz und einem 
VW Adapter geliefert worden ist...

von Achim M. (minifloat)


Lesenswert?

Big 1. schrieb:
> dass sich nur durch den entsprechenden Adapter unterscheidet...

Ich hab in dem Benzprojekt gesehen, dass da 2 CAN-Schmittstellen drin 
sind. Eine läuft mit 500kbit/s und eine mit 833kbit/s, das ist beides 
ein Highspeed-CAN.

Könnte mir vorstellen, dass im Adapter nur der Transceiver drin ist. Für 
Benz ein Highspeed-CAN-TRX, für VW ein Lowspeed-CAN-TRX.

Leider habe ich keine CAN-Database für den VW-Infotainment-CAN gefunden.

mfg mf

von Alexander (alecxs)


Lesenswert?

Mercedes-Benz Comfort-CAN ist Low-Speed, und zwar 83,333 kbit/s (nicht 
833 kbit/s). Das kriegst Du mit einem 8 MHz Quarz aber nicht hin. Ich 
hab noch eine MCP2515 Platine mit TJA1055 und 16 MHz Quarz übrig falls 
Du brauchst.

Beitrag "Re: Meine erste Platine mit TARGET 3001!"

: Bearbeitet durch User
von Big 1. (big11)


Angehängte Dateien:

Lesenswert?

So eine?...

von Alexander (alecxs)


Lesenswert?

Big 1. schrieb:
> So eine?...

Nein, TJA1050 ist High Speed, ich meine Low Speed Fault Tolerant 
TJA1055.

von Big 1. (big11)


Lesenswert?

Ok...
Hast du den Thread von Anfang gelesen?
Ich bin auf der Suche nach einer Lösung mit diesem Modul einen 
Can-Bus-Simulator zu basteln, der nichts anders machen muss, als ein 
Signal zu senden, dass ein Android Radio mit Can-Bus-Decoder 
eingeschaltet werden kann, wenn ich einen Schalter schließe (Zündung)

Hast du da ne Idee?
Oder  nen Link?..
Danke

von Alexander (alecxs)


Lesenswert?

Big 1. schrieb:
> Hast du da ne Idee?
> Oder  nen Link?..
> Danke

Du meinst mit einem High Speed CAN Transceiver einen Low Speed CAN Bus 
simulieren? Nein leider nicht. Lesen ginge noch im Eindrahtbetrieb, aber 
zum senden bräuchtest Du noch einen zusätzlichen Pegelwandler.

Beitrag "Low-Speed-CAN mit einem High-Speed-CAN Transceiver"

von Big 1. (big11)


Lesenswert?

Würde das dann aber mit deiner Platine möglich sein?
Was würde die kosten?.
Ich wohne in AT..

von Ge L. (Gast)


Angehängte Dateien:

Lesenswert?

Alexander schrieb:
> Du meinst mit einem High Speed CAN Transceiver einen Low Speed CAN Bus
> simulieren? Nein leider nicht. Lesen ginge noch im Eindrahtbetrieb, aber
> zum senden bräuchtest Du noch einen zusätzlichen Pegelwandler.

Im Fahrzeug würde ich das jetzt nicht machen, aber High- und 
Lowspeed-CAN zusammenhängen funktioniert. Siehe Anhang.

Bei dem Aufbau ist nur die interne Terminierung des TJA1054A aktiv, also 
2x 50 kOhm.


D.h. wenn im Radio ein TJA1055 sitzt, auf der MCP-Platine die 120 Ohm 
ausmachen.

von Alexander (alecxs)


Lesenswert?

Ja also zumindest die Hardware, was die Software angeht kannst Du 
dieselben Bibliotheken verwenden, der MCP2515 ist ja der gleiche. Gut 
Versandkosten 6,49 € geht auch noch, die Platine kannst Du für 10 € 
bekommen.

Ich würde an Deiner Stelle erstmal Informationen über den CAN Bus 
sammeln, fang mit der Bitrate an.

http://www.stryder-it.de/canBitTimings.php

Dann wären CAN-IDs wichtig. Für MB wurde Dir ja bereits Ashcon 
Mohseninia empfohlen, für VW SSP 269.

Wenn das Setup soweit steht, wäre der nächste Schritt erstmal CAN Bus 
sniffen. Vielleicht reicht ja schon ein Replay ohne irgendwas vom Inhalt 
zu verstehen. Sniffen sollte mit deinem Modul gehen, evtl nur den Quarz 
umlöten.

Soul E. schrieb:
> D.h. wenn im Radio ein TJA1055 sitzt, auf der MCP-Platine die 120 Ohm
> ausmachen.

Richtig, die Terminierung bleibt in jedem Fall offen, da Du ja an einen 
bestehenden CAN-Bus ran gehst. Ich habe 5k6 drauf gelötet.

Vermutlich ist die Lösung aber viel einfacher: Der CAN-Bus legt sich 
schlafen indem die Pegel CAN-H von 3.6V auf -> 0V und CAN-L von 1.4V auf 
-> 5V wechseln. Ich vermute mal das Android Radio schaut einfach ob 
Spannung anliegt. In dem Fall reicht es aus, einfach einen nackten 
TJA1055 draufzuschalten der den CAN-Bus wach hält. Der wird nur mit STB 
und EN eingeschalten, dazu braucht es nicht mal einen µC.

Dann kannst Du Dir den ganzen CAN Quatsch sparen und es reicht ein 
Schalter (bzw könnte das Radio sich den selbst einschalten). Das kannst 
Du testen indem Du dem nackten Radio mal die dominanten Pegel 
vorgaukelst (natürlich nicht am Fzg CAN-Bus testen)

: Bearbeitet durch User
von Achim M. (minifloat)


Lesenswert?

Alexander schrieb:
> Wenn das Setup soweit steht, wäre der nächste Schritt erstmal CAN Bus
> sniffen.

Wir wissen nicht mal ob der TO ein passendes Auto hat...

mfg mf

von Big 1. (big11)


Lesenswert?

Hatte ich schon geschrieben, dass ich einen MBenz (W203, Bj 2006) 
habe...

von Achim M. (minifloat)


Lesenswert?

Sorry, kann sein, aber dann wohl nicht in dem Thread hier.

Funktioniert(e) das Radio denn in besagtem W203? Dann wäre Sniff und 
Replay wohl das einfachste.

MCP2551 am Raspberry Pi nebst Wireshark ergibt ein Netzwerkanalysetool, 
das dir genau das leisten kann.

mfg mf

von Alexander (alecxs)


Lesenswert?

Dann passt das mit 83.333 kbit/s und die CAN IDs sind bekannt. Ich habe 
einen S211 ist im Prinzip das gleiche. Bei mir läuft zwar ein Teensy 
aber für Arduino oder ESP32 sollte das ebenso gut gehen.


CAN ID 0x0000 KL_15R_EIN wäre das Zündungssignal für Radio. Das sniffen 
ist aber unerlässlich da man nur eine komplette CAN Message senden kann 
und kein einzelnes Signal.

https://github.com/rnd-ash/W203-canbus/blob/master/DAT_TRANSLATOR/DECODED

: Bearbeitet durch User
von Alexander (alecxs)


Angehängte Dateien:

Lesenswert?

Alexander schrieb:
> Vermutlich ist die Lösung aber viel einfacher: Der CAN-Bus legt sich
> schlafen indem die Pegel CAN-H von 3.6V auf -> 0V und CAN-L von 1.4V auf
> -> 5V wechseln.

Falsches Diagramm das sind die Standard-Pegel. Für den Schlafmodus 
wechselt CAN-H -> 0V und CAN-L -> 12V (bzw VBAT).

Wenn Du wirklich nur das Radio (ohne Auto) betreiben willst reicht also 
vielleicht ein Spannungsteiler 10k / 4k7 an CAN-L.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.