zum Directory-modus

Parallele Schnittstelle (IEEE1284)

ECP-Modus der parallelen Schnittstelle

Der ECP-Modus (Extended Capability Port) wurde von den Firmen Microsoft und Hewlett Packard zusammen entwickelt um den Anforderungen nach  einer schnelleren Datenübertragung gerecht zu werden. Diese schnelle und bidirektionale Schnittstelle war im Gegensatz zum SPP-Modus mit seinen  Behelfserweiterungen (Nibble-Modus und Byte-Modus) eine wirkliche innovative Entwicklung und diente zum Anschluss von Druckern und Scannern.

Eine Besonderheit des ECP-Modus ist seine Fähigkeit zur Datenkomprimierung nach der RLE-Methode (auch Lauflängenkodierung genannt), wodurch in der Praxis Komprimierungsraten von bis zu 64:1 erreicht werden können. Eine weitere Neuentwicklung des ECP-Modus ist seine Möglichkeit mehrere logische Endgeräte über die parallele Schnittstelle anzusprechen. Im Gegensatz zu einem Bus dient die ECP-Schnittstelle allerdings nur zur Kommunikation zwischen zwei Geräten, dem Rechner und dem Endgerät. Das Ansprechen mehrerer logischer Geräte bedeutet in diesem Zusammenhang, dass in Multifunktionsgeräten (z.B. Drucker, Fax, Scanner), jedes einzelne über einen logischen Kanal angesprochen werden kann. Somit können im Falle, dass der Drucker gerade ausgelastet ist, Daten an das Faxgerät übermittelt werden.

Der ECP-Modus ist ein so genanntes lose gekoppeltes System, d.h. die Datenausgabe, deren Übertragung und der Datenempfang hängen nicht mehr unmittelbar zusammen, da sich zwischen CPU und der Schnittstelle sowohl auf der Empfangs- als auch auf der Sendeseite ein FIFO-Puffer befindet. Durch diesen Puffer ist gewährleistet, dass selbst bei einem eher langsamen Senden oder Empfangen von Daten, die Software des Rechners bzw. das Endgerät weiter arbeiten kann und nicht darauf warten muss Daten Senden oder Empfangen zu können.Den größten Vorteil, den die Entwicklung der ECP-Schnittstelle mit sich bringt, ist ihre weniger aufwendige Programmierung. Im Gegensatz zum SPP-Modus bei dem der Handshake durch Setzen und Löschen einzelner Registerbits geregelt wurde, reicht es im ECP-Modus aus, das zu übertragende Byte in ein Register zu schreiben und es wird übertragen. Durch diese einfache Handhabung ist mit wenigen Befehlen das Übertragen großer Datenmengen in sehr kurzer Zeit möglich. Genau wie im Byte-Modus werden im ECP-Modus die zur Kontrolle der Datenübertragung notwendigen Steuerkommandos als Code verschlüsselt über die Datenleitungen gesendet. Dadurch fallen bis auf das XFlag und das 1284Active-Signal, die zur Initialisierung der parallelen Schnittstelle benötigt werden, alle Status- und Steuerleitungen weg.

Zur Realisierung all dieser Funktionen musste die parallele Schnittstelle völlig neu definiert werden, so dass zwischen ECP- und SPP-Schnittstelle keine Gemeinsamkeiten mehr bestehen. Das gleiche gilt für den Datentransfer, der im ECP-Modus vollständig bidirektional funktioniert.

Bei der Übertragung unterscheidet man im ECP-Modus, vom Rechner aus gesehen, zwischen dem Senden von Daten an die Peripherie und dem Empfangen von Daten von der Peripherie. Dabei wird die Datenübertragung des ECP-Modus in folgende zwei Zyklen aufgeteilt:

  • Daten-Zyklen
  • Kommando-Zyklen (unterschieden in Kanaladresse oder Lauflängenzähler)

Diese beiden Zyklen der Datenübertragung im ECP-Modus sollen nachfolgend detaillierter betrachtet werden. Zuerst wird der Daten-Zyklen (Datenübertragung und Datenempfang) besprochen.

Abb.1
Zeitlicher Ablauf einer Kommunikation im ECP-Modus, bei der zuerst ein Datenbyte und anschließend ein Kommando an die Peripherie gesendet wird.
  • Vor der ersten Datenübertragung vom Rechner zum Endgerät müssen dessen Datenleitungen auf Ausgang geschaltet sein. Ist dies der Fall, so legt die CPU ihr Daten auf die Datenleitungen und teilt durch einen High-Pegel des HostAck-Signals dem Endgerät mit, dass ein Datenbyte übertragen werden soll (und kein Kommando).
  • Liegen die zu übertragenden Daten sicher auf den Leitungen, so wird dem Endgerät deren Gültigkeit durch ein Low-Pegel-Signal der HostClk-Leitung signalisiert.
  • Mit einem Hight-Impuls des PeriphAck-Signals zeigt die Peripherie ihre Bereitschaft an Daten zu übernehmen.
  • Mit dem HostClk-Signal zeigt der Rechner nun an, ob ein Datenbyte (High Pegel) oder ein Kommando (Low-Pegel) übertragen werden soll.
  • Sobald die Peripherie das PeriphAck-Signal wieder auf Low-Pegel gesetzt hat, kann eine erneute Übertragung stattfinden

Verantwortlich für die Art der Übertragung ist also der auf der HostAck-Leitung geführte Pegel, wobei ein High-Pegel einen Daten-Zyklus und ein Low-Pegel einen Kommando-Zyklus einleitet.

Abb.2
Zeitlicher Ablauf einer Kommunikation im ECP-Modus, bei der zuerst ein Datenbyte und anschließend ein Kommando vom Rechner empfangen wird.

Da die ECP-Schnittstelle bidirektional konzipiert ist, können Daten und Kommandos auch von der Peripherie zum Rechner übertragen werden. Im Gegensatz zum Nibble- und Byte-Mode kann die Übertragung von Daten nur bei einer Anforderung von der Rechnerseite her stattfinden.

  • Bevor der Rechner Daten empfangen kann, muss er seine Datenleitungen auf Eingang geschaltet haben um dann der Peripherie durch Aktivierung (Low-Pegel) des ReversReq-Signals seine Empfangsbereitschaft anzuzeigen.
  • Ist die Peripherie ebenfalls bereit, so meldet sie dies durch Aktivierung (Low-Pegel) des AckRevers-Signals.
  • Jetzt legt das Endgerät seine Daten auf die Datenleitungen und zeigt dem Rechner über das PeriphAck-Signal an, ob ein Datenbyte (High Pegel) oder ein Kommando (Low-Pegel) übertragen werden soll.
  • Sind die zu übertragenden Daten und der Datentyp gültig, so setzt die Peripherie das PeriphClk-Signal auf einen Low-Pegel, was der Rechner mit einem High-Impuls des HostAck-Signals quittiert.
  • Wenn nun wird das PeriphClk-Signal wieder auf High gesetzt wird, übernimmt der Rechner die Daten.
  • Sind die Daten erfolgreich übernommen worden, so setzt der Rechner das HostAck-Signal wieder auf einen Low-Pegel und signalisiert dadurch seine erneute Bereitschaft Daten zu empfangen

Die Art der Übertragung wird hier also durch den Pegel auf der PeriphAck-Leitung angezeigt, wobei, wie beim Senden von Daten, ein High-Pegel einen Daten-Zyklus und ein Low-Pegel einen Kommando-Zyklus einleitet.

Im Kommando-Zyklus zeigt das höchstwertigste Bit (Datenbit 7) bei der Übertragung eines Kommandos dem Empfänger die Art des Kommandos an.

Kanaladresse: Ist das Bit 7 gesetzt, so werden die unteren 7 Bits (Datenbit 0 bis Datenbit 6) vom Empfänger als Kanaladresse interpretiert. Dies ermöglicht eine Adressierung von 128 logischen Kanälen und somit theoretisch ein Ansprechen von dementsprechend vielen verschiedene Endgeräten. Da Bit 7 gesetzt ist, werden die Datenbits 0 bis 6 vom Endgerät als Kanaladresse interpretiert. Diese ergeben bei der Umrechnung ins Dezimalsystem den Wert 53, d.h. die anschließend folgenden Daten sind für das logische Endgerät mit der Nummer 53 bestimmt.

Lauflängenzähler: Ist das Bit 7 nicht gesetzt, so wird das Kommando als Lauflängenzähler interpretiert und das darauf folgende Datenbyte mit der in Bit 0 bis Bit 6 des Kommandos angegebenen Anzahl in den Datenstrom eingefügt. Da Bit 7 hier nicht gesetzt ist, wird das Kommando als Lauflängenzähler interpretiert. Die Umrechnung der Bits 0 bis 7 ergeben den Dezimalwert 30, also wird das anschließend empfangen Datenbyte 30mal in den Datenstrom eingefügt.

Seite 8 von 9