|
|
Die
Centronics-Schnittstelle ist eine 8Bit Schnittstelle mit
bit-parallelem und byte-seriellem, unidirektionalem Datenfluss.
Sie wird in der Regel zum Anschluss von Druckern an Computer
verwendet. Die Schnittstelle ist ein allgemein anerkannter
Firmenstandard des Druckerherstellers Centronics, an den sich
andere Hersteller mit leichten Abweichungen in Bezug auf die
Signalzeiten und die verfügbaren Meldeleitungen halten.
Die
Handshakeleitungen Strobe (/STRB) was Blitz bedeutet, BUSY was
beschäftigt bedeutet und /Acknowledge (/ACKN) was 'zur
Kenntnis genommen' bedeutet, sowie die 8 Datenleitungen, sind bei
allen Herstellern verfügbar.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Die
Handshakeleitungen
-
/STRB Meldeleitung vom
Computer zum Drucker
-
Diese Leitung ist bei Low aktiv, und
meldet dem Drucker, dass gültige Daten auf den Datenbus
gelegt wurden. Nachdem diese Meldung für eine kurze Zeit an
der Leitung anlag, fällt sie auf ihren Ruhezustand log1
zurück, .. bis erneut Daten auf den Datenbus ausgegeben
werden. Wie dem Bild zu entnehmen ist, müssen die
Datenleitungen vor dem Strobe-Signal gesetzt worden sein.
|
|
|
|
- BUSY
Meldeleitung vom Drucker zum Computer
-
Diese Leitung liegt im Ruhezustand auf
log0. Hat der Drucker über das /STRB-Signal die Meldung
erhalten, 'neues Datenbyte auf dem Datenbus', setzt der Drucker
das Busy-Signal auf log1 und meldet damit dem Sender des
Strobe-Signals, dass er dieses Signal zur Kenntnis genommen hat
und ab jetzt mit der Ausgabe dieses Bytes beschäftigt ist.
Das Busy-Signal bleibt solange auf log1, bis der Drucker das
Datenbyte verarbeitet hat. Dann setzt er Busy in den Ruhezustand
log0 zurück. Nun kann ein neues Datenbyte auf den Datenbus
gelegt werden.
|
|
|
|
- /ACKN
Meldeleitung vom Drucker zum Computer
-
Eine zweite Möglichkeit die
Strobe-Meldung vom Computer zu beantworten, bietet das
Acknowledge-Signal. Es kann alternativ zum Busy-Signal benutzt
werden. Dieses Signal liegt im Ruhezustand auf log1 und
verbleibt dort, bis der Drucker seine Arbeit verrichtet hat. Ist
der Drucker fertig, fällt das Signal kurzzeitig auf log0,
um nach kurzer Zeit wieder auf log1 zu steigen. Hiernach kann
ein neues Datenbyte auf den Datenbus gelegt werden.
|
|
|
|
|
|
|
|
- Die
Alternative BUSY oder /ACKN
-
Das Achnowledge-Signal eignet sich wegen
seiner kurzen Meldedauer nicht, um durch eine programmierte
Schleifenabfrage (polling) erfasst zu werden. Die Möglichkeit
seinen Aktivzustand in einer Schleife zu verpassen ist gross.
Für solche Abfragen sollte das BUSY-Signal verwendet
werden.
-
-
Andererseits beschäftigen
Polling-Abfragen einen Computer relativ sinnlos und
-
lange. Er könnte in dieser Zeit
andere Programmaufträge erledigen. Hier bietet das
Acknowledge-Signal eine Alternative. Wird es auf den IRQ-Eingang
einer CPU gelegt, so könnte es trotz der kurzen Meldedauer
einen Interrupt auslösen.
-
Obwohl die CPU in diesem Fall gerade mit
anderen Arbeiten beschäftigt wäre, würde der
Interrupt zum Durchlaufen eines Interrupt-Behandlungsprogramms
führen. Dieses könnte dem Drucker ein neues Zeichen
senden und zur unterbrochenen Programmarbeit zurückkehren.
Die CPU müsste dem Drucker nur noch die unabdingbar
notwendige Zeit opfern, trotzdem wäre der Drucker
beschäftigt und die CPU könnte neben der
Druckerausgabe noch andere Programmtätigkeiten erledigen.
|
|
|
|
|
|
|
|
- Weitere
Meldeleitungen
-
Neben den Handshake-Meldeleitungen kann
der Drucker allgemeine Fehlermeldungen zum Computer übertragen.
So kann er melden, dass ihm das Papier ausgegangen ist. Dies tut
er durch die Aktivierung des Signals PAPER OUT = log1 (Paper
empty). Auch kann er mit dem Signal /ERR = log0 melden, dass
irgendein technischer Defekt am Drucker vorliegt, der den
Druckvorgang hindert. Je moderner der Drucker ist, desto mehr
derartige Rückmeldungen sind denkbar. Für einfache
Drucker der Steuerungstechnik reichen die hier genannten Signale
jedoch aus.
|
|
|
|
|
|
|
|
- Ablaufdiagramm
zur programmierten Ausgabe eines Zeichens
-
In den ersten beiden Schritten eines
Programms sollte geprüft werden, ob der Drucker
betriebsbereit ist, ob er also keine Fehlerzustände meldet.
-

-
Dann kann der ASCII-Code des zu druckenden
Zeichens auf den Datenbus gelegt werden.
-
-
Damit der Drucker zur Kenntnis nimmt, dass
ein Zeichen für ihn auf dem Datenbus bereitsteht, wird das
Strobe-Signal kurzzeitig auf 0 gelegt, dann auf 1 zurückgesetzt.
-
-
Nun folgt eine Warteschleife, in der die
Fehlermeldungen und vor allem das BUSY-Flag beobachtet werden.
Solange dieses ein 1-Signal führt, ist der Drucker mit der
Ausgabe beschäftigt. Fällt es auf 0, wurde das Zeichen
vom Drucker ausgegeben und er wartet auf ein neues Zeichen.
-
Die Ausgabe weiterer Zeichen läuft
wie eben beschrieben ab, jedoch kann die Beobachtung der
Fehlerzustände am Anfang der Ausgaberoutine entfallen.
-
Eine Fehlermeldung sollte zum Bildschirm
ausgegeben werden, wenn der Drucker seine Flagge /ERR für
allgemeine Fehlerzustände auf 0, oder die Flagge PAPER OUT
-kein Papier vorhanden auf 1 setzt.
|
|
|
|
|
|
|
|
Pinbelegung
25pol Sub-D Stecker auf 36pol Amphenolstecker
|
|
|
|
|
|