1. Trang chủ
  2. » Công Nghệ Thông Tin

PC Werkstatt Ausgabe 2000- P47 pdf

15 120 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 206,46 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Da bei IEEE1284 aber die unterschiedlichsten Herstellervorstellungen für eine Weiterentwicklung der Centronics-Schnittstelle eingeflossen sind, gibt es hierfür fünf verschiedene Be-trieb

Trang 1

Programmlisting: Parallel

program Parallel;

{Direkte Programmierung der parallelen Schnittstelle von PCs}

const

LPT1 = $378; {Basisadressen, maximal vier Schnittstellen}

LPT2 = $278;

LPT3 = $3BC;

LPT4 = $2BC;

LPT = LPT1; {Hier verwendeten LPT-Port festlegen}

Statusregister=LPT+1; {Statusregister=Basisadresse+1}

Steuerregister=LPT+2; {Steuerregister=Basisadresse+2}

{************************************************************}

procedure write_byte(Wert : byte);

{Sendet ein Datenbyte ueber die Datenleitungen D1 bis D8}

begin

port[LPT]:=Wert; {Wert schreiben}

end; {write_byte}

{*************************************************************}

function read_byte : byte; {Liest das Byte an D1 bis D8}

var Wert : byte;

begin

Wert:=port[LPT]; {Wert lesen}

end; {read_byte}

{*************************************************************}

procedure write_Control(Wert : byte);

{Setzt Steuerleitungen entsprechend dem uebergebenen Wert

Bit 0 : Strobe - Pin 1

Trang 2

Bit 1 : Auto Feed - Pin 14

Bit 2 : Reset - Pin 16 (36pol.: Pin 31)

Bit 3 : Select In - Pin 17 (36pol.: Pin 36)}

begin

Wert:=Wert and $0f; {Die oberen 4 Bits auf Null setzen} Wert:=Wert XOR 11; {Bits 0,1 und 3 invertieren} port[Steuerregister]:=Wert; {Wert ausgeben}

end; {write_control}

{*************************************************************} function read_Status : byte;

{Gibt den Zustand der folgenden Statusleitungen zurueck:

Bit 3 : Error - Pin 15 (36pol.: Pin 32)

Bit 4 : Select - Pin 13

Bit 5 : Paper Out - Pin 12

Bit 6 : Acknowledgement - Pin 10

Bit 7 : Busy - Pin 11}

var

Wert : byte;

begin

Wert:=port[Statusregister]; {Wert einlesen}

Wert:=Wert XOR 128; {Bit 7 invertieren}

read_Status:=Wert; {Wert zurueckgeben}

end; {read_Status}

{*************************************************************} var Wert:byte;

begin {Beispiel-Hauptprogramm}

write_byte($AA); {Zahl $AA auf Datenleitungen ausgeben} write_Control($0f); {alle 4 Steuerleitungen auf 1 setzen} Wert:=read_byte; {Byte von Datenleitungen lesen}

writeln(‘Gelesenes Datum: ‘,Wert);

Wert:=read_Status; {Zustand der 5 Statusleitungen lesen} writeln(‘Status: ‘,Wert);

end {Beispiel-Hauptprogramm}

Trang 3

9.2 Parallele Schnittstellen laut IEEE1284

Fast alle PCs ab dem Baujahr 1994 verfügen über eine in ihren Funktionen

erwei-terte parallele Schnittstelle, die unter der Bezeichnung IEEE1284 vom Institute of

Electrical and Electronic Engineers (ein Konsortium von amerikanischen Firmen)

standardisiert worden ist Die wichtigste Neuerung gegenüber der Centronics-Schnitt-stelle ist zunächst, dass sie bidirektional ausgeführt ist Da bei IEEE1284 aber die unterschiedlichsten Herstellervorstellungen für eine Weiterentwicklung der Centronics-Schnittstelle eingeflossen sind, gibt es hierfür fünf verschiedene Be-triebsarten, die jedoch nicht in allen Fällen komplett vom PC-BIOS unterstützt werden:

> Compatible Mode: definiert zur Rückwärtskompatibilität den (alten)

unidirek-tionalen Mode (Centronics), wird auch als SPP (Standard Parallel Port) be-zeichnet

> Nibble Mode: definiert die Mindestanforderung Die Datenübertragung erfolgt

Nibble-weise (in 4-Bit-Breite)

> Byte Mode: bidirektionaler Centronics-Mode in 8-Bit-Breite.

> Extended Parallel Port: bidirektionale Übertragung von Daten und auch

Adres-sen für maximal 256 Einheiten

> Enhanced Capability Mode: im Prinzip wie EPP, aber mit Datenkomprimierung,

FIFO und Kommandozyklen

In den verschiedenen IEEE1284-Betriebsarten werden grundsätzlich dieselben Lei-tungen wie bei der »alten« Centronics-Schnittstelle verwendet, die, je nach Be-triebsart, unterschiedliche Signalbezeichnungen und Funktionen haben, wie sie auch in der Tabelle 9.2 angegeben sind

Inwieweit ein PC den IEEE1284-Standard mit welchen Betriebsarten unterstützt, ist anhand des PC-BIOS-Setups festzustellen und dort auch entsprechend festzulegen Zahlreiche Geräte der Firma Hewlett-Packard, wie beispielsweise die Laserjet-4-Drucker, sind bereits seit einiger Zeit IEEE1284-kompatibel Während die LaserJet-4-Modelle und auch der OfficeJet – ein kombinierter Drucker mit Scanner und Fax – den Nibble-Mode verwenden, können die Laserjet-5-Modelle und die Tintenstrahl-drucker (Deskjet 600, 850) auch den ECP-Mode nutzen

Bei HP wird die bidirektionale Centronics-Schnittstelle im Übrigen auch als Bitronics

bezeichnet Das Spektrum an verfügbarer Peripherie reicht mittlerweile von einem SCSI-Adapter der Firma Adaptec (Mini EPP-SCSI-Adapter) über zahlreiche Drucker-modelle (HP, Texas Instruments, QMS) bis hin zu einem Ethernet-Adapter (PE3-EPP) der Firma Xircom Allerdings sind spezielle Geräte (Hubs), die auch erweiterte Features (z.B sind bis zu 256 Geräte einzeln selektierbar) nutzen können, bisher kaum anzu-treffen

Trang 4

Pin Richtung Compatible Nibble Byte ECP EPP

10 Gerät\PC /Acknowledge PtrClk PtrClk PeriphClk Interrupt

11 Gerät\PC Busy Data 3, 7 PtrBusy PeriphAck /Wait

12 Gerät\PC Paper Error Data 2, 6 AckDataReq /AckRevers UserDefin1

14 PC\Gerät /AutoFeed HostBusy HostBusy HostAck /DataStrb

28 GND Paper Error, Select, Acknowledge

32 Gerät\PC /Fault Data (0, 4) /DataAvail /PeriRequest UserDefin 2

36 PC\Gerät /SelectIn 1284Active 1284Active 1284Active /AddressStrb

Tabelle 9.2: Die Leitungen der parallelen Schnittstelle haben in den verschiedenen IEEE1284-Modi

unterschiedliche Bedeutungen und Funktionen

Trang 5

In der Praxis zeigen sich außerdem durchaus Unverträglichkeiten: Geräte, die zu-vor am Centronics-Port einwandfrei funktioniert haben, lassen sich an einem IEEE1284-Port nicht immer ohne Probleme verwenden Ein typisches Beispiel ist etwa ein mechanischer Druckerumschalter Wird ein hier angeschlossener Drucker von einem PC auf einen zweiten umgeschaltet, gelangen durch den Schaltimpuls Störsignale auf die IEEE1284-Ports, woraufhin sich die Schnittstellen offensicht-lich derart »verschlucken«, dass keine Druckausgabe mehr mögoffensicht-lich ist Dabei spielt

es keine Rolle, ob etwa der SPP-Mode (der Centronics-kompatible Mode) aktiviert ist oder ein anderer, das Ergebnis ist stets dasselbe

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Es kommt durchaus vor, dass Geräte, die an der (alten) Centronics-Schnittstelle

funk-○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

tioniert haben, im SPP-Mode von IEEE1284 nicht korrekt arbeiten.

Für IEEE-1284 sind – wie für Centronics – ebenfalls sowohl der 25- als auch der polige Stecker vorgesehen Des Weiteren wird eine mechanisch verkleinerte 36-polige Steckerversion (IEEE-1284-C) empfohlen, welche in der Praxis (bisher) je-doch eher selten eingesetzt wird

9.2.1 Der Compatible Mode

Diese Betriebsart stellt sicher, dass im Prinzip (siehe Hinweis) auch ältere Drucker

an einer IEEE1284-Schnittstelle verwendet werden können, und entspricht im Prinzip einer standardisierten Centronics-Schnittstelle

Diese Variante wird auch als SPP (Standard Printer Port) bezeichnet, wie es bei-spielsweise in den BIOS-Setups der PCs zu finden ist Eine Datenübertragungsrate vom maximal 150 Kbyte pro Sekunde ist im Compatible Mode zu erreichen

9.2.2 Der Nibble Mode

Der Nibble Mode arbeitet in einer Breite von lediglich vier Bit Vier Leitungen

müssen dabei als Rückkanal vom Gerät zum Computer vorgesehen sein Hierfür

werden die Leitungen PtrBusy (Data 3,7), AckDataReq (Data 2,6), Xflag (Data 1,5) und /DataAvail (Data 0,4) verwendet, welche in diesem Mode als Datenleitungen

zu verstehen sind und abwechselnd jeweils ein halbes Datenbyte (Nibble = 4 Bit) übertragen Die Bezeichnung dieser einzelnen Leitungen resultiert aus dem Byte Mode In der Tabelle 9.2 ist stattdessen jedoch die Zuordnung der Datenleitungen angegeben

Trang 6

Der Handshake wird mit den Signalen HostBusy und PtrClk ausgeführt Der

Compu-ter signalisiert die Bereitschaft zur Datenaufnahme mit einem Low auf der HostBusy-Leitung, woraufhin das untere Nibble auf die Schnittstelle gelegt wird Die Gültig-keit der Daten wird dem Computer daraufhin mit einem Low auf der PtrClk-Leitung

mitgeteilt, welche hier im Prinzip als Strobe fungiert.

Der PC sendet HostBusy=High zur Kennzeichnung, dass die Daten verarbeitet wer-den und zur Zeit keine weiteren angenommen werwer-den können Anschließend wird auch PtrClk wieder auf High gesetzt, und sobald der Computer zur Aufnahme des zweiten Nibble bereit ist, erfolgt dessen Übertragung

Das Signal 1284Active wird generell zur Kennzeichnung (High) dessen verwendet,

dass momentan eine IEEE1284-Betriebsart eingeschaltet ist Während das Daten-register im Nibble Mode nicht verwendet wird, haben sowohl das Status- als auch das Steuerregister eine neue Belegung erhalten:

Wenn der Gerätehersteller ein entsprechendes Treiberprogramm für den Nibble Mode mitliefert, können in der Regel alle konventionellen Centronics-Karten (ab ca 1990) diesen Modus bei einer maximalen Datenübertragungsrate von 50 Kbyte pro Se-kunde verwenden

Trang 7

9.2.3 Der Byte Mode

Der Byte Mode entspricht dem bidirektionalen Centronics Mode, wie er bereits bei den PCs mit MicroChannel-Architektur (PS/2) standardmäßig verwendet wurde

Die Daten werden hier im Gegensatz zum Nibble Mode byteweise über das

Daten-register (Basisadresse) ausgetauscht

Bei der Datenübertragung vom PC zur Peripherie wird der Handshake mit Hilfe der Signale HostClk (ehemals Strobe), PtrBusy (ehemals Busy) und PtrClk (ehemals Acknowledge) analog zum SPP-Mode ausgeführt

Bei der Datenübertragung in der anderen Richtung signalisiert der PC zunächst mit

einem Low über HostBusy seine Bereitschaft, woraufhin die Peripherie ein Byte

ausgibt und dessen Gültigkeit mit PtrClk (Low) bekanntgibt (siehe Bild) Sind die Daten verarbeitet, sendet der PC ein Low auf HostClk und der nächste Zyklus kann nun beginnen

Bild 9.5: Das Timing im Byte Mode bei einem Lesezugriff der Peripherie auf den PC

Das Datenregister ist sowohl für die Sende- als auch für die Empfangsdaten zustän-dig, wobei die hierfür notwendige Umschaltung der Übertragungsrichtung mit dem

Bit 5 Data Direction im Steuerregister vorgenommen wird, was vor jedem Zyklus

entsprechend festzulegen ist

Bei einem High ist auf Lesen und bei einem Low auf Schreiben (zur Peripherie)

geschaltet Die Belegung des veränderten Status- und Steuerregisters sieht dabei wie folgt aus:

Trang 8

9.2.4 Der Extended Parallel Port Mode

Der Extended Parallel Port – kurz EPP – wurde gemeinsam von den Firmen Intel, Xircom und Zenith entwickelt und stellt die gebräuchlichste IEEE1284-Implemen-tierung dar, die gegenüber den vorher erläuterten auch tatsächlich neue Möglich-keiten zur Gerätekopplung und Datenübertragung bietet

Es können bidirektional sowohl Daten als auch Adressen übertragen werden und es sind theoretisch (8 Bit) bis zu 256 Einheiten einzeln selektierbar Ohne zusätzliche Hardware (Sternverteiler, Hub) ist eine EPP-Verbindung jedoch lediglich als Verbin-dung zwischen zwei Geräten ausgelegt

Trang 9

Gleichwohl kann die Peripherie selbst natürlich bis zu 256 Schaltungseinheiten enthalten, was beispielsweise für ein multifunktionales Gerät wie eine Printer-Modem-Fax-Kombination ausgenutzt werden kann Die Datenübertragungsrate be-trägt maximal 2 Mbyte/s bei einer typischen Kabellänge von 5 m

Bild 9.6: Ein Schreibzyklus des PC zur Peripherie im EPP-Mode

Bei einem Daten-Schreibzugriff vom PC zur Peripherie wird das Signal /Write akti-viert – auf Low gesetzt – und nachfolgend das /Wait-Signal auf ein Low hin über-prüft, welches besagt, dass die Peripherie zur Datenaufnahme bereit ist und die Datenübertragung ausgeführt werden kann Daraufhin wird /DataStrobe auf Low gelegt, wodurch die Daten nun übergeben werden können Die Peripherie signali-siert ihrerseits mit einem High auf /Wait, dass es die Daten komplett übernommen hat, woraufhin /DataStrobe vom PC wieder deaktiviert (High) wird und die Über-tragung somit abgeschlossen ist

Ein Datenlesezyklus vom PC erfolgt prinzipiell auf die gleiche Art und Weise wie ein Schreibzyklus, mit dem Unterschied allerdings, dass sich das /Write-Signal dabei auf High-Pegel befindet Ein spezieller »Umschaltzyklus« wie bei ECP (siehe folgendes Kapitel) ist hier nicht vorgesehen

Zur Adressierung eines EPP-Gerätes wird dementsprechend eine Adresse über die acht AD-Leitungen (Address Data) gesendet und statt /DataStrobe das Signal /AddressStrobe verwendet Der Vorgang ist ansonsten mit einem Daten-Schreibzu-griff identisch, was analog auch für einen Adressenlese-Zyklus gilt, der in der Praxis jedoch keine Relevanz besitzt, da üblicherweise der PC und nicht die Peri-pherie die Adressen ausgibt Es ist durchaus möglich, dass im EPP-Mode mehr als

8 Bit verarbeitet werden können, was beispielsweise für spezielle Anwendungen

Trang 10

Die drei Standard-Register werden in der üblichen Art und Weise verwendet (SPP-Mode), wie es bereits erläutert wurde, so dass EPP hierzu voll abwärtskompatibel ist Die Ausführung des Handshakes wird im EPP-Mode aber nicht von der (Anwen-der-)Software, sondern bei einem entsprechenden I/O-Zugriff automatisch – vom BIOS mit EPP-Unterstützung – gesteuert, was die Programmierung erheblich ver-einfacht und keine Manipulation einzelner Bits erfordert

Neben den drei SPP-Registern sind für den EPP-Mode fünf weitere hinzugekom-men, die sich unter den Adressen mit dem Offset 03h-07h von der jeweils festge-legten Basisadresse aus gesehen befinden Die folgende Tabelle zeigt alle auf einen Blick

02h SPP Control Schreiben Standard Steuerregister

03h EPP Address Lesen/Schreiben EPP-Adreßregister

04h EPP Data 0 Lesen/Schreiben EPP-Datenregister (8-, 16-, 32-Bit) 05h EPP Data 1 Lesen/Schreiben EPP-Datenregister (16-, 32-Bit) 06h EPP Data 2 Lesen/Schreiben EPP-Datenregister (32-Bit) 07h EPP Data 3 Lesen/Schreiben EPP-Datenregister (32-Bit)

Tabelle 9.3: Die Register für den EPP-Mode, wobei die Register unter den Offset-Adressen 5-7, je

nach Hersteller, unterschiedlich verwendet werden

9.2.5 Der Enhanced Capability Mode

Der Enhanced Capability Mode (ECP) wurde durch eine Microsoft- und Hewlett-Packard-Initiative im IEEE1284-Standard implementiert und verfügt über ähnliche Eigenschaften wie der EPP-Mode, denn auch er kann mehrere Einheiten (max 128) adressieren, wobei hier im Prinzip die gleichen Einschränkungen wie beim EPP gelten

Der ECP unterstützt jedoch eine einfache Datenkomprimierung nach RLE (Run Length Encodes), die nacheinander auftretende gleichlautende Zeichen nur einmal über-trägt und danach die Anzahl der Zeichen sendet Beim Schreiben muss die Software für die Komprimierung Sorge tragen, während die Dekomprimierung automatisch erfolgt

Das Kernstück bei ECP bildet ein 16 Kbyte großer FIFO mit DMA- und Interrupt-Fähigkeiten, der Datenübertragungsraten von bis zu 2 Mbyte (wie bei EPP) erlaubt Das ECP-Protokoll kennt sowohl Daten- als auch Kommandozyklen in beiden

Rich-tungen (forward, reverse) Es existieren zwei Kommandozyklen: Channel Address und Run Length Count, also eine Kanaladressierung für die einzelnen Einheiten

und ein Zähler für die RLE-Komprimierung/Dekomprimierung

Ngày đăng: 03/07/2014, 14:20