Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » RS232 - Versuch einer Entmystifizierung » Themenansicht

Autor Thread - Seiten: -1-
000
18.01.2014, 19:56 Uhr
Micha

Avatar von Micha

Die serielle Schnittstelle - obwohl längst totgesagt - lebt im Hobbybereich und in der Industrie weiter. Im Web gibts jede Menge Informationen zu dem Thema. Trotzdem ist es oft ein Abenteuer, für eine konkrete Verbindung das passende serielle Kabel zu basteln. Früher hab ich manches Mal obskure Pläne für eine passende(?) Beschaltung irgendwo ausgegraben, zusammenbebastelt, ausprobiert. Ohne so recht zu verstehen wieso weshalb warum. Manchmal hat es dann auf Anhieb funktioniert und ich war glücklich. Und manchmal eben nicht. Früher (vor dem Internet) war das Nichtfunktionieren dann meistens das Aus. Wenn man das Prinzip nicht wirklich versteht und nicht die Kenntnisse und die Messtechnik hat um das Problem einzukreisen - dann wirds eben nix.

In neueren Zeiten - seit meinem Einstieg in die Welt der Mikrocontroller - hab ich RS232 zunächst sehr unkompliziert erlebt. Bei diesen Käfern besteht eine bidirektionale serielle Schnittstelle meist nur aus den minimal erforderlichen Leitungen

GND - Signalbezugsmasse
TxD - Transmit Data, die Sendeleitung
RxD - Receive Data, die Empfangsleitung

Ich glaub hier ist DER Anfängerfehler dass man vergisst, GND zwischen beiden Teilnehmern zu verbinden. Ansonsten müssen nur TxD und RxD zwischen beiden Teilnehmern überkreuzt verbunden werden - ist eigentlich offensichtlich und logisch? Ebenso ist es trivial dass beide Teilnehmer die gleichen Übertragungsparameter einstellen müssen, damit die Verbindung funktioniert. Mit Mikrocontrollersystemen und seriellen Leitungen hab ich praktisch nie Probleme erlebt. Die Systeme sind meistens so flott, dass Übertragungen selbst bis zu 115200 Baud stabil funktionieren ohne irgendwie rumzuzicken. Will man nur in einer Richtung Daten übertragen, braucht es entsprechend sogar nur zwei Drähte. Komischerweise funktionieren solche Verbindungen sogar manchmal (zumindest zeitweise) wenn man vergessen hat GND der beiden Teilnehmer zu verdrahten...

Ganz anders sieht es oft aus, wenn man alte Computer per serieller Leitung verbinden möchte. Diese System sind langsam, haben Besonderheiten in Form der verwendeten Peripheriebausteine, der Firmware, der konkreten Anwendersoftware. Die Pinbelegungen der verschiedenen Stecker findet man im Web, ebenso Signalbeschreibungen. Aber das Gesamtbild, wie ein Kabel für eine konkrete Anwendung beschaltet werden müsste, bleibt oft nebulös. Mir war die Problematik letztes Jahr zum ersten Mal mit einem Z80 System untergekommen. Minimale Dreileiterverbindung, wie ich sie von weiter oben kannte. Eigentlich alles fein und schick aber das Ergebnis: Nix! Nothing! Nitschewo! Bis ich mehr zufällig herausbekam dass die SIO des Z80 Systems nichts sendet, bevor deren /CTS Signaleingang nicht auf Masse gezogen wird. Also war an der Stelle Schluss mit der minimalen Beschaltung. Ist sicher auch eine Glaubensfrage, ob so ein Problem im "Hinterland" des Computers per Pull-Down Widerstand gelöst oder unbehandelt direkt zur seriellen Schnittstelle durchgereicht wird.

Die beiden Handshake-Leitungen, die für die laufende Übertragung von Daten zuständing sind:

RTS - Request to Send, Ausgang, signalisiert dem Partner "ich bin bereit zum Datenempfang"
CTS - Clear to Send, Eingang, Signal dass der Partner bereit zum Empfang von Daten ist.

Entweder werden diese Signale über Kreuz verbunden um echte Signale zu übertragen, oder am jeweiligen Ende gebrückt, um passende Signale zu simulieren. Der zweite Fall ist eine Notlösung - wenn wie oben erwähnt z.B. die SIO ein entsprechend definiertes /CTS Signal benötigt, der Kommunikationspartner dieses aber nicht bereitstellt - oder wenn man ganz sicher ist das niemals keine Timing-Probleme nicht zu erwarten sind ;-)

Die restlichen drei hier zu besprechenden Signale: DSR, DTR, DCD stammen *eigentlich* aus der Welt der Computer-Modem Verbindung. Ursprünglich waren diese Signale so gedacht:
Der Computer sendet das Signal DTR zum Modem um abzufragen, ob das Gerät bereit ist. Wenn vom Modem DSR zurückkommt (eigentlich nur das im Einschaltzustand durchgeschleifte DTR) ist das Modem bereit.
Zusätzlich gibt es vom Modem noch das Signal DCD aka "Carrier Detect" zum Computer. Das sagt dem Computer, dass die Datenleitung vom Modem in die große weite Welt offen ist.
Bei Computer-zu-Computer Verbindungen (Nullmodemkabel...) haben die Signale DSR, DTR, DCD nur noch bedingt einen Sinn. Die einfachste Lösung besteht darin, am jeweiligen Ende den Ausgang DTR mit den beiden Eingängen DSR und DCD zu brücken. Dann ist im Zweifelsfall immer alles fein und in Ordnung. Die etwas seriösere Lösung besteht darin, DTR und DSR der Partner über Kreuz zu verbinden und am jeweiligen Ende DTR mit DCD zu brücken.

Leider wird die hier mühsehlig aufgedröselte Logik komplett über den Haufen geworfen, wenn Hardwarehersteller wie Epson bei ihren seriellen Druckern die DSR/DTR Leitungen für das Ablaufprotokoll missbrauchen oder wenn ein Terminalprogramm für den PC1715 ähnliches tut. Die serielle Schnittstelle bleibt also im konkreten Fall ein Minenfeld. Ich hab heute mal angefangen einen schon ewig beabsichtigten Plan umzusetzen, nämlich ein Steckerbrett in eine voll beschaltete serielle Leitung zu setzten. Hat leider so wie auf dem Foto zu sehen den Nachteil dass die Steckkontakte nicht zug-entlastet sind. Vielleicht hat ja jemand hier schon mal was besseres erfunden?

Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
19.01.2014, 07:21 Uhr
karsten
Default Group and Edit
Avatar von karsten

Solche Steckbretter gibt / gab es fertig für SUB-D-25, sogar mit LED auf jeder Seite, glaube ich. Müsste schauen, ob ich das auf Arbeit noch finde. Habe ich früher für die Leitungen der Laborautomaten gebraucht.
--
1. Grundgesetz der Messtechnik? Wer misst misst Mist!
(fast) alle DDR-Schaltkreise und viele Transistoren
Elektronikarchäologie, MC80, K1520

Dieser Beitrag wurde am 19.01.2014 um 07:21 Uhr von karsten editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
19.01.2014, 10:34 Uhr
Micha

Avatar von Micha

ich hatte das Ding u.A. auch deshalb ins Auge gefasst um ggf. mit dem Oszi im laufenden Betrieb dran messen zu können.
Das mit den Leuchtidioten ist ja noch besser - ich nehm an die werden mit nem geeigneten Vorwiderstand vom jeweiligen Signal auf GND gelegt? Wieviel mA darf man (ca.) für diesen Zweck ruhigen Gewissens aus den Signalleitungen ziehen, ohne irgendwas zu beschädigen?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
19.01.2014, 11:17 Uhr
robotics




Zitat:
Micha schrieb
ich hatte das Ding u.A. auch deshalb ins Auge gefasst um ggf. mit dem Oszi im laufenden Betrieb dran messen zu können.
Das mit den Leuchtidioten ist ja noch besser - ich nehm an die werden mit nem geeigneten Vorwiderstand vom jeweiligen Signal auf GND gelegt? Wieviel mA darf man (ca.) für diesen Zweck ruhigen Gewissens aus den Signalleitungen ziehen, ohne irgendwas zu beschädigen?

beim empfänger müssen mindestens unter -3 bzw. über + 3V angekommen.
alte techniker haben immer ne led in der tasche und prüfen damit ..is halt in jeder brieftasche zu verstecken. ein Oszi nicht.signal gegen den gnd. oder bei rs422 zwischen tx+/tx- oder rx+/rx-
wenn es richtig gut soll , schaltung mit optokoppler .

weil du mal gefragt hast , manche ohne gnd.. wenn die nicht galvanisch getrennt sind, haben die eine gemeinsame masse und somit bezugspotential. meisetns irgendwie über gehäuse(z.B masse liegt auf gehäuse und beide an gleicher erde oder über schirm verbunden).
--
It's not a bug ! It's a feature!

Dieser Beitrag wurde am 19.01.2014 um 11:29 Uhr von robotics editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
19.01.2014, 12:38 Uhr
michael jones



So ein Brett auf Lochraster tuts bei mir schon über zwanzig Jahre, nicht schön, ist halt ein praktisches Werkzeug.


--
Es gibt Wichtigeres im Leben als fortwährend dessen Geschwindigkeit zu erhöhen (Gandhi)

Der Kapitalismus hat nicht gesiegt - er ist nur übrig geblieben...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
19.01.2014, 17:16 Uhr
Mario Blunk

Avatar von Mario Blunk

Das Thema RS232 hat mich wochenlang beschäftigt, als ich die Z80 SIO programmieren wollte/mußte. Ich dachte lange, daß ich mich darum drücken könnte, aber zum Programmieren einer SIO im allgemeinen muß man durch das dunkle Tal der RS232-Abgründe:

http://www.train-z.de/train-z/doc/howto_program_the_Z80_periphery.pdf

Die Anleitungen in Büchern (ost wie west), deutsch oder englisch gehen selten in die Details.
Auch geben Verkäufer von Null-Modem-Kabeln selten die innere Beschaltung an: gebrückt, vollbeschaltet oder Zwischenlösungen.

Wenn die Verbindung ohne GND geht, liegts vermutl. daran, daß beide Systeme per Schutzleiter halbwegs geleiches Massepotential haben.
--
Mein Chef ist ein jüdischer Zimmermann.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
19.01.2014, 19:52 Uhr
holm

Avatar von holm

Neigt Ihr dazu Alles etwas zu verkomplizieren oder was habt Ihr gegen das gängige Handwerkzeug zu diesem Zweck?



Dazu gehören noch Adapter von 25 auf 9 Polig und zurück (in der seltenen vollständigen Ausführung) und natürlich noch 3 andere Genderchanger..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
19.01.2014, 20:10 Uhr
Micha

Avatar von Micha

Gender Changer hab'ch inzwischen ooch schon und so ne 25 <-> 9 Adapter hab ich mir selber gelötet. Aber wo kriegt man das andere coole Zeugs zu kaufen, also diesen Stecker mit den LEDs und den mit den Drahtstöpseln?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
19.01.2014, 20:30 Uhr
holm

Avatar von holm

Also Adapter habe ich letztens Bei Unrad recht vollständig gesehen, aber dieses Patchfeld und die LEDs sind mir schon lange nicht mehr über den Weg gelaufen. Ich habe das Zeug seit spätestens Anfang der 90er ...

Reichelt hat was, aber da ist Nacharbeit erforderlich:
http://www.reichelt.de/COM-972/3/index.html?&ACTION=3&LA=446&ARTICLE=6756&artnr=COM+972&SEARCH=RS232+tester

Ha, und hier:

http://www.reichelt.de/COM-934/3/index.html?&ACTION=3&LA=446&ARTICLE=6747&artnr=COM+934&SEARCH=RS232+tester

Doppelgehäuse, in denen man eigene Adapter unterbringen kann, gibts auch von 9 au f9 und 9 auf 25 oder 25 auf 25.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
19.01.2014, 20:51 Uhr
robotics



@holm , ich denke auch 90-er oder früher. cooles teil, das ding ist unkaputtbar!
--
It's not a bug ! It's a feature!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek