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
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?
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
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?
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.
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?
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.
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.
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
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.
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.
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.