Hallo!
ich verwende für eine RS232 Kommunikation 4 Einzellitzen als Leitung
(also kein Kabel mit 4 Leitungen, sondern einfach 4 Ennzellitzen AWG26)
- d.h. ohne Schirmung, ohne Verdrillung, etc...
Litze 1: GND
Litze 2: Serial RX
Litze 3: Serial TX
Litze 4: Vcc +5V
Die Litzen sind genau 1m lang, das ganze funktioniert auch ganz gut. Ist
in einem Gerät verbaut.
Manchmal, in ganz seltenen Fällen kommt ein Communication Timeout der
seriellen Schnittstelle. Das ist sehr selten udn ich weiß cniht, woran
das liegen kann.
Ist es grundsätzlich eine schlechte Idee, hier nur Einzellitzen zu
verwenden? Wäre ein geschirmtes Kabel bzw verdrillte Litzen hier besser?
Möglicherweise werden hier irgendwo Störungen eingefangen, 1m ist ja
auch nicht mehr so wenig...?
Danke!
Werz schrieb:> ich verwende für eine RS232
Sicher dass es R232 ist und nicht TTL?
Also sind RS232 Leitungstreiber verbaut?
Was für eine Datenrate?
Werz schrieb:> Manchmal, in ganz seltenen Fällen kommt ein Communication Timeout der> seriellen Schnittstelle. Das ist sehr selten udn ich weiß cniht, woran> das liegen kann.
Na dann hänge doch Mal ein Oszi dran mit passendem Trigger. Vllt kackt
auch einfach einer deiner Teilnehmer zwischendurch ab.
Im einfachsten Fall also Mal ein Pin Toggle in die Main der Programme,
Trigger Kommunikationsausfall und Mal alle 3/5 Spuren aufzeichnen.
Werz schrieb:> Wäre ein geschirmtes Kabel
Das wäre ein erster Schritt.
Werz schrieb:> bzw verdrillte Litzen hier besser?
Mit was willst du denn verdrillen? Ist ja keine differentielle
Übertragung. Flachbandkabel macht man ab und zu noch. Wobei jede 2. Ader
belegt wird. Die anderen auf GND.
Werz schrieb:> 1m ist ja auch nicht mehr so wenig...?
Kommt auf die Übertragungsrate an. Im Industrieumfeld wird auch mit
1MBaud auf >100m übertragen. Geht schon. Da ist es aber immer
differentiell.
Werz schrieb:> einfach 4 Ennzellitzen AWG26)> - d.h. ohne Schirmung, ohne Verdrillung, etc...
Nicht schön, aber auch nicht kriegsentscheidend.
RS232 ist sehr, sehr robust.
Klingt eher nach fehlerhafter Software.
Wirklich RS232 oder doch nur TTL-Pegel? (wobei auch das bei 1m noch
funktionieren solte)
Hallo,
danke schon mal für eure Antworten!
Ja, es ist wirklich RS232 - Baudrate ist 9600bps.
Hm ja wie gesagt, dieser Fehler kommt wirklich sehr selten...
Haben beide Geräte das gleiche GND Potential?
Trenne mal die Verbindungen und messe mit einem Multimeter im die
Wechselspannung zwischen GND vom linken Gerät und GND vom rechten Gerät.
Es muss weniger als 0,5V sein.
Werz schrieb:> Litze 1: GND> Litze 2: Serial RX> Litze 3: Serial TX> Litze 4: Vcc +5V> Baudrate ist 9600bps.> Die Litzen sind genau 1m lang, das ganze funktioniert auch ganz gut. Ist> in einem Gerät verbaut.> Manchmal, in ganz seltenen Fällen kommt ein Communication Timeout der> seriellen Schnittstelle.
erinnert mich an vor 30 Jahren als ich dem AtariST die Tastatur nach
aussen legte.
Mit 5V gabs Probleme also habe mit einem einfachen Transistor, genauer
zwei für Rx & Tx auf 12V gelegt.
Heute würde ich Pegelwandler einsetzen, höherere Spannung mehr
Störabstand.
Joachim B. schrieb:> Heute würde ich Pegelwandler einsetzen, höherere Spannung mehr> Störabstand.
Ah, die IBM Sackgasse. Heute (bzw. schon seit 30 Jahren glaube ich)
übertragen wir locker flockig 1 Megabit über 1 Kilometer. Mit RS422 und
viel weniger als 5V.
Werz schrieb:> einfach 4 Ennzellitzen AWG26
Die hast du aber schon halbwegs eng aneinander gelegt?
Werz schrieb:> RS232 - Baudrate ist 9600bps.
Mit 9600 und RS232 kann man im industriellen Umfeld locker 20m
zurücklegen
MaNi schrieb:> Mit was willst du denn verdrillen?
Wenn TX mit GND verdrillt ist und RX auch mit GND verdrillt ist, dann
kann auf diesen beiden Signalpfaden schon mal keine riesige
Leiterschleife aufgezogen werden und dort auch keine Störungen
engekoppelt werden.
Und wenn man nichts besseres hat, verdrillt man einfach RX mit GND und
TX mit Vcc, denn weschselstromtechnisch sollte GND sowieso das selbe
Potential haben wie Vcc.
> Ist ja keine differentielle Übertragung.
Naja, im Grunde ist jede Datenübertragung irgendwie "differenziell",
denn wenn da keine Pegeldifferenzen aufträten, dann könnte man keine
Information übertragen.
1 m und 9600 Baud sind so wenig, dass der Fehler höchstwahrscheinlich
woanders liegt. Da müssten schon mehrere A irgendwo nahe am Signalkabel
fließen und induktiv einkoppeln, alternativ mehrere 100V kapazitiv.
Wenn Du wissen willst, wo der Fehler liegt, schalte Parity ein und zähle
die uartfehler (einfache counter ++ für Parity, framing, overrun)
Wenn Du nur die Fehler reduzieren willst, schaue ob Du beim Senden 1,5
oder 2 stoppbits einstellen kannst. Und dass beide wirklich quartzgenau
gleich sind.
Lothar M. schrieb:>> Ist ja keine differentielle Übertragung.> Naja, im Grunde ist jede Datenübertragung irgendwie "differenziell",> denn wenn da keine Pegeldifferenzen aufträten, dann könnte man keine> Information übertragen.
Ähh, NEIN.
Differentielle Übertragung bedeutet, das das Nutzsignal als Differenz
der zwei Datenleitungen enststeht. Und das die Summe der Nutzsignale,
also der Strom/Spannung gegenüber dem Bezugspotential (typisch GND) eben
Null ist.
Damit kann dann das Signalpaar nahezu beliebig im Pegel schwanken
(Gleichtakt) ohne das es eine Auswirkung auf den Informationsgehalt hat.
Bentschie schrieb:> Und das die Summe der Nutzsignale,> also der Strom/Spannung gegenüber dem Bezugspotential (typisch GND) eben> Null ist.
Nennt man das nicht "symmetrisch"?
Werz schrieb:> Manchmal, in ganz seltenen Fällen kommt ein Communication Timeout der> seriellen Schnittstelle.
Ist doch halb so wild. Dann musst du die Kommunikation doch einfach
wieder aufsetzen. Du brauchst sowieso so einen
Fehlerbehandlungsalgorithmus, weil es naiv wäre, dasvon auszugehen, dass
die Übertragung immer und auch noch durchgehend fehlerfrei klappt.
> Das ist sehr selten udn ich weiß cniht, woran das liegen kann.
Probiers mit dem ESD-Test des kleinen Mannes: kauf dir einen
elektrischen Viehtreiber für 20€ und funke mit dem mal in der Nähe des
Geräts herum. Wenn das Gerät ein Metallgehäuse hat, dann kannst du ruhig
mal eine Zeitlang auf dem Gehäuse rumbrutzeln (nein, NICHT auf die
Anschlüsse, das bringt die sicher um).
Wenn das Gerät eine Kunstoffkiste ist, dann lege es auf eine
Metallplatte und lass die Funken dort überspringen. Am besten diagonal
von einer Ecke zur anderen.
Wenn dein Gerät da bei jedem Funken austickt, dann musst du noch was
verbessern...
Bentschie schrieb:> Ähh, NEIN.
Du solltest nochmal ausführlich darüber nachdenken, was ich geschrieben
habe.
> Differentielle Übertragung bedeutet, das das Nutzsignal als Differenz> der zwei Datenleitungen enststeht.
Die "Differenz" entsteht bei der unipolaren Übertragung dadurch, dass
das Potential der TX-Leitung (oder auch RX-Leitung) sich vom Potential
der GND-Leitung unterscheidet.
Der Strom, der auf der TX-Leitung zum Empfänger hinfließt, muss auf
der Masseleitung wieder zum Sender zurückfließen. Und dieser
Stromkreis aus hin- und rückführender Leitung muss möglichst klein
sein. Bei symmetrischer Übertragung genauso wie bei asymmetrischer
Übertragung.
Denn sobald du da durch eine getrennte Leitungsführung ine Fläche
aufspannst, können dort Störungen einkoppeln.
> Damit kann dann das Signalpaar nahezu beliebig im Pegel schwanken> (Gleichtakt) ohne das es eine Auswirkung auf den Informationsgehalt hat.
Und genau das passiert auch bei der asymmetrischen Übertragung: die
TX-Leitung, die mit GND verdrillt ist, kann dann zusammen mit der
GND-Leitung "schwanken", ohne dass sich diese Schwankung auf die
Pegeldifferenz auswirkt.
Lothar M. schrieb:> Die "Differenz" entsteht bei der unipolaren Übertragung dadurch, dass> das Potential der TX-Leitung sich vom Potential der GND-Leitung> unterscheidet.
Ja, gut ich hätte das doch ausführlicher formulieren sollen.
Das letztlich eine Potentialdiffernez entsteht ist immer so. Das ist
trivial, da ja die Spannung die Information darstellt.
> Der Strom, der auf der TX Leitung zum Empfänger hinfließt, muss auf> der Masseleitung wieder zum Sender zurückfließen. Und dieser> Stromkreis aus hin- und rückführender Leitung muss möglichst klein> sein. Bei symmetrischer Übertragung genauso wie bei asymmetrischer> Übertragung.
Ja, das ist auch klar. Die Fläche der Schleife ist entscheidend.
Deshalb verwenden ja differentielle Busse verdrillte Leitungen. Wenn
die Störung halbwegs großflächig einkoppelt (Großflächig bezogen auf die
Fläche einer Verdrillung), so koppelt sich das gegenseitig raus (eine
halbe Verdrillung positiv und eine halbe Verdrillung negativ).
> Denn sobald du da durch eine getrennte Leitungsführung ine Fläche> aufspannst, können dort Störungen einkoppeln.
Ich sehe gerade, du kamst aus einer anderen Richtung als ich. Du hattest
vorgeschlagen, alle Adern (Signale und Versorgung) einfach zu
verdrillen. Das wird in dem Fall sicherlich ausreichend helfen. Ich kam
aus der anderen Richtung:
Stefan ⛄ F. schrieb:> Ah, die IBM Sackgasse. Heute (bzw. schon seit 30 Jahren glaube ich)> übertragen wir locker flockig 1 Megabit über 1 Kilometer. Mit RS422 und> viel weniger als 5V.
Dort wurde behauptet, höhere Pegel wäre Mist und nur differentiell ist
die Lösung.
Und kurz danch kamst Du und hast, zumindest in meinem ersten
Leseverständniss, gesagt, "Verdrillen ist ja auch wie differentiell"
ja, das wird gerade etwas off-topic.
Für die reine Signalübertragung ist das vermutlich (ich habe das jetzt
ins Detail nicht näher durchdacht) gleich.
Aber sobald die GND Verbindung auch für die Versorgung genutzt wird oder
keine Stichleitung mehr ist, hat die einen Spannungsabfall. Dann ist
differentiell etwas ganz anderes als single ended.
Also um es kurz zu machen, in dem konkreten Fall (RS232 mit 3 Leitung
TX, RX und GND) ist Verdrillen nacher auch wie differentiell. Sobald
diese GND-Verbindung irgendwo noch anders Genutz wird stimmt es so nicht
mehr.
Danke!
Bentschie schrieb:> Sobald diese GND-Verbindung irgendwo noch anders Genutz wird> stimmt es so nicht mehr.
Bezogen auf das Signal und die von aussen eingekoppelten Störungen
bleibt alles wie zuvor. Denn der Extremfall wäre ja wieder, dass die GND
Leitung linksherum und die Signalleitung rechtsherum geführt wird. Und
das ist mit Sicherheit die schlechteste Variante.
Allerdings kann durch einen zusätzlichen Stromfluss auf der
GND-Leitung eine zusätzliche Spannungsdifferenz auftreten, die sich
natürlich wiederum auf die Signaldifferenz überlagert und das Signal
stört, wenn sie zu groß wird.
Und genau dieses Problem hat man bei der symmetrischen Übertragung
nicht.
Werz schrieb:> in ganz seltenen Fällen kommt ein Communication Timeout der> seriellen Schnittstelle.
Der Timeout ist keine Eigenschaft der ser. Übertragung, sondern der
verwendeten Software.
Ich würde die Übertragung mit einem Terminal-Programm aufzeichen, um zu
sehen, wann und wo sie hängen bleibt.