Dieses Handbuch wird mit freundlicher Genehmigung von Sebastian Hetze auf den Servern der Linux Information Systems AG gehosted.

next up previous contents index
Next: Kontaktaufnahme Up: Datenreisen und reisende Daten Previous: Datenreisen und reisende Daten

Subsections


Technische Voraussetzungen

Grundlage aller Vernetzung ist die physikalische Verbindung zweier Rechner. Das kann eine einfache Dreidraht-Nullmodem-Kopplung zweier serieller Schnittstellen sein, anstelle des Nullmodemkabels kann eine Telefonleitung mit zwei Modems stehen; es kann auch eine Ethernetverbindung sein, für die spezielle Hardware in den Rechner eingebaut werden muß.

Modems

   Für das Ziel - die Anbindung eines Rechners oder eines lokalen Netzes an ein ,,Wide Area Network`` - kommt eigentlich nur die Vernetzung über das bestehende Telefonnetz in Betracht. Dabei gibt es noch die Wahl zwischen der üblichen analogen Telefonverbindung und den wesentlich schnelleren digitalen Verbindungen auf Basis von ISDN.[*]

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.[*]

Die technischen Daten

Wer heute ein Modem kaufen möchte, findet beim lokalen Hardwarehändler oder im Anzeigenteil der aktuellen Ausgabe irgendeiner Computerzeitschrift jede Menge Angebote. Dabei tauchen Fachbegriffe und Zahlen auf, deren Bedeutung sich eigentlich erst bei der Benutzung, also nach dem Kauf, erschließt. Weil diese Begriffe zwangsläufig auch in diesem Kapitel benötigt werden, werden die wichtigsten erklärt:

Baud / bps / cps
Diese Maßzahlen bezeichnen die    Datenübertragungsrate, also die Geschwindigkeit, mit der die Information über die serielle Leitung geschickt wird. Die Begriffe Baud und bps werden häufig synonym verwendet, genau genommen bezeichnen sie aber unterschiedliche Parameter. Während die alte Einheit Baud die Anzahl der Wechsel zwischen Mark und Space und damit so etwas wie die physikalische Frequenz der Datenimpulse bezeichnet, bezieht sich bps auf den Durchsatz logischer Datenbits.[*] Die Maßzahl cps (characters per second) bezeichnet die tatsächliche Geschwindigkeit der Zeichenübertragung. Das Verhältnis von bps zu cps hängt von den Leitungsparametern ab und beträgt meist 10:1.    
Zeichenlänge, Parität, Stopbits
Beim PC werden jeweils 8 Stellen für die Repräsentation eines Bytes verwendet, es gibt aber durchaus andere Architekturen, die mit nur 7 Bit/Zeichen arbeiten. Speziell für die Übertragung von Texten zwischen Datenverarbeitungsmaschinen kann die Anzahl der Datenbits von 5 bis 8 Bit/Zeichen eingestellt werden. Um Binärdaten ohne zusätzliche Behandlung zwischen zwei PCs übertragen zu können, müssen 8 Bit/Zeichen eingestellt werden. Bei der Verbindung von UNIX-Rechnern im internationalen UUCP-Netz werden gelegentlich nur 7 Bit/Zeichen als Standard verwendet.

  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.

8N1 / 7E1
Mit diesen Abkürzungen werden die beiden am häufigsten verwendeten Kombinationen für die Einstellung der Leitungsparameter bezeichnet. 8N1 bedeutet 8 Datenbits, keine Parität und 1 Stopbit, 7E1 bedeutet 7 Datenbits, gerade Parität und ein Stopbit.
MNP
(Microcom Networking Protocol) In der MNP Protokollfamilie   werden Verfahren zur Fehlerkorrektur (MNP2 bis MNP4) und zur Datenkompression (MNP5) festgelegt. Durch die automatische Fehlerkorrektur werden Übertragungsfehler bereits im Modem erkannt und die fehlerhaften Daten sofort neu angefordert. Durch die MNP5 Datenkompression werden die vom Computer gesendeten Bytes im Modem komprimiert, bevor sie durch das Nadelöhr - die Telefonleitung - geschickt werden. Auf der Gegenseite werden sie automatisch im Modem dekomprimiert. Mit MNP5 kann der Datendurchsatz unter günstigen Umständen verdoppelt werden. Dateien, die bereits mit compress oder gzip komprimiert sind, können von MNP5 nicht weiter gepackt werden. Falls es bei einem konkreten Modem sogar zu einer Verschlechterung der Übertragungsrate beim (MNP5-) Transfer komprimierter Dateien kommen sollte, können Sie für diesen Zweck die Datenkompression auch abschalten. Die dazu nötigen Befehle finden Sie in Ihrem Modemhandbuch.  
V42bis
Das V42bis ist ein Kompressionsverfahren wie MNP5. Die Kompressionsrate unkomprimierter Daten beträgt hier maximal 4.
FAX
Die bekannten ,,Telefonkopierer`` oder Faxgeräte benutzen im Prinzip die gleiche Modulation-Demodulation, wie sie in Modems zur Datenfernübertragung benutzt wird. Allein die Daten und das ,,Protokoll`` sind unterschiedlich.[*] Die geeignete Software zur Bearbeitung der FAX-Bilder und zur Steuerung des Modems vorausgesetzt, lassen sich viele moderne Modems auch zum Senden/Empfangen von FAXen verwenden. Unter Linux bietet das mgetty/sendfax-Paket von Gert Döring diese Funktionalität.
Hayes
Wie so häufig hat sich im Bereich der Modems ein herstellerspezifischer Befehlssatz zur Gerätesteuerung als Quasi-Standard etabliert. Im Bereich der Modems hat die Firma Hayes Microcomputer Products die Vorreiterrolle übernommen. Die meisten heute auf dem Markt befindlichen Modems sind Hayes-kompatibel, d.h. sie können mit den gleichen Befehlen programmiert werden wie die originalen Hayes-Modems. Die Hayes-Befehle sind leicht an dem typischen AT (für attention) als Einleitung für alle Befehle zu erkennen. Besonders wichtig sind die Befehle ATZ zum Reset des Modems und ATDP1234567 zum (Puls-)Wählen der Telefonnummer 1234567. Eine vollständige Erklärung aller Modemkommandos finden Sie im Gerätehandbuch des Herstellers.
Handshake
Als Handshaking werden Verfahren zur Datenflußkontrolle bezeichnet. Bei der Verbindung Rechner-Modem-Modem-Rechner kann es leicht zu einer Situation kommen, wo ein Glied der Kette die Daten nicht so schnell verarbeiten kann, wie sie geschickt werden. Besonders am ,,Nadelöhr`` Telefonleitung kann es leicht zu so einem Datenstau kommen. Um das Überlaufen des Empfangspuffers und damit den Datenverlust zu verhindern, gibt es zwei gängige Methoden zur Datenflußkontrolle. Beim XON/XOFF Softwarehandshaking werden bestimmte Zeichen gesendet, um den Transfer von Zeichen zu drosseln (0x13 (^S) zum Anhalten und 0x11 (^Q) zum Starten). Diese Methode ist nur zum Übertragen von reinen Texten, zum Beispiel von ASCII-Terminals oder zu Druckern, geeignet, die diese Steuerzeichen nicht ,,aus Versehen`` enthalten.

  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.

 

Carrier
Wenn eine Datenverbindung zwischen zwei Modems aufgebaut wird, senden beide Modems je einen Trägerton - den sogenannten Carrier - auf dem sie die zu übertragenden Daten aufmodulieren. Auch wenn keine Daten gesendet werden, kann ein Modem durch den Empfang des unmodulierten Carriers eine bestehende Verbindung erkennen. Solange dieser Ton auf der Telefonleitung empfangen wird, setzt das Modem die ,,Carrier Detect``-Leitung des RS232 Kabels auf HIGH und signalisiert dem Computer so eine bestehende Verbindung.  
Break
Ein Break ist ein spezielles Signal (keine Bitsequenz), mit der eine Ausnahmeroutine (Interrupt) bei der empfangenden Stelle ausgelöst werden kann. Der getty-Dämon benutzt dieses Signal zum Umschalten zwischen verschiedenen Leitungsgeschwindigkeiten beim Identifizieren einer ankommenden Modemverbindung.
CR/NL
Der bei der Eingabe von Befehlen und Texten selbstverständlich notwendige Zeilenabschluß durch die RETURN-Taste wird nicht von allen seriellen Geräten gleich behandelt. Die in diesem Zusammenhang verwendeten Begriffe haben ihren Ursprung in der Zeit, als für die Datenausgabe noch Drucker und elektrische Schreibmaschinen verwendet wurden. Um eine neue Zeile zu beginnen, müssen bei diesen Geräten zwei Schritte ausgeführt werden: die Papiertransportwalze muß das Papier eine Zeile vorschieben und der Druckkopf (Wagen) muß an den linken Rand zurückgefahren werden. Im ASCII-Standard sind Steuerzeichen für beide Bewegungen definiert. Der Wagenrücklauf (Carriage Return) wird von ASCII 0x0D (^M) ausgelöst, der Zeilenvorschub (Line Feed) von ASCII 0x0A (^J).

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.

Kabelsalat

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.


 

Steckerbelegung RS232
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.

  

Serielle Schnittstellen

  Der Standard-PC ist mit einer Multi-IO-Karte ausgerüstet, auf der manchmal der Festplatten- und Floppycontroller, meistens ein Drucker- und ein Gameport sowie zwei serielle Schnittstellen untergebracht sind.

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.

16550 UART

  Zu dem 16450/8250 UART Chip existiert ein pinkompatibler Bruder, der 16550AFN UART von National Semiconductor.[*] Dieser Chip hat einem 16 Byte großen FIFO-Puffer.  

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.

Mehrportkarten und Karten auf anderen Adressen/Interrupts

  Um mehr als zwei serielle Geräte betreiben zu können, unterstützt Linux spezielle Mehrportkarten, die durch geeignete Schaltung mehrere Schnittstellen mit nur einem Hardware-Interrupt betreiben, und solche Karten, die auf anderen Interrupts/IO-Ports arbeiten. Ohne Anspruch auf Vollständigkeit sind das AST FourPort und Accent Async Boards sowie die BOCA 4- und 8-Port Karten.

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.  


next up previous contents index
Next: Kontaktaufnahme Up: Datenreisen und reisende Daten Previous: Datenreisen und reisende Daten

Das Linux Anwenderhandbuch
(C) 1997 LunetIX