Next: Kontaktaufnahme
Up: Datenreisen und reisende Daten
Previous: Datenreisen und reisende Daten
Um eine analoge Telefonleitung zur Datenfernübertragung (DFÜ) zu nutzen, bedarf es einer Einrichtung zur Umwandlung der logischen Daten und Zeichen aus dem Arbeitsspeicher des Rechners (Bits und Bytes) in Töne - und wieder zurück von Tönen in Bits und Bytes. Zu diesem Zweck gibt es sogenannte Modems (MOdulator-DEModulator), die auf mehr oder weniger aufwendige Weise mehr oder weniger viele Daten transportieren können.
Früher (eigentlich gar nicht so lange her) wurde ,,gekoppelt``. Die von einem sogenannten Akustikkoppler erzeugten Töne wurden durch einen Lautsprecher in die Sprechmuschel des Telefonapparates gekrächzt, ein Mikrofon auf der anderen Seite nahm den Rest der übertragenen Geräusche auf, und der Demodulator destillierte daraus wieder Daten. Heute werden Akustikkoppler nur noch als Raritäten gehandelt. Ein echtes CCC-Modem Marke ,,Datenklo`` ist für einige Leute so wertvoll wie ein Hochgeschwindigkeitsmodem - wer sowas noch hat, verkauft es nicht.
Diesen legendären Werkzeugen der Pioniere folgten ,,echte`` Modems, die direkt an das Telefonnetz angeschlossen werden. Bis zum 1.7.1990 mußte jeder ,,Eingriff`` in das Fernmeldenetz von der P*st selbst durchgeführt werden. Seither dürfen Modems mit BZT- oder FTZ-Nummer auch vom Benutzer selbst an eine TAE-Dose angeschlossen werden.
Ein Paritätsbit kann zur Erkennung von Übertragungsfehlern benutzt werden, indem die Quersumme der übertragenen Binärzeichen immer gerade bzw. ungerade ergänzt wird. Im Zeitalter moderner Modems mit automatischer Fehlerkorrektur hat diese Methode an Bedeutung verloren.
Das Ende jedes übertragenen Zeichens muß durch eine besondere Pause markiert werden. Die Länge dieser Pause wird durch die Stopbits eingestellt. Die hohe Auflösung der modernen Schnittstellenbausteine garantiert auch bei nur einem Stopbit immer eine zuverlässige Erkennung der Bytegrenzen.
Zur Verwendung mit Modems zur Datenfernübertragung ist das RTS/CTS Hardware-Handshake besser geeignet. Hierbei werden zwei Steuerleitungen des RS232-Kabels (Pins 5 und 6) benutzt, um der Gegenseite die Bereitschaft zum Senden bzw. zum Empfangen von Daten zu signalisieren. Wenn der PC Daten zum Modem senden will und bereit ist, Daten vom Modem zu empfangen, wird die RTS-Leitung HIGH gesetzt. Das Modem antwortet, indem es seine Bereitschaft, Daten vom Computer auf die Telefonleitung zu schicken, durch Hochsetzen der CTS-Leitung signalisiert. Wenn der Sendepuffer vom Modem vollgelaufen ist, setzt es die CTS-Leitung wieder LOW und veranlaßt den PC dadurch, den Datenfluß zu unterbrechen. Wenn umgekehrt der Computer nicht in der Lage ist, weitere Daten zu empfangen. setzt er die RTS-Leitung wieder LOW und veranlaßt dadurch das Modem, den Datenfluß anzuhalten.
Weil eigentlich immer beide Bewegungen zusammen ausgeführt werden, denkt sich Linux automatisch zu einem Line Feed oder NEWLINE einen Wagenrücklauf dazu. Damit es bei der Kommunikation mit anderen Systemen und Geräten keine Probleme gibt, können ankommende und abgehende Zeilenenden in der einen oder anderen Weise übersetzt werden.
Vernetzung hat immer auch irgendetwas mit Verdrahtung zu tun. Beim Modem sind gleich zwei Anschlüsse erforderlich: erstens muß das Modem an den Rechner angeschlossen werden, zweitens braucht das Modem eine Verbindung zum öffentlichen Telefonnetz.
Im RS-232-Standard wird die Verbindung einer ,,Endeinrichtung`` (Data Terminal Equipment, DTE) und einer ,,Kommunikationseinrichtung`` (Data Communicaton Equipment, DCE) vereinbart. Die serielle Schnittstelle des PC ist als DTE geschaltet, das Modem als DCE. Die folgende Tabelle zeigt die Belegung einer 25-poligen RS-232-Verbindung und zusätzlich die Belegung der 9-poligen Verbindung, wie sie meistens für die Maus verwendet wird.
Abbildung: Die Steckerbelegung der RS-232 Schnittstelle
Das Modemkabel sollte alle aufgeführten Leitungen parallel
wie ein Verlängerungskabel führen. Wie aus der Tabelle ersichtlich
ist, werden für die eigentliche Datenübertragung nur zwei Leitungen
verwendet (TD und RD), alle anderen Leitungen haben Steuerfunktionen.
Es sind Kabel auf dem Markt, die nicht alle Steuerleitungen korrekt
bedienen. Wenn die RTS/CTS-Leitungen für das Hardware-Handshaking
eingespart werden, ist mit ernsten Problemen beim Betrieb von
schnellen Modems zu rechnen.
Um zwei Rechner miteinander zu verbinden (DTE<-> DTE), müssen verschiedene Anschlüsse gekreuzt werden. Zu diesem Zweck sind sogenannte Nullmodemkabel erhältlich.
Bei den meisten Modems gehört ein Kabel zur Verbindung mit dem Telefonnetz (TAE-Dose) zum Lieferumfang. In der Regel haben die Modems zwei Western-Buchsen, eine für die ankommende Telefonleitung, eine zweite zum Anschluß eines Fernsprechgerätes. Der zweite Anschluß wird automatisch getrennt, sobald das Modem ,,abhebt``. Bei den TAE Dosen gibt es unterschiedliche Buchsen, sogenannte N- und F-Kodierung.F steht dabei für Fernsprechgerät, also den Telefonapparat, N für Nicht-Fernsprechgerät, beispielsweise ein Modem. Um die in den TAE-Dosen mit NF-, NFN- oder NFF-Mehrfachbuchsen vorgesehene Serienschaltung mehrerer Geräte nutzen zu können, muß die durchgeschleifte Telefonleitung von der zweiten Westernbuchse zurück auf die dritte und vierte Leitung des ankommenden Kabels gelegt werden. Zu diesem Zweck gibt es im Fachhandel spezielle Kabel zu kaufen.
Wenn keine TAE-Dose mit Mehrfachbuchse vorhanden ist, kann in der Regel das mitgelieferte Anschlußkabel nicht verwendet werden, weil die Steckercodierung nicht stimmt. In diesem Fall kann man die Anschlußdose von der Post durch eine passende (mit mehreren Buchsen) ersetzen lassen oder einen Adapter bzw. ein neues Kabel kaufen. Ganz ignorante Menschen schnitzen einfach die Barten des Kodierschlüssels vom Stecker. Funktionieren tut's, ist aber nicht Sinn der Sache.
Unangenehm kann es auch werden, wenn ein nachträglich gekauftes TAE/Western-Adapterkabel falsch belegt ist. Die Firma Siemens beschäftigt hauseigene Philosophen zur Definition solcher Steckerbelegungen. Die Deutsche Telekom (TM) hat diese Steckerbelegung von ihrem ehemaligen Monopollieferanten übernommen und in irgendwelche Verordnungen geschrieben. Bei zugelassenen Modems, insbesondere deutscher Hersteller, besteht also die realistische Möglichkeit, auf ein solches Exemplar zu stoßen.
Diese Karten sind zum Betrieb einer Maus immer ausreichend. Unter MS-DOS treten auch bei Modems selten Probleme auf. Unter Linux oder anderen Multitasking-Betriebssystemen (und auch bei MS-Windows) kommt es beim Betrieb von Hochgeschwindigkeitsmodems ab 9600 Baud zu vermehrten Übertragungsfehlern. Diese Fehler resultieren nicht aus einer schlechten Telefonleitung, sondern aus der verzögerten Bedienung der Schnittstelle durch das Betriebssystem.
Der Gerätetreiber für die seriellen Schnittstellen besteht aus zwei Ebenen. Auf der unteren Ebene werden die von der seriellen Leitung angebotenen Daten entgegengenommen. Im Unterschied zur Druckerschnittstelle, die in der Regel im ,,polling`` Betrieb arbeitet, also in einer Warteschleife den Druckerstatus aktiv so lange immer wieder abfragt, bis dieser Empfangsbereit ist, arbeitet die serielle Schnittstelle immer Interruptgesteuert. Der Schnittstellenbaustein löst einen Hardwareinterrupt aus, sobald ein Zeichen von der Schnittstelle empfangen wurde. Das bedeutet, daß der Programmablauf auf der unteren Ebene nicht mit dem Programmtext ,,synchron``, sondern durch äußere Ereignisse, die Hardwareinterrupts, ,,asynchron`` gesteuert wird. Obwohl die Interruptroutinen ohne Kontextwechsel sehr schnell ausgeführt werden, kann es zu kleinen Verzögerungen durch die Bearbeitung anderer Hardwareinterrupts kommen. Bei den schnellen Modems kann in dieser minimalen Zeitspanne bereits ein weiteres Zeichen eingetroffen sein.Die einfachen Schnittstellenbausteine der billigen Multi-IO-Karten haben keinen eigenen Puffer, in dem sie dieses zusätzliche Zeichen speichern könnten. Deshalb wird einfach das bereits empfangene, aber noch nicht bearbeitete Zeichen überschrieben. Die Folge ist natürlich ein Datenverlust, der bei fehlerkorrigierenden Dateiübertragungen - etwa mit Z-Modem - erkannt wird. Die MNP-Fehlerkorrektur zwischen zwei Modems hat in diesem Zusammenhang keine Wirkung, weil der Verlust bei der Verbindung zwischen Modem und Computer auftritt.
Auf den meisten IO-Karten wird der Schnittstellenbaustein 16450 UART oder 8250 UART verwendet. Bei einer voll bestückten Karte (2 serielle Ports) sind diese Chips allein durch ihre Größe identifizierbar; es handelt sich um die beiden 40-poligen Teile. Die aufgedruckten Typenbezeichnungen müssen die oben genannten Zahlen enthalten. Auf den Multi-IO-Karten mit Floppy- und HD-Controller sind die beiden seriellen Schnittstellen meistens in einem Custom-Chip untergebracht. Bei allen Karten, die ab Werk nur mit einer seriellen Schnittstelle ausgeliefert werden, die aber mit einer zweiten Schnittstelle aufgerüstet werden können, ist ein Sockel für die Aufnahme des 16450 UART vorhanden.
Der 16550 UART wird von Linux automatisch erkannt und unterstützt. Korrekt betrieben schreibt dieser Chip alle empfangenen Zeichen in seinen Puffer (First-In-First-Out). Der Interrupt wird erst ausgelöst, wenn der Puffer halb voll ist. Das entlastet das Betriebssystem erheblich, weil nicht jedes Zeichen einzeln gelesen werden muß. Dadurch bleibt dem Kernel vor dem Überlaufen des Puffers in jedem Fall genügend Zeit, alle bereits wartenden Hardwareinterrupts höherer Priorität durchzuführen.
Speziell für den Betrieb von Hochgeschwindigkeitsmodems gibt es IO-Karten mit dem 16550 UART zu kaufen. Bei vielen internen Modems, die zwangsläufig eine serielle Schnittstelle mitbringen, wird auch der 16550 benutzt. Bei den oben erwähnten IO-Karten mit einem gesockelten 16450 kann dieser Chip einfach ausgetauscht werden (auf die richtige Polung achten). Das Auslöten eines 16450 kommt nur für erfahrene Bastler in Frage. Bei den Multi-IO-Karten mit Custom-Chip hilft gar nichts. Hier müssen die seriellen Schnittstellen abgeschaltet und durch eine Extrakarte ersetzt werden.
Die gleichzeitige Benutzung von vier seriellen Ports, wie sie durch die Bereitstellung von COM1 bis COM4 bei MS-DOS suggeriert wird, ist nicht möglich, weil sich jeweils COM1 und COM3 bzw. COM2 und COM4 einen Interrupt teilen.
Die maximale Übertragungsrate für die serielle Schnittstelle liegt bei 115200 bps. Diese Rate kann nur nach einer entsprechenden Einstellung mit dem setserial-Programm eingestellt werden, indem die 38400 bps Rate ersetzt wird.
Seit Linux-Version 0.99.10 werden beim Systemstart nur die Standardports COM1 bis COM4 initialisiert, weil durch die Autokonfiguration an anderen Adressen Konflikte mit anderen, wichtigeren Karten auftreten können. Stattdessen müssen die zusätzlichen Schnittstellen mit dem setserial-Kommando initialisiert werden. Die Treiber sind im Kernel enthalten, können aber erst nach der Initialisierung benutzt werden.
Die Mehrportkarten arbeiten mit den gleichen Schnittstellenbausteinen wie die oben beschriebenen Multi-IO-Karten. Alles in diesem Zusammenhang über den 16450/8250 bzw. den 16550A Gesagte gilt hier ebenfalls.
Das Linux Anwenderhandbuch