Forum: Mikrocontroller und Digitale Elektronik CAN-Bus mittels Relais umschalten?


von Basti (Gast)


Lesenswert?

Hallo zusammen,
ich wollte mal eure Meinung, zu einem Vorhaben erbitten.
Es soll ein CAN-Bus mittels Relais zwischen drei Teilnehmern 
umgeschaltet werden. Teilnehmer 1 soll also entweder mit Teilnehmer 2 
ODER 3 kommunizieren. 2 und 3 sollen gar nicht miteinander reden. Ich 
kann also nicht alle drei zu gleich an den Bus hängen.
Nun wollte ich CAN-High und CAN-Low mit einem Wechslerrelais umschalten.
Klar entstehen dadurch Totzeiten von 4-5ms was mit Sicherheit zu 
Errorframes führen wird, aber wenn eine Botschaft nicht richtig ankommt, 
wird diese doch nochmal geschickt.
Es soll auch nicht hochfrequent umgeschaltet werden. Vielleicht einmal 
pro Minute.
Könnte das so funktionieren oder seht ihr irgendwo ein KO Kriterium?

Danke schonmal für eure Antworten!
Grüße Basti

von Roland H. (batchman)


Lesenswert?

Basti schrieb:
> Teilnehmer 1 soll also entweder mit Teilnehmer 2
> ODER 3 kommunizieren. 2 und 3 sollen gar nicht miteinander reden.

Teilnehmer 1 bekommt einen µC mit zwei CAN-Interfaces.

Basti schrieb:
> Nun wollte ich CAN-High und CAN-Low mit einem Wechslerrelais umschalten.
> Klar entstehen dadurch Totzeiten von 4-5ms was mit Sicherheit zu
> Errorframes führen wird, aber wenn eine Botschaft nicht richtig ankommt,
> wird diese doch nochmal geschickt.

Ein arges Gebastel.

> Es soll auch nicht hochfrequent umgeschaltet werden. Vielleicht einmal
> pro Minute.

Da wäre mir zu viel und zu oft Mechanik im Spiel.

Was soll's denn werden?

von Achim M. (minifloat)


Lesenswert?

Basti schrieb:
> Teilnehmer 1 soll also entweder mit Teilnehmer 2
> ODER 3 kommunizieren. 2 und 3 sollen gar nicht miteinander reden. Ich
> kann also nicht alle drei zu gleich an den Bus hängen.

Warum machst du das nicht über geeignete Maskierung und hängst die 
einfach alle an einen Bus?

Basti schrieb:
> Nun wollte ich CAN-High und CAN-Low mit einem Wechslerrelais umschalten.

Wer ist Hi-Speed und wer ist Low-Speed? Und vor allem, warum?

mfg mf

von Decius (Gast)


Lesenswert?

Warum hängst du nicht einfach alle gleichzeitig an den Bus und 
Konfigurierst die COB-ID in den Messagefiltern so, das sich das 
gewünschte Verhalten ergibt?

von Decius (Gast)


Lesenswert?

Ok, Joachim war schneller. ;-)

von Basti (Gast)


Lesenswert?

Ich kann leider die Hardware von allen Teilnehmern nicht beeinflussen. 
Sind quasi Kaufteile. Es muss aber zwingend zwischen den Teilnehmern 
umgeschaltet werden. Also entweder die einfache Lösung über eine Relais, 
oder aber über ein Extra µC mit 3 x CAN und dann per Software 
"umschalten" Aber das ist dann doch mit sehr viel mehr Aufwand verbunden 
als die Relaislösung. Ich habe aber auch irgendwie ein ungutes Gefühl, 
was Relais angeht Zwecks Störungen usw. Aber sehr ihr denn einen 
triftigen Grund, warum das nicht funktionieren sollte?

Joachim минифлоть schrieb:
> Wer ist Hi-Speed und wer ist Low-Speed? Und vor allem, warum?

Nicht High und Low Speed, sondern die CAN Datenleitung CAN-H und CAN-L.
Also ein Relais mit 2 Wechslern.

von Joris (Gast)


Lesenswert?

Basti schrieb:
> oder aber über ein Extra µC mit 3 x CAN und dann per Software
> "umschalten"

Geht das überhaupt, wenn das Übertragungsprotokoll unbekannt ist?

von Basti (Gast)


Lesenswert?

Joris schrieb:
> Geht das überhaupt, wenn das Übertragungsprotokoll unbekannt ist?

Muss ich das dazu kennen? Ich les alle Botschaften von Teilneher 1 ein 
und schick sie dann 1 zu 1 weiter. Entweder zu Teilnemer 2 oder 3.

von Joris (Gast)


Lesenswert?

Ist das Timing dabei unkritisch?

von Wilhelm F. (Gast)


Lesenswert?

Basti schrieb:

> Ich habe aber auch irgendwie ein ungutes Gefühl,
> was Relais angeht Zwecks Störungen usw.

Wenn es unbedingt was mit Relais sein soll:

In den letzten Tagen beschäftigte ich mich noch mal etwas mit der alten 
Telefontechnik. Dort setzte man, wo es sehr zuverlässig sein mußte, 
schon sehr lange, seit Anfang 20. Jhdt., Doppelkontakte ein. D.h., eine 
Kontaktfeder hat zwei Kontaktpunkte. Diese haben gegenüber 
Einfachkontakten nur ein Vierzigstel Kontaktstörungen. Dann evtl. auch 
auf gutes Kontaktmaterial achten.

Die Doppelkontakte nenne ich mal deswegen, weil die meisten Relais, die 
mir heute begegnen, doch meistens Einfachkontakte haben.

von nicht Gast (Gast)


Lesenswert?

Ich werfe mal den Begriff Halbleiterschalter in die Runde.
Vorteil:
Geringere Schaltzeiten und kein Verschleiss
Dabei aber auf den On-Widerstand achten damit das Signal nicht 
verfälscht wird

von Michael R. (mexman) Benutzerseite


Lesenswert?

> Könnte das so funktionieren oder seht ihr irgendwo ein KO Kriterium?

Hallo Basti,

ja, das funktioniert.

Gruss

Michael

von H.Joachim S. (crazyhorse)


Lesenswert?

prinzipiell wirds funktionieren.
Wenn dann aber Knoten2 oder 3 ganz alleine da rumhängen, werden sich 
sich abschalten, da sie kein ack mehr bekommen. Also, falls das kein Bus 
ist, sondern nur einzelne Geräte, spendier jeder Leitung nach dem Relais 
noch einen weiteren Teilnehmer, der zumindest dem einsamen Rufer in der 
Wüste brav mit ack antwortet.

von C. L. (calle)


Lesenswert?

Hallo,

Guter Hinweis H.joachim, sonst hat man nur Errorframes!

Hätte ich auch nicht sofort dran gedacht.
!!!

Carsten

von Roland H. (batchman)


Lesenswert?

Basti schrieb:
> Ich habe aber auch irgendwie ein ungutes Gefühl,
> was Relais angeht Zwecks Störungen usw. Aber sehr ihr denn einen
> triftigen Grund, warum das nicht funktionieren sollte?

Nein, ich sehe keinen Grund, warum das in SW nicht funktionieren 
sollte.

Du baust eine Bridge mit Mechanik! Die munter mitten in der Arbitrierung 
etc. umschaltet. Bist Du wirklich sicher, dass die anderen zugekauften 
Teile dies "mitmachen"?

Ich sehe das so: Es ist eine Frage, wann Du welche Art von Problemen 
lösen willst: SW-Probleme jetzt oder mechanische und/oder ganz andere 
Phänomene später.

Mich würde jetzt schon interessieren, was das werden soll, und warum die 
beiden anderen so strikt getrennt werden müssen. Darauf gab's noch keine 
Antwort :-)

H.joachim Seifert schrieb:
> spendier jeder Leitung nach dem Relais
> noch einen weiteren Teilnehmer

Wenn es eh weiterer künstlicher Teilnehmer bedarf: Eine andere SW-Lösung 
wäre: 2x µC mit jeweils 2x CAN. Die beiden verständigen sich, wer gerade 
kopiert. µCs mit 2x CAN gibt es m. W. häufiger.

von Roland H. (batchman)


Lesenswert?

Basti schrieb:
>> Geht das überhaupt, wenn das Übertragungsprotokoll unbekannt ist?
>
> Muss ich das dazu kennen? Ich les alle Botschaften von Teilneher 1 ein
> und schick sie dann 1 zu 1 weiter. Entweder zu Teilnemer 2 oder 3.

Wenn die Nachricht aus mehreren Paketen besteht, wann erkennst Du, dass 
Du umschalten kannst? Bist Du sicher, dass alle Nachrichten immer in ein 
CAN-Paket passen?

Dann wird das mit der Bridge nix, dann ist ein echtes Gateway nötig.

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.