mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 Loopback


Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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é

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Philip Siefke (psiefke)
Datum:

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

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Philip Siefke (psiefke)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

MfG

Autor: [Frank] (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: [Frank] (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: René (Gast)
Datum:

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

Autor: Frankman (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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-isolato...

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

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marcel Papst (phpmysqlfreak)
Datum:

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

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marcel Papst (phpmysqlfreak)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Beispiel wäre der MAX*232* - Hier ein Link dazu:

http://www.elektronik-magazin.de/page/der-pegelums...

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

Edit: Tippfehler beseitigt.

Autor: René (Gast)
Datum:

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

Autor: Marcel Papst (phpmysqlfreak)
Datum:

Bewertung
0 lesenswert
nicht 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.)

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: René (Gast)
Datum:

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

MfG
René

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.