Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

stty(1)

ioctl(2)

termio(7)

termiox(7)                                                       termiox(7)

NAME
     termiox - Erweiterte allgemeine Terminal-Schnittstelle

BESCHREIBUNG
     Die erweiterte allgemeine Terminal-Schnittstelle ergänzt die allge-
     meine Terminal-Schnittstelle termio(7) um Protokolle für die asyn-
     chrone hardware-seitige Flußsteuerung, die isochrone Flußsteuerung,
     die Taktsteuerung sowie die lokalen Implementierungen von zusätzlichen
     asynchronen Funktionen. Einige Systeme sind aufgrund ihrer Hard- und
     Softwareausstattung zur Nutzung nur eines Teils der beschriebenen Mög-
     lichkeiten in der Lage. Auf anderen Systemen können bestimmte Funktio-
     nen möglicherweise nicht deaktiviert werden. In diesen Fällen werden
     die entsprechenden Bits ignoriert. Ermitteln Sie die von Ihrem System
     unterstützten Möglichkeiten anhand von <termiox.h>.

   Protokolle für die hardware-seitige Flußsteuerung
     Die hardware-seitige Flußsteuerung ergänzt die termio(7)-Flags IXON,
     IXOFF und IXANY zur Steuerung der Dateneingabe. Steuerung der Daten-
     eingabe bedeutet, daß ein Gerät die Datenübertragung eines anderen
     Geräts steuert, indem es Steuerzeichen in den Datenstrom zwischen den
     Geräten einfügt. Hardware-seitige Flußsteuerung bedeutet, daß ein
     Gerät die Datenübertragung eines anderen Geräts mit Hilfe von elektri-
     schen Steuerungssignalen an Leitungen (Schaltungen) der asynchronen
     Schnittstelle steuert. Isochrone hardware-seitige Flußsteuerung bedeu-
     tet, daß ein Gerät die Datenübertragung eines anderen Geräts durch die
     Bestätigung bzw. das Zurücksetzen der Sendeschrittakt-Signale dieses
     Geräts steuert. Die Steuerung der Dateneingabe und die hardware-sei-
     tige Flußsteuerung können gleichzeitig benutzt werden.

     Für asynchrone Vollduplex-Verbindungen erfolgt die hardware-seitige
     Flußsteuerung in der Regel über die im EIA-Standard RS-232-D definier-
     ten Datenleitungen RTS (Request To Send = Sendeanforderung) und CTS
     (Clear To Send = Sendebereitschaft). Damit auch mit anderen Methoden
     zur hardware-seitigen Flußsteuerung gearbeitet werden kann, wird eine
     Standardschnittstelle zu diesen Methoden zur Verfügung gestellt.

     Der EIA-Standard RS-232-D definiert lediglich die unidirektionale
     hardware-seitige Flußsteuerung - die Leitung DCE (Data Circuit-
     terminating Equipment bzw. Data Communications Equipment = Datenüber-
     tragungseinrichtung) weist die DTE (Data Terminal Equipment = Daten-
     endeinrichtung) zur Beendigung der Datenübertragung an. Die
     termiox(7)-Schnittstelle unterstützt sowohl die unidirektionale als
     auch die bidirektionale hardware-seitige Flußsteuerung. Nach der Akti-
     vierung der bidirektionalen Flußsteuerung können DCE- und DTE sich
     gegenseitig über die Schnittstelle zur Beendigung der Datenübertragung
     anweisen. HINWEIS: Es wird davon ausgegangen, daß der asynchrone
     Anschluß als DTE-Leitung konfiguriert ist. Wenn es sich auch bei dem
     angeschlossenen Gerät um ein DTE und nicht um ein DCE handelt, so kann
     die hardware-seitige Flußsteuerung von DTE zu DTE (z. B. einem an den
     Rechner angeschlossenen Terminal oder Drucker) über ein Null-Modem
     realisiert werden, durch das die entsprechenden Daten- und Steuerlei-
     tungen miteinander verbunden werden.



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

termiox(7)                                                       termiox(7)

   Protokolle zur Steuerung der Taktleitungen
     Die isochrone Datenübertragung ist eine Variante der asynchronen
     Datenübertragung, bei der zwei miteinander kommunizierende Geräte
     Taktsignale austauschen (senden und empfangen) können. Die eingehenden
     Taktsignale können entweder vom Baudraten-Generator auf dem lokalen
     isochronen Anschluß-Controller übernommen werden, von CCITT V.24
     Schaltung 114, Sendeschrittakt, mit Richtung: von der DCE (EIA RS-
     232-D Kontakt 15), oder von CCITT V.24 Leitung 115, Empfangsschritt-
     takt, mit Richtung: von der DCE (EIA RS-232-D Kontakt 17). Die abge-
     henden Taktsignale können entweder über CCITT V.24 Schaltung 113, Sen-
     deschrittakt, mit Richtung: von der DTE (EIA RS-232-D Kontakt 24),
     über CCITT V.24 Schaltung 128, Empfangsschrittakt, mit Richtung: von
     der DTE (kein entsprechender EIA RS-232-D Kontakt) oder überhaupt
     nicht übermittelt werden.

     Zur Steuerung der Taktleitungen wird bei asynchronen Datenübertragun-
     gen bisher einfach der lokale Baudraten-Generator als Quelle für den
     eingehenden Sende-und Empfangstakt benutzt; es findet keine Ausgabe
     von Taktsignalen statt.

   Terminal-Parameter
     Die Parameter zu Steuerung der Geräte, aus denen sich die termiox-
     Schnittstelle zusammensetzt, sind in der termiox-Struktur festgelegt,
     die in der Include-Datei <sys/termiox.h> definiert ist. Auf diese
     Struktur wird durch eine Reihe von ioctl(2)-Funktionen zugegriffen,
     die diese Parameter abfragen und benutzen:

     #define NFF 5
     struct termiox
     {
         unsigned short xhflag;       /* Protokolle für die hardware-
                                          seitige Flußsteuerung        */
         unsigned short xcflag;       /* Protokolle zur Steuerung der
                                          Taktleitungen                */
         unsigned short xrflag[NFF];  /* Reservierte Modi             */
         unsigned short xsflag;       /* Frei für lokale Modi         */
     };

     Im Feld xhflag werden die Protokolle für die hardware-seitige Fluß-
     steuerung angegeben:

     RTSXOFF   0000001   Für die Eingabe RTS-Protokoll benutzen.
     CTSXON    0000002   Für die Ausgabe CTS-Protokoll benutzen.
     DTRXOFF   0000004   Für die Eingabe DTR-Protokoll benutzen.
     CDXON     0000010   Für die Ausgabe CD-Protokoll benutzen.
     ISXOFF    0000020   Für die Eingabe isochrones Protokoll benutzen.

     Über die EIA RS-232-D-Leitungen DTR (Data Terminal Ready - Datenendge-
     rät bereit) und CD (Carrier Detect - Empfangssignalpegel) kann eine
     Verbindung zwischen zwei Systemen aufgebaut werden. Über die RTS-
     Leitung kann außerdem eine Verbindung mit einem Modem aufgebaut wer-
     den. Somit wird sowohl die DTR- als auch die RTS-Leitung beim Öffnen


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

termiox(7)                                                       termiox(7)

     eines asynchronen Anschlusses aktiviert. Wenn die DTR-Leitung für die
     hardware-seitige Flußsteuerung benutzt wird, muß die RTS-Leitung zum
     Verbindungsaufbau benutzt werden. Wenn die CD-Leitung für die hard-
     ware-seitige Flußsteuerung benutzt wird, muß die CTS-Leitung zum Ver-
     bindungsaufbau benutzt werden. Somit können die RTS- und die DTR-
     Leitung (bzw. die CTS- und die CD-Leitung) nicht gleichzeitig für die
     hardware-seitige Flußsteuerung benutzt werden. Ausgeschlossen sind
     auch andere Kombinationen wie z. B. das gleichzeitige Setzen des
     termio(7)-Bits HUPCL und des termiox(7)-Bits DTRXOFF; bei diesen Bits
     wird die DTR-Leitung für unterschiedliche Funktionen benutzt.

     Für die verschiedenen Methoden zur hardware-seitigen Flußsteuerung
     stehen verschiedene Varianten zur Verfügung, die durch das Setzen der
     entsprechenden Bits ausgewählt werden. So muß beispielsweise zur Wahl
     der bidirektionalen Flußsteuerung über das RTS/CTS-Protokoll sowohl
     das RTSXOFF- als auch das CTSXON-Bit gesetzt werden; zur Wahl der
     bidirektionalen Flußsteuerung über das DTR/CTS-Protokoll muß sowohl
     das DTRXOFF- als auch das CTSXON-Bit gesetzt werden. Zur Wahl der
     Modemsteuerung oder der unidirektionalen hardware-seitigen Flußsteue-
     rung über das CTS-Protokoll dagegen muß nur das CTSXON-Bit gesetzt
     werden.

     Wie bereits erwähnt, wird davon ausgegangen, daß der lokale asynchrone
     Anschluß (z. B. des Rechners) als DTE-Leitung konfiguriert ist. Wenn
     das angeschlossene Gerät (z. B. ein Drucker) ebenfalls als DTE konfi-
     guriert ist, wird davon ausgegangen, daß das Gerät an den asynchronen
     Anschluß des Rechners über ein Null-Modem angeschlossen ist, durch das
     die Steuerleitungen (im Normalfall RTS und CTS) vertauscht werden. Da
     das angeschlossene DTE die RTS-Leitung ansteuert und das Null-Modem
     RTS und CTS vertauscht, wird das Remote-RTS-Signal von der lokalen DTE
     als CTS-Signal empfangen. Wäre das CTSXON-Bit gesetzt (d. h. würde das
     CTS-Protokoll zur hardware-seitigen Flußsteuerung verwendet), hätte
     das Deaktivieren der RTS-Leitung durch den Drucker das Deaktivieren
     der CTS-Leitung auf Rechnerseite zur Folge. Die Ausgabe an den Drucker
     würde dann angehalten, bis der seine RTS-Leitung aktiviert, wodurch
     die CTS-Leitung auf Rechnerseite ebenfalls aktiviert würde.


















Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

termiox(7)                                                       termiox(7)

     Wenn RTSXOFF gesetzt ist, wird die RTS-Schaltung (-Leitung) aktiviert;
     wenn die Eingabe am asynchronen Anschluß unterbrochen werden muß, wird
     seine RTS-Leitung deaktiviert. Beim Deaktivieren der RTS-Leitung wird
     davon ausgegangen, daß das angeschlossene Gerät seine Ausgabe so lange
     unterbricht, bis die RTS-Leitung wieder aktiviert wird.

     Wenn CTSXON gesetzt ist, kommt es erst nach der Aktivierung der CTS-
     Schaltung (Leitung) durch das angeschlossene Gerät zu einer Ausgabe.
     Wenn die CTS-Leitung durch das angeschlossene Gerät deaktiviert wird,
     wird die Angabe bis zur Aktivierung der CTS-Leitung unterbrochen.

     Wenn DTRXOFF gesetzt ist, wird die DTR-Schaltung (Leitung) aktiviert;
     wenn die Eingabe am asynchronen Anschluß unterbrochen werden muß, wird
     seine DTR-Leitung deaktiviert. Wenn die DTR-Leitung durch das ange-
     schlossene Gerät deaktiviert wird, wird die Angabe bis zur Aktivierung
     der DTR-Leitung unterbrochen.

     Wenn CDXON gesetzt ist, kommt es erst nach der Aktivierung der CD-
     Leitung durch das angeschlossene Gerät zu einer Ausgabe. Wenn die CD-
     Leitung durch das angeschlossene Gerät deaktiviert wird, wird die Aus-
     gabe so lange angehalten, bis die CD-Leitung wieder aktiviert wird.

     Wenn ISXOFF gesetzt ist und die Eingabe am isochronen Anschluß unter-
     brochen werden muß, wird das Senden des Taktsignals ebenfalls unter-
     brochen. Es wird davon ausgegangen, daß das angeschlossene Gerät die-
     ses Taktsignal zur Generierung seiner Ausgabe benutzt. Die Quellen für
     den Sende- und Empfangstakt werden in den xcflag-Feldern angegeben.
     Wenn der Anschluß nicht für die externe Taktgenerierung programmiert
     ist, wird ISXOFF ignoriert. Die isochrone Flußsteuerung für die Aus-
     gabe wird durch die Angabe des Taktgenerators im Feld xcflag ermög-
     licht und am angeschlossenen Remote-Gerät aktiviert.

     Im Feld xcflag wird angegeben, nach welcher Methode die Taktraten
     eingestellt werden.

     XMTCLK      0000007   Quelle für Sendetaktrate:
     XCIBRG      0000000   Sendetaktrate wird vom eingebauten Baudraten-
                           Generator erzeugt.
     XCTSET      0000001   Die Sendetaktrate wird der Sendeschrittakt-
                           Leitung (DCE als Quelle) entnommen, CCITT V.24
                           Schaltung 114, EIA RS-232-D Kontakt 15.
     XCRSET      0000002   Die Sendetaktrate wird der Empfangsschrittakt-
                           Leitung (DCE als Quelle) entnommen, CCITT V.24
                           Schaltung 115, EIA RS-232-D Kontakt 17.
     RCVCLK      0000070   Quelle für Empfangstaktrate.
     RCIBRG      0000000   Die Empfangstaktrate wird vom eingebauten
                           Baudraten-Generator erzeugt.







Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

termiox(7)                                                       termiox(7)

     RCTSET      0000010   Die Empfangstaktrate wird der Sendeschrittakt-
                           Leitung (DCE als Quelle) entnommen, CCITT V.24
                           Schaltung 114, EIA RS-232-D Kontakt 15.
     RCRSET      0000020   Die Empfangstaktrate wird der Empfangsschritt-
                           takt-Leitung (DCE als Quelle) entnommen, CCITT
                           V.24 Schaltung 115, EIA RS-232-D Kontakt 17.
     TSETCLK     0000700   Sendeschrittakt-Leitung (Richtung: von der DTE),
                           CCITT V.24 Schaltung 113, EIA-232-D Kontakt 24,
                           Quelle für Taktrate:
     TSETCOFF    0000000   Keine Taktrate an Sendeschrittakt-Leitung ver-
                           fügbar.
     TSETCRBRG   0000100   Die Taktrate, die vom Generator für die empfan-
                           gene Baudrate erzeugt wird, wird auf Schaltung
                           113 ausgegeben.
     TSETCTBRG   0000200   Die Taktrate, die vom Generator für die gesen-
                           dete Baudrate erzeugt wird, wird auf Schaltung
                           113 ausgegeben.
     TSETCTSET   0000300   Sendeschrittakt (Richtung: von der DCE) auf
                           Schaltung 113 ausgeben.
     TSETCRSET   0000400   Empfangsschrittakt (Richtung: von der DCE) auf
                           Schaltung 113 ausgeben.
     RSETCLK     0007000   Empfangsschrittakt (Richtung: von der DTE),
                           CCITT V.24 Schaltung 128, kein entsprechender
                           EIA RS-232-D Kontakt, Quelle für Taktrate:
     RSETCOFF    0000000   Keine Taktrate an Empfangsschrittakt-Leitung
                           verfügbar.
     RSETCRBRG   0001000   Takt des Generators für die empfangene Baudrate
                           auf Schaltung 128 ausgeben.
     RSETCTBRG   0002000   Takt des Generators für die gesendete Baudrate
                           auf Schaltung 128 ausgeben.
     RSETCTSET   0003000   Empfangsschrittakt (Richtung: von der DCE) auf
                           Schaltung 128 ausgeben.
     RSETCRSET   0004000   Empfangsschrittakt (DCE) auf Schaltung 128 aus-
                           geben.

     Wenn das Feld XMTCLK den Wert XCIBRG enthält, wird der Sendetakt wie
     bei der normalen asynchronen Datenübertragung durch den eingebauten
     Baudraten-Generator (Hardware) generiert. Bei XMTCLK = XCTSET wird die
     Sendetaktrate der Sendeschrittakt-Schaltung (Richtung: von der DCE)
     entnommen. Bei XMTCLK = XCRSET wird die Sendetaktrate der Empfangs-
     schrittakt-Schaltung (Richtung: von der DCE) entnommen.

     Wenn im Feld RCVCLK der Wert RCIBRG enthalten ist, wird die Empfangs-
     taktrate wie bei der normalen asynchronen Datenübertragung vom einge-
     bauten Baudraten-Generator generiert. Bei RCVCLK = RCTSET wird die
     Empfangstaktrate der Sendeschrittakt-Schaltung (Richtung: von der DCE)
     entnommen. Bei RCVCLK = RCRSET wird die Empfangstaktrate der Empfangs-
     schrittakt-Schaltung (Richtung: von der DCE) entnommen.






Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

termiox(7)                                                       termiox(7)

     Wenn im Feld TSETCLK der Wert TSETCOFF enthalten ist, wird die Sende-
     schrittakt-Schaltung (Richtung: von der DTE) nicht angesteuert. Bei
     TSETCLK = TSETCRBRG wird die Sendeschrittakt-Schaltung (Richtung: von
     der DTE) durch den Generator für die empfangene Baudrate angesteuert.
     Bei TSETCLK = TSETCTBRG wird die Sendeschrittakt-Schaltung (Richtung:
     von der DTE) durch den Generator für die gesendete Baudrate angesteu-
     ert. Bei TSETCLK = TSETCTSET wird die Sendeschrittakt-Schaltung (Rich-
     tung: von der DTE) durch den Sendeschrittakt (Richtung: von der DCE)
     angesteuert. Bei TSETCLK = TSETCRBRG wird die Sendeschrittakt-Schal-
     tung (Richtung: von der DTE) durch den Empfangsschrittakt (Richtung:
     von der DCE) angesteuert.

     Wenn im Feld RSETCLK der Wert RSETCOFF enthalten ist, wird die
     Empfangsschrittakt-Schaltung (Richtung: von der DTE) nicht angesteu-
     ert. Bei RSETCLK = RSETCRBRG wird die Empfangsschrittakt-Schaltung
     (Richtung: von der DTE) durch den Generator für die empfangene Bau-
     drate angesteuert. Bei RSETCLK = RSETCTBRG wird die Empfangsschritt-
     takt-Schaltung (Richtung: von der DTE) durch den Generator für die
     gesendete Baudrate angesteuert. Bei RSETCLK = RSETCTSET wird die
     Empfangsschrittakt-Schaltung (Richtung: von der DTE) durch den Sende-
     schrittakt (Richtung: von der DCE) angesteuert. Bei RSETCLK =
     RSETCRBRG wird die Empfangsschrittakt-Schaltung (Richtung: von der
     DTE) durch den Empfangsschrittakt (Richtung: von der DCE) angesteuert.

     Das Feld xrflag ist für zukünftige Schnittstellen-Definitionen reser-
     viert und sollte nicht für implementierungs-spezifische Definitionen
     benutzt werden. Das Feld xsflag kann für lokale, implementierungs-
     spezifische Definitionen genutzt werden, wenn die Terminal-Schnitt-
     stelle mit den ioctl-Systemaufrufen der termiox(7)-Schnittstelle an
     individuelle Anforderungen angepaßt werden soll.

IOCTL-Funktionsaufrufe
     Die ioctl(2)-Funktionsaufrufe haben folgendes Format:

          ioctl(fildes, command, arg)
          struct termiox *arg;

     Dieses Format wird durch folgende Kommandos benutzt:

     TCGETX       Das Argument ist ein Zeiger auf eine termiox-Struktur.
                  Die aktuellen Terminal-Parameter werden abgefragt und in
                  dieser Struktur abgespeichert.

     TCSETX       Das Argument ist ein Zeiger auf eine termiox-Struktur.
                  Die aktuellen Terminal-Parameter werden aufgrund der in
                  dieser Struktur gespeicherten Werte festgelegt. Die Ände-
                  rung wird sofort wirksam.







Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

termiox(7)                                                       termiox(7)

     TCSETXW      Das Argument ist ein Zeiger auf eine termiox-Struktur.
                  Die aktuellen Terminal-Parameter werden aufgrund der in
                  dieser Struktur gespeicherten Werte festgelegt. Die Ände-
                  rung wird wirksam, sobald alle Zeichen in der Ausgabewar-
                  teschlange übertragen worden sind. Dieses Format eignet
                  sich zur Änderung von ausgabe-relevanten Parametern.

     TCSETXF      Das Argument ist ein Zeiger auf eine termiox-Struktur.
                  Die aktuellen Terminal-Parameter werden aufgrund der in
                  dieser Struktur gespeicherten Werte festgelegt. Die Ände-
                  rung wird wirksam, sobald alle Zeichen in der Ausgabewar-
                  teschlange übertragen und alle Zeichen in der Eingabewar-
                  teschlange gelöscht worden sind.

DATEIEN
     /dev/*

SIEHE AUCH
     stty(1), ioctl(2), termio(7).



































Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026