DE69232456T2 - Bidirektionales Parallelprotokoll - Google Patents
Bidirektionales ParallelprotokollInfo
- Publication number
- DE69232456T2 DE69232456T2 DE69232456T DE69232456T DE69232456T2 DE 69232456 T2 DE69232456 T2 DE 69232456T2 DE 69232456 T DE69232456 T DE 69232456T DE 69232456 T DE69232456 T DE 69232456T DE 69232456 T2 DE69232456 T2 DE 69232456T2
- Authority
- DE
- Germany
- Prior art keywords
- printer
- data
- computer
- signal
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000002457 bidirectional effect Effects 0.000 title description 3
- 238000012546 transfer Methods 0.000 claims abstract description 21
- 230000006854 communication Effects 0.000 claims description 34
- 238000004891 communication Methods 0.000 claims description 34
- 238000000034 method Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000007175 bidirectional communication Effects 0.000 abstract description 3
- 239000000872 buffer Substances 0.000 description 11
- 239000012634 fragment Substances 0.000 description 7
- 230000000994 depressogenic effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101100070661 Caenorhabditis elegans hint-1 gene Proteins 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000001786 wide angle neutron scattering Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4269—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a handshaking protocol, e.g. Centronics connection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/4226—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1236—Connection management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1284—Local printer device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
- Radiation-Therapy Devices (AREA)
- Compositions Of Oxide Ceramics (AREA)
Description
- Die vorliegende Erfindung betrifft Protokolle, und insbesondere solche Protokolle, die eine Kommunikation in beiden Richtungen durch eine parallele Schnittstelle ermöglichen.
- Ports sind Fachleuten auf dem Gebiet der Elektronik als Orte des Zugriffs auf ein Gerät oder Netzwerk bekannt, an denen Energie geliefert oder abgezogen werden kann, oder an denen Variablen des Geräts oder des Netzwerks beobachtet oder gemessen werden können. Ports lassen sich in zwei Kategorien aufteilen: seriell oder parallel. Erwartungsgemäß findet bei seriellen Ports eine Verarbeitung oder Handhabung zeitlich nacheinander statt, und bei parallelen Ports eine Verarbeitung oder Handhabung gleichzeitig.
- Auf dem Gebiet von Mikroprozessoren umfaßt der Begriff "Ports" sogenannte "Tore" oder Öffnungen für Daten zum Durchgang von der Außenwelt zum Mikroprozessorsystem oder in Gegenrichtung. Mikroprozessoren weisen sowohl serielle als auch parallele Ports auf. In der Vergangenheit wurde der serielle Port in weitem Ausmaß so angesehen, dass er nützlich ist zur Kommunikation mit Modems, WANS oder dergleichen, und wurde vielfältige Software entwickelt, welche serielle Kommunikation unterstützt. Parallele Ports andererseits wurden herkömmlich nur für relativ einfache Aufgaben wie Drucken und Plotten verwendet, hauptsächlich deswegen, da sie so angesehen wurden, dass sie nur in einer Richtung arbeiten.
- Vor kurzem wurde langsam von Fachleuten erkannt, dass ein Standard- Parallelport in zwei Richtungen arbeitet, nämlich dass man Eingaben oder Ausgaben auf bis zu zwölf Leitungen gleichzeitig durchführen kann. Eine serielle Karte andererseits kann Eingaben oder Ausgaben nur auf einer einzelnen Leitung vornehmen, mit einem Bit zur Zeit. Vergleicht man den Betrieb der beiden Ports, so wird die relative Überlegenheit des parallelen Ports deutlich: er kann ein Byte und ein halbes Byte in der Zeit ausgeben, die ein serieller Port zur Feststellung benötigt, ob die Zeit gekommen ist, eine einzelne Transaktion durchzuführen.
- Weiterhin wurde erst vor sehr kurzer Zeit von Fachleuten erkannt, dass bestimmte Vorteile bei der Verwendung eines parallelen Ports für die Art von Kommunikation vorhanden sind, die normalerweise einem seriellen Port zugeordnet ist. Einige dieser Vorteile werden von Ross Greenburg in einem Artikel mit dem Titel "Adapting the Parallel Port for Bidirectional Communication" erläutert, der beginnend auf Seite 107 der Ausgabe vom September 1990 des Microsoft Systems Journal abgedruckt ist. In diesem Artikel erläutert Herr Greenburg, dass Kommunikation nicht immer in ASCII durchgeführt werden muß. Beispiele für derartige Gelegenheiten sind jene, wenn der Ein/Auszustand eines Sensors gelesen wird, oder wenn eine Leitung zu einem Relais ein- oder ausgeschaltet wird. Es ist vollständig unnötig, in derartigen Fällen einen seriellen Port zu verwenden, da nämlich die reale Welt sehr einfach an einen parallelen Port angeschlossen werden kann. Herr Greenburg bemerkt auch, dass infolge der Tatsache, dass ein paralleler Port mehrere Bits gleichzeitig annehmen oder wegschicken kann, er dazu fähig sein sollte, schnellere I/O als ein serieller Port zur Verfügung zu stellen. Selbstverständlich sind spezielle Codes und Protokolle, beispielsweise das hier vorgeschlagene Protokoll, dazu erforderlich, um die Fähigkeiten eines parallelen Ports vollständig zu nutzen.
- Da sich die vorliegende Erfindung speziell mit Kommunikation befaßt, die einen Drucker betrifft, stellt Kommunikation mit derartigen Druckern einen Teil des zugehörigen Stands der Technik dar. Um die Möglichkeiten eines Druckers vollständig auszunutzen, beispielsweise eines Postscript-Druckers, muß ein Hostcomputer Abfragen senden und die entsprechenden Antworten empfangen können. Selbstverständlich kann, wie bereits erwähnt, Kommunikation in zwei Richtungen, hier zwischen einem Hostcomputer und einem Drucker, durch eine serielle Schnittstelle zur Verfügung gestellt werden. Allerdings kann, wie erst in jüngster Zeit erkannt wurde, Kommunikation in zwei Richtungen mit erheblich höheren Geschwindigkeiten auch durch eine parallele Schnittstelle zur Verfügung gestellt werden. Fachleute auf diesem Gebiet haben die letztgenannte Fähigkeit noch nicht dazu genutzt, Benutzern von Hostcomputer- und Druckersystemen die Funktionen der seriellen Schnittstelle zur Verfügung zu stellen, ohne die einfache Installierung und die höheren Übertragungsgeschwindigkeiten der parallelen Schnittstelle zu opfern. Daher stellt es einen Nachteil und eine Unzulänglichkeit beim Stand der Technik dar, dass niemand bislang ein entwicklungsfähiges Protokoll entwickelt hat, um Kommunikation in zwei Richtungen zwischen einem Hostcomputer und einem Drucker über eine parallele Schnittstelle zu gestatten.
- Die US-A-4720813 beschreibt ein Kommunikationsprotokoll für zwei Richtungen. Auch Electronics World and Wireless World, Vol. 95, Nr. 1645, November 89, Seite 1089-1092 beschreibt ein Kommunikationsprotokoll in zwei Richtungen.
- Die vorliegende Erfindung überwindet die Nachteile und Unzulänglichkeiten des Stands der Technik durch Bereitstellung eines Verfahrens zur Bereitstellung einer Rückkanalkommunikationsfähigkeit zwischen einem Computer und einem Drucker über eine parallele Schnittstelle, wobei das Verfahren folgende Schritte umfaßt:
- a) Leiten eines Übertragungsmodussignals durch den Computer zu dem Drucker, wobei das Übertragungsmodussignal dazu dient, den Drucker in einen Übertragungsmodus zu versetzen;
- b) Leiten eines ersten Signals durch den Computer zu dem Drucker, das anzeigt, dass das Übertragungsmodussignal zum Lesen bereit ist;
- c) Leiten eines zweiten Signals durch den Drucker zu dem Computer, das anzeigt, dass der Drucker Computerdaten in dem Übertragungsmodus erzeugt, der in Schritt a) angezeigt wird;
- d) Leiten eines Bereitschaftssignals durch den Drucker zu dem Computer, das anzeigt, dass das zweite Signal zum Lesen bereit ist;
- e) Leiten eines dritten Signals durch den Computer zu dem Drucker, das anzeigt, dass der Computer bereit ist, eine erste Dateneinheit von dem Drucker zu empfangen;
- f) Leiten der ersten Dateneinheit durch den Drucker zu dem Computer;
- g) Leiten eines vierten Signals durch den Drucker zu dem Computer, das anzeigt, dass die erste Dateneinheit zum Lesen bereit ist
- h) Leiten eines fünften Signals durch den Computer zu dem Drucker, das anzeigt, dass der Computer bereit ist, mehr Dateneinheiten zu empfangen;
- i) Leiten einer zweiten Dateneinheit durch den Drucker zu dem Computer;
- j) Leiten eines sechsten Signals durch den Drucker zu dem Computer, das anzeigt, dass die zweite Dateneinheit zum Lesen bereit ist.
- Bei Ausführungsformen der vorliegenden Erfindung wird die Vorrichtung zum Umdrehen des Vorwärtskanals durch den Hostcomputer aktiviert. Bei diesen und auch bei anderen Ausführungsformen der vorliegenden Erfindung wird die Vorrichtung zum Umdrehen des Rückkanals zurück, um so den Vorwärtskanal erneut einzurichten, durch den Hostcomputer aktiviert.
- Bei bestimmten Ausführungsformen der vorliegenden Erfindung umfaßt der Vorwärtskanal Statusleitungen, die zur Übertragung von Daten zwischen dem Drucker und dem Hostcomputer während des Rückkanalbetriebs verwendet werden.
- Weiterhin kann gemäß der erfindungsgemäßen Lehre der Vorwärtskanal ein Eingabe/Ausgabe-Steuerkanal sein, der dazu verwendet werden kann, Steuer- und Statusinformation zwischen dem Drucker und dem Hostcomputer während des Rückkanalbetriebs zu übertragen.
- Weiterhin kann gemäß der erfindungsgemäßen Lehre die Vorrichtung zum Steuern der Übertragung von Daten eine Vorrichtung für den Hostcomputer sein, um ein Paket aus Daten von Statusleitungen anzufordern. Bei derartigen Ausführungsformen der vorliegenden Erfindung kann das Datenpaket ein Halbbit aus Daten sein, kann die Vorrichtung für den Hostcomputer zum Anfordern eines Halbbits von Daten ein Signal *STROBE sein, und kann die Vorrichtung für den Drucker, um anzuzeigen, dass ein Halbbit von Daten sich auf den Statusleitungen befindet, ein SLCT-Signal sein. Bei derartigen Ausführungsformen kann ein Low-Halbbit von Daten über ein abgesenktes Signal *STROBE angefordert werden, und als Übertragung über ein angehobenes SLCT-Signal angezeigt werden; weiterhin kann ein High- Halbbit aus Daten über ein angehobenes Signal *STROBE angefordert werden, und als Übertragung über ein abgesenktes SLCT-Signal angezeigt werden.
- Ausführungsformen der vorliegenden Erfindung können auch Vorrichtungen für den Drucker umfassen, die dazu dienen, dem Hostcomputer anzuzeigen, wieviele Datenbytes von dem Drucker an den Hostcomputer übertragen werden sollen.
- Bei Ausführungsformen des Verfahrens gemäß der vorliegenden Erfindung können eine oder beide der Kanalumdrehschritte durch den Hostcomputer aktiviert werden.
- Gemäß der erfindungsgemäßen Lehre kann der Vorwärtskanal Statusleitungen aufweisen, die zur Übertragung von Daten zwischen dem Drucker und dem Hostcomputer während des Rückkanalbetriebs verwendet werden können. Weiterhin kann gemäß der erfindungsgemäßen Lehre der Vorwärtskanal ein Eingabe/Ausgabesteuerkanal sein, der dazu verwendet werden kann, Steuer- und Statusinformation zwischen dem Drucker und dem Hostcomputer während des Rückkanalbetriebs zu übertragen.
- Weiterhin kann gemäß der erfindungsgemäßen Lehre der Schritt der Steuerung der Übertragung von Daten den Schritt umfassen, dass der Hostcomputer ein Datenpaket anfordert, den Schritt, dass der Drucker anzeigt, dass sich ein Datenpaket auf Statusleitungen befindet, sowie den Schritt, dass der Hostcomputer das Datenpaket aus den Statusleitungen ausliest. Bei derartigen Ausführungsformen des Verfahrens gemäß der vorliegenden Erfindung kann das Datenpaket ein Daten- Halbbit sein. Weiterhin kann bei Ausführungsformen des Verfahrens gemäß der vorliegenden Erfindung der Schritt, dass der Drucker anzeigt, dass sich ein Daten- Halbbit auf Statusleitungen befindet, ein SLCT-Signal umfassen. Bei Ausführungsformen wie jenen, die voranstehend geschildert wurden, kann ein Halbbit von Daten mit dem Wert "Low" über ein abgesenktes Signal *STROBE angefordert werden, und als Übertragen durch ein angehobenes SLCT-Signal angezeigt werden, und kann weiterhin ein Daten-Halbbit mit dem Wert "High" über ein angehobenes Signal *STROBE angefordert werden, und als Übertragen über ein abgesenktes SLCT-Signal angezeigt werden.
- Ein weiteres Ziel der vorliegenden Erfindung besteht in der Bereitstellung eines Protokolls, das für sich schlecht verhaltende Software transparent ist, welche direkt den parallelen Port treibt.
- Ein weiteres Ziel der Erfindung besteht in der Bereitstellung eines Protokolls, bei welchem der Hostcomputer den Drucker schnell und wirksam abfragen kann, um festzustellen, ob irgendwelche zu lesenden Daten vorhanden sind.
- Ein weiteres Ziel der vorliegenden Erfindung besteht in der Bereitstellung eines Protokolls, das keine Echtzeit-Randbedingungen dem Hostcomputer auferlegt.
- Ein weiteres Ziel der vorliegenden Erfindung besteht in der Bereitstellung eines robusten, erweiterbaren Protokolls.
- Andere Ziele, Vorteile und neue Merkmale der vorliegenden Erfindung werden aus der folgenden, detaillierten Beschreibung der Erfindung deutlich, unter Berücksichtigung der beigefügten Zeichnungen, wobei:
- Fig. 1 ein Blockschaltbild eines parallelen Druckeradapters nach dem Stand der Technik ist;
- Fig. 2 Einzelheiten einer Parallelport-Schnittstelle zeigt; und
- Fig. 3 Signalübertragungen im Verlauf der Zeit in einem Protokoll gemäß der erfindungsgemäßen Lehre erläutert.
- In den Figuren, in denen gleiche oder entsprechende Elemente mit gleichen Bezugszeichen bezeichnet sind, ist in Fig. 1 ein bereits entwickelter paralleler Druckeradapter dargestellt. Fig. 1 zeigt deutlich eine Anzahl an Einzelheiten, die wesentlich für den Aufbau und die Umsetzung der vorliegenden Erfindung in die Praxis sind.
- Unter Bezugnahme auf Fig. 1 läßt sich zunächst anmerken, dass ein paralleler Port eines der einfachsten Bauteile eines Computers darstellt. Ein derartiger Port weist vier unterschiedliche Teile auf: einen Adressendekodierabschnitt, einen Schreiblogikabschnitt, einen physikalischen Eingabe/Ausgabeabschnitt; und einen Abschnitt zur Übertragung der Eingabe/Ausgabe an einen Bus. Im allgemeinen läuft der Betrieb des parallelen Ports folgendermaßen ab.
- Zuerst wird der Adressendekodierabschnitt 2 aktiviert, wenn sich eine bestimmte Adresse auf einem Bus 4 befindet. Der Schreiblogikabschnitt 6 nimmt die Daten auf dem Bus 4 an und liefert sie an den physikalischen Eingabe/Ausgabeabschnitt 8. Der Abschnitt zur Übertragung von Eingabe/Ausgabe an den Bus macht die Daten von der Eingabe/Ausgabe dem Bus verfügbar, wenn dies angefordert wird.
- Vier Adressen schalten den parallelen Port frei, zusammen mit den - oder -Busleitungen 10, 12. Die - und -Busleitungen IOR und IOW 12, 14 zeigen an, dass ein Eingabe- oder Ausgabevorgang eines Ports auf dem Bus stattfindet. Da normale Speicherlese- und Schreibvorgänge nicht die Anschlüsse einstellen, welche diesen Leitungen zugeordnet sind, ignoriert die gesamte Karte diese Arten von Operationen.
- Die verschiedenen Kombinationen von Leitungen gestatten das Beschreiben und Lesen der Status- und Datenleitungen auf dem DB-25-Verbinder 14.
- In Fig. 2 ist als Blockschaltbild die Hardware und das Kabel einer PC- Parallelport-Schnittstelle dargestellt. Diese Schnittstelle weist drei Register auf, die alle direkt durch Software manipuliert werden. Diese drei Register sind an Datenregister 24, ein Statusregister 26 und ein Steuerregister 28. Jedes dieser drei Register 24, 26 und 28 wird in einem gesonderten Absatz unmittelbar nachstehend erläutert.
- Das Datenregister 24 ist ein Lese/Schreibzwischenspeicher mit 8 Bit nur für die Ausgabe. Der Zwischenspeicher kann gelesen werden, um die Daten festzustellen, die zuletzt in ihn eingeschrieben wurden. Obwohl bereits einige Vorgehensweise vorgeschlagen wurden, um diesen Zwischenspeicher so zu überlisten, dass er zur Eingabe verwendet wird, waren diese Vorgehensweisen bestenfalls nicht verläßlich, und beschädigten im schlimmsten Fall die Hardware.
- Das Statusregister 26 ist nicht tatsächlich ein Register, sondern ein Port ohne Zwischenspeicherung für die Eingabe. Der Begriff "Statusregister" wird hier deswegen verwendet, um eine Verwechslung mit dem Begriff "Port" zu verhindern. Das "Lesen des Statusregisters" sollte hier so verstanden werden, dass eine Echtzeitabtastung der Statusleitungen gemeint ist.
- Das Steuerregister 28 ähnelt dem Datenregister 24 in der Hinsicht, dass es ebenfalls ein Lese/Schreibzwischenspeicher nur für die Ausgabe ist. Die drei unbenutzten Bit in dem oberen Teil des Registers 28 werden traditionell als Einsen gelesen, sollten jedoch als Nullen zurückgeschrieben werden. Dies verhindert Fehlfunktionen bei bestimmten neueren Implementierungen, welche das Bit 5 verwenden. Das Bit 4 ist nicht tatsächlich eine Druckersteuerleitung; es wird zum Freischalten/Sperren des Interrupts verwendet.
- Die Polarität der Status- und Steuerleitungen kann eine Hauptquelle von Verwirrungen darstellen. Dies wird noch dadurch verschlechtert, dass einige der Leitungen an der Schnittstelle invertiert werden. Eine gute Festlegung für die Benennung kann bei einer Implementierung viel Zeit und Mühen sparen helfen.
- Ein Signal Aktiv-Low ist ein Zustand, der durch eine niedrige Spannung statt eine hohe Spannung angezeigt wird. Man bezeichnet das Signal *ACK als Aktiv-Low, da eine niedrige Spannung auf dieser Leitung eine Bestätigung von dem Drucker anzeigt. Das Sternchen (*) ist ein Teil des Namens, und dient als Erinnerung daran, dass das Signal Aktiv-Low ist.
- Die PC-Parallelport-Schnittstelle invertiert das Signal BUSY und macht das Ergebnis als Bit 7 des Statusregisters 26 verfügbar. Wir bezeichnen dieses Bit als ~BUSY. Diese Tilde (-) gibt an, dass das Signal in Bezug auf das Kabel invertiert wird. Die Signale ~*STROBE, ~*AUTOLF und ~*SLCTin sind sowohl Aktiv-Low als auch in Bezug auf das Kabel invertiert.
- Es wird darauf hingewiesen, dass einige Signale auf mehr als eine Art und Weise bezeichnet werden können. Beispielsweise ist die Aussage, dass *SLCTin abgesenkt wird, gleich der Aussage, dass ~*SLCTin angehoben wird. Bei Diskussion des Protokolls wird normalerweise das Signal so bezeichnet, wie es auf dem Kabel auftaucht, und nicht so, wie es auf der PC-Schnittstelle auftaucht.
- Eine weitere mögliche Quelle für Verwirrungen stellt das Kabel selbst dar, einfach deswegen, da es bei dem in Fig. 2 gezeigten Beispiel einen Steckverbinder des Typs DB-25 an dem PC-Ende aufweist, und einen Centronix-Steckverbinder mit 36 Stiften am Druckerende. So ist beispielsweise die Bezugnahme auf einen "Stift k" mehrdeutig, da die Verbinder nicht in der Beziehung Eins zu Eins stehen. Fig. 2 stellt daher eine Nachschlagquelle für einen Programmierer für einen PC-Parallelport dar. Sie zeigt die Kabelanschlüsse mit Stiftnummern für beide Verbinder, die Signalbezeichnungen, die den Leitungen zugeordnet sind, die Register, auf welche durch den PC zugegriffen werden kann, und die der Schnittstelle zugeordneten Inverter.
- Mit dem voranstehend geschilderten Hintergrund kann nunmehr im einzelnen ein Protokoll gemäß der erfindungsgemäßen Lehre diskutiert werden. Aus Gründen, die nachstehend deutlich werden, kann dieses Protokoll als "Halbbit-Modus- Rückkanalprotokoll" bezeichnet werden.
- Herkömmlich erfolgt die Übertragung von Daten von dem Host an den Drucker über den Vorwärtskanal. Das Protokoll für zwei Richtungen gemäß den Lehren der vorliegenden Erfindung richtet einen Rückkanal für die Übertragung von Daten von dem Drucker an den Host ein.
- Bei der Übertragung auf dem Vorwärtskanal taucht ein Byte pro Zeit auf; jedes Byte wird unabhängig übertragen. Der Rückkanal ist Dialog orientiert; jede Anzahl an Bytes (zwischen 0 und 16384) kann in einem einzigen Dialog übertragen werden.
- Der Dialog weist eine Öffnungssequenz und eine Schließsequenz zum Zwecke der Änderung der Kanalrichtung auf, oder zum "Umdrehen des Kanals". Dies ist deswegen erforderlich, da die beiden Kanäle bestimmte Signale gemeinsam nutzen, deren Bedeutung davon abhängt, welcher Kanal aktiv ist. Es sind nicht ausreichend Signale in dem Kabel vorhanden, um beide Kanäle gleichzeitig aktiv sein zu lassen. Fig. 3 erläutert das Rückkanalprotokoll.
- Wie aus Fig. 3 hervorgeht, leitet der Host den Dialog dadurch ein, dass ein Byte hex 01h auf die Datenleitungen eingeschrieben wird, und dann das Signal *SLCTin angehoben (deaktiviert) wird. Das Byte 01h repräsentiert eine Kommunikationsmodusnummer. Kommunikationsmodusnummern werden nachstehend genauer erläutert.
- Der Drucker reagiert hierauf durch Anordnen eines Halbbits an Daten, nämlich des Schleifensteuerhinweises, auf den Statusleitungen, und nachfolgendes Absenken von SLCT. Stellt der Host fest, dass SLCT absinkt, liest er die Statusleitungen aus, um den Schleifensteuerhinweis zu erhalten. Auch dies wird nachstehend genauer erläutert. Nunmehr ist der Dialog eröffnet.
- Die nächste Gruppe von Operationen in einem Protokoll gemäß den Lehren der vorliegenden Erfindung können als "Datenübertragungsschleifenoperationen" bezeichnet werden. In dieser Schleife senkt der Host *STROBE ab, um ein Low- Halbbit eines Bytes anzufordern. Geht SLCT hoch, kann der Host das Halbbit von den Statusleitungen lesen. Bei dem in Fig. 3 gezeigten Beispiel ist ~BUSY das Bit 3, *ACK das Bit 2, PE das Bit 1, und *ERR das Bit 0.
- Daraufhin erhöht der Host *STROBE, um das High-Halbbit des Bytes anzufordern. Geht SLCT herunter, so kann der Host das Halbbit von den Statusleitungen lesen. Bei dem in Fig. 3 gezeigten Beispiel ist ~BUSY das Bit 7, *ACK das Bit 6, PE das Bit 5, und *ERR das Bit 4.
- In Bezug auf den Schleifensteuerhinweis, der voranstehend kurz erwähnt wurde, liest während der Öffnungssequenz der Host den Schleifensteuerhinweis von den Statusleitungen ab (beim vorliegenden Beispiel ist -BUSY das Bit 3, *ACK das Bit 2, PE das Bit 1, und *ERR das Bit 0). Der Schleifensteuerhinweis ist eine ganze Zahl von vier Bit ohne Vorzeichen, die eine Obergrenze für die Anzahl an Bytes festlegt, die in dem neu eröffneten Dialog übertragen werden kann.
- Ist der Schleifensteuerhinweis gleich 0h, dann hat der Drucker keine Daten zu senden, und muß der Host den Dialog schließen, ohne die Übertragung irgendwelcher Daten zu versuchen.
- Ist der Schleifensteuerhinweis nicht gleich 0h, dann wird die Schleifensteuergrenze berechnet als 2 hoch (Schleifensteuerhinweis -1). Die folgende Tabelle gibt alle möglichen Kombinationen an:
- 0h 0
- 1h 1
- 2h 2
- 3h 4
- 4h 8
- 5h 16
- 6h 32
- 7h 64
- 8h 128
- 9h 256
- Ah 512
- Bh 1024 (1KB)
- Ch 2048 (2KB)
- Dh 4096 (4KB)
- Eh 8192 (8KB)
- Fh 16384 (16KB)
- Der Host muß nicht sämtliche verfügbaren Bytes lesen. Der Host kann jede Anzahl an Bytes von 0 bis zur Schleifensteuergrenze lesen. Liest der Host bis zur Grenze, so muß er den Dialog schließen. Falls der Host immer noch weitere Daten wünscht, kann er sofort einen anderen Dialog eröffnen. Es können weitere Daten verfügbar sein, oder auch nicht.
- Als Beispiel wird angenommen, dass der Host 80 Bytes an Daten lesen möchte. Nach Öffnung eines Dialogs empfängt der Host einen Schleifensteuerhinweis von 7h, der angibt, dass er nicht mehr als 64 Bytes lesen darf. Der Host liest die 64 Byte, schließt den Dialog, und öffnet dann einen anderen Dialog. Es wird angenommen, dass dieses Mal der Schleifensteuerhinweis gleich 6h ist, wodurch angegeben wird, dass 32 Byte verfügbar sind. Der Host liest dann 16 Byte (um insgesamt 18 Byte zu erreichen), und schließt den Dialog.
- Die nächste, am weitesten unten in Fig. 3 dargestellte Gruppe an Operationen betrifft das Schließen des Dialogs. Der Host ist dafür verantwortlich, den Dialog zu schließen, wenn er Bytes bis zur Schleifensteuergrenze gelesen hat, oder wenn er sämtliche Bytes erhalten hat, die er haben möchte, je nachdem, was zuerst erreicht wird.
- Der Host schließt den Dialog durch Absenken von *SLCTin und nachfolgendes Warten darauf, dass SLCT hoch geht. Der Host muß auf SLCT warten, um anzuzeigen, dass die Statusleitungen nunmehr Statusinformation und keine Daten übertragen.
- Nebenbei wird in Bezug auf das Beispiel für das Halbbild-Modus- Rückkanalprotokoll, das hier erläutert wird, darauf hingewiesen, dass zwar die meisten Drucker SLCT absenken, wenn sie aus irgendeinem Grund abgeschaltet werden, jedoch ein Drucker, wenn er das hier vorgeschlagene Beispiel für ein Protokoll unterstützen soll, dieses Verhalten nicht zeigen darf. Das SLCT-Signal muß vollständig für das Protokoll reserviert werden, und sollte nicht für irgendetwas anderes eingesetzt werden. Wenn sich der Drucker abschaltet, sollte er BUSY anheben, um zu verhindern, dass der Host Daten sendet.
- Ein weiteres Thema in Bezug auf die vorliegende Erfindung, das hier ausreichend erläutert werden muß, sind Protokollzeitablauffehler. Es gibt zahlreiche Orte in dem Protokoll, an denen der Host unbegrenzt lange warten muß, bis ein Signalübergang auftritt. In diesen Schleifen kann ein Zeitgeber eingestellt werden, um einen Schwebezustand zu verhindern. Der empfohlene Zeitablauf-Zeitraum beträgt 2 Sekunden für jede Schleife, die auf einen Signalübergang von dem Drucker wartet. Hierdurch sollte dem Drucker ausreichend viel Zeit zur Verfügung stehen, um zu reagieren, aber dennoch dem Benutzer sofort mitgeteilt werden können, falls der Drucker das Protokoll überhaupt nicht unterstützt.
- Wenn eine Warteschleife an der Seite des Hosts abläuft, während der Dialog geöffnet ist, sollte der Host versuchen, den Dialog zu schließen. Tritt ein Zeitablauf auf, während der Dialog geschlossen wird, dann könnte der Host den Drucker (unter Verwendung des Impulses *INIT) zurücksetzen, um den Dialog abzubrechen. Nach Empfang dieses Signals kann der Drucker drastischere Aktionen durchführen oder auch nicht, beispielsweise Abbruch des momentanen Auftrags. Der Host sollte immer sicherstellen, dass *SLCTin Low (Aktiv) ist, bevor er den Impuls *INIT sendet; ist *SLCTin High nach dem Impuls *INIT, so meint der Drucker, dass der Host versucht, einen neuen Dialog zu eröffnen. Der Host sollte niemals versuchen, Daten zu senden, während ein Rückkanaldialog noch geöffnet ist.
- Nunmehr werden in Bezug auf Host-Software einige 80 · 86-Assembler- Codefragmente nachstehend zur Verfügung gestellt, um einen Programmentwickler der Treibersoftware auf der Seite des Hosts zu unterstützen. Diese Codefragmente sind nicht als Teil der Protokollspezifikation vorgesehen, sondern sollen nur wirksame, nicht-offensichtliche Lösungen an Orten zur Verfügung stellen, an denen offensichtliche Lösungen sehr ineffizient sein könnten.
- Ein erstes, hier vorgeschlagenes Fragment betrifft das Lesen des Low- Halbbits. Wenn der PC das Statusregister liest, um das Low-Halbbit von Daten zu erhalten, befinden sich die Bits in der falschen Reihenfolge. Dieses Codefragment ordnet die Bits korrekt an.
- Ein zweites, hier vorgeschlagenes Fragment betrifft das Lesen des High- Halbbits. Wenn der PC das High-Halbbit aus dem Statusregister ausliest, befinden sich die Bits wiederum in der falschen Reihenfolge. Dieses Codefragment ordnet sie in der richtigen Reihenfolge an, und kombiniert das High-Halbbit mit dem Low-Halbbit.
- Dieses dritte Codefragment berechnet die Anzahl an Bytes, die gelesen werden soll, unter Verwendung des Schleifensteuerhinweises, sowie die Anzahl an Bytes, welche der Host benötigt.
- Bis zu diesem Punkt wurde nur ein sogenanntes Halbbit-Modus- Rückkanalprotokoll diskutiert. Das Halbbit-Modus-Rückkanalprotokoll, das bislang vorgestellt wurde, stellt nur eines aus einer Gruppe von Protokollen dar, die für Parallelkommunikationsvorgänge in beiden Richtungen ausgelegt sind. Andere derartige Protokolle werden ebenfalls hier beschrieben.
- In Bezug auf das voranstehend erläuterte Protokoll wurden die folgenden vier Kommunikationsmodus-Nummern zugeordnet:
- 0 Version ID protocol
- 1 Nibble-mode reverse channel protocol
- 2 IOCTL write mode
- 3 IOCTL rend using nibble-mode rev. ch. protocol
- Die übrigen Modusnummern 4-255 kann man so ansehen, dass sie zur Verwendung in der Zukunft reserviert werden.
- In Bezug auf das Öffnen und Schließen eines Kommunikationsmodus beginnt und endet jeder Kommunikationsmodus auf dieselbe Art und Weise. Zum Öffnen eines Kommunikationsmodus stellt der Host die Kommunikationsmodus-Nummer auf den Datenleitungen ein, und hebt dann das Signal *SLCTin an. Der Drucker bestätigt den Modus durch Absenken des Signals SLCT. Sämtliche Kommunikationsvorgänge von diesem Punkt aus müssen entsprechend dem festgelegten Protokoll erfolgen. Falls die Statusleitungen gegenüber ihren Standardbedeutungen geändert werden sollen, so tritt diese Änderung auf, bevor das Signal SLCT abgesenkt wird. Hierdurch können die Bedeutungen der Statusleitungen gemultiplext werden, auf der Grundlage des Kommunikationsmodus.
- Um einen Kommunikationsmodus zu schließen senkt der Host *SLCTin ab, und wartet darauf, dass der Drucker SLCT anhebt, um anzuzeigen, dass er geschlossen ist. Die Bedeutungen der Statusleitungen werden wiederhergestellt, nachdem der Host *SLCTin abgesenkt hat, und bevor der Drucker SLCT anhebt. Der Host muß darauf warten, dass SLCT angehoben wird, bevor er weitermachen kann, um mögliche Überlaufbedingungen zu verhindern.
- Nunmehr wird ein anderes Protokoll gemäß den Lehren der vorliegenden Erfindung beschrieben, das nachstehend als "Protokollversion ID" bezeichnet wird.
- Da das in beiden Richtungen wirksame Parallelprotokoll erweitert werden kann, ist es hilfreich, wenn der Host bestimmen kann, welche Version des Protokolls von dem Drucker verwendet wird, oder ob der Drucker das Protokoll überhaupt nicht unterstützt. Das Protokoll der Version ID stellt diese Funktion zur Verfügung.
- Das Protokoll der Version ID arbeitet exakt ebenso wie das Halbbit-Modus- Rückkanal-Parallelprotokoll, mit Ausnahme einiger weniger, sehr wichtiger Unterschiede. Zunächst einmal ist die Kommunikationsmodus-Nummer Null (0) anstatt Eins (1). Daher muß der Host, damit er beginnen kann, auf den Datenleitungen hex 00h einstellen.
- Das Datenrücklesen ist konstant. Der Schleifensteuerhinweis ist immer gleich 2h, so dass die Schleifensteuergrenze immer gleich 2 ist. Es sind immer genau zwei Bytes zum Lesen vorhanden. Das erste Byte ist hex 5Ah. Das zweite Byte ist die Versionsnummer des Protokolls.
- Vom Drucker wird gefordert, dass er das durch die Versionsnummer festgelegte Protokoll insgesamt implementiert. Eine partielle Implementierung ist nicht ausreichend.
- Zur Klärung eines Punktes, der anderenfalls unklar sein könnte, wird auf folgendes hingewiesen: der Drucker kann 1 als Versionsnummer zurückschicken, und nur die Kommunikationsmodi 0 und 1 implementieren, wobei Modus 0 das Protokoll der Version ID ist, das in einer Version eines Dokuments angegeben ist, welches das Protokoll beschreibt, und Modus 1 das Rückkanalprotokoll ist, das in derselben Version des Dokuments festgelegt ist, so dass eine Aufwärtskompatibilität aufrechterhalten wird. Die Unterscheidung in Bezug auf Version 1 wird für zukünftige Drucker zugelassen, die keine IOCTL-Kanal aufweisen.
- Es ist nunmehr angebracht, den IOCTL-Kanal mit einigen Einzelheiten zu diskutieren, beginnend mit einer Diskussion seines Zwecks.
- Häufig ist es wünschenswert oder sogar erforderlich, dass Hostsystemsoftware den Drucker in Bezug auf detaillierte Statusinformation abfragt, oder Konfigurationsbefehle schickt. Der Datenstrom zu dem Drucker (häufig von einer völlig anderen Anwendung) kann jedoch nicht dadurch unterbrochen werden, dass in ihn asynchron neue Befehle eingegeben werden. Entsprechend ist es nicht wünschenswert, dass Hostsystemsoftware Daten von dem Drucker liest, der für eine Anwendung eingesetzt werden sollte, um zu versuchen, Statusinformation zu erlangen. Die Sache wird dadurch noch komplizierter, dass der Datenpuffer des Druckers wahrscheinlich voll ist, wenn die Systemsoftware eine Statusanforderung schicken muß.
- Der Kanal IOCTL (I/O-Steuerung) stellt einen getrennten, logischen Kanal für die Kommunikation mit dem Drucker zur Verfügung. Dieser Kanal arbeitet in beiden Richtungen, ebenso wie der Datenkanal, so dass Information in beiden Richtung übertragen werden kann. Getrennte Puffer werden für diesen Kanal aufrechterhalten, so dass Steuer- und Statusinformation selbst dann übertragen werden können, wenn Datenpuffer voll sind.
- Das Format der Information, die auf dem IOCTL-Kanal übertragen wird, wird durch den Drucker definiert. Im wesentlichen wird der IOCTL-Kanal zur Übertragung von Steuer- und Statusinformation verwendet. Er wird typischerweise nicht dazu eingesetzt, Seitenbeschreibungen oder andere Daten zu senden. Für diesen Zweck wird der eher geeignete Datenkanal eingesetzt.
- Zum Lesen aus dem IOCTL-Kanal verwendet der Host exakt dasselbe Protokoll wie jenes, das für das Halbbit-Modus-Rückkanal-Protokoll verwendet wurde, mit Ausnahme der Tatsache, dass die Kommunikationsmodus-Nummer gleich 3 ist. Zum Öffnen des IOCTL-Kanals zum Lesen stellt daher der Host zuerst hex 03h auf den Datenleitungen ein, und hebt *SLCTin an, und geht der Dialog ebenso wie in dem Kommunikationsmodus 1 weiter.
- Die auf diesem Kanal gelesene Information ist logisch von den Daten getrennt, die unter Verwendung des Kommunikationsmodus 1 gelesen werden. Sind keine Daten vorhanden, die von dem Rückkanal (Datenkanal) gelesen werden sollen, so läßt dies keine Rückschluß darauf zu, ob Information vorhanden ist, die von dem IOCTL-Kanal gelesen werden soll.
- Zum Schreiben in den IOCTL-Kanal muß der Host den Kommunikationsmodus 2 benutzen. Zu Beginn der Übertragung schreibt der Host hex 02h auf die Datenleitungen ein, und hebt dann *SLCTin an. Der Drucker stellt dann den Status des IOCTL-Kanals auf den Statusleitungen ein, und senkt SLCT ab. Stellt der Host fest, dass SLCT nach Low geht, so weiß er, dass die Statusleitungen nun den Status des IOCTL-Kanals wiedergeben, und nicht des Datenkanals. Selbst wenn der Datenkanal belegt wäre, muß dies für den IOCTL-Kanal nicht der Fall sein.
- Sobald der Kommunikationsmodus 2 eröffnet ist, wird Information von dem Host an den Drucker auf dieselbe Art und Weise übertragen, auf welche Daten auf dem Datenkanal übertragen werden, unter Verwendung der Datenleitungen, BUSY, *STROBE, *ACK, und der anderen Statusleitungen.
- Nachdem die Steuerinformation an den Drucker übertragen wurde, muß der Host den Kommunikationsmodus schließen. Der Host senkt *SLCTin ab, und wartet darauf, dass SLCT auf High geht. Der Drucker stellt die Statusleitungen wieder her, um den Status des Datenkanals wiederzugeben, und hebt dann SLCT an. Das Schließen ist beendet, wenn der Host feststellt, dass SLCT auf High geht.
- Beim Schreiben von Daten in den IOCTL-Kanal muß der Host häufig auf BUSY warten, da dies die Standardvereinbarung ist. Dieses Warten wird nicht durch denselben Zeitablauf von 2 Sekunden eingeschränkt, der voranstehend in Bezug auf das Halbbit-Modus-Rückkanal-Protokoll erläutert wurde. Der Zeitablaufwert im vorliegenden Fall steht im Belieben des Hosts. Wird der Host beim Warten auf das BUSY-Signal ungeduldig, und entscheidet einen Zeitablauf, sollte der Host zuerst versuchen, den Kommunikationsmodus auf normale Art und Weise zu schließen.
- Nunmehr wird ein anderer Gesichtspunkt erläutert. Die Standardunterstützung BIOS INT 17h für Paralleldruckerkommunikationsvorgänge ist in ihrer Funktion sehr beschränkt. Die folgenden Erweiterungen werden vorgeschlagen, damit Software die neuen Protokolle verwenden kann, ohne sie neu zu implementieren. Diese Erweiterungen werden nur als Beispiele vorgeschlagen, um die Umsetzung der vorliegenden Erfindung in die Praxis zu erleichtern, jedoch nicht, um sie einzuschränken.
- Die Funktion "Version identifizieren" stellt eine Vorgehensweise zur Verfügung, um anzugeben, dass die folgenden erweiterten Funktionen zum Einsatz verfügbar sind.
- AX = 80A5h
- AX is 5A5Ah
- BX will have the version number
- Die zurückgeschickte Versionsnummer entspricht der Versionsnummer eines geeigneten Dokuments, welches das Protokoll beschreibt. Die Versionsnummer hat das Format "H.L.", wobei der Abschnitt "H" in BH zurückgeschickt wird, und der Abschnitt "L" in BL. Die Geschichte der Überarbeitungen zu Beginn des geeigneten Dokuments sollte zusätzliche Information in Bezug auf Versionsnummern bereitstellen.
- Im Idealfall sind alle zukünftigen Änderungen bei BIOS-Erweiterungen aufwärts kompatibel.
- Die Funktion "Schreib Daten" schickt einen Datenpuffer an den Drucker. Eingabe: Antwort:
- Die Funktion "IOCTL schreiben" schickt einen Puffer aus I/O-Steuerinformation an den Drucker. Die Daten werden statt in den Datenkanal in den IOCTL-Kanal geschrieben. Eingabe: Antwort:
- Die Funktion "Lies Daten" liest einen Datenpuffer von dem Drucker. Eingabe: Antwort:
- Die Funktion "IOCTL lesen" liest einen Puffer aus I/O-Steuerinformation von dem Drucker. Die Daten werden aus dem I/O-Steuerkanal gelesen, anstatt aus dem Datenkanal. Eingabe: Antwort:
- Als letzte Erweiterung wird in Bezug auf Lese/Einstell-Zeitablaufwerte für Schreibvorgänge vorgeschlagen: Eingabe:
- Fachleuten auf diesem Gebiet sollte nun deutlich geworden sein, dass die vorliegende Erfindung ein in beiden Richtungen arbeitendes paralleles Protokoll zur Verfügung stellt, das robust ist, erweiterbar, und sehr gut daran angepaßt, zwischen einem Hostcomputer und einem zugehörigen Drucker zu arbeiten. Das Protokoll gemäß den Lehren der vorliegenden Erfindung kann vorhandene PC-Parallelport- Hardware und Kabel verwenden, ist jedoch für sich ungünstig verhaltende Anwendungssoftware und dergleichen transparent. Darüber hinaus läßt das Protokoll gemäß den Lehren der vorliegenden Erfindung eine schnelle Abfrage zu, wobei es keine problematischen Echtzeit-Randbedingungen auferlegt.
- Fachleute auf diesem Gebiet werden erkennen, dass zahlreiche Modifikationen und Variationen über jene hinaus, die speziell erwähnt wurden, bei den Vorgehensweisen vorgenommen werden können, die hier geschildert wurden, ohne wesentlich vom Konzept der vorliegenden Erfindung abzuweichen. Daher kann innerhalb des Umfangs der beigefügten Patentansprüche die vorliegende Erfindung anders in die Praxis umgesetzt werden, als dies hier speziell beschrieben wurde.
Claims (6)
1. Verfahren zum Herstellen eine Rückkanal-Übertragungsfähigkeit zwischen einem
Computer und einem Drucker über eine parallele Schnittstelle, wobei das
Verfahren die folgenden Schritte umfasst:
a) Leiten eines Übertragungsmodussignals durch den Computer zu dem Drucker,
wobei das Übertragungsmodussignal dazu dient, den Drucker in einen
Übertragungsmodus zu versetzen;
b) Leiten eines ersten Signals durch den Computer zu dem Drucker, das anzeigt,
dass das Übertragungsmodussignal zum Lesen bereit ist;
c) Leiten eines zweiten Signals durch den Drucker zu dem Computer, das anzeigt,
dass der Drucker Computerdaten in dem Übertragungsmodus erzeugt, der in
Schritt a) angezeigt wird;
d) Leiten eines Bereitschaftssignals durch den Drucker zu dem Computer, das
anzeigt, dass das zweite Signal zum Lesen bereit ist;
e) Leiten eines dritten Signals durch den Computer zu dem Drucker, das anzeigt,
dass der Computer bereit ist, eine erste Dateneinheit von dem Drucker zu
empfangen;
f) Leiten der ersten Dateneinheit durch den Drucker zu dem Computer;
g) Leiten eines vierten Signals durch den Drucker zu dem Computer, das anzeigt,
dass die erste Dateneinheit zum Lesen bereit ist;
h) Leiten eines fünften Signals durch den Computer zu dem Drucker, das anzeigt,
dass der Computer bereit ist, mehr Dateneinheiten zu empfangen;
i) Leiten einer zweiten Dateneinheit durch den Drucker zu dem Computer;
j) Leiten eines sechsten Signals durch den Drucker zu dem Computer, das anzeigt,
dass die zweiten Dateneinheit zum Lesen bereit ist.
2. Verfahren nach Anspruch 1, wobei die erste Dateneinheit ein Low-Halbbit ist.
3. Verfahren nach Anspruch 2, wobei die zweite Dateneinheit ein High-Halbbit ist.
4. Verfahren nach Anspruch 1, wobei der Übertragungsmodus ein Rückkanal-
Übertragungsmodus ist.
5. Verfahren nach Anspruch 1, wobei der Übertragungsmodus ein
Eingangs-/Ausgangs-Steuermodus ist.
6. Verfahren nach Anspruch 1, wobei der Übertragungsmodus ein Rückkanal-
Halbbit-Modus ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75062591A | 1991-08-27 | 1991-08-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69232456D1 DE69232456D1 (de) | 2002-04-11 |
DE69232456T2 true DE69232456T2 (de) | 2002-09-26 |
Family
ID=25018609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69232456T Expired - Fee Related DE69232456T2 (de) | 1991-08-27 | 1992-08-13 | Bidirektionales Parallelprotokoll |
Country Status (16)
Country | Link |
---|---|
US (2) | US5507003A (de) |
EP (1) | EP0529887B1 (de) |
JP (1) | JP3103216B2 (de) |
KR (1) | KR930004868A (de) |
CN (1) | CN1044414C (de) |
AT (1) | ATE214172T1 (de) |
AU (1) | AU645920B2 (de) |
BR (1) | BR9203330A (de) |
CA (1) | CA2075774C (de) |
DE (1) | DE69232456T2 (de) |
IE (1) | IE922610A1 (de) |
IL (1) | IL102823A (de) |
MX (1) | MX9204892A (de) |
MY (1) | MY153949A (de) |
NZ (1) | NZ243927A (de) |
TW (1) | TW203673B (de) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5706411A (en) * | 1992-11-09 | 1998-01-06 | Microsoft Corporation | Printer status user interface and methods relating thereto |
US5542071A (en) * | 1992-11-13 | 1996-07-30 | Video Associates Labs, Inc. | System for determining communication speed of parallel printer port of computer by using start timer and stop timer commands within data combined with embedded strobe |
US6362896B1 (en) * | 1993-11-08 | 2002-03-26 | Seiko Epson Corporation | Printing apparatus with a cash drawer control function, and a control method therefor |
JP3201141B2 (ja) * | 1994-06-02 | 2001-08-20 | セイコーエプソン株式会社 | データ受信方式 |
JP3563793B2 (ja) * | 1994-12-21 | 2004-09-08 | キヤノン株式会社 | データ処理方法及びその装置 |
JPH08185292A (ja) * | 1994-12-27 | 1996-07-16 | Nec Corp | 双方向プリンタインタフェース |
JPH096720A (ja) * | 1995-06-15 | 1997-01-10 | Canon Inc | 情報伝送方法および情報伝送システム |
JP3495865B2 (ja) * | 1996-01-09 | 2004-02-09 | キヤノン株式会社 | 印刷装置及び当該印刷装置を接続する情報処理装置並びにそれらの制御方法 |
EP0859327B1 (de) * | 1997-02-14 | 2009-07-15 | Canon Kabushiki Kaisha | Vorrichtung, System und Verfahren zur Datenübertragung und Vorrichtung zur Bildverarbeitung |
SG101460A1 (en) * | 1997-02-14 | 2004-01-30 | Canon Kk | Data communication apparatus and method |
EP0859323B1 (de) * | 1997-02-14 | 2007-03-21 | Canon Kabushiki Kaisha | Vorrichtung, System und Verfahren zur Datenübertragung und Vorrichtung zur Bildverarbeitung |
EP0859326A3 (de) | 1997-02-14 | 1999-05-12 | Canon Kabushiki Kaisha | Vorrichtung, System und Verfahren zur Datenübertragung und Vorrichtung zur Bildverarbeitung |
US6006284A (en) * | 1997-03-31 | 1999-12-21 | Sun Microsystems, Inc. | Method and apparatus for driving a parallel part to provide multiple modes of communications between a host and a peripheral |
US6614545B1 (en) * | 1997-05-09 | 2003-09-02 | Lexmark International, Inc | Communication scheme for imaging systems including printers with intelligent options |
JP3786152B2 (ja) * | 1997-11-14 | 2006-06-14 | セイコーエプソン株式会社 | 印刷システム、印刷方法及びプリンタ |
JPH11168524A (ja) * | 1997-12-05 | 1999-06-22 | Canon Inc | 通信制御装置および通信制御装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 |
US6064492A (en) * | 1998-05-29 | 2000-05-16 | Xerox Corporation | Image data interface between digital front end and printer |
US6717694B1 (en) * | 1998-07-31 | 2004-04-06 | Canon Kabushiki Kaisha | Data transmission apparatus, system and method, and recording medium |
US6124938A (en) * | 1998-09-24 | 2000-09-26 | Xerox Corporation | Submitting software upgrades to a digital printer through a standard port |
US6295538B1 (en) * | 1998-12-03 | 2001-09-25 | International Business Machines Corporation | Method and apparatus for creating metadata streams with embedded device information |
JP3652153B2 (ja) * | 1999-01-18 | 2005-05-25 | キヤノン株式会社 | 画像出力装置とその制御方法 |
SE9900517L (sv) * | 1999-02-17 | 2000-08-18 | Axis Ab | Gränssnitt och metod för kommunikation |
CN1306384C (zh) * | 1999-03-29 | 2007-03-21 | 精工爱普生株式会社 | 网络系统和网络接口卡 |
JP4306118B2 (ja) * | 2000-02-21 | 2009-07-29 | セイコーエプソン株式会社 | プリンタ及びプリンタの制御方法 |
US6725304B2 (en) * | 2000-12-19 | 2004-04-20 | International Business Machines Corporation | Apparatus for connecting circuit modules |
JP2006079138A (ja) * | 2004-09-07 | 2006-03-23 | Ricoh Co Ltd | ステータス取得方法、プリンタドライバ及び情報処理装置 |
CN103067641B (zh) * | 2012-12-13 | 2016-04-27 | 珠海赛纳打印科技股份有限公司 | 图像形成设备及方法 |
CN103942015A (zh) * | 2014-04-25 | 2014-07-23 | 长春工业大学 | 一种基于数据包的计算机与打印机双向并行通信方法 |
US10917603B2 (en) * | 2014-07-03 | 2021-02-09 | Sony Corporation | Interface circuit, transmission system, and transmission direction control method |
JP7145752B2 (ja) * | 2018-12-27 | 2022-10-03 | セイコーインスツル株式会社 | 印刷システム、ホスト装置、印刷制御方法、およびプログラム |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3827357A (en) * | 1973-09-12 | 1974-08-06 | Sperry Rand Corp | On-the-fly printer with shortened print cycle |
US4452136A (en) * | 1979-10-19 | 1984-06-05 | International Business Machines Corporation | Printer subsystem with dual cooperating microprocessors |
US4388686A (en) * | 1980-10-20 | 1983-06-14 | General Electric Company | Communication system for distributed control arrangement |
US4641263A (en) * | 1982-05-17 | 1987-02-03 | Digital Associates Corporation | Controller system or emulating local parallel minicomputer/printer interface and transferring serial data to remote line printer |
JPS5933527A (ja) * | 1982-08-20 | 1984-02-23 | Pioneer Electronic Corp | インタ−フエ−ス装置 |
US4703450A (en) * | 1982-08-20 | 1987-10-27 | Pioneer Electronic Corporation | Interface device |
JPS60157353A (ja) * | 1984-01-26 | 1985-08-17 | Citizen Watch Co Ltd | プリンタ情報問い合せ通信方式とプリンタ |
US4697232A (en) * | 1984-11-30 | 1987-09-29 | Storage Technology Corporation | I/O device reconnection in a multiple-CPU, dynamic path allocation environment |
US4661902A (en) * | 1985-03-21 | 1987-04-28 | Apple Computer, Inc. | Local area network with carrier sense collision avoidance |
US4745602A (en) * | 1985-09-20 | 1988-05-17 | Minolta Camera Company, Ltd. | Printer error and control system |
US4745597A (en) * | 1986-05-14 | 1988-05-17 | Doug Morgan | Reconfigurable local area network |
AU2220288A (en) * | 1987-09-15 | 1989-03-16 | Twelve Metre Research Pty. Ltd. | A computer interface system |
US4866609A (en) * | 1988-06-22 | 1989-09-12 | International Business Machines Corporation | Byte count handling in serial channel extender with buffering for data pre-fetch |
US4922491A (en) * | 1988-08-31 | 1990-05-01 | International Business Machines Corporation | Input/output device service alert function |
US5123089A (en) * | 1989-06-19 | 1992-06-16 | Applied Creative Technology, Inc. | Apparatus and protocol for local area network |
US5163138A (en) * | 1989-08-01 | 1992-11-10 | Digital Equipment Corporation | Protocol for read write transfers via switching logic by transmitting and retransmitting an address |
US5333286A (en) * | 1989-12-13 | 1994-07-26 | Joseph Weinberger | Two way copier monitoring system |
US5133055A (en) * | 1990-01-16 | 1992-07-21 | Physio Systems, Inc. | Signal processor for personal computers |
US5299314A (en) * | 1990-03-22 | 1994-03-29 | Xircom, Inc. | Network adapter using status inlines and data lines for bi-directionally transferring data between lan and standard p.c. parallel port |
US5075875A (en) * | 1990-04-20 | 1991-12-24 | Acuprint, Inc. | Printer control system |
US5179555A (en) * | 1990-09-11 | 1993-01-12 | Microcom Systems, Inc. | High speed data compression and transmission for wide area network connections in LAN/bridging applications |
US5200958A (en) * | 1990-09-28 | 1993-04-06 | Xerox Corporation | Method and apparatus for recording and diagnosing faults in an electronic reprographic printing system |
JPH05189104A (ja) * | 1990-10-31 | 1993-07-30 | Ricoh Co Ltd | 並列インタフェース |
US5239627A (en) * | 1991-03-26 | 1993-08-24 | International Business Machines Corporation | Bi-directional parallel printer interface |
GB9108599D0 (en) * | 1991-04-22 | 1991-06-05 | Pilkington Micro Electronics | Peripheral controller |
-
1992
- 1992-08-11 CA CA002075774A patent/CA2075774C/en not_active Expired - Fee Related
- 1992-08-12 NZ NZ243927A patent/NZ243927A/en unknown
- 1992-08-13 AU AU21023/92A patent/AU645920B2/en not_active Ceased
- 1992-08-13 AT AT92307429T patent/ATE214172T1/de not_active IP Right Cessation
- 1992-08-13 EP EP92307429A patent/EP0529887B1/de not_active Expired - Lifetime
- 1992-08-13 DE DE69232456T patent/DE69232456T2/de not_active Expired - Fee Related
- 1992-08-16 IL IL10282392A patent/IL102823A/en not_active IP Right Cessation
- 1992-08-17 MY MYPI92001472A patent/MY153949A/en unknown
- 1992-08-25 MX MX9204892A patent/MX9204892A/es unknown
- 1992-08-25 JP JP24858292A patent/JP3103216B2/ja not_active Expired - Lifetime
- 1992-08-26 IE IE261092A patent/IE922610A1/en not_active IP Right Cessation
- 1992-08-26 BR BR929203330A patent/BR9203330A/pt not_active IP Right Cessation
- 1992-08-26 KR KR1019920015443A patent/KR930004868A/ko not_active Application Discontinuation
- 1992-08-27 CN CN92110174A patent/CN1044414C/zh not_active Expired - Lifetime
- 1992-08-29 TW TW081106856A patent/TW203673B/zh active
-
1994
- 1994-11-14 US US08/338,885 patent/US5507003A/en not_active Expired - Lifetime
-
1996
- 1996-01-03 US US08/582,524 patent/US5666558A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5666558A (en) | 1997-09-09 |
DE69232456D1 (de) | 2002-04-11 |
CA2075774C (en) | 2000-10-17 |
MY153949A (en) | 2015-04-15 |
EP0529887A3 (en) | 1993-09-22 |
CN1070497A (zh) | 1993-03-31 |
KR930004868A (ko) | 1993-03-23 |
EP0529887A2 (de) | 1993-03-03 |
EP0529887B1 (de) | 2002-03-06 |
BR9203330A (pt) | 1993-04-06 |
IE922610A1 (en) | 1993-03-10 |
AU2102392A (en) | 1993-03-04 |
AU645920B2 (en) | 1994-01-27 |
MX9204892A (es) | 1993-04-01 |
ATE214172T1 (de) | 2002-03-15 |
IL102823A0 (en) | 1993-01-31 |
US5507003A (en) | 1996-04-09 |
TW203673B (de) | 1993-04-11 |
JPH05341923A (ja) | 1993-12-24 |
CA2075774A1 (en) | 1993-02-28 |
CN1044414C (zh) | 1999-07-28 |
IL102823A (en) | 1996-03-31 |
JP3103216B2 (ja) | 2000-10-30 |
NZ243927A (en) | 1995-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69232456T2 (de) | Bidirektionales Parallelprotokoll | |
DE69836426T2 (de) | Steuergerät für einen universellen seriellen Bus | |
DE69414105T2 (de) | Vorrichtung und verfahren zur automatischen erkennung und konfiguration eines peripheriegeräts | |
DE3204905C2 (de) | ||
DE69018100T2 (de) | Datenübertragung über Busadressleitungen. | |
DE69832005T2 (de) | Ein Drucksystem mit seriell angekoppelten wahlweisen Einrichtungen | |
DE69613900T2 (de) | Lese- und Schreibvorrichtung für eine IC-Karte und Datenübertragungsverfahren | |
DE10083913B4 (de) | Höhere Raten Unterstützender USB-Sendeempfänger | |
DE60132872T2 (de) | Anordnung und Verfahren für eine Schnittstelleneinheit um Daten zwischen einem Hauptprozessor und einem digitalen Signalprozessor im asynchronen Übertragungsmodus zu übertragen | |
DE69230954T2 (de) | Modulare Schnittstelle und Verfahren hierfür | |
DE2703394A1 (de) | Datenverarbeitungssystem | |
DE69229079T2 (de) | Bidirektionale parallele Drucker-Schnittstelle | |
DE4035837A1 (de) | Bus-hauptschnittstellenschaltung mit transparenter unterbrechung einer datenuebertragungsoperation | |
EP0006164B1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE19900369A9 (de) | Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus | |
EP0929041A2 (de) | Verfahren und Anordnung zum Betreiben eines Bussystems | |
DE2944497A1 (de) | Datenverarbeitungsanlage mit mehreren geraeteeinheiten | |
DE10301058A1 (de) | Stromaufwärtiges, als USB-Host dienendes Peripheriegerät | |
DE69626929T2 (de) | Bidirektionale parallelschnittstelle | |
DE69601060T2 (de) | Integrierbare DDC-Schnittstelle für einen Mikroprozessor | |
DE4135830A1 (de) | Parallelinterface | |
DE69431794T2 (de) | LESE-/SCHREIBVORRICHTUNG FüR EINE IC-KARTE UND STEUERVERFAHREN DAFüR | |
DE10214067A1 (de) | Hochgeschwindigkeitsdatenschnittstelle auf einem Chip | |
DE10249430A1 (de) | Fern-Firmware-Aktualisierung über I/O-Verbindung | |
DE3854770T2 (de) | Busadapter für digitales Rechensystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8339 | Ceased/non-payment of the annual fee |