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