Im Normblatt IEEE Std. 1284-1994 Stan-
dard Signaling Method for a Bi-direc-
tional Parallel Peripheral Interface for
Personal Computers sind die Grundre-
geln für einen modernen bidirektiona-
len Druckeranschluß festgelegt. Dieser
Standard beschreibt ein Konzept für
eine sehr schnelle bidirektionale Ver-
bindung, deren Kommunikation um
den Faktor 50...100 schneller ist als
über den alten parallelen Port. Der
neue Port ist aber abwärtskompatibel
zu der alten parallelen Schnittstelle, so
daß auch herkömmliche Drucker
angeschlossen werden können. Bevor
wir uns also näher mit dem Konzept von
IEEE1284 eingehen, lohnt sich ein Blick
auf das parallele Standard-Interface.
IBM voran
Als IBM 1981 den PC auf dem Markt
einführte, zog man einen schnellen
parallelen 8-bit-Port dem schon damals
überaus populären seriellen RS232-
Interface vor. Zu dieser Zeit war der
Drucker zwar nicht das einzige, wohl
aber das bedeutendste Periphe-
riegerät, das an der paralle-
len Schnittstelle Anschluß
fand. Im Laufe des letz-
ten Jahrzehnts sind
aber immer mehr für
den Normalbürger
erschwingliche (und
brauchbare) Peri-
pheriegeräte zum
PC hinzugekom-
men: Scanner, CD-
ROM-Lauf werke,
portable Band-,
Disketten- und Fest-
plattenlauf werke
und viele andere
mehr.
Die Probleme, mit
denen sich Entwickler
neuer Systemhardware
herumschlagen müssen, las-
sen sich in drei Kategorien
unterteilen. Das erste Problem ist
die Geschwindigkeit der Datenüber-
tragung, die seit Anbeginn bei etwa
150 Kbyte/s steckengeblieben ist.
Gleichzeitig sind aber nicht nur die PCs
leistungsfähiger geworden, sondern
auch die zu übertragenden Datenmen-
gen größer. Das zweite Problem liegt in
der fehlenden Normung der elektri-
schen Kennwerte. Dadurch entstehen
Kompatibilitätsprobleme zwischen ver-
schiedenen Plattformen. Schließlich, als
drittes Manko, wäre die wegen der feh-
lenden Standardisierung auf 1,5 m
beschränkte Kabellänge zu nennen (für
einen sicheren Betrieb auch im Worst-
case-Fall).
X-2 - 4/98 Elektor
EXTRA
————————————————————
PC-P
LUS
Jeder moderner Computer verfügt über eine fort-
schrittliche parallele IEEE1284-Schnittstelle. Dank die-
ses Interfaces kann die Druckerschnittstelle für mehr
genutzt werden als nur zur Ansteuerung eines
Druckers. In vielerlei Hinsicht rücken die Möglichkeiten
des IEEE1284-Interfaces in die Nähe eines 8-bit-SCSI-
Anschlusses.
Die moderne
Druckerschnittstelle
IEEE1284 gewinnt Terrain
Aus diesem Grund fanden sich 1991 die
wichtigsten Druckerhersteller zusammen,
um eine Diskussion über einen neuen
Standard zu beginnen. Die Beteiligten,
unter anderen Lexmark, IBM und Texas
Instruments, bildeten die Network Prin-
ting Alliance (NPA), die zunächst eine
Anzahl von Parametern definierte, um
eine vollständige Steuerung des
Druckers zu ermöglichen. Schnell wurde
aber klar, daß die herkömmliche
Druckerschnittstelle nicht in der Lage
sein konnte, diese Aufgaben zu über-
nehmen. Ein neues paralleles Hochlei-
stungsinterface muß her!
Auf Initiative der IEEE hat die NPA
schließlich eine neue PC-Schnittstelle
für bidirektionale Hochgeschwindig-
keitskommunikation entworfen. Kern-
punkte des neuen Ports: Hard- und Soft-
warekompatibilität mit bestehenden
Programmen und Geräten und ein
Datenstrom von wenigstens 1 MByte/s in
beide Richtungen. Die Arbeitsgruppe,
die den schönen Namen IEEE1284
erhielt, konnte im März 1994 den end-
gültigen IEEE1284-Standard der Öffent-
lichkeit vorstellen.
Der parallele Port
Die parallele Schnittstelle eines PCs ver-
fügt über 17 Signal- und acht Masse-
leitungen. Die Signale sind auf vier
Steuer-, fünf Status- und acht Datenlei-
tungen verteilt.
Im Grundkonzept verläuft über die Steu-
erleitungen die Steuerung des Druckers
sowie dessen Handshaking. Die Status-
leitungen spielen beim Handshaking
ebenfalls eine Rolle, identifizieren Inter-
face- und Maschinenfehler und führen
außerdem das Busy-Signal des
Druckers. Die Datenleitungen dienen
natürlich zum Transport der Daten zum
Drucker, erst nur in diese, später in
beide Richtungen.
In
Tabelle 1 sind die Signale einer Stan-
dard Parallele Port (SPP) aufgelistet. Die
Schnittstelle selbst besitzt eine Basis-
adresse im I/O-Bereich sowie drei Posi-
tionen. Diese Basisadressen werden oft
LPT-Adressen genannt und können
3BC
H
, 378
H
und 278
H
sein. Neue
Anwendungen der parallelen Schnitt-
stelle unterstützen schon den erweiter-
ten Modus der IEEE1284-Norm und
PC-P
LUS
————————————————————
Elektor
EXTRA
X-3 - 4/98
982041 - 11
Data Lines
Data Valid
BUSY
1
STROBE
ACK
2
3
4
982041 - 12
BITS 5 - 8
Host Busy
PtrClk
DataAvail
XFlag
AckDataReq
PtrBusy
3
4
5
6
2
1
BITS 1 - 4
Anzeige
Tabelle 1. Signaldefinitionen
SPP-Signal
Nibble
Mode
Byte Mode
EPP Mode
ECP Mode
Pin (DB25)
In/Out
Strobe\
Strobe\
HostClk
Write\
HostClk
1
Out
AutoFeed\
HostBusy
HostBusy
DataStb\
HostAck
14
Out
SelectIn\
1284Active
1284Active
AddrStb\
1284Active
17
Out
Init\
Init\
Init\
Reset\
ReverseRequest\
16
Out
Ack\
PtrClk
PtrClk
Intr\
PeriphClk
10
In
Busy
PtrBusy
PtrBusy
Wait\
PeriphAck
11
In
PE
AckDataReq AckDataReq UserDefined
AckReverse\
12
In
Select
Xflag
Xflag
UserDefined
Xflag
13
In
Error\
DataAvail\
DataAvail\
UserDefined PeriphRequest\
15
In
Data[8:1]
NotUsed
Data[8:1]
AD[8:1]
Data[8:1]
2-9
\ = aktiv Low
Bild 1. Das Timing des Standard Parallel Port SPP.
Bild 2. Datenverarbeitung im Nibble-Modus. Um acht Datenbits zu verschicken, sind zwei
Zyklen nötig.
gebrauchen acht bis 16 Positionen ab
den I/O-Adressen 378
H
oder 278
H
.
Manchmal, beispielsweise bei einem
Plug-and-Play-kompatiblen parallelen
Adapter, kann man die Adreßzuwei-
sung auch modifizieren.
IEEE1284 im Ansatz
Der IEEE1284-Modus kennt unter-
schiedliche Kommunikationsmodi. So
können die Modi Compatibility (ent-
spricht SPP) und Nibble mit jeder paral-
lelen Schnittstelle realisiert werden. Sie
ermöglichen den Datenaustausch in
zwei Richtungen. Mit den Modi Com-
patibility und Byte kann ein Datenkanal
in zwei Richtungen geöffnet werden,
allerdings muß der Port den Byte-Modus
unterstützen, also auch ein Byte von
den externen Datenleitungen vom PC
lesen können. Üblicherweise wurde dies
durch ein Richtungsbit (direction bit) im
Control-Register erreicht. Parallele
Schnittstellen, die diese Unterstützung
bieten, nennt man bidirektionale.
Die Modi EPP und ECP unterstützen
Zweirichtungskommunikation als Teil des
Protokolls. Allerdings muß die Hardware
der Schnittstelle darauf vorbereitet sein,
Handshakesignale automatisch zu
erzeugen, ein unverzichtbarer Bestand-
teil bei schneller Kommunikation.
Schließlich bleibt noch anzumerken,
daß alle Modi mit Ausnahme des Com-
patibility-Modus die Statusleitungen mit
Bezeichnungen versieht, wie sie die
normgemäßen Funktionen vorschreiben.
Fünf Modi
Der IEEE1284-Standard definiert insge-
samt fünf Modi mit unterschiedlichen,
spezifischen Kommunikationsmöglich-
keiten. Die Kommunikation vom Com-
puter zum Drucker geschieht im Com-
patibility-Modus. Vollzieht sich die Kom-
munikation von der Außenwelt in
Richtung Computer, ist sowohl der Nib-
ble-Modus (4 Bit, kompatibel mit
Hewlett Packard Bi-tronics) und der
Byte-Modus (8 Bit) geeignet. Zweirich-
tungsverkehr ist möglich mit EPP und
ECP.
EPP (Enhanced Parallel Port) ist für die
Kombination mit Nicht-Druckern wie
CD-ROM-Laufwerke, Tapestreamer,
Festplatten, Netzwerke und so weiter
bestimmt, ECP (Extendet Capability
Port) dagegen ist eine verbesserte
Druckerschnittstelle für neuste Genera-
tion Drucker und Scanner.
Compatibility-, Nibble- und Byte-Modus
unterscheiden sich vor allem durch ihr
vollständig von der Software gesteuer-
tes Kommunikationsprotokoll vom EPP-
sowie vom ECP-Modus. Bei diesen bei-
den Modi sorgt die Hardware, soge-
nannte Super-I/O-Chips für die Daten-
kommunikation. Deswegen ist im EPP-
Modus auch ein einfacher OUT-Befehl
ausreichend, um Daten zum Periphe-
riegerät zu schicken.
Compatibility mode
Dieser Modus definiert ein Protokoll, mit
dem der PC Daten zum Drucker schickt.
Die bekannteste Bezeichnung für die-
ses Protokoll trägt den Namen des Erfin-
ders, des Druckerherstellers Centronics.
In diesem Modus werden zunächst
Daten auf die Datenleitungen gesetzt,
dann überprüft, daß der Drucker kei-
nen Fehler meldet und die Busy-Leitung
inaktiv hält. Ist dies der Fall, erfolgt ein
Strobe-Impuls. Dieser Vorgang ist in Bild
1 gut zu erkennen. In der Praxis ist mit
dieser Vorgehensweise eine maximale
Datenrate von 150 kByte/s zu erzielen.
Viele der integrierten 1284er I/O-Con-
troller gebrauchen ein FIFO, um den
Datenverkehr im Compatibiliy-Modus zu
regeln. Dies wird gerne als Fast Cen-
tronics oder Parallel Port FIFO Mode
bezeichnet. Ist der Modus freigegeben,
sorgt die Hardware für die Generierung
von Strobe-Impulsen und des komplet-
ten Handshakings. Auf diese Weise läßt
sich die Datenrate auf 500 kByte/s stei-
gern. Allerdings handelt es sich bei Fast
Centronics nicht um einen Teil der
IEEE1284-Norm.
Nibble-Mode
Der Nibble-Modus ist die am häufigsten
verwendete Variante, wenn Daten von
der Außenwelt zum PC gelangen sol-
len. Er wird häufig mit dem Compatibi-
lity-Modus kombiniert, um einen bidi-
rektionalen Kanal zu realisieren.
Vom normalen parallelen Port werden
fünf Leitungen für die Kommunikation
vom Peripheriegerät zum PC genutzt.
Das Gerät verschickt 8-bit-Daten zum
PC in Form von zwei aufeinanderfol-
genden Nibbles von vier Bit, wie das
Timingdiagramm in Bild 2 zeigt. Die
ACK\-Leitung des SPP-Modus heißt nun
PtrClk und hilft dem Peripheriegerät,
dem PC zu signalisieren, wenn ein gül-
tiges Nibble anliegt. Dadurch landen
die Bits der Nibble nicht in der logisch
richtigen Reihenfolge im Statusregister,
sondern müssen von der Software in
einem recht aufwendigen Rechenver-
fahren wieder in Reih und Glied
gebracht werden. Spalte 2 in Tabelle 1
gibt an, wie die Signalleitungen im
Nibble-Modus bezeichnet werden.
X-4 - 4/98 Elektor
EXTRA
———————————————————— PC-P
LUS
982041 - 13a
1
IOW
WRITE
DataStrobe
WAIT
Data <8:1>
2
3
4
5
6
7
Valid Data
982041 - 13b
Data
WAIT
AddrStrobe
WRITE
IOR
Valid
Bild 3. Timing eines Data_Write- und eines Address-Read-Zyklus in der EPP-Definition.
Wegen der recht rechenintensiven
Methode kann der Nibble-Modus kaum
eine höhere Übertragungsgeschwin-
digkeit als ungefähr 50 kByte/s erzielen.
Dies ist zwar für schnelle Peripherie wie
LAN-Adapter, Disketten- und CD-ROM-
Laufwerke deutlich zu wenig, dafür
funktioniert der Nibble-Modus auch
beim ältesten PC.
Byte-Mode
In späteren Versionen der parallelen
Schnittstelle sind die Hersteller dazu
übergegangen, spezielle Chips einzu-
setzen, die einen echten bidrektiona-
len Gebrauch ermöglichen. Ein Peri-
pheriegerät kann damit acht Bit am
Stück zum PC schicken, ohne dafür
zwei Zyklen wie im Nibble-Modus zu
benötigen.
Die Übertragungsgeschwindigkeit ist
vergleichbar mit der des Compatibility-
Modus, allerdings nun in beide Rich-
tungen. Die Spalte 3 in Tabelle 1 infor-
miert, welche Aufgaben die Leitungen
der Schnittstelle im Byte-Modus über-
nehmen.
EPP-Mode
Der Enhanced Parallel Port EPP wurde
in erster Instanz von den Firmen Intel,
Xircom und Zenith Data Systems ent-
wickelt, um einen parallelen Port zu
erhalten, der zwar kompatibel mit der
normalen Druckerschnittstelle ist, aber
eine deutlich höhere Leistungsfähigkeit
besitzt. Das gebrauchte Protokoll wurde
von Intel in den 386SX-Chipsatz (im
82360-I/O-Chip) aufgenommen. Die
Entwicklung des EPP-Modus fand also
schon vor dem IEEE1284-Standard statt.
Das Protokoll war seinerzeit dem SPP-
oder Nibble-Modus so weit überlegen,
daß es sehr viele Gerätehersteller nutz-
ten. Die Hersteller sorgten nicht nur für
eine ständige Weiterentwicklung, son-
dern auch für die Aufnahme des EPP-
Modus in die IEEE1284-Norm. Das EPP-
Protokoll kennt seinerseits vier Metho-
den, um Daten zu verschicken.
1. Data_Write Zyklus
2. Data_Read Zyklus
3. Address_Write Zyklus
4. Address_Read Zyklus
Die Datenzyklen haben zum Ziel, Daten
zwischen PC und Peripheriegerät zu
tauschen, während während der
Address-Zyklen Adreß-, Kanal-, Steue-
rinformationen und Befehle verschickt
werden. In Tabelle 1 findet man auch
für diesen Modus die Bedeutung der
Schnittstellenleitungen (Spalte 4). Bild 3
schließlich zeigt den Unterschied zwi-
schen einem Datenaustausch (Data-
Write) und einem Adreß-Austausch
(Address-Read).
Einer der entscheidenden Vorteile des
EPP-Mode ist, daß die komplette
Datenübertragung in einem ISA-I/O-
Zyklus abgehandelt werden kann. So
erhält man eine Übertragungsrate von
bis zu 2 MByte/s, so daß die Drucker-
schnittstelle in dieser Beziehung zur ech-
ten Konkurrenz einer Schnittstelle auf
einer ISA-Karte wird.
EPC-Mode
Die leistungsfähigste Variante, die im
Augenblick möglich ist, wird Extended
Capability Port, kurz EPC genannt. Das
Protokoll wurde von Hewlett Packard
und Microsoft für eine hochentwickelte,
sehr schnelle bidirektionale Kommuni-
kation zwischen PC und Drucker oder
Scanner entwickelt. Das EPC-Protokoll
kennt Datenzyklen und Befehlszyklen.
Die Befehlszyklen lassen sich wieder in
die beiden Typen Run Lenght Count
und Channel Address unterteilen. Was
das bedeutet, soll sogleich erläutert
werden.
Im Gegensatz zu EPP ist im ECP-Protokoll
auch eine Standardeinteilung der Regi-
ster definiert, die in dem von Microsoft
PC-P
LUS
————————————————————
Elektor
EXTRA
X-5 - 4/98
Tabelle 2. EPP-Registerdefinitionen
PortName
Offset
Mode
Read/Write
SPP Data
+0
SPP/EPP
W
SPP Status
+1
SPP/EPP
R
SPP Control
+2
SPP/EPP
W
EPP Address
+3
EPP
R/W
EPP Data
+4
EPP
R/W
Not Defined +5...+7
EPP
Tabelle 3. ECP-Registerdefinitionen
Offset
Name
Read/Write
ECP Mode
Function
000
Data
R/W
000-001
Data Register
000
ecpAfifo
R/W
011
ECP Address FIFO
001
dsr
R/W
all
Status Register
002
dcr
R/W
all
Control Register
400
cFifo
R/W
010
Parallel Port Data FIFO
400
ecpDfifo
R/W
011
ECP Data FIFO
400
tfifo
R/W
110
Test FIFO
400
cnfgA
R
111
Conf. Register A
401
cnfgB
R/W
111
Conf. Register B
402
ecr
R/W
all
Extended Control Register
Tabelle 4. ECP-Registermodi
Mode
Description
000
SPP mode
001
Bi-directional mode
010
Fast Centronics
011
ECP Parallel Port mode
100
EPP Parallel Port mode
101
(reserved)
110
Test mode
111
Configuration mode
Anzeige
veröffentlichten “The IEEE 1284 Exten-
ded Capabilities Port Protokoll and ISA
Interface Standard” beschrieben wird.
In diesem Dokument sind zusätzliche
Eigenschaften und Funktionen definiert,
die aus dem Rahmen der eigentlichen
IEEE1284-Norm fallen. Dazu gehören
beispielsweise Run Lenght Encoding
(RLE), Datenkompression für PC, FIFOs
für Kanäle in beide Richtungen, DMA
und programmierte I/Os für Computer.
Mit Hilfe von RLE ist ein Kompressionsfak-
tor von 64:1 realisierbar, ideal für Drucker-
und Scanneranwendungen, in denen
Dateien mit großen Blöcken von identi-
schem Informationsgehalt auftreten.
Channel Addressing, die Adressierung
von Kanälen, ist im Konzept ein Zusatz
zur Adressierung im EPP-Modus. Die
Technik wird bei Geräten angewandt,
die zwei oder mehr Funktionen in einem
Gehäuse vereinen, beispielsweise eine
Kombination von FAX, Drucker und
Modem. Die verschiedenen Funktionen
lassen sich durch das Channel-Protokoll
unabhängig voneinander und sogar
gleichzeitig bedienen, auch wenn das
Gerät physikalisch nur an einem paral-
lelen Port angeschlossen ist.
Auch im ECP-Modus werden den
Schnittstellenleitungen eigene Funktio-
nen zugewiesen, wie es in Tabelle 1,
Spalte 5 zu lesen ist. Die Registerdefini-
tionen des EPC-Modus sind in Tabelle
3 aufgelistet.
Die Microsoft-Spezifikation definiert eine
Zahl gemeinschaftlicher Register für
1284-Adapter, die über den ISA-Bus
angeschlossen sind und darüber hin-
aus ECP unterstützen. Daneben legt sie
auch eine Anzahl Modi fest, die das
Adapter unterstützt (Tabelle 2)
Das Registermodell des ECP ist ver-
gleichbar mit dem des Standard Par-
allele Port SPP, macht aber auch
Gebrauch von einer wichtigen Eigen-
schaft des ISA-Interfaces. In der nor-
malen IBM-Architektur wird nur die erste
der 1024 Register- oder I/O-Adressen
gebraucht, also der Adreßbereich von
0x000
H
bis 0x3FF
H
. Zur Adressierung die-
ses Bereichs sind zehn Adreßbits
(AD0...AD9) nötig. Um Kosten zu redu-
zieren, dekodieren ältere ISA-Karten die
Hardware mit Hilfe von Adreßsignalen
des ISA-Bus, so daß die Registerzahl
automatisch auf maximal 1024 festge-
legt wurde. Moderne PCs dekodieren
mehr Adreßbits und verfügen damit
über einen größeren I/O-Bereich.
Dadurch kann es vorkommen, daß der
erste I/O-Block in der Größe von 1 kByte
Teile doppelt adressiert werden, weil
diese Teile innerhalb des beschränkten
Adreßraums alter ISA-Karten Spiegela-
dressen von höheren Adressen formen.
Die Software kann diese neuen Bänke
adressieren, indem sie 1024 (0x400
H
)
zur Basisadresse addiert. Die neuen
Adressen liegen außerhalb des
ursprünglichen Adreßbereichs, kehren
aber gespiegelt wieder zurück. Zur
Demonstration: Das Selektieren der
Adressen 0x378
H
und 0x778
H
gewährt
bei neuen ISA-Karten Zugang zu zwei
Registern in zwei verschiedenen Bän-
ken, aber bei älteren ISA-Karten zwei-
mal Zugang zu demselben Register.
Der Vorteil dieses Aliasing genannten
Ansatzes ist, daß neue Karten quasi
unsichtbare Register aufweisen und
damit die maximale Anzahl verfügba-
rer Register vergrößern können. Regi-
ster, die von anderen I/O-Karten genutzt
werden, werden nicht gestört, so daß
neue Karten immer kompatibel bleiben
mit den alten, die nur zehn Adreßbits
dekodieren.
Das ECP-Registermodel macht
Gebrauch von der schon vorher
genannten Technik und definiert sechs
Register, die nur drei I/O-Adressen
benötigen (siehe Tabelle 3). Zwei Regi-
ster auf 0x000
H
und 0x400
H
besitzen je
nach Modus, in dem sie eingesetzt wer-
den, eine etwas differierende Benen-
nung und Funktion (siehe dazu auch
Spalte 4 von Tabelle 1). Der Modus muß
gewählt sein, bevor einer der Codes
aus dieser Tabelle zum Register 0x402
H
geschrieben wird.
Verbinder
Die Definitionen der EEE1284 beschrän-
ken sich aber nicht nur auf die Struktur
der Ports und der elektrischen Signale,
sondern enthalten auch mechanische
Spezifikationen der verwendeten Steck-
verbinder (Bild 4).
Für die parallele Schnittstelle werden
drei unterschiedliche Verbinder mit den
Bezeichnungen A, B und C verwendet.
Typ A ist der 25polige Sub-D-Verbinder,
wie er schon lange an PCs anzutreffen
ist, Typ B der bekannte 36polige Cen-
tronics-Verbinder, der in der Regel am
Drucker montiert ist. Platzsparender ist
aber Typ C, ein neuer 36poliger Mini-
Verbinder, der dank Clips einfach zu
befestigen und zu lösen ist. Ein weiterer
Vorteil des Typ-C-Verbinders ist, daß
zwei zusätzliche Leitungen (Peripheral
Logic High und Host Logic High) zur Ver-
fügung stehen. Mit diesen Signalen läßt
sich feststellen, ob das Gerät auf der
anderen Seite der Leitung überhaupt
eingeschaltet ist. Dadurch ist mit
IEEE1284 auch ein sicheres Power-
Management möglich.
(982041)rg
X-6 - 4/98 Elektor
EXTRA
———————————————————— PC-P
LUS
Bild 4. Das Foto zeigt die drei verschiedenen Verbinder, die mechanisch zur IEEE1284
passen.