Forum: Mikrocontroller und Digitale Elektronik CANbus umschaltbar machen


von Rafael (Gast)


Lesenswert?

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

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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.

: Bearbeitet durch User
von Soul E. (Gast)


Lesenswert?

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.

von Fabian F. (fabian_f55)


Lesenswert?

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?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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.

: Bearbeitet durch User
von Rafael (Gast)


Lesenswert?

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!

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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.

: Bearbeitet durch User
von npn (Gast)


Lesenswert?

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.

von npn (Gast)


Lesenswert?

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.

von Gerd E. (robberknight)


Lesenswert?

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

von Fabian F. (fabian_f55)


Lesenswert?

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

von Soul E. (Gast)


Lesenswert?

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.

von Rafael (Gast)


Lesenswert?

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?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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.

von Jürgen H. (Gast)


Lesenswert?

Eventuell wäre der AMIS-42700 eine Lösung für Dein Problem.

siehe Figure 3 auf Seite 3 des Datenblattes - 
http://www.onsemi.com/pub/Collateral/AMIS-42700-D.PDF

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.