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
Häng mal ein Oszilloskop an alle relevanten Stellen und schau dir die Datne an die über die Leitung gehen...
TestX schrieb: > Häng mal ein Oszilloskop an alle relevanten Stellen und schau dir die > Datne an die über die Leitung gehen... Besser nen LA
Jonny C. schrieb: > Dazwischen hängen zwei Pegelwandler (RS232 auf LVDS) und ein > LVDS-Kabel. Klingt unnötig kompliziert... Wenn mehr Datenrate als bei normalem RS232 gewünscht ist, wie wäre es mit USB?
@ Dr. Winter Lange Leitung und USB vertragen sich nicht. U.U. wäre hier RS485 besser - ab einer bestimmten Länge bzw. einem bestimmtem Störnebel.
Geht es denn wenn du die beiden RS232 direkt mit einem kurzen Kabel koppelst?
:
Bearbeitet durch User
@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.
Viele offene Fragen... 1. Wie lang ist das LVDS-Kabel? 2. Ist das Kabel ordnungsgemäß terminiert? Wenn mehrere Paare durch das Kabel gehen: 3. Benutzt Du tatsächlich für jede Datenrichtung je ein verdrilltes Paar oder hast Du Dir willkürlich einfach ein paar Adern geschnappt?
Jonny C. schrieb: > Beispiel: > Bei der Einbabe des Wortes 'HALLO' wird hinten raus ein 'OHMF'. Entweder ne ASCII-Tabelle hier mit anhängen oder vernünftig testen. Also z.b. aus gesendeten 00011001 wird beim Empfänger immer 11100110. Dann kann man dazu etwas sagen.
LEDzeppelin schrieb: > Jonny C. schrieb: > >> Beispiel: >> Bei der Einbabe des Wortes 'HALLO' wird hinten raus ein 'OHMF'. > > Entweder ne ASCII-Tabelle hier mit anhängen oder vernünftig testen. > Also z.b. aus gesendeten 00011001 wird beim Empfänger immer 11100110. > Dann kann man dazu etwas sagen. Schreibe 'HALLO' und darunter 'OHMF' als Bitfolge. Fällt dir etwas auf?
Bernd schrieb: > Schreibe 'HALLO' und darunter 'OHMF' als Bitfolge. Fällt dir etwas auf? Nee, geht nich, hab ja keine ASCII-Tabelle. Und wenn TO dazu schon zu faul ist, werd ich das bestimmt nich machen.
Jonny C. schrieb: > Flow Control: XON/XOFF Normalerweise verwendet man heutzutage keine Flusskontrolle mehr, weil die Geräte schnell genug empfangen können. Also mal versuchen abzuschalten.
:
Bearbeitet durch User
Jonny C. schrieb: > Speed: 9600 > Data bits: 8 > Stop bits: 1 > Parity: None > Flow Control: XON/XOFF > Normalerweise verwendet(e) man 8N1. Und für 9600 kannste 2 Modems nehmen, läuft dann auch über 100km Telefonstrippe wenns sein muß.
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.
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.
c-hater schrieb: > Und das Extra-Stopbit vom Sender ist wirklich ein sehr gutes Mittel, um > dieses Problem zu lösen. Warten als Methode der Synchronisation, soso
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.
:
Bearbeitet durch User
Jonny C. schrieb: > Bei der Einbabe des Wortes 'HALLO' wird hinten raus ein 'OHMF'. Und was kommt raus, wenn du 'H', 'A', 'L', 'L', 'O' schickst, also immer schön mit Pause dazwischen?
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...
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.
>Was ich auch mal versuchen würde ist: >9600|8|2|N Natürlich hatte ich damals auch mit 115200 Baud gearbeitet. Der Vorschlag 9600 kam nur deshalb, weil man ja irgendwo anfangen muss.
> [..] 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.
:
Bearbeitet durch Moderator
Beitrag #5885903 wurde von einem Moderator gelöscht.
Beitrag #5885906 wurde von einem Moderator gelöscht.
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.
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.
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.