IEEE 1284
Der IEEE 1284 Standard definiert eine parallele Schnittstelle zur bi-direktionalen Übertragung von Daten zwischen PCs und unterschiedlichen Peripheriegeräten (Drucker, Fax, Scanner, Laufwerke etc.). Der IEEE 1284 Standard wurde 1994 verabschiedet und löste damit offiziell die weitverbreitete Centronics-Schnittstelle aus den 1970er Jahren ab, die bis dato nur ein "Quasi-Standard" war. Der IEEE 1284 Standard definiert die elektrischen Eigenschaften der Schnittstellen, die zu verwendenden Hardware-Protokolle und die zugehörigen Kabel. Für die übergeordneten "Software Protokolle" wird auf die entsprechenden Substandards verwiesen. Teile der Sub-Standards betreffen Protokolle, die unabhängig von der Hardware-Schnittstelle sind und - neben der Parallel-Schnittstelle z.B. auch USB vorsehen (TIPSI).
IEEE 1384 und Substandards
- IEEE 1384 -Standard Signaling Method for a Bi-directional Parallel Peripheral Interface for Personal Computers. Wurde im Jahr 2000 erneuert.
- IEEE 1384.1-IEEE Standard for Information Technology -Transport Independent Printer/System Interface (TIP/SI). Wurde 1997 verabschiedet und 2003 bestätigt.
- IEEE 1384.1 Standard for Test, Measurement and Conformance to IEEE 1284. Wurde nicht verabschiedet.
- IEEE 1384.3-Standard for Interface and Protocol Extensions to IEEE Std. 1284-1994 Compliant Peripherals and Host Adapter. Wurde im Februar 2006 zurückgezogen.
- IEEE 1384.4-IEEE Standard for Data Delivery and Logical Channels for IEEE 1284 Interfaces. Basierend auf dem MLC-Protokoll von Hewlett-Packard (Multiple Locical Channels). Wurde im Februar 2006 zurückgezogen.
Schnittstellen
Der Standard sieht für die elektrischen Schnittstellen von Rechner (Host) und Peripheriegerät (Peripheral) zwei Stufen der Kompatibilität vor:
- Level 1 - Basiert auf der bis dato existenten Schnittstelle mit asymmetrischen 5 Volt TTL-Bausteinen ohne definierte Ausgangsimpedanz. Es werden lediglich einige Grenzwerte definiert. Pull-Up-Widerstände werden nicht zwingend vorgeschrieben.
- Level 2 - Eine deutlich verbesserte Schnittstelle. Ein Treiberausgang ist symmetrisch und hat eine Impedanz von 45-55 Ohm. Der Empfänger hat einen Pull-Up-Widerstand von 1,2 KOhm. Mit der Impedanz von 62 Ohm des IEEE 1284 Kabels ergibt diese Kombination ein ausgezeichnetes Verhalten bei Signalflanken (durch eine gewollte Reflexion). "Level 2"-Schnittstellen sind kompatibel mit "Level 1"-Schnittstellen.
Ein Produkt mit "Level 1"-Schnittstelle nennt sich "IEEE 1284 I", eines mit "Level 2"-Schnittstelle nennt sich "IEEE 1284 II".
Kabel und Stecker
Die IEEE 1284 definiert ein doppelt geschirmtes 36-adriges "Twisted Pair" Kabel mit 18 Aderpaaren.
Stecker
Drei mögliche Steckertypen werden verwendet:
- Typ A - Der bekannte 25-polige D-Sub-Stecker. Er wurde 1981 von IBM mit dem PC aus Platzgründen eingeführt. Gegenüber dem bis dato verwendeten 36-poligen "Centronics Stecker" ist der Hauptnachteil, dass nicht für jede Signalleitung eine korrespondierende Masseleitung (Twisted Pair Return) verfügbar ist.
- Typ B - Der bekannte 36-polige "Centronics"-Stecker.
- Typ C - Eine elektrisch verbesserte und kompaktere Variante des Centronics-Steckers, ebenfalls 36-polig mit "Schnappverriegelung", auch "Mini Centronics" genannt. Dieser Typ hat sich jedoch nicht durchgesetzt.
Jede Kombination dieser Steckverbinder ist möglich, ebenso die Verwendung von Steckern oder Buchsen am Kabel. Nach IEEE 1284-Terminologie ist beispielsweise ein "AB-Kabel" das klassische "IBM-Druckerkabel". Ein "AC-Kabel" hat rechnerseitig einen 25-poligen D-SUB Stecker und druckerseitig den neuen "Mini Centronics" Stecker. Eine andere (nicht offizielle) Schreibweise unterscheidet zusätzlich zwischen Buchse und Stecker. Dabei steht "M" für male (Stecker) und "F" für female (Buchse). Ein "AMAF-Kabel" ist somit ein Verlängerungskabel mit 25-poligem D-Sub-Stecker und 25-poliger D-Sub-Buchse.
Der IEEE 1284 Standard gibt dabei die Belegung der unterschiedlichen Kabel vor. Denn es ist wichtig, auch bei 25-poligen Steckern die Masseadern der Aderpärchen auf beiden Seiten zu erden, um die gewünschten elektrischen Eigenschaften zu erzielen.
Kabelmaterial
Die elektrischen Eigenschaften werden im Standard eindeutig spezifiziert. Die Aderpaare haben eine Impedanz von 62 Ohm. Das Übersprechen zwischen den Aderpaaren muss kleiner als 10% sein. Ebenso werden die Signal-Laufzeit und Laufzeit-Unterschiede zwischen den Aderpaaren definiert. Der doppelte Schirm besteht aus Kupfergeflecht (min. 85% Abdeckung) plus Folie. Ein Kabelmaterial, welches diese Eigenschaften erfüllt, darf den Aufdruck „IEEE Std 1284-1994 Compliant" tragen.
Kabellänge
Die Kabellänge errechnet sich mit den Worst-Case-Spezifikationen des Kabels und des Timings mit "Level 2" Schnittstelle auf theoretisch ca. 12 Meter. In der Praxis lassen die Hersteller von Druckern und Rechnern beim Timing deutliche Sicherheitsreserven. Damit vergrößert sich die maximale Länge. Mit "Level 1" Schnittstellen sollten Längen bis 6 Meter bei durchschnittlichen Kabeln nicht überschritten werden. Es gibt auch Spezialkabel, bei denen eine Länge von 30 Metern für alle Varianten garantiert wird (Level 1, Level 2 und alle Varianten der klassischen Centronics-Schnittstelle).
Protokolle / Modi
Die moderne parallele Schnittstelle nach IEEE 1284 unterstützt folgende Modi:
- Compatibility-Modus, auch SPP (Standard Parallel Port) genannt – die neue Definition der „klassischen“ Centronics-Schnittstelle. Auf den eigentlichen Datenleitungen werden Daten nur vom Computer zum Drucker übertragen (sog. Forward Channel), nur auf den Statusleitungen (Papierende, Betriebsbereitschaft etc.) kann der Drucker eine Rückmeldung an den Rechner senden.
- Byte-Modus, auch PS/2-Modus genannt, weil er von IBM mit dem PS/2 eingeführt wurde. Die 8 Datenleitungen können nun auch bidirektional übertragen. Gemeint ist dabei die Rückwärtsübertragung von Daten vom Peripheriegerät zum Computer auf den gleichen Datenleitungen (sog. „Reverse Channel“). Beide Geräte können jedoch nur abwechselnd senden (halbduplex), nicht gleichzeitig (vollduplex).
- Nibble-Modus, von Hewlett Packard „Bitronics“ genannt. Wie beim Byte-Modus existiert auch hier eine Rückwärtsübertragung vom Peripheriegerät zum PC. Dabei werden die Daten vom Peripheriegerät zum PC über die hierzu „missbrauchten“ Status-Leitungen in 4-Bit-Paketen (Nibbles) übertragen. Diese Betriebsart war auch schon bei vielen Varianten der klassischen Centronics-Schnittstelle praktisch möglich, wenn auch theoretisch nicht vorgesehen. Sie ist relativ langsam, aber immer noch die „kompatibelste“ Art der Rückwärtsübertragung.
- EPP-Modus, Enhanced Parallel Port. Bidirektionale 8-Bit-Übertragung mit relativ hoher Geschwindigkeit. Wurde von Intel und Xircom entwickelt, wird aber heute kaum noch genutzt.
- ECP-Modus, Extended Capabilities Port. Bidirektionale Schnittstelle mit hoher Geschwindigkeit in beiden Richtungen. Von Microsoft und Hewlett-Packard entwickelt. Microsoft brauchte damals kurzfristig eine universale Lösung, Peripheriegeräte jeder Art in Windows 95 einzubinden; kurz darauf übernahm jedoch der neuentwickelte USB diese Rolle. Hewlett-Packard brauchte eine schnelle bidirektionale Schnittstelle für die damals noch in der Entwicklung befindlichen Multifunktionsgeräte (Drucker mit eingebautem Scanner und/oder Faxgerät).
Die ersten vier Modi (Varianten) waren zum Zeitpunkt der Definition der IEEE 1284 schon weit verbreitet. Die ECP-Variante stand vor der Verbreitung. Eine wesentliche Aufgabe der IEEE 1284 war, eine drohende Kompatibilitätskrise abzuwenden und weitgehende Rückwärtskompatibilität zu sichern – z. B. durch Aushandeln (Negotiation) des gemeinsamen Übertragungs-Modus zwischen Rechner und Peripheriegerät.
Der IEEE 1284 Standard hat folgende Erweiterungen gegenüber der klassischen Centronics-Schnittstelle:
- Bidirektionale Hochgeschwindigkeits-Schnittstelle
- Erstmals klare Definition der elektrischen Eigenschaften von Schnittstelle und Kabel sowie eines Protokolls (IEEE 1284 compliance)
- Bis zu 4 Megabyte pro Sekunde Bandbreite (ECP theoretisch)
- „Plug & Play“-Fähigkeit
- Aneinanderhängen (engl. daisy-chaining) von bis zu 64 Peripheriegeräten, zB. ein ZIP-Laufwerk, dahinter ein Scanner und schließlich ein Drucker; derartige Geräte besitzen einen Eingangs- und einen Ausgangsstecker.
Compliance
Ein Gerät darf sich dann "IEEE 1284 Std Compliant" nennen, wenn es:
- Mindestens ein Level 1 Interface hat
- Den Nibble-Mode unterstützt und sich über diesen identifizieren kann
- Bei Rechnern muss mindestens der Compatibility-Mode unterstützt werden
Erstmals in der Geschichte des IEEE wurde ein Gütesiegel "IEEE 1284 Std Compliant" eingeführt. Der für entsprechende Methoden der "Compliance Tests" zuständige IEEE 1284.2 Substandard wurde nie verabschiedet. Auf Kabelmaterial wird jedoch das betreffende Gütesiegel aufgedruckt.
Negotiation (Aushandeln der Modi)
Die von PC und Peripheriegerät gemeinsam beherrschten Modi werden ausgehandelt. Beide Geräte starten im Compatibility Mode. In einer vom PC ausgelösten Kommunikation im Nibble-Mode identifiziert sich das Peripheriegerät mit Herstellername, Gerätetyp, beherrschten Modi und anderen Informationen. Vor jeder Übertragung wird der zu verwendende Modus nochmals ausgehandelt. Reagiert das Peripheriegerät nicht auf Anfragen im "Nibble Mode", so nimmt der PC an, dass es sich hier um einen alten Drucker ("Legacy Printer") handelt. Dann ist nur Drucken im Compliant Mode möglich.
Erweiterungen auf mehrere Peripheriegeräte
Die Centronics-Schnittstelle und auch die Nachfolger (EPP, ECP) erlauben es nur, einen Computer mit einem Peripheriegerät zu verbinden. Der Substandard IEEE 1284.3 sollte die Erweiterung auf bis zu 64 Peripheriegeräte ermöglichen. Zwei Methoden waren vorgesehen:
- Daisy Chaining - Das Peripheriegerät (z.B. Drucker) hat einen Eingang und einen Ausgang, über den es die für andere Geräte bestimmten Daten weitergibt.
- Multiplexer - Diese Geräte verteilen die Daten auf mehrere Peripheriegeräte - funktional identisch zu den USB Hubs.
Geschichte
Die CENTRONICS-Schnittstelle entstand Ende der 1960er Jahre bei den Wang Laboratries, von denen sich kurz danach der Druckerhersteller CENTRONICS abspaltete. Diese Schnittstelle war einfach und für Rechnerhersteller mit geringem Bauteileaufwand leicht zu implementieren. In der Geschwingigleit war sie den bei großen Anwendungen eingesetzten, viel teureren Schnittstellen fast ebenbürtig und der bei kleineren Anwendungen üblichen V.24/RS232 deutlich überlegen und darüberhinaus sehr unkompliziert zu installieren. Darum wurde die CENTRONICS-Schnittstelle von den Herstellern kleinerer Rechner zügig implementiert und schnell zu einem de-facto Standard sodass auch andere Druckerhersteller mitzogen, insbesondere die neu auf den Markt drängenden Japaner (z.B. OKI).
Obwohl CENTRONICS die eigenen Spezifikationen stets offenlegte, fehlte es an einer verbindlichen Vorgabe für die Rechnerseite. So entwickelten sich sehr skurrile Auslegungen der elektrischen Eigenschaften, des Protokolls und der Kabelbelegung. Anfang der 1980er konnte es passieren, dass der Drucker Rauchwolken ausstieß, wenn man ihn an den Rechner anschloss und es gibt bis heute noch Signale auf der Schnittstelle, von denen nur eine handvoll Veteranen weiss, wofür sie mal mal dienen sollten (z.B. SelectIn).
Mit dem IBM PC entstand nach 1982 erstmals eine breit akzeptierte Plattform, welche die CENTRONICS-Schnittstelle unterstützte. Im Protokoll nicht ganz kompatibel (das Signal BUSY wurde anfangs ignoriert) und elektrisch nicht sehr vorteilhaft - vom Stecker her aus Platzgründen von 36 auf 25 Pins abgespeckt - brachte die PC-Variante doch eine wesentliche Vereinheitlichung.
In der zweiten Hälfte der 1980er Jahre wuchs das Bedürfnis, neben Druckern auch andere Peripheriegeräte anzuschließen: Externe Laufwerke, CD-Roms, Streamer etc. Dafür fehlte die Schnittstelle - SCSI war zu aufwändig. In einem Schnellschuss entwickelten Intel, Zenith, Xircom und Andere das EPP (Enhanced Parallel Port) - eine bi-direktionale Variante der CENTRONICS-Schnittstelle mit höherer Geschwindigkeit. Sie erforderte eine spezielle Hardware. Etwa zeitgleich hatten Travelling Software und HP Methoden entwickelt, über die alte CENTRONICS-Schnittstelle Daten rückwärts zu lesen (IEEE 1284 Terminologie: Rverse Channel). Travelling Software brauchte das für den Datentransfer zwischen Notebook und PC. HP brauchte das für ein komfortableres Management seiner Drucker und nannte es "Bitronics".
1992 suchte Microsoft nach einer "universalen" Schnittstelle zur Anbindung peripherer Geräte and entwickelte das "ECP" (Enhanced Capability Port) - ein über das EPP weit hinausgehendes Konzept einer bi-direktionalen Hochgeschwindigkeitsschnittstelle, die immer noch rückwärtskompatibel zur CENTRONICS sein sollte.
Technische Beschreibung IEEE 1284 Schnittstelle
Timing im Compliance Mode (Drucken)
- Der Rechner prüft anhand des Busy-Signals ob der Drucker bereit ist
- Wenn ja, legt er das zu übertragende Byte auf die acht Datenleitungen
- Nach frühestens 750 Nanosekunden aktiviert er den Strobe für minimal 750 Nanosekunden und maximal 500 Mikrosekunden
- Der Drucker muss spätestens 500 Nanosekunden nach dem Anlegen des Strobe-Signals das Busy-Signal aktivieren. Dieses Timing nennt man "Busy-while-Strobe"
- Nach dem Deaktivieren des Strobe muss der Rechner die Daten noch für mindestens 750 Nanosekunden unverändert halten
- Ist der Drucker bereit für das nächste Zeichen, aktiviert er das Ack-Signal für mindestens 500 Nanosekunden (maximal 10 Mikrosekunden) und sezt dann das Busy-Signal zurück. Dieses Timing nennt man "Ack-while-Busy".
Das hier definierte Timing beseitigt eines der großen Probleme der Centronics-Schnittstelle: Die Unklarheit über das richtige Timing. So war es beispielsweise unklar, ob die Aktivierung oder die Deaktivierung des Strobe die Datenübergabe (und damit die Aktivierung des Busy-Signals) auslösen sollte. In der zweiten Variante konnte es zum Verlust von Zeichen kommen. Ebenso war unkar in welcher Reihenfolge die Busy- und Ack-Signale die Datenübernahme quittieren sollten. Es gab drei Varianten: "Ack-in-Busy", "Ack-after-Busy" und "Ack-while-Busy". Daraus resultierte eine Vielzahl von Kompatibilitätsproblemen zwischen Rechnern und Druckern unterschiedlicher Hersteller. Noch verwirrender wurde das Problem mit den BIOS-Versionen der ersten IBM PCs: Sie ignorierten das Busy-Signal und beachteten nur das Ack-Signal - mit der Folge, dass das erste Zeichen eines Druckjobs verloren gehen konnte. Im Annex C des IEEE 1284 Standard (nur informativ) wird diese Problematik ausgiebig erläutert.
Technische Beschreibung Centronics-Schnittstelle
Die Centronics-Schnittstelle ermöglicht eine Übertragungsgeschwindigkeit von höchstens 150 KB pro Sekunde (SPP-Modus) und eine Kabellänge von maximal ca. 3,50 m. (Bis zu 5 m bei hochwertigem Kabel, bestenfalls mit 8 Masse-Leitungen.) Ein Standard-Centronics-Stecker besitzt 36 Pins, davon werden 17 Pins für Daten und Handshake genutzt, die anderen liegen an Masse. Auf der Computerseite werden seit den 1980er Jahren zunehmend stattdessen 25-polige Sub-D-Stecker eingesetzt. Beim ersten IBM PC geschah dies als Notlösung, da die Standard-Centronics-Buchse zu groß war, um mit einer RS-232-Buchse zusammen auf eine Steckkarte zu passen. So wurden dann beide Buchsen durch verkleinerte Varianten ersetzt; jedoch entwickelte sich diese Steckerform in der Folge zum Quasi-Standard. Auf der Drucker-Seite wird aber bis heute der 36-polige Stecker genutzt.
Pinbelegungen
Pin | Name | Richtung(1) | Funktion |
---|---|---|---|
1 | STROBE | > | Strobe, zeigt gültige Daten an |
2 | D0 | > | Data Bit 0 |
3 | D1 | > | Data Bit 1 |
4 | D2 | > | Data Bit 2 |
5 | D3 | > | Data Bit 3 |
6 | D4 | > | Data Bit 4 |
7 | D5 | > | Data Bit 5 |
8 | D6 | > | Data Bit 6 |
9 | D7 | > | Data Bit 7 |
10 | ACK | < | Acknowledge, Anzeige des Druckers über Empfang der Daten |
11 | BUSY | < | Busy, zeigt Bereitschaft des Druckers zur Datenübernahme an |
12 | PE | < | Paper End, Papierende |
13 | SEL | < | Select, zeigt Druckerstatus (On- oder Offline) an |
14 | AUTOFD | > | Autofeed, veranlasst nach Carriage Return (CR) einen Zeilenumbruch (LF) |
15 | ERROR | < | Error |
16 | INIT | > | Druckerreset |
17 | SELIN | > | Select In, teilt dem Drucker mit das er angesprochen ist |
18 | GND | - | Signal Ground |
19 | GND | - | Signal Ground |
20 | GND | - | Signal Ground |
21 | GND | - | Signal Ground |
22 | GND | - | Signal Ground |
23 | GND | - | Signal Ground |
24 | GND | - | Signal Ground |
25 | GND | - | Signal Ground |
Pin | Name | Richtung(1) | Funktion |
---|---|---|---|
1 | STROBE | > | Strobe |
2 | data0 | <> | Address, Data or RLE Data Bit 0 |
3 | data1 | <> | Address, Data or RLE Data Bit 1 |
4 | data2 | <> | Address, Data or RLE Data Bit 2 |
5 | data3 | <> | Address, Data or RLE Data Bit 3 |
6 | data4 | <> | Address, Data or RLE Data Bit 4 |
7 | data5 | <> | Address, Data or RLE Data Bit 5 |
8 | data6 | <> | Address, Data or RLE Data Bit 6 |
9 | data7 | <> | Address, Data or RLE Data Bit 7 |
10 | ACK | < | Acknowledge |
11 | BUSY | < | Busy |
12 | PError | < | Paper End |
13 | Select | < | Select |
14 | AutoFd | > | Autofeed |
15 | Fault | < | Error |
16 | /nInit | > | Initialize |
17 | SelectIn | > | Select In |
18 | GND | - | Signal Ground |
19 | GND | - | Signal Ground |
20 | GND | - | Signal Ground |
21 | GND | - | Signal Ground |
22 | GND | - | Signal Ground |
23 | GND | - | Signal Ground |
24 | GND | - | Signal Ground |
25 | GND | - | Signal Ground |
(1): > bedeutet: vom PC zum Gerät, < bedeutet: vom Gerät zum PC, <> bedeutet: bidirektionale Signalleitung. Datenflussrichtung wird ausgehandelt; -: Masseleitung (ohne Datenflussrichtung)
Die Datenübertragung erfolgt nach folgendem Protokoll:
- Der Sender überprüft anhand der Busy-Leitung, ob der Empfänger bereit ist. Falls ja, wird das Datenbyte auf die Datenleitungen gelegt.
- Durch Aktivierung des Strobe-Signals (mind. 1 bis max. 50 Mikrosekunden) wird dem Empfänger die Gültigkeit des Datums mitgeteilt.
- Durch Aktivierung von Busy signalisiert der Empfänger, dass er mit der Verarbeitung der Daten beschäftigt ist.
- Der erfolgreiche Empfang und Verarbeitung des Datenbytes wird vom Endgerät durch das Acknowledge-Signal bestätigt.
Für eine funktionierende Datenübertragung in einer Richtung, ohne differenzierte Rückmeldungsmöglichkeit, reicht auch eine abgespeckte Schnittstelle mit 8 Datenleitungen, Strobe sowie Ack oder Busy. Eine solche Mini-Centronics wurde häufig beim Commodore 64 eingesetzt, um Nicht-Commodore-Drucker auch ohne teures Interface betreiben zu können. Stattdessen reichte ein Flachbandkabel mit passenden Steckern, ein sog. Userport-Kabel – am Userport befanden sich nur 10 nutzbare Ein/Ausgabeleitungen, sodass eine volle Centronics-Schnittstelle nicht möglich war. Allerdings funktionierte dies nur mit Programmen, die diese Betriebsart explizit beherrschten, da es auf dem C64 noch keine anwendungsunabhängigen Gerätetreiber gab.
Weblinks
- Grafische Darstellung von Pinbelegung etc
- http://www.seh.de/download/document/WP_1284_4_dt_V2_0.pdf
- http://www.fapo.com/ieee1284.htm
- http://www.longrange.net/ParallelPort/1284d12.pdf Das Original-Dokument des IEEE 1284 Standard ist kostenpflichtig. Dieser Draft der Neuauflage von 2000 ist aktueller und weitgehend identisch.
- http://www.lpt-driver.com Software zum programmieren des LPT-Ports unter Windows XP und 2000.