RS485-Multiplexer

#4732607
Lesenswert?

Hallo zusammen,

ein Mikrocontroller mit einem UART soll mehrere RS485-Geräte auslesen. 
Es ist nicht möglich, alle RS485-Geräte auf einen Bus zu legen, da sich 
dabei einzelne Geräte aufhängen. Anscheinend kommen sie nicht mit den 
Protokollen der andern Geräte nicht klar.

Es könnten mehrere Transceiver eingesetzt werden, die auf TTL-Seite 
zwischen Mikrocontroller und Transceiver gemuxt werden. Dies benötigt 
aber mehr Platz auf der Platine und auch mehrere DC-DC-Wandler (einzelne 
Kanäle sollen voneinander isoliert sein).
Stattdessen würde ich gerne folgendes versuchen:

Ein Transceiver (durch DC-DC Wandler galvanisch vom Mikrocontroller 
getrennt, alle Signale dahinter laufen über Opto-Koppler) bedient alle 
Kanäle. Dazu wird ein analoger Multiplexer verwendet, der Signale von 
+/-12V schaltet. So werden von jedem RS485-Kanal die Signale A, B und 
auch GND zum Transceiver geschaltet. Der Abschlusswiderstand (120 Ohm) 
befindet sich auf Seite des Busses ebenso wie die nicht gezeichneten 
Schutzdioden.

Jetzt meine Frage: Der Multiplexer hat für die geschalteten Signale 
einen Widerstand von ca. 100 Ohm. Dadurch stimmt dann aber der gesamte 
Abschlusswiderstand (120 Ohm + Widerstand Mux) nicht mehr.

Wie kann ich so einen Multiplexer aufbauen, dass die Anpassung korrekt 
ist?
Bzw. wäre es besser, die Anpassung zwischen Multiplexer und Transceiver 
zu schalten?

Vielen Dank schon mal.
Gruß
Markus
Angehängte Dateien:
#4732621
Lesenswert?

Was soll ein Mux ?
RS485 ist ja genau deswegen Halbduplex, weil man verschiedene Sender und 
Empfaenger zusammenschliessen will. Es braucht keinen Mux, wenn sich 
alle Teilnehmer an das Protokoll halten.

Aha, es gibt mehrere Master, obwohl es nur einen geben duerft, dh ein 
starres Singlemaster System wurde auf Multimaster "erweitert" ohne das 
es dies merken sollte... Dann nimm Relais.
#4732673
Lesenswert?

Das Problem ist eben genau das, dass sich nicht alle Teilnehmer an ein 
Protokoll halten bzw. tolerant gegenüber anderen Protokollen sind.

Das habe ich leider nicht bedacht, dass mit dem Multiplexer die 
Isolation der Kanäle voneinander verloren geht.
Die Opto-MOS schaue ich mir gerne mal an. Danke für den Tip.
Gast #4732692
Lesenswert?

Moin,

das ist ein recht gefährliches Unterfangen, je nach uC. Da musst du das 
Verhalten des UART-Interface bzgl. RS485 genau kennen, ansonsten rennst 
du ev. in Timing-Schwierigkeiten, wenn du nicht zu einem genau 
definierten Zeitpunkt den Muxer umschaltest. Du kannst da natürlich über 
externe Interrupteingänge was frickeln.
Genauer: manche UART-Implementierungen signalisieren: Daten sind raus 
(aber sie sind noch im FIFO). D.h. der uC-Master ist eigentlich noch im 
Transfer, und du schaltest dann schon bereits den Muxer um -> Bumm :-)

Ansonsten ist das noch knackig, die Teilnehmer untereinander 
galvanisch zu trennen. Da brauchst du eigentlich fast zwingend für jeden 
Kanal DC/DC und Isolatoren sowieso, wenn die ganzen unterschiedlichen 
GNDs potentialfrei sein sollen. Eigentlich sollten die Teilnehmer 
jeweils die Trennung beinhalten. Klingt für mich nach hässlichem 
Workaround...

Der Abschlusswiderstand als solcher wäre sonst nicht kritisch, würde ich 
sagen. 100 Ohm seriell hast du bei einer langen Leitung schnell mal 
beisammen..
Gast #4732831
Lesenswert?

Markus E. schrieb:
> Das Problem ist eben genau das, dass sich nicht alle Teilnehmer an
> ein
> Protokoll halten bzw. tolerant gegenüber anderen Protokollen sind.
>
> Das habe ich leider nicht bedacht, dass mit dem Multiplexer die
> Isolation der Kanäle voneinander verloren geht.
> Die Opto-MOS schaue ich mir gerne mal an. Danke für den Tip.

Brauchst du denn überhaupt eine richtige Trennung der Kanäle oder ist 
deine Intention nur, dass die von einander nicht so viel mitkriegen 
sollen, also mehr Verhinderung von crosstalk als galvanische Trennung? 
Ersteres ist mit dem Analog Multiplexer meist ein geringes Problem.
Gast #4733102
Lesenswert?

Cyborg schrieb:
> Ein Differenzsignal-System kann man nicht muxen.
> Die Trennung von GND lässt das nicht zu

Das ist natürlich barer Unsinn - für den Empfänger müssen die Signale in 
einem bestimmten Spannungs-Bereich um GND des Empfängers liegen, näheres 
in der Norm bzw. im Datenblatt. Ein Multiplexer muss nur den gleichen 
Bereich abdecken wie der Empfänger.

Dass RS485 ohne jeden GND-Bezug funktioniert ist ein Märchen, das auch 
durch ständige Wiederholung nicht wahr wird. Das ist völlig anders als 
bei Ethernet, wo auf beiden Seiten ein Transformator sitzt.

Georg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren