[FreeBSD 7.4] Handshake serielle Schnittstelle

17/06/2012 - 18:51 von Volker Englisch | Report spam
Hallo Newsgruppe,

ich bin mir nicht ganz sicher, ob ich hier richtig bin, bitte ggf. an
eine passendere Gruppe weiterleiten.

An einer seriellen Schnittstelle ist ein Modem angeschlossen. Das Modem
ist auf Hardware-Handshake initialisiert. Datengeschwindigkeit ist auf
115200 bps fest eingestellt. Das Modem connected mit der Gegenstelle
mit 31200 bps. Beim Senden von Daten ist am Modem schön zu sehen, wie
die CTS-LED rhythmisch kurz aus geht. Das Modem möchte dem Computer
somit sagen, es muß mit dem Senden warten, bis das Modem wieder
aufnahmebereit ist. Der Computer sendet stattdessen fröhlich weiter,
was natürlich zu Datenverlust führt.

Nun habe ich mir mal mit stty -a -f /dev/ttyu0 die Einstellungen der
Schnittstelle angesehen (Ausgabe siehe weiter hinten). Und siehe da,
dort taucht -crtscts auf. Das Hardware-Handshake ist also in der
Schnittstelle ausgeschaltet. Wie bekomme ich es aber an?

stty -f /dev/ttyu0 crtscts wird zwar ohne Fehler ausgeführt, aber
anschließend steht immer noch -crtscts in der Ausgabe von stty. Über
einen Schubser in die richtige Richtung freut sich

Volker

Ausgabe von stty:

speed 9600 baud; 0 rows; 0 columns;
lflags: icanon isig iexten -echo -echoe -echok -echoke -echonl -echoctl
-echoprt -altwerase -noflsh -tostop -flusho -pendin -nokerninfo
-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel -ignbrk
brkint -inpck -ignpar -parmrk
oflags: opost onlcr -ocrnl -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; erase2 = ^H; intr = ^C; kill = ^U;
lnext = ^V; min = 1; quit = ^\; reprint = ^R; start = ^Q;
status = ^T; stop = ^S; susp = ^Z; time = 0; werase = ^W;
 

Lesen sie die antworten

#1 Helmut Schellong
17/06/2012 - 20:19 | Warnen spam
Volker Englisch wrote:
Hallo Newsgruppe,

ich bin mir nicht ganz sicher, ob ich hier richtig bin, bitte ggf. an
eine passendere Gruppe weiterleiten.

An einer seriellen Schnittstelle ist ein Modem angeschlossen. Das Modem
ist auf Hardware-Handshake initialisiert. Datengeschwindigkeit ist auf
115200 bps fest eingestellt. Das Modem connected mit der Gegenstelle
mit 31200 bps. Beim Senden von Daten ist am Modem schön zu sehen, wie
die CTS-LED rhythmisch kurz aus geht. Das Modem möchte dem Computer
somit sagen, es muß mit dem Senden warten, bis das Modem wieder
aufnahmebereit ist. Der Computer sendet stattdessen fröhlich weiter,
was natürlich zu Datenverlust führt.

Nun habe ich mir mal mit stty -a -f /dev/ttyu0 die Einstellungen der
Schnittstelle angesehen (Ausgabe siehe weiter hinten). Und siehe da,
dort taucht -crtscts auf. Das Hardware-Handshake ist also in der
Schnittstelle ausgeschaltet. Wie bekomme ich es aber an?

stty -f /dev/ttyu0 crtscts wird zwar ohne Fehler ausgeführt, aber
anschließend steht immer noch -crtscts in der Ausgabe von stty. Über
einen Schubser in die richtige Richtung freut sich




Setz mal Baud >9600 und -icanon.


Mit freundlichen Grüßen
Helmut Schellong
www.schellong.de www.schellong.com www.schellong.biz
http://www.schellong.de/c.htm

Ähnliche fragen