Hallo,
Du schreibst nichts über die Randbedingungen
- Handshakes
- baudrate
- Timing
- Protokoll
- Timeouts
usw.
Solange ich denken kann, ist es so, daß bei jeder Neuentwicklung
eines Gerätes mit der obligatorischen RS232 irgendwann mal
irgendwelche Probleme auftreten. Was es im konkreten Fall ist,
kann man nur durch Analyse herausbekommen. Dazu nutze ich
üblicherweise einen „Spion“ und einen (digitalen) Oszi.
Der Spion ist nur eine umschaltbaren Abzweig am RS232-Stecker
des Gerätes, der wahlweise die Daten des Senders (PC) und des
Empfängers (Gerät) zum Rxd-Pin einem weiteren PC/Laptop mit einem
zuverlässigen Terminalprogramm (z.B.Term90 vom alten Nortoncommander)
leitet.
Dort sieht man erstmal, was jeweils gesendet und empfangen wird.
Was man natürlich nicht sieht, ist das Timing und evtl.
Hardware-Handshake-Signale. Dazu muß ein Oszi ran.
Meist liegt das Problem im irgendwie veränderten Timing.
Da werden mal die Zeichen in kürzerem Abstand gesendet (eine kleine
Pause zwischen 2 zeichen ist immer gut, wenn es die Datenmenge
zuläßt.
Andermal sind plötzlich Pausen zu lang - Timeout kommt.
Oder Protokolle werden vom Betriebssystem oder zusatzhardware
zerhackt -> siehe Framingproblem.
Auch die exakten Bitlängen sind natürlich zu überprüfen.
Auch die bidirektionale Übertragung kann Timingprobleme bereiten.
Wenn z.B. Eine Antwort vom Gerät schon gesendet wird, während der
PC noch Daten sendet -> geht z.B. nicht mit Funkverb. (Bluetooth
oder ähnlich, weil nicht gleichzeitig nur senden und empf. können).
Andere Probleme können durch das Betriebssystem (Windows) verursacht
werden, wenn die Daten aus dem Puffer nicht schnell genug abgeholt
werden, so daß der Puffer in den Pollingpausen überläuft (war
eine Zeitlang bei Win95/98 ein Problem, weil die Hardware noch
zu langsam war).
Viele Probleme lassen sich dadurch finden und beheben, daß die
Zeichen mit genügend Absand (Pause) gesendet werden und die
Timeoutzeiten verlängert werden.
Wenn möglich sollte auch auf das gleichzeitige Senden von Daten
in beide Richtungen verzichtet werden.
Gruß Uwi
www-Experten Ich hoffe, damit bin ich im richtigen Board.
Ich habe bei meinem PC einen USB to Seriell Converter und die
Datenübertragung funktioniert normal.
Wenn ich bei einem Laptop den selben Converter verwende und
mit dem selben Programm eine Übertragung starte, dann
funktionierts nicht mehr richtig. Habe das bereits mit
mehreren Laptops ausprobiert: 1x HP und 2 verschiedene
Gericom. Habe es auch schon mit mehreren Desktop-PCs probiert
und da hat es immer funktioniert.
Betriebssystem war immer Windows XP. ich verwende ein von mir
geschriebenes Programm zur Übertragung. Beim PC benötigt die
Übertragung ca. 1 Minute (und wird dann vom Peripheriegerät
auch richtig übernommen), beim Laptop nur ca. 40 Sekunden. Ich
verwende exakt die selben Einstellungen und erhalte auch die
selben Signale (wurde schon überprüft, mit dem Programm
portmon). Der Laptop ist einfach um 20s schneller.
Hat mal jemand von euch ein ähnliches Problem gehabt?
Was kann die Ursache sein?
mfg Andreas