Im Internet habe ich folgenden Text gefunden:
ECP: Extended Capability Port
Das ECP-Protokoll wurde von Hewlett Packard und Microsoft als
modifizierte Kommunikation zwischen Druckern und Scannern ausgewiesen.
Ähnlich wie das EPP-Protokoll unterstützt ECP die Parallelübertragung
mit hoher Geschwindigkeit zwischen Host-Adapter und Peripherie. Ferner
sieht ECP einen eigenen DMA-Kanal vor, FIFO-Pufferung für Hin- und
Rückkanal und Datenkompression nach dem Run_Lenght-Encoding (RLE)
Verfahren. Die zusätzlich erforderlichen ECP-Register können durch
aufaddieren von 0x400 auf die Basisadressen adressiert werden. Auch
hier sind mehrere Geräte adressierbar. Spezifikationen:
· 4 Kontrolleitungen HOSTCLK, HOSTACK, 1284ACTIVE, REVERSEREQUEST
(Ausgang)
· 5 Statusleitungen PERIPHCLK, PERIPHACK, ACKREV, XFLAG, PERIRQ
(Eingang)
· 8 Adress-/Datenleitungen D0 - D7 (Ein+Aus)
Es gibt zwei Arten von bidirektionalen Datenübertragungszyklen:
· Data Cycles
· Command Cycles
Hier ist das Extended Control Register (ECR) ganz interessant, das
unter der Adresse BASE + 0x402 zu finden ist.
Bit Betriebs-Modus
7-5 000 Standard Mode
001 Byte Mode
010 Parallel Port FIFO Mode
011 ECP FIFO Mode
100 EPP Mode
101 Reserved
110 FIFO Test Mode
111 Configuration Mode
4 ECP Interrupt Bit
3 DMA Enable Bit
2 ECP Service Bit
1 FIFO Full
0 FIFO Empty
Da für die im folgenden gezeigten Beispiele für die Hardwareansteuerung
die Modi EPP und ECP nicht verwendet werden, sei für diese auf die oben
genannte Webseite von Warp Nine verwiesen.
Bei allen Experimenten am Parallelport ist Vorsicht geboten, weil bei
unsachgemäßer Handhabung Kurzschlüsse für den Parallelport oder gar für
das gesamte Mainboard entstehen können. Die Ausgänge eines
Centronics-Ports halten einer Strombelastung von ca. 5-15 mA stand.
Dies reicht mit einem geeigneten Vorwiderstand (z.B. 270 bis 680 Ohm),
um eine LED zum Leuchten zu bringen. Möchte man Taster oder Schalter
direkt abfragen, so müssen die Eingänge über Pull-Up-Widerstände in
einen definierten High-Zustand gebracht werden und können dann gezielt
auf Masse geschaltet werden.
Wie kann man dieses Register benutzen und warum gibt es diess Register
überhaupt?