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
> Könnte das so funktionieren oder seht ihr irgendwo ein KO Kriterium?
Hallo Basti,
ja, das funktioniert.
Gruss
Michael
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.
Hallo, Guter Hinweis H.joachim, sonst hat man nur Errorframes! Hätte ich auch nicht sofort dran gedacht. !!! Carsten
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.