Forum: Mikrocontroller und Digitale Elektronik RS232 und RS485 multiplexen


von Luc (Gast)


Lesenswert?

Hallo allerseits,

Ach, immer macht alles Schwierigkeiten.

Also ich habe am Mikrocontroller eine serielle Schnittstelle, und die 
Daten sollen konfigurierbar entweder als RS232 oder als RS485 an die 
übliche D-Sub-Buchse da hinten weitergeführt werden.

Ich kann natürlich einfach die Datenleitungen auf einen 232- und einen 
485-Pegelwandler (bzw. Treiber) legen und dann nur den einen benötigten 
Wandler an die Buchse weiterschalten, z.B. über Jumper. Damit sind die 
Leitungen dann auch galvanisch getrennt und alles ist fein.

Nun würde ich das ganze aber über Software konfigurierbar machen wollen, 
und da wird's dann blöd. Selbst wenn die Datenleitungen in dem gerade 
nicht benötigten Wandler abgeschaltet werden können, finde ich es nicht 
so prickelnd, + oder -10V auf den abgeschalteten Pin im 485-Treiber zu 
legen, wenn es auf 232 konfiguriert ist.

Oder daß bei der einen Konfiguration noch zusätzliche Leitungen aus der 
anderen Konfiguration vorhanden sind, also daß z.B. bei 
232-Konfiguration auch die 5V-Spannungsversorgung der 485-Konfig an der 
Buchse anliegt.

Analog zu den Jumpern könnte ich das mit Relais umschalten, aber in 
Entzückung bringt mich diese Idee auch nicht. Gibt es vielleicht so eine 
Art elektronische Relais als Ersatz, also bidirektionale Treiber, die 
ungewöhnlich hohe und negative Spannungen (eben RS232) durchschalten?

Oder ist dieses Problem so alltäglich, daß es dafür schon etwas gibt, 
das mir aber bisher verborgen geblieben ist?

Es wäre nett, wenn sich jemand meiner erbarmen könnte... :-)

von hauspapa (Gast)


Lesenswert?

evtl. nicht Ideal, aber Du könntest Dir mal bei Maxim die Analog 
Switches anschauen.

viel Erfolg
Hauspapa

von HalloGalli (Gast)


Lesenswert?

SP336 ist dein Freund.

von Ge E. (re_n)


Lesenswert?

nehme doch einfach nen CMOS Multiplexer. Den kansnt du einfach per BCD 
ansteuern und gut is

von Dieter W. (dds5)


Lesenswert?

Es gibt von LT den LTC1387, der sich zwischen RS232 und RS485 umschalten 
lassen - ist aber nicht ganz billig.

Dallas/Maxim hat auch was, die Typbezeichnungen hab ich aber grad nicht 
zur Hand.

von Luc (Gast)


Lesenswert?

Oh mann, ich habe da etwas durcheinandergebracht, also war etwas 
unpräzise. Ich will eigentlich RS232 und Profibus multiplexen, wobei 
Profibus ja auf RS485 basiert.

Also das Problem nochmal verdeutlicht:

Bei RS232 liegen die Datenleitungen auf Pins 2 und 3, bei Profibus auf 3 
und 8 (halbduplex), außerdem liegt auf Pin 6 5V als Stromversorgung.

Wenn ich jetzt einen der von euch vorgeschlagenen umschaltbaren Treiber 
verwende, muß ich z.B. die RS485-Datenleitungen an Pins 3 und 8 legen. 
Schalte ich jetzt auf 232 um, sollen die Datenleitungen und Pins 2 und 3 
liegen. Aber Pin 8 ist weiterhin mit dem Treiber verbunden und liegt nun 
auf der CTS-Leitung.

Ebenso die Stromversorgung von 5V auf Pin 6, bei Verwendung als RS232 
hat man "plötzlich" einen 5V-Pegel auf der DSR-Leitung. Deshalb wollte 
ich die Leitungen eben trennen bzw. gezielt umschalten.

> evtl. nicht Ideal, aber Du könntest Dir mal bei Maxim die Analog
> Switches anschauen.

Ich bin mal ein paar Datenblätter durchgegangen, aber anscheinend dürfen 
die analogen Signale, die da zu schalten sind, auch nur zwischen 0V und 
Versorgungsspannung der Bausteine liegen. Damit fallen die RS232-Signale 
schon mal weg.

Ich fürchte, eine schöne Lösung ohne Relais ist nicht so recht machbar. 
Ich werde mir dann mal etwas anderes überlegen.

Aber danke für eure Bemühungen!

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Luc schrieb:
> Oh mann, ich habe da etwas durcheinandergebracht, also war etwas
> unpräzise. Ich will eigentlich RS232 und Profibus multiplexen, wobei
> Profibus ja auf RS485 basiert.

Warum willst Du denn alles auf der externen Seite switchen, da, wo die 
Pegel derart unterschiedlich sind?

Machs doch einfach zwischen µC und den RS485/RS232 Treibern. Die 
externen Schnittstellen sollten dabei natürlich separat ausgeführt 
werden.

Den UART-Ausgang des µCs (TX) kannst Du einfach auf beide Treiber geben. 
Du sendest also über beide gleichzeitig. Das stört nicht, da Du ja 
jeweils entweder den Bus oder RS232 anlegst.

Bleibt nur noch der Eingang des µCs. Den kannst Du mit 4 simplen 
NAND-Gattern multiplexen. Dafür reicht ein 74HCT00.

von Georg (Gast)


Lesenswert?

Frank M. schrieb:
> Bleibt nur noch der Eingang des µCs. Den kannst Du mit 4 simplen
> NAND-Gattern multiplexen.

Solange man immer nur eine der Schnittstellen anschliesst, kann man sich 
auch die Umschaltung sparen - man verodert einfach die aktiven Pegel, 
von der jeweils unbenutzten Schnittstelle kommt ja nix.

Georg

von Luc (Gast)


Lesenswert?

> Warum willst Du denn alles auf der externen Seite switchen, da, wo die
> Pegel derart unterschiedlich sind?

Weil nur Platz für eine Buchse ist, und nach Möglichkeit solche und 
solche Geräte angeschlossen werden können sollen.

Aber ich stimme zu: Im Grunde genommen ist nur die Mechanik - eben die 
Buchse - bei beiden Schnittstellen gleich, von daher bin ich auch nicht 
böse, wenn man das eine blöde Idee nennt.

> Machs doch einfach zwischen µC und den RS485/RS232 Treibern. Die
> externen Schnittstellen sollten dabei natürlich separat ausgeführt
> werden.

So wäre es natürlich möglich, wenn Platz dafür da wäre. Allerdings denke 
ich da auch an Leute, die dann vielleicht doch an beide Ports etwas 
gleichzeitig dranstöpseln..

von uwe (Gast)


Lesenswert?

mit ein paar kniffen sollte der gehen:
http://www.onsemi.com/pub_link/Collateral/MC14016B-D.PDF

von uwe (Gast)


Lesenswert?

Die RS232 Pegel mußt du halt mit Shottky Dioden auf VDD+0.3V un d 
VSS-0.3V begrenzen und als VSS -5V nehmen. Digital könnte man dann mit 
Optokopplern die Pegel deiner Digitalen Steuersignale auf die 0V für 
High und -5V für Low bringen.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Georg schrieb:
> Solange man immer nur eine der Schnittstellen anschliesst, kann man sich
> auch die Umschaltung sparen - man verodert einfach die aktiven Pegel,
> von der jeweils unbenutzten Schnittstelle kommt ja nix.

Korrekt. Und wenn es derselbe Stecker für RS232 und RS485 sein soll, 
kann man dort die Zuleitungen ja jumpern, um auszuschließen, dass ein 
RS232-Pegel irgendwas am Profibus töten könnte.

: Bearbeitet durch Moderator
von GB (Gast)


Lesenswert?

Vishay DG333AL

Da kannst Du, da die Logikseite eine eigene Versorgung hat, die 
+-Versorgung des Analogschalters aus der Ladungspumpe des 
RS232-Bausteins nehmen (max. 1µA Stromaufnahme auf V+ und V-)

von Georg (Gast)


Lesenswert?

Luc schrieb:
> Bei RS232 liegen die Datenleitungen auf Pins 2 und 3, bei Profibus auf 3
> und 8 (halbduplex), außerdem liegt auf Pin 6 5V als Stromversorgung.

Eigentlich geht das sowieso nicht mit einem Stecker, denn Profibus 
verwendet einen weiblichen, RS232C nach IBM aber einen männlichen Sub-D 
9polig.

Georg

von Luc (Gast)


Lesenswert?

> Die RS232 Pegel mußt du halt mit Shottky Dioden auf VDD+0.3V un d
> VSS-0.3V begrenzen und als VSS -5V nehmen. Digital könnte man dann mit
> Optokopplern die Pegel deiner Digitalen Steuersignale auf die 0V für
> High und -5V für Low bringen.

Hm ja, allerdings fehlen mir -5V (die könnte ich wie schon vorgeschlagen 
natürlich beim RS232-Wandler klauen) und das ganze wird irgendwie schon 
wieder zu aufwendig. Das wollte ich mir eigentlich ersparen.

> Vishay DG333AL
>
> Da kannst Du, da die Logikseite eine eigene Versorgung hat, die
> +-Versorgung des Analogschalters aus der Ladungspumpe des
> RS232-Bausteins nehmen

Ja, gute Idee.

Aber nachdem ich mir das nochmal durch den Kopf gehen ließ, werde ich 
das jetzt aber doch lassen. Wenn beispielsweise ein Profibusgerät 
dranhängt und dem per Software die Schnittstelle darunter auf RS232 
umgeschaltet wird, ist das etwas unschön.

Mir ging es eigentlich darum, daß man das Gerät bei Bedarf in so eine 
Art Konfigurationsmodus oder Wartungsmodus schalten kann, in dem man 
sich per RS232 verbindet, auch wenn das Gerät im Normalbetrieb Profibus 
spricht, und zwar ohne daß man das Gerät aufschrauben muß, um 
irgendwelche Jumper zu setzen.

Ich werde das jetzt so machen, daß man das Gerät nun doch rein 
mechanisch per Jumper nach RS232 oder Profibus konfiguriert. Außerdem 
spendiere ich noch einen weiteren reinen RS232-Konfigurierungsanschluß 
in RJ45-Ausführung oder so. Dafür ist gerade noch Platz vorhanden. Der 
wird dann auf eine noch unbenutzte serielle Leitung des Controllers 
gelegt.

> Und wenn es derselbe Stecker für RS232 und RS485 sein soll,
> kann man dort die Zuleitungen ja jumpern, um auszuschließen, dass ein
> RS232-Pegel irgendwas am Profibus töten könnte.

Jumper wollte ich ja ursprünglich vermeiden...

> Eigentlich geht das sowieso nicht mit einem Stecker, denn Profibus
> verwendet einen weiblichen, RS232C nach IBM aber einen männlichen Sub-D
> 9polig.

Mja, das ist so halb richtig, da habe ich auch schon dran gedacht. Man 
kann das Gerät auch als Endgerät ansehen, zumindest wenn es gewartet 
wird - dann schließt man ja einen "echten Rechner" an und das Gerät 
fungiert so wie beispielsweise ein Modem, welches ja auch eine weibliche 
Buchse hat. Im Normalbetrieb dagegen wäre die männliche Variante die 
korrekte...

Also ich danke nochmal für die hilfreichen Antworten, auch wenn ich es 
jetzt doch nicht so umsetze. Zumindest weiß ich jetzt Bescheid, wenn mir 
mal wieder so etwas über den Weg läuft!

von Bernd K. (prof7bit)


Lesenswert?

Luc schrieb:
> Mir ging es eigentlich darum, daß man das Gerät bei Bedarf in so eine
> Art Konfigurationsmodus oder Wartungsmodus schalten kann, in dem man
> sich per RS232 verbindet,

Führ doch einfach an einem gesonderten Stecker (wenn noch Platz ist für 
ne kleine 3-Polige Steckverbindung) Ground, TX und RX mit TTL-Pegeln 
raus, da kannst Du dann direkt einen von diesen günstigen 
USB/Seriell-Adapern anschließen. Eventuell könntest Du sogar Halbduplex 
fahren mit nur einer Leitung (und Ground), dann wäre Dein 
Wartungsstecker nur noch zweipolig.

Alternative 2: Was hindert Dich daran den Konfigurationsmodus einfach 
per RS485 über den bereits vorhandenen RS485-Anschluss durchzuführen? Du 
könntest es dann sogar am Bus angeschlossen lassen und aus der Ferne 
konfigurieren, das benötigt am wenigsten zusätzliche Bauteile (Kosten).

: Bearbeitet durch User
von Luc (Gast)


Lesenswert?

> Führ doch einfach an einem gesonderten Stecker (wenn noch Platz ist für
> ne kleine 3-Polige Steckverbindung) Ground, TX und RX mit TTL-Pegeln
> raus, da kannst Du dann direkt einen von diesen günstigen
> USB/Seriell-Adapern anschließen.

So will ich es jetzt ja machen, allerdings mit einer RJ45-Buchse, die 
paßt gerade noch hin. Da gibt es ja Adapter auf Sub-D fertig zu kaufen.

> Alternative 2: Was hindert Dich daran den Konfigurationsmodus einfach
> per RS485 über den bereits vorhandenen RS485-Anschluss durchzuführen?

... daß dieser Anschluß eben auch auf RS232 konfiguriert sein kann.

Ich möchte die Möglichkeit geben, daß man später recht einfach aufs 
Gerät kommt, wenn man mit einem Laptop davorsteht. Und da ist RS485 
schon eine gewisse Hürde, so ein Adapterkabel von RJ45 auf Sub-D ist 
dann einfacher besorgt.

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.