Can Bus Simulator mit Mcp2515

OP #7579398
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

#7579403
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

OP #7579412
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....

#7579458
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...

#7579468
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

#7579485
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

#7579519
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

OP #7580298
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

Gast #7580378
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.

Angehängte Dateien:
#7580381
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)

#7580479
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

#7580774
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.

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren