RS232 Daten verwürfelt??

OP #5885588
Lesenswert?

Hallo,

ich habe zwischen zwei Rechnern auf denen Putty läuft eine RS232 Strecke 
aufgebaut. Dazwischen hängen zwei Pegelwandler (RS232 auf LVDS) und ein 
LVDS-Kabel. Ich möchte damit bei höherer Baudraute eine längere 
Übertragungsleitung ermöglichgen.

Leider werden die eingebenen Wörter beim Sender nicht korrekt 
übertragen.
Beispiel:
Bei der Einbabe des Wortes 'HALLO' wird hinten raus ein 'OHMF'.

Die Einstellungen sind bei Sender und Empfänger identisch:
Speed: 9600
Data bits: 8
Stop bits: 1
Parity: None
Flow Control: XON/XOFF

Hat jemand eine Idee woran das liegen könnte?
Vielen Dank und Gruß,
Jonny
#5885667
Lesenswert?

@Dr. Winter
>>Sebastian S. schrieb:
>> Lange Leitung und USB vertragen sich nicht.

> Aber LVDS?

Du hast eine sehr selektive Art zu lesen.

Habe mit LVDS keine Erfahrungen.

Deshalb habe ich RS485 vorgeschlagen, dass problemlos mehrere 100 Meter 
überbrücken kann. Dafür gibt es USB->RS485-Konverter.
Gast #5885739
Lesenswert?

Sebastian S. schrieb:

> Was ich auch mal versuchen würde ist:
> 9600|8|2|N
> Hatte mal einen Empfänger, der - keine Ahnung warum - nach jedem Byte
> etwas Zeit zum Bremsen brauchte.

Das ist völlig normal, wenn der Sender schneller ist als der Empfänger 
und obendrein der Empfänger etwas simpel gestrickt ist.

Und das Extra-Stopbit vom Sender ist wirklich ein sehr gutes Mittel, um 
dieses Problem zu lösen.
#5885764
Lesenswert?

1
Hallo: 
2
IDLE   SB   'H'    SB   'A'    SB   'L'    SB   'L'    SB   'O'    IDLE    
3
111111 10 01001000 10 01000001 10 01001100 10 01001100 10 01001111 1111111
4

5
XX SB   'O'    XX SB   'H'    XX SB   'M'    XX SB   'F'
6
xx 10 01001111 xx 10 01001000 xx 10 01001101 xx 10 01000110
7

8
SB: Stopt/Start-Bit
9
XX: (fast) beliebige Bitfolge

Ich finde keine direkte Übereinstimmung von "OHBF" in dem 
"HALLO"-Datenstrom. Stimmt die Groß-/Kleinschreibung?
Folgende Ursachen erscheinen mit den genannten Textfolgen 
unwahrscheinlich:
- Verschiebung durch verpasste Startbits
- Invertierter Datenstrom (z.B. LVDS Leitungen verdreht)
- Baudrate (sonst wäre entweder der letzte Teil der empfangen Daten 
immer 1 oder keine einzelnen Bits in den empfangenen Daten enthalten.)
- auch nicht für verlängerte IDLE-Phasen zwischen den Zeichen

Für mehr Hilfe wird es nicht ohne eine Oszillskop-Aufnahme gehen. Oder 
mit clever gewählten Zeichen, die übertragen werden.
Gast #5885886
Lesenswert?

Elias K. schrieb:
> Hallo:
> IDLE   SB   'H'    SB   'A'    SB   'L'    SB   'L'    SB   'O'    IDLE
> 111111 10 01001000 10 01000001 10 01001100 10 01001100 10 01001111
> 1111111
>
> XX SB   'O'    XX SB   'H'    XX SB   'M'    XX SB   'F'
> xx 10 01001111 xx 10 01001000 xx 10 01001101 xx 10 01000110
>
> SB: Stopt/Start-Bit
> XX: (fast) beliebige Bitfolge

Danke dass du dir die Mühe gemacht hast.
Die aktuelle Einstellung von 9600 Baud dient nur dem Test. In der 
Zielkonfiguration sollen 115kBaud laufen.
Das Zielsystem ist ein RS232 Sender und Empfänger. Sprich ich kann nicht 
auf RS485 wechseln.
Bei der Baudrate kriege ich mit Standardkabel bereits bei 3 Metern 
Probleme in der Übertragung. Als Mittel stehen mir im Moment nur die 
LVDS Pegelwandler zur Verfügung...ich probiere mal an den Einstellungen 
zu drehen...vielleicht tut sich ja was...
(Firma: Vescomp) #5885892
Lesenswert?

Elias K. schrieb:
> Hallo:
> IDLE   SB   'H'    SB   'A'    SB   'L'    SB   'L'    SB   'O'    IDLE
> 111111 10 01001000 10 01000001 10 01001100 10 01001100 10 01001111
> 1111111

 Sender sendet keine XON/XOFF Zeichen, das macht nur der Empfänger -
 bei Bedarf natürlich.
 Ausserdem handelt es sich um vollwertige Bytes (8bit) mit Start/Stop
 und nicht um 2bit.
 XON = 0x11 / XOFF = 0x13
 Und, wie allgemein bekannt, gesendet wird LSB.

> Ich finde keine direkte Übereinstimmung von "OHBF" in dem
> "HALLO"-Datenstrom.

 Gibt es auch nicht.
 Das, was beim Empfänger ankommt ist in höchstem Maße durch Störungen
 verzerrt. Wahrscheinlich sind die Kabel oder Terminierung daran schuld.
Gast #5885896
Lesenswert?

> [..] 9600 Baud [..] RS232 [..] Bei der Baudrate kriege ich mit
> Standardkabel bereits bei 3 Metern Probleme in der Übertragung.

Hast Du die Masse verbunden? RS232 geht normalerweise(tm) lockerflockig 
über >100m(!). Ansonsten häng unbedingt mal ein Oszi dran, das zeigt Dir 
den Fehler höchstwahrscheinlich sofort auf.
Beitrag #5885903 wurde von einem Moderator gelöscht.
Beitrag #5885906 wurde von einem Moderator gelöscht.
#5885932
Lesenswert?

Marc V. schrieb:
> Und, wie allgemein bekannt, gesendet wird LSB.
Danke für den Hinweis. Das ist mir tatsächlich durchgerutscht. Die 
Datenwörter finden sich trotzdem nicht im Datenstrom wieder.
1
Hallo: 
2
IDLE   SB   'H'    SB   'A'    SB   'L'    SB   'L'    SB   'O'    IDLE    
3
111111 10 00010010 10 10000010 10 00110010 10 00110010 10 11110010 1111111
4

5
XX SB   'O'    XX SB   'H'    XX SB   'M'    XX SB   'F'
6
xx 10 11110010 xx 10 00010010 xx 10 10110010 xx 10 01100010
7

8
SB: Stopt/Start-Bit
9
XX: (fast) beliebige Bitfolge

Marc V. schrieb:
> Sender sendet keine XON/XOFF Zeichen, das macht nur der Empfänger -
>  bei Bedarf natürlich.

Ist doch gar nicht enthalten? Ein Stop- und Startbit braucht es aber 
mindestens.
Beitrag #5885936 wurde von einem Moderator gelöscht.
Beitrag #5885941 wurde von einem Moderator gelöscht.
Beitrag #5885955 wurde von einem Moderator gelöscht.
Moderator #5885982
Lesenswert?

LVDS ist gut für hohe Datenraten über relativ kurze Distanzen (wenige
Meter). Für deine Anwendung wäre vermutlich RS-422 das Richtige, da es
für bis zu 1200m spezifiziert ist.

Johnny C. schrieb:
> Das Zielsystem ist ein RS232 Sender und Empfänger. Sprich ich kann nicht
> auf RS485 wechseln.

Es gibt Konverter, sowohl für RS-422 als auch für RS-485. Du kannst dir
auch selber einen aus einem MAX232 und einem RS-422/485-Tranceiver
deiner Wahl bauen. Da du nur eine Punkt-zu-Punkt-Verbindung und keinen
Bus mit mehr als 2 Teilnehmern hast, ist RS-422 völlig ausreichend.
RS-485 unterscheidet sich von RS-4222 im Wesentlichen darin, dass die
Ausgänge hochohmig geschaltet werden können.

Ich würde aber trotzdem die LVDS-Leitungen mal mit dem Oszi anschauen,
vermute aber, da dir auf Grund des sehr niedrigen Signalpegels zu viele
Störungen in die Suppe spucken.
Gast #5886007
Lesenswert?

Bei 9.600 sollte es mit einem normalen Nullmodem-Kabel auch über 30m 
gehen, mit 115kBaud eigentlich auch, wenn es keine Masseproblem oder so 
gibt. Welche HW benutzt Du als RS232?

Falls doch, 3m Kabel nehmen. Wenn hier auch Fehler, dann Foto vom 
Aufbau. Sonst verlängern bis die ersten Fehler kommen und analysieren.

- Masseprobleme möglich? (Andere Phase, anders Gebäude, ...)
- Baudraten-Probleme möglich?

- Flusssteuerung immer aus
- Stoppbits auf 2 setzen (gilt nur für den Sender, hilft bei 
Baudratendifferenzen)
- Zu anfang nur ein Zeichen senden, die ersten 4 Bits low, die nächsten 
high--> 0xf0 --> inlusive Start- und Stoppbit sind es dann je 5 Bits 
high und low. Wenn dann beim Empfang 0xf8 oder 0xe0 rauskommt, weisst Du 
wo der Fehler liegt. Alternativ z.B. 0x20 oder 0x30, wenn nur 
ASCII-Empfang.

- später Parity einschalten (Dann kriegst Du Fehler direkt mit)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren