Inhalt

12. Welche Geschwindigkeit sollte verwendet werden?

Mit »Geschwindigkeit« meinen wir eigentlich die »Datenübertragungsrate«, aber beinahe jeder sagt einfach (und nicht ganz richtig) »Geschwindigkeit«. Bei modernen Modems haben Sie bezüglich der Geschwindigkeit, die das Modem auf einer Telefonleitung verwendet, gar keine Wahl, da es automatisch die unter den gegebenen Umständen (z.B. Leitungsqualität) höchstmögliche Geschwindigkeit nutzt. Bei der Geschwindigkeit, die zwischen Modem und Computer verwendet wird, haben Sie aber sehr wohl eine Wahl. Diese Geschwindigkeit wird manchmal auch »DTE-Geschwindikeit« genannt, DTE bedeutet »Data Terminal Equipment« (oder auf Deutsch: Datenendgeräteeinrichung), denn Ihr Computer ist ein DTE. Sie müssen diese Geschwindigkeit hoch genug einstellen, damit dieser Teil der Kommunikationsstrecke keinen Flaschenhals darstellt. Die DTE Geschwindigkeit ist immer auf die höchst mögliche Geschwindigkeit für diese Verbindung eingestellt. Meistens wird aber die tatsächliche erreichte Geschwindigkeit darunter liegen.

Bei einem externen Modem ist die DTE Geschwindigkeit die Datenübertragungsrate (in Bits/s) auf der Verbindung zwischen dem Modem und dem PC. Bei einem internen Modem ist es ganz genauso, da das Modem auch einen seriellen Port emuliert. Vielleicht erscheint es ein wenig seltsam, wenn es eine Geschwindigkeitsbegrenzung für die Kommunikation zwischen Computer und Modemkarte gibt, da die Modemkarte ja mit dem Computer über einen viel schnelleren Bus verbunden ist. Es ist aber so, da das interne Modem einen dedizierten seriellen Port darstellt, der eben Geschwindigkeitsgrenzen und einstellbare Geschwindigkeiten hat.

12.1 Geschwindigkeit und Datenkompression

Welche Geschwindigkeit sollten Sie wählen? Wenn es keine Datenkompression gäbe, könnte man für die DTE Geschwindigkeit exakt den selben Wert nehmen wie für die Modemgeschwindigkeit (auf der Telefonleitung). Die Datenkompression bewirkt, dass die Anzahl der Bytes, die vom Computer zum Modem gesendet werden, in eine kleinere Zahl von Bytes komprimiert werden, der Dateninhalt bleibt aber gleich. Beispiel: Wenn die Geschwindigkeit vom PC zum Modem 20.000 Bytes/s (bps) beträgt, und die Kompressionsrate beträgt 2:1, dann werden nur 10.000 Bytes/s über die Telefonleitung übertragen. Bei einer Kompressionsrate von 2:1 müssen Sie also für die DTE Geschwindigkeit das doppelte der maximalen Geschwindikeit auf der Telefonleitung einstellen. Beträgt die Kompressionsrate 3:1, müssen Sie die dreifache Geschwindigkeit wählen.

12.2 Wo wird die Geschwindigkeit eingestellt?

Die DTE Geschwindigkeit ist normalerweise über einen Menüpunkt in Ihrem Terminalprogramm wählbar, oder über eine Option von getty, wenn sich jemand auf Ihrem System einwählt. Die DCE Geschwindigkeit zwischen beiden Modems können Sie nicht einstellen.

12.3 Es kann keine ausreichend hohe Geschwindigkeit eingestellt werden

Sie müssen die höchste von Ihrer Hardware unterstütze Geschwindigkeit herausfinden. Ende 1998 unterstützt die meiste Hardware nur Geschwindigkeiten bis 115,2 kbps. Einige wenige interne 56K Modems unterstützen 230,4 kbps. Neuere Linux Kernels unterstützen hohe Geschwindigkeiten (über 115,2 kpbs), aber aus folgenden Gründen könnte es problematisch sein, diese auch zu Nutzen:

  1. Das Anwendungsprogramm oder stty arbeitet nicht mit dieser hohen Geschwindigkeit.
  2. setserial hat eine Standardgeschwindigkeit von 115,2 kbps; aber diese Einstellung ist leicht zu ändern.

Konfiguration der Hardware auf eine Geschwindigkeit: der Divisor und baud_base

Der Gerätetreiber für den seriellen Port stellt die Geschwindigkeit der Hardware durch das Senden eines »Divisors« ein (eine positive ganze Zahl). Dieser »Divisor« teilt die maximale Übertragungsgeschwindigkeit der Hardware, das Ergebnis ist eine kleinere Geschwindigkeit (mit Ausnahme des Divisors 1, mit dem die maximal mögliche Geschwindigkeit eingestellt wird). Hier ist eine Liste von gebräuchlichen Divisoren und den entsprechenden Geschwindigkeiten (unter der Annahme einer maximalen Geschwindigkeit von 115,2  kbps): 1 (115,2k), 2 (57,6k), 3 (38,4k), 6 (19,2k), 12 (9,6k), 24 (4,8k), 48 (2,4k), 96 (1,2k), etc.

Wenn Sie eine Geschwindigkeit von 115,2 kbps im Terminalprogramm oder mit Hilfe von stty auswählen, dann stellt der Gerätetreiber in der Hardware den Divisor 1 ein, der offensichtlich die höchstmögliche Geschwindigkeit bewirkt. Wenn Sie Hardware mit einer maximalen Geschwindigkeit von z.B. 230,4 kbps verwenden, dann wird die Auswahl von 115,2 kbps den Divisor 1 zur Folge haben und es wird in Wirklichkeit 230,4 kbps eingestellt. Dies ist das Doppelte der Geschwindigkeit, die Sie ausgewählt haben. Tatsächlich wird für jede Geschwindigkeit, die Sie auswählen in Wirklichkeit die doppelte Geschwindigkeit gesetzt. Wenn Sie Hardware hätten, die 460,8 kbps unterstützen würde, würde die tatsächliche Geschwindigkeit auf das vierfache des von Ihnen ausgewählten Wertes gesetzt.

Möglichkeiten, das Problem der Geschwindigkeitseinstellung zu umgehen

Um diese Berechnungsweise zu korrigieren (aber nicht, um das Problem in allen Fällen zu beheben) können Sie mit Hilfe von setserial den »baud_base«-Wert auf die tatsächliche maximale Geschwindigkeit Ihres seriellen Ports setzen, z.B. auf 230,4 kbps. Wenn Sie im Anwendungsprogramm oder durch stty eine Geschwindigkeit von 230,4 kbps wählen, wird der Divisor 1 verwendet und es wird die selbe Geschwindigkeit gesetzt, die Sie ausgewählt haben. Dabei gibt es aber ein Problem: stty und viele Terminalprogramme bieten maximal 115,2 kbps für die Geschwindigkeit an (Stand: Mitte 1999) und es ist nicht möglich, höhere Geschwindigkeiten auszuwählen. In diesen Fällen bleibt Ihnen nichts anderes übrig, als auf Einstellungen mit Hilfe von setserial zu verzichten und im Hinterkopf zu behalten, dass die tatsächlich verwendete Geschwindigkeit stets doppelt so hoch ist wie die von Ihnen ausgewählte Geschwindigkeit.

Es gibt noch einen zweiten Weg, der aber auch nicht viel besser ist. Mit dem Befehl

setserial /dev/ttyS2 spd_cust baud_base 230400 divisor 1 
können Sie z.B. für den Port ttyS2 einen Divisor 1 (d.h. maximale Geschwindigkeit) erzwingen, wenn Sie im Terminalprogramm eine Geschwindigkeit von 38,4 kbps auswählen. Die Verwendung der Option »spd_cust« ist an die Geschwindigkeit 38,4 kbps gekoppelt, näheres dazu finden Sie in der Manual Page von setserial.

Falls Sie zwei oder mehr verschiedene Geschwindigkeiten verwenden wollen, die so hoch sind, dass sie im Terminalprogramm nicht ausgewählt werden können, ist es nicht mehr so einfach wie oben beschrieben. Aber das Prinzip bleibt dasselbe. Sie können den Standardwert für »baud_base« beibehalten und dabei immer bedenken, dass Sie in Wirklichkeit einen Divisor bestimmen, wenn Sie eine Geschwindigkeit auswählen. Die tatsächliche Geschwindigkeit berechnet sich immer aus der maximalen Geschwindigkeit geteilt durch den Divisor, den der Gerätetreiber setzt.

Die Taktfrequenz entspricht nicht dem Wert von »baud_base«

Beachten Sie, dass der Wert für »baud_base« normalerweise wesentlich kleiner ist als die Frequenz des Quarzoszillators der Hardware. Die Oszillatorfrequenz wird häufig durch 16 geteilt, erst dieser Wert ergibt die tatsächliche Maximalgeschwindigkeit. Diese hohe Oszillatorfrequenz wird benötigt, damit jedes Bit mehrfach geprüft werden kann, um zu entscheiden, ob es sich um eine 0 oder um eine 1 handelt.

12.4 Geschwindigkeitstabelle

Für ein 56k Modem eignet sich ein 16650 UART am besten, aber nur wenige interne Modems oder serielle Schnittstellenkarten sind damit ausgerüstet. Am zweitbesten ist die Verwendung eines 16550 UART, der abgeändert wurde, um 230,4 kbps zu unterstützen. Die folgende Tabelle enthält die empfohlenen Geschwindikeiten des seriellen Ports in Abhängigkeit der Modemgeschwindigkeit:

Alle oben angegebenen Geschwindigkeiten können die V.42bis Datenkompression und die V.42 Fehlererkennung verwenden. Wird keine Datenkompression verwendet, kann die Geschwindigkeit auch kleiner als angegeben eingestellt werden, so lange sie über der Modemgeschwindigkeit liegt.


Inhalt