Forum: Mikrocontroller und Digitale Elektronik RS232 Loopback


von René (Gast)


Lesenswert?

Hallo,

ich habe ein Problem und hoffe, dass ihr mir weiterhelfen könnt.

Undzwar möchte ich gerne RS232-Schnittstellen überprüfen ohne aufwändige 
HW anzuschließen. Mein bisheriger Lösungsansatz wäre, einen Loopback 
Stecker anzuschließen und dann mit Hilfe von Labview die einzelnen 
Signalleitungen zu überprüfen. Soweit auch kein Problem.
Was ich damit jedoch nicht nachgewiesn habe, ist dass auch die GND 
Leitung i.O. ist richtig? Wäre jetzt z.B. in dieser Leitung ein 
Kabelbruch auf dem Weg des COM-Ports com Rechner zur Schnittstelle, 
würde ich das nicht merken, da die Datenübertragung über den Loopback 
auch so funktioniert.

Welche Möglichkeiten hätte ich die GND Leitung ebenfalls zu überprüfen? 
Eine Variante an die ich gedacht habe, wäre z.B. Widerstände in dem 
Loopback Plug als Spannungsteiler einzulöten und diese so zu 
dimensionieren, dass ich bei möglichem Kabelbruch der GND-Leitung einen 
High-Pegel an einem der übrigen Signale (z.B. DTS) erhalte und, wenn GND 
ok ist entsprechend einen Low-Pegel. Ich hoffe ihr versteht, wie ich das 
meine.

Ich würde mich freuen, wenn euch dazu etwas einfällt oder ihr bereits 
ähnliche Probleme gelöst habt.

MfG

René

von Karl H. (kbuchegg)


Lesenswert?

Bau in deinen Loopback Stecker ein paar LED ein, die du nach GND 
verschaltest. Entweder die LED flackern, dann ist Masse da, oder sie 
flackern nicht.

(So hat man übrigens früher ganz unaufwändig RS232 getestet: 
Zwischenstecker mit LED. Die LED haben durch ihr Flackern angezeigt, ob 
auf der Leitung Datenverkehr ist. Bei falscher Auskreuzung zeigten das 
die LED zuverlässig an)

von René (Gast)


Lesenswert?

Hallo Karl Heinz,

erstmal vielen Dank für die schnelle Antwort.
Ja an diese Möglichkeit habe ich auch schon gedacht, aber dann wäre der 
Test ja über die optische Kontrolle. Ich habe vergessen zu erwähnen, 
dass ich diesen Test automatisieren möchte. Also, dass die Auswertung 
allein über Labview geschieht.

von Philip S. (psiefke)


Lesenswert?

Optokoppler LED seitig an TX und GND, das andere ende an RX?!
(nur mal so gebrainstormed...)

von René (Gast)


Lesenswert?

Hi Philip,

also so ganz ist mir das noch nicht verständlich. Davon mal abgesehen, 
dass man dann noch eine zusätzliche Platine benötigt oder? Kenne nur 
IC-Optokoppler..oder wie genau meinst du das?
Gibt es da nicht eine andere Lösung mit weniger Aufwand?
Danke für eure Hilfe!

von Achim M. (minifloat)


Lesenswert?

Dann löte eben den Optokoppler mit ein paar Drahtstückchen direkt an.
Außerdem: was ist so falsch an einer kleinen 
Streifenraster-/Lochraster-Platine? mfg mf
PS:
René schrieb:
> Gibt es da nicht eine andere Lösung mit weniger Aufwand?

Wieso LabView? Loopback-Test geht mit jedem Terminalprogramm. 
Nötigenfalls sogar mit einem kleinen Shell-Skript.

von Philip S. (psiefke)


Lesenswert?

Hallo René,

ich habe keine fertige Lösung für dich... Nur die Idee mit dem 
Optokoppler... Ohne GND wird die LED im Oprokoppler nicht leuchten.
Wie du den Optokoppler verschalten musst, solltest du relativ schnell 
herausfinden können. Vom Aufwand her würde ich rund 50ct und 10 minuten 
arbeit ansetzen...

von René (Gast)


Lesenswert?

@minifloat

die Umsetzung über Labview, da der RS232-Test nur einer von mehreren 
ist, und die Testumgebung komplett mit Labview umgesetzt wurde

@Philip

ich muss leider gestehen, dass ich bisher noch nicht mit optokopplern 
gearbeitet habe, deshalb die bitte an dich, könntest du mir helfen, wie 
ich den mit den pins der rs232-schnittstelle verbinden muss?
Der Optokoppler hat ja 2 Ein- und 2 Ausgänge. So wie ich das verstanden 
habe, würde ich dann z.B. von Tx an Optokoppler (durch Diode) und weiter 
zu GND. Ist jetzt alles ok, leuchtet die Diode und der Transistor 
schließt den 2ten Kreis, mit dem ich dann die Labview-Auswertung machen 
könnte, richtig?
Ich frag mich jetzt, über welche RS232-Pins ich den Transistorkreis 
verbinden soll?  Die anderen Pins müssen ja im Loopback-Test auch 
berücksichtigt werden, so wie auch Tx (TX an RX dann parallel zu der TX 
an GND Verbindung?)
Ich hoffe ich habe mich verständlich genug ausgedrückt:)
Vielen Dank für Deine Hilfe

von René (Gast)


Lesenswert?

Hi,

ich bin mit dem Problem noch nicht weitergekommen.
Könntet ihr mir bitte helfen?

MfG

von [Frank] (Gast)


Lesenswert?

Schalte doch im Prüfstecker von einem Steuersignal-Ausgang einen 
Widerstand nach RI und lege RI an GND. Dann schalte den Ausgang auf 
+12V, wenn GND unterbrochen ist wird RI aktiv, ansonsten nicht.

Frank

von René (Gast)


Lesenswert?

Hallo Frank,

ja das wäre noch einfacher. Aber wie überprüfe ich dann die 
Funktionalität von RI? Wie müsste der Widerstand dimensioniert sein?

MfG

von René (Gast)


Lesenswert?

Hallo,

also mir erschließt sich die Lösung mit nur einem Widerstand nicht.

z.B.:
DTR---Widerstand---RI---GND

Warum sollte RI nicht aktiv sein, wenn GND nicht verbunden ist?

MfG

von [Frank] (Gast)


Lesenswert?

@René
>Warum sollte RI nicht aktiv sein, wenn GND nicht verbunden ist?

Das habe ich auch nicht geschrieben, sondern

Dann schalte den Ausgang auf +12V, wenn GND unterbrochen ist wird RI 
aktiv, ansonsten nicht.

Wenn die Masseverbindung fehlt, folgt RI dem DTR Signal.

Der Widerstandswert ist nicht so kritsch (einige KOhm), er dient nur als 
Schutz für den Ausgang.

Andererseits kann man mit einem Loopbackstecker nicht wirklich 
Kabelfehler aufspüren, denn man geht immer von einer korrekten 
Verkabelung aus. Eine Verbindung RX-TX im Prüfstecker funktionert nur 
dann, wenn das Kabel richtig angeschlossen wurde. Selbst dann kann man 
im Fehlerfalle (z.B. RX ist mit GND kurzgeschlossen) nicht sagen ob TX 
unterbrochen ist, ob RX unterbrochen ist oder ob RX nach Masse 
kurzgeschlossen ist.

Frank

von René (Gast)


Lesenswert?

Also irgendwie stehe ich gerade mächtig auf dem Schlauch..
Welchen Einfluss hat denn die GND-Verbindung auf die Spannung die an RI 
anliegt?
Wenn sich der Widerstand zwischen DTR und RI befindet, fällt doch immer 
die gleiche Spannung über ihn ab?
Ich merke schon, dass ich da einen Denkfehler habe..

MfG

von René (Gast)


Lesenswert?

Ich bitte nochmals um Hilfe, da ich das Problem nicht in den Griff 
bekomme.
Danke

von Frankman (Gast)


Lesenswert?

Dann wirst Du nicht drumherumkommen, Dein Vorhaben GENAUER zu 
beschreiben.

z.B. brauchst du für deine Kommunikation nur RXD, TXD und GND, oder 
möchtest du auch noch die anderen Schnittstellen-Leitungen testen.
Möchtest Du nur eine Gut-Schlecht-Anzeige, oder willst du auch wissen, 
welche Leitung welchen Defekt hat( also Short, OPEN, vertauscht mit.... 
bla bla...)

Wie die Vorschreiber schon bemerkten, könntest du einen Optokoppler 
verwenden. Oder du nimmst so etwas:
http://www.analog.com/en/interface/digital-isolators/products/index.html#Standard_Isolators

Die Betriebsspannung für den ADUM kannst du mit hilfe einer Diode, einem 
Widerstand und eine Z-Diode von der TXD-Leitung abzweigen. Den Koppler 
selbst schaltest du zwischen TXD und RXD. Wenn also die Masse hin ist, 
funktioniert der Loop-Back-Test dann nicht mehr....

von René (Gast)


Lesenswert?

Hallo Frank,

ich möchte sowohl den Datentransfer (TXD an RXD), als auch die 
HW-Handshakes prüfen (DTR an DSR und RTS an CTS). DCD und RI wollte ich 
mit DTR koppeln, sodass ich sehe, dass DSR, DCD und RI ok sind, sobald 
ich DTR setze und, dass CTS ok ist, sobald ich RTS setze.
Dann sende ich über Labview einen String und prüfe somit TXD/RXD.
Und jetzt fehlt mir halt noch die GND-Leitung zu überprüfen. Wie gesagt, 
meine erste Idee war, einen Spannungsteiler:

DTR---Widerstand1---RI---Widerstand2---GND

Und diese so dimensionieren, dass, wenn GND defekt ist, die Spannung an 
RI anliegt (RI High gesetzt wird) und wenn GND ok ist, RI low wird. 
Natürlich müsste ich in der SW die Logik zur Auswertung invertieren.

Ich hoffe, es jetzt deutlicher formuliert zu haben.
Danke für Deine Hilfe.

von Thomas E. (thomase)


Lesenswert?

René schrieb:
> DTR---Widerstand1---RI---Widerstand2---GND

RS232 ist definiert mit -3 bis -15V und +3V bis +15V. Mit deiner 
Groundschaltung erreichst du nur einen undefinierten Zustand.

Ich würde einen Max nehmen und die Verbindungen auf der TTL-Seite 
herstellen. Das funktioniert ohne GND nicht!

mfg.

von René (Gast)


Lesenswert?

Ich hoffe du meinst einen Mux, ansonsten ist mir das nicht klar.
Ich wollte allerding versuchen, ohne zusätzliche Platine auszukommen und 
alles in einen Stecker integrieren, es sei denn es ist nicht anders 
umsetzbar.

Wie meinst du das: "Das funktioniert ohne GND nicht"?
Die gesamte Loopback-Funktionalität?
Wie müsste meine Schaltung aussehen, um nich in den undefinierten 
Zustand zu gelangen. (Die Zustände können ggf. durch die SW "bereinigt" 
werden, indem ich den undefinierten Zustand als low interpretier)

Danke

von M. P. (phpmysqlfreak)


Lesenswert?

Nein, er meinte einen MAX - ein Pegelwandler-IC, der ohne GND nicht 
funktioniert. Damit auch diese Funktionalität getestet werden.

von René (Gast)


Lesenswert?

Ok, aber das wäre ja auch eine Lösung mit zusätzlicher Platine. Wenn man 
den IC direkt verbinden könnte, wäre die Lösung evtl auch noch denkbar. 
Wie wäre dann die entsprechende Pinbelegung beispielhaft?
Sorry, das muss echt nerven, aber ich komme leider nicht aus der 
HW-Richtung.

von M. P. (phpmysqlfreak)


Lesenswert?

Ein Beispiel wäre der MAX*232* - Hier ein Link dazu:

http://www.elektronik-magazin.de/page/der-pegelumsetzer-max232-15

Ein entsprechendes genaueres Datenblatt liegt sicher auch in den weiten 
des WWW. ;)

Edit: Tippfehler beseitigt.

von René (Gast)


Lesenswert?

dafür ist aber eine (kleine) Platine notwendig oder? Zu dem IC kommen ja 
noch Elkos und VCC.

von M. P. (phpmysqlfreak)


Lesenswert?

Das ist korrekt.

Allerdings wird eine komplette Prüfung nur mit Drähten in einem Stecker 
nicht in dem Maße realisierbar sein. (Zumindest nicht nach meinem 
Kenntnisstand, belehrt mich eines besseren.)

von René (Gast)


Lesenswert?

OK, ich denk ich versuche es mit der folgender Lösung..
"Optokoppler LED seitig an TX und GND, das andere ende an RX"

Kann mir jemand sagen, wie ich den Optokoppler verschalten muss?
Also welche Pins miteinander verbinden? Den Loopback-Stecker ganz 
"normal" mit den "Gegenspielern"..und dann die LED in Richtung TX->GND 
und auf Transistorseite von TX->RX..mehr müsste nicht angelötet werden?

Danke für eure Hilfe

von René (Gast)


Lesenswert?

Könnte mir bitte nochmals jemand helfen und auf meinen letzten Post 
antworten? So langsam bin ich am verzweifeln..
Danke

MfG
René

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.