Hallo Leute,
ich muss mit einem CAN-Bus Transceiver auf einen zweiten Bus umschalten
ohne das ich ein Relais benutzen darf. Hat hierfür jemand ein
"Universalpatent"?
Zum Problem:
Zwei CAN-Busse (Primär, Sekundär (Fault Back)) gehen an einen "Haufen"
Geräte, die nur einen CAN-Bus Transceiver haben. Wenn länger als 5
Sekunden keine Nachricht auf dem primären Bus kommen soll auf den
Sekundären umgeschaltet werden. Die "Busteilnehmer" sind noch in der
Entstehung, fest steht aber, das diese kein zweites Interface bekommen
können.
Jetzt suche ich nach einer Relais losen Lösung um den Bus vor dem
Transceiver umzuschalten. Das ganze sollte nach möglichkeit auch
funktionieren, wenn der defekte Bus Kurzgeschlossen oder permanent Hi
ist.
Vielen Dank
Rafael
Rafael schrieb:> Jetzt suche ich nach einer Relais losen Lösung um den Bus vor dem> Transceiver umzuschalten. Das ganze sollte nach möglichkeit auch> funktionieren, wenn der defekte Bus Kurzgeschlossen oder permanent Hi> ist.
Probiere es einfach mit 2 RS485 Transceivern.
RE und DE werden jeweils separat für jeden Bus ein- oder ausgeschaltet.
Also, normal wäre:
Primär_DE = 1 / Primär_RE = 0 ||| Sekundär_DE = 0 / Sekundär_RE = 1.
Damit ist Primär aktiv und Sekundär ist High-Z.
Beim Fehler auf dem Primär geht dann:
Primär_DE = 0 / Primär_RE = 1 ||| Sekundär_DE = 1 / Sekundär_RE = 0.
Damit ist Sekundär aktiv und Primär ist High-Z.
Für Busteilnehmer ändert sich dadurch nichts, aber der uC-Umschalter
muss halt am Bus sniffen, Fehler detektieren und dementsprechend
von Primär auf Sekundär umschalten. Oder umgekehrt.
Und wenn du auf dem Sekundärbus die Adressen entsprechend erhöhst,
kannst du auch erkennen welcher Bus gerade aktiv ist.
Nur halt schnellere RS485 Transceiver nehmen.
Bei RS-485 werden die beiden Busleitungen komplementär geschaltet, nicht
zusammen- oder auseinandergezogen. Das dürfte am CAN nur mit etwas
Gefrickel funktionieren.
Es gibt aber auch CAN-Transceiver mit Enable-Pin. Z.B. TJA1042T. Da
bekommt jeder Bus seinen Transceiver, TxD geht auf beide, und RxD wird
über einen Multiplexer auf den gerade enabelten Transceiver geschaltet.
Rafael schrieb:> Hallo Leute,>> ich muss mit einem CAN-Bus Transceiver auf einen zweiten Bus umschalten> ohne das ich ein Relais benutzen darf. Hat hierfür jemand ein> "Universalpatent"?>> Zum Problem:> Zwei CAN-Busse (Primär, Sekundär (Fault Back)) gehen an einen "Haufen"> Geräte, die nur einen CAN-Bus Transceiver haben. Wenn länger als 5> Sekunden keine Nachricht auf dem primären Bus kommen soll auf den> Sekundären umgeschaltet werden. Die "Busteilnehmer" sind noch in der> Entstehung, fest steht aber, das diese kein zweites Interface bekommen> können.
Rafael
Warum kein Relais? Auch keine Halbleiterrelais?
Muxer wurde schon erwähnt. Man kann auch direkt der CAN muxen. Hab mal
ein Baord gebaut, das 16 CAN-Kanäle auf einen Routen konnte. Ich könnte
mal schauen was ich das für einen Muxer verwendet habe.
PS:Meinst du nit eventuell Fall back = Rückfallebene?
soul eye schrieb:> Bei RS-485 werden die beiden Busleitungen komplementär geschaltet, nicht> zusammen- oder auseinandergezogen. Das dürfte am CAN nur mit etwas> Gefrickel funktionieren.
Wenn du die beiden Enableleitungen meinst, dann nein.
Das macht man normalerweise so, damit man mit nur einem Portpin auf
senden oder empfangen umschalten kann, da RS485 nicht Full-Duplex ist.
Marc Vesely schrieb:> RE und DE werden jeweils separat für jeden Bus ein- oder ausgeschaltet.
Das sind für mich insgesammt 4 Pins und bestimmt kein Gefrickel.
Natürlich könnte man Primär und Sekundär übers Kreuz schalten und
würde dann mit nur 2 Pins auskommen.
Wenn du aber wirklich die Busleitungen A und B meinst, dann ist das
schlicht Blödsinn.
Fabian F. schrieb:> Warum kein Relais?
Weil extrem hohe Vibrationen auftreten und auch zum halten eines
Zustands ggf. Energie benötigt wird.
Deine Lösung klingt aber interessant!
Rafael schrieb:> Deine Lösung klingt aber interessant!
LOL.
Relais prellen aber nunmal gerne, so um die 2-5ms.
Natürlich ist das nicht schlimm, sind ja nur etwa 1000-2500 bits bei
500KB/s die dadurch verlorengehen oder falsch interpretiert werden.
Und etwas multiplexen, was gar nicht gemultiplext werden braucht, mag
zwar interessant klingen, ist aber Unsinn.
Marc Vesely schrieb:> Rafael schrieb:>> Deine Lösung klingt aber interessant!>> LOL.> Relais prellen aber nunmal gerne, so um die 2-5ms.> Natürlich ist das nicht schlimm, sind ja nur etwa 1000-2500 bits bei> 500KB/s die dadurch verlorengehen oder falsch interpretiert werden.
Fabian schlug Halbleiterrelais bzw MUXer vor. Das war die Lösung, die
Rafael meinte. Keine mechanischen Relais.
Marc Vesely schrieb:> Und etwas multiplexen, was gar nicht gemultiplext werden braucht, mag> zwar interessant klingen, ist aber Unsinn.
Warum? Ein Multiplexer ist ein Umschalter. Und Rafael will umschalten,
und zwar den CAN. Multiplexer heißt doch nicht, daß man ständig reihum
schalten will. Und ein 2-zu-1-Multiplexer ist nichts anderes als ein
simpler Umschalter. Insofern gebe ich Fabian recht.
Rafael schrieb:> Das ganze sollte nach möglichkeit auch> funktionieren, wenn der defekte Bus Kurzgeschlossen oder permanent Hi> ist.
Das ganze soll ja wohl eine Schutzeinrichtung sein damit zumindest die
Teilnehmer mit 2 Transceivern auch im Fehlerfall noch kommunizieren
können.
Bei Schutzeinrichtungen macht es immer Sinn sich vorher genau zu
überlegen wovor/wogegen man schützen möchte.
Du hast Kurzschluss und Permanent High genannt. Ist das wirklich alles?
Kann es nicht z.B. auch ESD-Probleme oder Kontakt mit Netzspannung oder
anderer höherer Spannung geben? Oder niederohmige Verbindung aller Adern
nach Ground (z.B. Isolation des Kabels durchgescheuert).
Rafael schrieb:> Fabian F. schrieb:>> Warum kein Relais?>> Weil extrem hohe Vibrationen auftreten und auch zum halten eines> Zustands ggf. Energie benötigt wird.>> Deine Lösung klingt aber interessant!
Bistabile Relais brauchen keinen Strom und halten auch rund 75g bzw
Vibratrionen mit 3-5mm Amplitude aus. Wenn man die Busse 100% trennen
will kommt man da nicht drum herrum. Bei einem Offenen Reilais kann
einem ziemlich egal sein, was für elektrotechnische Desaster sich auf
dem Bus abspielen
Wenn nur das Signal getrennt werden soll tuts auch ein Mux. Ist aber
eben nur ein Halbleiter-Schalter und hält damit bestenfalls wenige
duzend Volt aus.
Den Chip hier hab ich verwendet: Ti sn74cbt3125 4-Fach BUS-Switch
Marc Vesely schrieb:> Wenn du aber wirklich die Busleitungen A und B meinst, dann ist das> schlicht Blödsinn.
Wenn ich mir das hier so anschaue:
http://www.ti.com/lit/an/slla272b/slla272b.pdf , dann ist das keineswegs
Blödsinn.
RS-485 hat zwischen A und B eine positive Spannungsdifferenz bei
High-Pegel und eine negative Spannungsdifferenz bei Low-Pegel.
CAN hat zwischen CAN_H und CAN_L eine Spannungsdifferenz kleiner 50 mV
bei High ("rezessive level") und größer 1,5 V bei Low ("dominant
level").
Ich möchte nicht ausschließen, das man mit einem RS-485 - Transceiver
CAN-Signale senden und empfangen kann. Ein direkter Anschluß an den Bus
ist aber nicht möglich.
soul eye schrieb:> Ich möchte nicht ausschließen, das man mit einem RS-485 - Transceiver> CAN-Signale senden und empfangen kann. Ein direkter Anschluß an den Bus> ist aber nicht möglich.
Hmm dann müsste ich aber auch allen Teilnehmern einen RS485 Transceiver
spendieren, oder?
Rafael schrieb:> Hmm dann müsste ich aber auch allen Teilnehmern einen RS485 Transceiver> spendieren, oder?
Nein.
Aber da du meine Beiträge ordentlich überspringst, habe ich den
Beitrag mit Schematic und 2 Pins zum steuern auch wieder gelöscht.
soul eye schrieb:> Ich möchte nicht ausschließen, das man mit einem RS-485 - Transceiver> CAN-Signale senden und empfangen kann. Ein direkter Anschluß an den Bus> ist aber nicht möglich.
Ein direkter Anschluss ist sehr wohl möglich und ausprobiert.
Und jetzt lasse ich euch Experten unter sich.