-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft ein Datenkommunikationsgerät, das Datenkommunikation
mit einem Partnergerät über eine
Kommunikationsleitung durchführt,
und insbesondere ein Datenkommunikationsgerät, das Datenkommunikation mit
einem Partnergerät über eine
serielle Schnittstelle durchführt,
die auf IEEE (The Institute of Electronical and Electronics Engineers,
Inc.) 1394 basiert.
-
2. Stand der Technik
-
Als
serielle Schnittstelle, die Hochgeschwindigkeitsdatenübertragung
erreicht, wurde IEEE1394 vorgeschlagen. Im Vergleich zu SCSI (Small
Computer System Interface), das konventionell als Schnittstelle
zwischen einem Computer und seinen Peripheriegeräten eingesetzt wurde, hat IEEE1394
verschiedene Vorteile aufzuweisen. Zum Beispiel unterstützt IEEE1394
die automatische Zuweisung der jeweiligen IDs von angeschlossenen
Geräten
oder die Trennung eines angeschlossenen Geräts, während es mit der Stromquelle
verbunden ist (sogenannter Hot-Swap).
-
In
IEEE1394 wird die automatische Zuweisung einer ID an jedes angeschlossene
Gerät (Knoten)
wie folgt durchgeführt.
-
Das
heißt,
zuerst erkennt sich jeder Knoten selbst als ein „Zweig", der mit zwei oder mehr Knoten verbunden
ist, oder als ein „Blatt", das nur mit einem Knoten
verbunden ist. Als nächstes
sendet jeder Knoten nach Ablauf einer vorgegebenen Zeit ein parent_notify-Signal,
der Reihe nach ausgehend von einem Knoten, der sich selbst als „Blatt" erkannt hat. Andrerseits
sendet ein Knoten, der sich selbst als „Zweig" erkannt hat, ein child_notify-Signal
an einen Knoten, von dem ein parent_notify-Signal empfangen wurde,
bevor der erstere ein parent_notify-Signal sendet. Auf diese Weise
wird die Bestimmung der „Eltern-Kind-Beziehungen" zwischen Knoten
fortgeführt,
um ein Baumstruktur zu erken nen, die einen Stamm aufweist, d.h.
einen Knoten, der sich selbst als „Zweig" erkannt hat, mit dem alle Knoten als „Kinder" verbunden sind (Baumidentifikation).
-
Dann,
nach der Erkennung der Baumstruktur, sendet jeder Knoten in vorgegebener
Reihenfolge ein Self-Packet einschließlich einer von ihm selbst benutzten
physical_ID und Verwaltungsinformation, um den anderen Knoten seine
eigene Grundinformation zugänglich
zu machen. Hier wird in die physical_ID eingetragen, wie oft Self-Packets
gesendet werden. Mit anderen Worten, ein Knoten, der an erster Stelle
ein Self-Packet sendet, trägt „0" in seine physikalische
ID ein, ein Knoten, der an zweiter Stelle ein Self-Packet sendet,
trägt „1" in die physikalische ID
ein. Durch diese Anordnung werden die von den jeweiligen Knoten
benutzten IDs automatisch zugewiesen (Selbsterkennung).
-
Ferner
wird der Hot-Swap IEEE1394 entsprechend wie folgt durchgeführt. Das
heißt,
wenn ein neuer Knoten angeschlossen wird, während die Anschlußtopologie
des Busses überwacht
wird, dann löscht
jeder Knoten die Information über
die Topologie, und die Baumidentifikation und die Selbsterkennung
werden wiederholt, um die automatische Zuweisung der IDs der jeweiligen
Knoten durchzuführen
(Bus-Reset).
-
IEEE1394
gemäß wird während des
Bus-Resets keine Datenkommunikation zwischen Knoten durchgeführt. Deshalb
kann in einem Fall, wo Kontinuität
erforderlich ist (hier ist nicht die zeitliche Kontinuität gemeint,
sondern die Kontinuität
der Daten selbst), der Betrieb eines angeschlossenen Geräts beeinträchtigt werden,
wenn während
der Datenübertragung
ein Bus-Reset auftritt.
-
Zum
Beispiel in einem Fall, wo Daten mit einer hohen Echtzeiteigenschaft übertragen
wird, wie z.B., wenn ein von einem Fernsehempfänger empfangenes Fernsehrundfunksignal über eine IEEE1394-Schnittstelle
zur Anzeige an einen Bildschirm gesendet wird, tritt solch ein Symptom
auf, daß während eines
Bus-Resets ein Bild auf dem Bildschirm unterbrochen wird. Mit anderen
Worten, das Fernsehrundfunk signal, das während des Bus-Resets vom Fernsehempfänger empfangen
wird, ist nicht zu sehen. In diesem Fall wird der anschließende Bildschirmbetrieb
nicht beeinträchtigt.
Nach dem Abschluß des
Bus-Resets kann das vom Fernsehempfänger empfangene Fernsehrundfunksignal
wie vor dem Bus-Reset in Echtzeit auf dem Bildschirm angezeigt werden.
-
Doch
zum Beispiel in einem Fall, wo ein Programm, das von einem Computer
erstellt wurde, über eine
IEEE1394-Schnittstelle
an ein Speichergerät übertragen
wird, oder wo Druckdaten, die in einem Computer erstellt wurden, über eine IEEE1394-Schnittstelle
an einen Drucker übertragen werden,
verlieren die übertragenen
Daten ihre Bedeutung, wenn die Datenkontinuität zwischen vor und nach einer
Unterbrechung der Datenübertragung wegen
eines Bus-Resets nicht gewährleistet
ist.
-
Mit
anderen Worten, selbst wenn nur ein Teil der Programmdaten verloren
geht, ist dieses Programm nicht gültig, und ein Computer kann
das Programm nicht ausführen.
Ferner umfassen Druckdaten einen Code, der aus einer Datensequenz
von mehreren Bytes geformt wird, wobei die Bedeutung der auf den
Code folgenden Daten von diesem Code definiert wird. Wenn solch
ein Code verloren geht, erscheinen im gedruckten Ergebnis dementsprechend unzulässige Zeichen.
-
Aus
diesem Grunde wendet manche Technik die Idee an, daß, wenn
ein Bus-Reset auftritt, während
Daten über
eine serielle IEEE1394-Schnittstelle übertragen werden, und wenn
die betreffenden Daten die Datenkontinuität erfordern, wie z.B. Programmdaten
oder Druckdaten, die Übertragung
der betreffenden Daten dann von Anfang an wiederholt wird.
-
EP 0810185 offenbart einen
digitalen multifunktionalen Drucker, umfassend mehr als ein Bildeingabeelement,
mehr als eine Druckwarteschlange, um die von diesen Eingabeelementen
gesendeten Druckaufträge
unabhängig
zu verwalten, ein Druckwarteschlangen-Verwaltungssystem, um die
Druckaufträge
mit der höchsten
Priorität
aus der Druckwarteschlange zu wählen
und zu drucken.
-
US 5038299 offenbart eine
elektronische Vorrichtung mit einem Programmspeicher, umfassend
ein paralleles Übertragungsprogramm
und ein serielles Übertragungsprogramm,
einen Anschluß auf
der elektronischen Vorrichtung, mit dem eine parallele Übertragungsschnittstelle
oder eine serielle Übertragungsschnittstelle
trennbar verbunden ist, und eine Beurteilungseinheit, um die Art
der Druckerschnittstelle zu beurteilen, die mit dem Anschluß verbunden
ist.
-
In „Information
Technology – Serial
Bus Protocol 2, Working Draft, revision 2g" vom 15. September 1997, Seiten 13,
16, 17, 67, 82 und 83; wird ein Datenkommunikationsgerät offenbart,
um über
eine Kommunikationsleitung Datenkommunikation mit einem Partnergerät durchzuführen, wobei
dieses Datenkommunikationsgerät
ein Jobausführungsmittel zum
Empfangen von Daten vom Partnergerät umfaßt, um einen Job auszuführen; und
Jobverwaltungsmittel zum Verwalten einer Ausführung dieses Jobs.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Doch
auch wenn die obige Idee angewandt wird, bleibt das folgende Problem
bestehen.
-
Das
heißt,
einige serielle Drucker wie zum Beispiel ein Tintenstrahldrucker
starten mit dem Druck, wenn die Druckdaten für eine Zeile empfangen wurden
(eine Abtastung eines Druckkopfs). Wenn die Druckdaten von Anfang
an neu übertragen werden,
kann es daher vorkommen, daß manche Druckdaten
wiederholt gedruckt werden.
-
Die
vorliegende Erfindung wurde in Anbetracht der obigen Situation entwickelt.
Eine Aufgabe der Erfindung ist die Bereitstellung eines Datenkommunikationsgeräts, das
die Datenübertragung
fortsetzen kann, ohne die Datenübertragung
von Anfang an zu wiederholen, wenn die Datenübertragung aufgrund der Erzeugung
eines Ereignisses wie z.B. eines Bus-Resets unterbrochen wird.
-
Um
die obige Aufgabe zu erreichen, stellt die vorliegende Erfindung
ein Datenkommunikationsgerät
bereit, umfassend Jobausführungsmittel
zum Empfangen von Daten vom Partnergerät, um einen Job auszuführen; und
Jobverwaltungsmittel zum Verwalten eines Ausführungsstatus dieses Jobs. Wenn ein
Job, dessen Ausführung
durch ein bestimmtes Ereignis unterbrochen wurde, fortgesetzt werden soll,
weist das Jobverwaltungsmittel das Jobausführungsmittel an, den Job fortzusetzen,
indem es einen Ausführungsstatus
des Jobs zu dem Zeitpunkt angibt, an dem die Ausführung des
Jobs unterbrochen wurde. Das Jobausführungsmittel bezieht sich auf den
Ausführungsstatus
des Jobs an dem Zeitpunkt, an dem die Ausführung des Jobs unterbrochen
wurde, um nur Daten zu empfangen, die benötigt werden, um einen unverarbeiteten
Teil des Jobs auszuführen,
wobei der Ausführungsstatus
vom Jobverwaltungsmittel in Bezug auf den Job angegeben wird, für welchen
die Anweisung zur Fortsetzung gegeben wurde.
-
Der
vorliegenden Erfindung gemäß bezieht sich
das Jobausführungsmittel
bei der Fortsetzung eines Jobs, dessen Ausführung durch ein bestimmtes
Ereignis unterbrochen wurde, auf den Ausführungsstatus, der vom Jobverwaltungsmittel
in Bezug auf den Zeitpunkt angegeben wurde, an dem die Ausführung dieses
Jobs unterbrochen wurde, und empfängt vom Partnergerät nur die
Daten, die zur Ausführung
des unverarbeiteten Teils des Jobs benötigt wird. Demnach werden dieselben
Daten nicht wiederholt empfangen und es können Daten empfangen werden,
deren Kontinuität
gewährleistet
ist.
-
In
einem Fall, wo das erfindungsgemäße Datenkommunikationsgerät die Datenkommunikation mit
einem Partnergerät über eine
serielle Schnittstelle auf der Basis von IEEE (The Institute of
Electrical and Electronics Engineers, Inc.) 1394 und einem Datenübertragungsprotokoll
auf der Basis von SBP-2 (Serial Bus Protocol 2) entsprechend durchführt, entspricht
das Bus-Reset, das in IEEE1394 definiert ist, zum Beispiel einem „bestimmten
Ereignis", das die Ausführung eines
Jobs unterbricht.
-
In
diesem Fall wird das Jobausführungsmittel
als eines realisiert, das einen ORB (Operation Anforderung Block)
be folgt, der vom Partnergerät
als Job empfangen wird und Daten (das heißt, Daten, die die erste Adresse
und eine Übertragungsdatenmenge
angeben) enthält,
die einen Speicherbereich von Daten angeben, die vom Partnergerät zum Datenkommunikationsgerät selbst übertragen
werden sollen, damit eine Read Block-Anforderung erzeugt und gesendet
wird, die dem Partnergerät
eine Lesestartadresse und eine bestimmte Lesedatenmenge angibt,
und als Antwort darauf eine Read Block-Antwort empfängt, die
Lesedaten enthält,
wodurch das Jobausführungsmittel
die Daten sequentiell um die vorgegebene Datenmenge aus jeder Adresse
liest, um die Daten im vom ORB angegebenen Speicherbereich zu empfangen.
-
Ferner
kann das Jobverwaltungsmittel den Ausführungsstatus des ORBs verwalten,
durch Kenntnis des ORBs, der gerade vom Jobausführungsmittel ausgeführt wird,
und durch Kenntnis von mindestens einem von: der Zahl der gesendeten Read
Block-Anforderungen, die erzeugt wurden, um dieses ORB auszuführen, der
Zahl der Read Block-Antworten, die von Partnergeräten als
Antwort auf diese Read Block-Anforderungen empfangen wurden, und
der Gesamtbytezahl der Lesedaten, die in diesen Read Block-Antworten
enthalten war.
-
Wenn
hier zum Beispiel eine Anforderung des von SBP-2 definierten Wiederverbindungsvorgangs
vom Partnergerät
empfangen wird, das den ORB gesendet hat, dessen Ausführung durch
ein Bus-Reset unterbrochen wurde, und zudem dasselbe ORB wie das
unterbrochene ORB empfangen wird, dann kann das Jobverwaltungsmittel
das Jobausführungsmittel
anweisen, die Ausführung
des ORBs fortzusetzen, indem es mindestens eines angibt von der
Zahl der gesendeten Read Block-Anforderungen, der Zahl der empfangenen
Read Block-Antworten, und der Gesamtbytezahl der empfangenen Daten,
die in den Read Block-Antworten an dem Zeitpunkt enthalten waren,
als die Ausführung des
ORBs unterbrochen wurde. Und das Jobausführungsmittel kann die Read
Block-Anforderungen erzeugen, die zum Empfang der Daten erforderlich sind,
die noch nicht erhalten wurden, ausschließlich jener Daten im Speicherbereich,
der im ORB angegeben wird, die bereits erhalten wurden, wobei die
Daten, die noch nicht erhalten wurden, durch mindestens eines von
der Zahl der gesendeten Read Block-Anforderungen, der Zahl der empfangenen Read
Block-Antworten,
und der Gesamtbytezahl der empfangenen Daten, die in diesen Read
Block-Antworten an dem Zeitpunkt enthalten waren, als die Ausführung des
ORBs unterbrochen wurde. Diese Zahlen werden vom Jobverwaltungsmittel
angegeben. Das Jobausführungsmittel
sendet die generierten Read Block-Anforderungen an das Partnergerät und empfängt Read
Block-Antworten als Antwort auf diese Read Block-Anforderungen.
-
Durch
diese Anordnung ist es selbst dann, wenn der Empfang von Daten durch
ein Bus-Reset unterbrochen wird, möglich, die Daten zu empfangen,
deren Kontinuität
gewährleistet
ist, ohne dieselben Daten wiederholt zu empfangen.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
eine schematische Konfiguration, die ein System einschließlich eines
Druckers 2 zeigt, auf welches eine Ausführungsform der vorliegenden Erfindung
angewandt wird;
-
2 zeigt
eine Druckausführungssequenz, die
zwischen einem Computer 1 und dem Drucker 2 ausgeführt wird,
die in 1 gezeigt werden;
-
3 zeigt
eine Ausführungssequenz
zur Fortsetzung der Druckdatenübertragung,
die zwischen einem Computer 1 und dem Drucker 2 ausgeführt wird,
die in 1 gezeigt werden;
-
4 ist
eine schematische Konfiguration, die den Computer 1 von 1 zeigt;
-
5 ist
eine Draufsicht, die ein Beispiel der Hardwarekonfiguration eines
Computerhauptteils 12 zeigt, der in 4 gezeigt
wird;
-
6 ist
eine schematische Konfiguration des Druckers 2, der in 1 gezeigt
wird;
-
7 ist
eine Draufsicht, die ein Beispiel der Hardwarekonfiguration eines
Druckerhauptteils 22 zeigt, der in 6 gezeigt
wird;
-
8 ist
ein Flußdiagramm
zur Erläuterung der
Arbeitsweise des Computers 1 in der Druckausführungssequenz,
die in 2 gezeigt wird;
-
9 ist
ein Flußdiagramm
zur Erläuterung der
Arbeitsweise des Computers 1 in der Ausführungssequenz
zur Fortsetzung der Druckdatenübertragung,
die in 3 gezeigt wird;
-
10 ist
ein Flußdiagramm
zur Erläuterung der
Arbeitsweise des Druckers 2 in der Druckausführungssequenz,
die in 2 gezeigt wird; und
-
11 ist
ein Flußdiagramm
zur Erläuterung der
Arbeitsweise des Druckers 2 in der Ausführungssequenz zur Fortsetzung
der Druckdatenübertragung,
die in 3 gezeigt wird.
-
AUSFÜHRLICHE
BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
-
Im
folgenden wird eine Ausführungsform
der vorliegenden Erfindung beschrieben.
-
1 ist
eine schematische Konfiguration, die ein System einschließlich eines
Druckers 2 zeigt, auf welches eine Ausführungsform der vorliegenden Erfindung
angewandt wird. Hier sind ein Computer 1, ein Drucker 2,
ein Scanner 3 und eine digitale Videokamera 4 alle
mit einer auf IEEE (The Institute of Electronical and Electronics
Engineers, Inc.) 1394 basierenden seriellen Schnittstelle versehen
und durch diese Schnittstelle miteinander verbunden. Ferner wird
angenommen, daß im
vorliegenden System mindestens die Datenkommunikation zwischen dem
Computer 1 und dem Drucker einem Datenkommunikationsprotokoll
auf der Basis von SBP-2 (Serial Bus Protocol 2) entsprechend durchgeführt wird.
-
Im
folgenden wird der Einfachheit halber nur ein Datenübertagungsvorgang
zwischen dem Computer 1 und dem Drucker 2 beschrieben.
-
Zuerst
wird eine Druckausführungssequenz beschrieben,
die zwischen dem Computer 1 und dem Drucker 2 durchgeführt wird.
-
2 zeigt
die Druckausführungssequenz, die
zwischen dem Computer 1 und dem Drucker 2 durchgeführt wird.
-
Wie
im Diagramm gezeigt, ist die Druckausführungssequenz unterteilt in:
1. einen Anmeldevorgang; 2. einen Druckdatenübertragungsvorgang; und 3.
einen Abmeldevorgang.
-
1. Anmeldevorgang
-
Der
Computer 1 informiert den Drucker 2 über die
Write Block-Anforderung 1001, in welcher ein Speicherbereich
(um spezifisch zu sein, die erste Adresse und die Übertragungsdatenmenge)
für einen
Login-ORB (Operation Anforderung Block) beschrieben wird, damit
der Computer 1 den Drucker 2 anmeldet.
-
Wenn
er dies empfangen hat, sendet der Drucker 2 eine Write-Antwort
zurück.
Danach generiert der Drucker 2 Read Block-Anforderungen,
von denen jede eine Lesestartadresse und eine bestimmte Lesedatenmenge
angibt, eine nach der anderen, sooft dies notwendig ist, um alle
Daten im Speicherbereich zu lesen, der in der Write Block-Anforderung 1001 beschrieben
wird. Hier wird diese Vielzahl von Read Block-Anforderungen generiert
und sequentiell so gesendet, daß,
wenn eine Teiltransaktion beendet ist, dann in der nächsten Teiltransaktion
die nächsten Daten
gelesen werden, die auf die Daten folgen, die in dieser Transaktion
aus dem Computer 1 gelesen wurden. Dadurch empfängt der
Drucker 2 sequentiell die Read Block-Antworten vom Computer 1,
um den Login-ORB zu erhalten.
-
Als
nächstes,
wenn der Drucker 2 das Lesen des Login-ORBs beendet hat, sendet der Drucker 2 eine
Read Quadlet-Anforderung,
die eine Lesestartadresse und eine bestimmte Lesedatenmenge angibt, um
den Inhalt des Konfigurations-ROMs
des Computer 1 zu lesen, um erhält die GUID (global ID) oder dergleichen
vom Computer 1, um den Computer 1 zu identifizieren,
bei dem er sich angemeldet hat.
-
Dann
sendet der Drucker 2 die Login-Antwort als Write Block-Anforderung.
Die Login-Antwort umfaßt
Information wie z.B. eine Adresse (ORB-Pointer) auf seiten des Druckers 2,
an der ein Command Block Agent-ORB geschrieben werden soll. Der Command
Block Agent-ORB beschreibt eine Druckdatenübertragungsanweisung, einen
Speicherbereich für
zu übertragende
Druckdaten und dergleichen. Danach wird ein Paket, das angibt, daß die Verarbeitung
des Login-ORBs beendet ist, als Write Block-Anforderung gesendet.
-
2. Druckdatenübertragungsvorgang
-
Der
Computer 1 sendet die Write Block-Anforderung 1002,
in der die Adresse beschrieben wird, an welcher der Command Block
Agent-ORB gespeichert ist, damit der obige ORB in den ORB-Pointer geschrieben
wird, der in der vom Drucker 2 gesendeten Login-Antwort
angegeben ist.
-
Wenn
er diese empfangen hat, sendet der Drucker 2 eine Write-Antwort
zurück.
Als nächstes generiert
und sendet der Drucker 2 eine Read Block-Anforderung, um
den Command Block Agent-ORB zu lesen, das an der Adresse gespeichert
ist, die in der Write Block-Anforderung 1002 beschrieben
wird.
-
Wenn
er diese empfangen hat, sendet der Computer 1 als Read
Block-Antwort ein Paket, in dem der Command Block Agent-ORB gespeichert ist.
-
Als
nächstes
analysiert der Drucker 2 den Command Block Agent-ORB, der
in der vom Computer 1 gesendeten Read Block-Antwort gespeichert
ist, und generiert Read Block-Anforderungen,
von denen jede eine Lesestartadresse und eine bestimmte Lesedatenmenge
(zum Beispiel 2 KByte) beschreibt, die in einer Teiltransaktion übertragen
werden können,
eine nach der anderen, sooft dies notwendig ist, um alle Druckdaten
im Speicherbereich zu lesen, der im Command Block Agent-ORB beschrieben
wird, um die Druckdaten in dem von diesem ORB beschriebenen Speicherbereich
zu erhalten. Hier wird diese Vielzahl von Read Block-Anforderungen
generiert und sequentiell so gesendet, daß, wenn eine Teiltransaktion
beendet ist, dann in der nächsten
Teiltransaktion die nächsten
Daten gelesen werden, die auf die Daten folgen, die in dieser Transaktion
aus dem Computer 1 gelesen wurden. Dadurch empfängt der
Drucker 2 sequentiell Read Block-Antworten vom Computer 1,
um die Druckdaten zu erhalten.
-
Dann
sendet der Drucker 2 als Write Block-Anforderung ein Paket,
das angibt, daß die Verarbeitung
des Command Block Agent-ORBs (Übertragungsvorgang
der Druckdaten) abgeschlossen ist.
-
3. Abmeldevorgang
-
Der
Computer 1 informiert den Drucker 2 über die
Write Block-Anforderung 1003, in welcher ein Speicherbereich
für den
Logout-ORB (Operation Anforderung Block) beschrieben wird, damit
der Computer 1 den Drucker 2 abmeldet.
-
Wenn
er diese empfangen hat, sendet der Drucker 2 eine Write-Antwort
zurück.
Danach generiert der Drucker 2 Read Block-Anforderungen,
von denen jede eine Lesestartadresse und eine bestimmte Lesedatenmenge
angibt, eine nach der anderen, sooft dies notwendig ist, um alle
Daten im Speicherbereich zu lesen, der in der Write Block-Anforderung 1003 beschrieben
wird. Hier wird diese Vielzahl von Read Block-Anforderungen generiert und sequentiell so
gesendet, daß,
wenn eine Teiltransaktion beendet ist, dann in der nächsten Teiltransaktion
die nächsten Daten
gelesen werden, die auf die Daten folgen, die in dieser Transaktion
aus dem Computer 1 gelesen wurden. Dadurch empfängt der
Drucker 2 sequentiell die Read Block-Antworten vom Computer 1,
um den Logout-ORB zu erhalten.
-
Dann
sendet der Drucker 2 als Write Block-Anforderung ein Paket,
das angibt, daß die Verarbeitung
des Logout-ORBs beendet ist.
-
Als
nächstes
wird eine Ausführungssequenz für die Fortsetzung
der Druckdatenübertragung
beschrieben. Diese Sequenz wird zwischen dem Computer 1 und
dem Drucker 2 in einem Fall ausgeführt, wo die oben beschriebene
Druckausführungssequenz
unterbrochen wird, weil während
der Ausführung
dieser Druckausführungssequenz
ein Bus-Reset aufgetreten ist.
-
Wenn
zum Beispiel der Scanner 3 neu angeschlossen wird, während Druckdaten
zwischen dem Computer 1 und dem Drucker 2 übertragen
werden, indem die oben beschriebene Druckausführungssequenz ausgeführt wird,
dann wird diese Sequenz unterbrochen, was ein Bus-Reset verursacht.
-
Beim
Bus-Reset löscht,
wie oben beschrieben, jeder Knoten die Information über die
Busanschlußtopologie,
und die Baumidentifikation und Selbsterkennung werden erneut durchgeführt, um die
automatische Zuweisung von IDs an die jeweiligen Knoten durchzuführen. Aufgrund
dessen kann es vorkommen, daß die
Knoten-IDs des Computers 1 und des Druckers 2 vor
und nach dem Bus-Reset verschieden sind. Wenn in SBP-2 ein Bus-Reset
auftritt, während
der Computer 1 gerade dabei ist, sich beim Drucker 2 anzumelden,
führt der
Computer 1 daher innerhalb einer bestimmten Periode einen Wiederverbindungsvorgang
durch, damit der Drucker 2 als Login-Empfänger die
Knoten-Id des Computer 1 selbst neu bestätigt.
-
3 zeigt
eine Ausführungssequenz
zur Fortsetzung der Druckdatenübertragung,
die zwischen dem Computer 1 und dem Drucker 2 ausgeführt wird.
-
Diese
Sequenz wird durchgeführt,
nachdem ein Bus-Reset jeden Knoten veranlaßt hat, die Information über die
Busanschlußtopologie
zu löschen, und
nachdem die Baumidentifikation und Selbsterkennung erneut durchgeführt wurden,
um die automatische Zuweisung von IDs an die jeweiligen Knoten durchzuführen. Diese
Sequenz ist aufgeteilt in: 1. einen Drucker 2-Erkennungsvorgang
durch den Computer 1; 2. einen Wiederverbindungsvorgang;
3. einen Vorgang zur Fortsetzung der Druckdatenübertragung; und 4. einen Abmeldevorgang.
-
1. Drucker 2-Erkennungsvorgang
durch den Computer 1
-
Der
Computer 1 erhält
von jedem Knoten die GUID und andere Information, die zur Knotenerkennung
benötigt
wird, um die Entsprechung zwischen den neu zugewiesenen Knoten-IDs und den Knoten zu
erkennen. Mit anderen Worten, der Computer 1 sendet eine
Read Quadlet-Anforderung an jeden Knoten und empfängt als
Antwort darauf eine Read Quadlet- Antwort,
um den Inhalt des Konfigurations-ROMs zu lesen und Informationen
wie die GUID zu erhalten. Durch diesen Vorgang kann der Drucker 2,
der vor dem Bus-Reset angemeldet war, erkannt werden.
-
2. Wiederverbindungsvorgang
-
Der
Computer 1 informiert den Drucker 2 über die
Write Block-Anforderung 1004, in welcher ein Speicherbereich
für den
Reconnect-ORB beschrieben wird, damit der Computer 1 wieder
mit dem Drucker 2 verbunden wird.
-
Wenn
er diese empfängt,
sendet der Drucker 2 eine Write-Antwort zurück. Danach
generiert der Drucker 2 Read Block-Anforderungen, sooft
dies notwendig ist, um alle Daten im Speicherbereich zu lesen, der
in der Write Block-Anforderung 1004 beschrieben
wird. Hier wird diese Vielzahl von Read Block-Anforderungen generiert
und sequentiell so gesendet, daß,
wenn eine Teiltransaktion beendet ist, dann in der nächsten Teiltransaktion
die nächsten Daten
gelesen werden, die auf die Daten folgen, die in dieser Transaktion
aus dem Computer 1 gelesen wurden. Dadurch empfängt der
Drucker 2 sequentiell Read Block-Antworten vom Computer 1,
um den Reconnect-ORB zu erhalten.
-
Als
nächstes,
wenn das Lesen der Reconnect-ORB beendet ist, sendet der Drucker 2 eine Read
Quadlet-Anforderung, um den Inhalt des Konfigurations-ROMs des Computers 1 zu
lesen und Informationen wie die GUID usw. des Computers 1 zu
erhalten. Dadurch kann der Drucker 2 den Computer 1 erkennen,
an dem er vor dem Bus-Reset angemeldet war.
-
Dann
sendet der Drucker 2 als Write Block-Anforderung ein Paket,
das angibt, daß die Verarbeitung
des Reconnect-ORBs
beendet ist.
-
3. Vorgang zur Fortsetzung
der Druckdatenübertragung
-
Der
Computer 1 sendet die Write Block-Anforderung 1005,
in der die Adresse beschrieben wird, an welcher der Command Block
Agent-ORB für
die Druckdatenübertragung
gespeichert ist, um den genannten ORB in den ORB-Pointer zu schreiben,
der in dem Login-Antwortpaket angegeben wurde, das vom Drucker 2 in
der Druckausführungssequenz
gesendet wurde, die durch ein Bus-Reset unterbrochen wurde.
-
Wenn
er diese erhält,
sendet der Drucker 2 eine Write-Antwort zurück. Als nächstes generiert und sendet
der Drucker 2 eine Read Block-Anforderung, um den Command
Block Agent-ORB zu lesen, der an der Adresse gespeichert ist, die
in der Write Block-Anforderung 1005 beschrieben wurde.
Wenn er diese empfängt,
sendet der Computer 1 als Read Block-Antwort ein Paket, in dem der Command
Block Agent-ORB gespeichert ist.
-
Als
nächstes
analysiert der Drucker 2 den Command Block Agent-ORB, der
in der Read Block-Antwort vom Computer 1 gespeichert ist.
Dann beurteilt der Drucker 2, ob der Druckdatenspeicherbereich,
der in diesem ORB beschrieben wird, der gleiche ist wie der Druckdatenspeicherbereich,
der im Command Block Agent-ORB beschrieben wird, dessen Ausführung durch
das Bus-Reset unterbrochen wurde.
-
Wenn
sie gleich sind, dann generiert der Drucker 2 sequentiell
Read Block-Anforderungen, von denen jede eine Lesestartadresse und
eine vorgegebene Datenmenge (zum Beispiel 2 KByte) beschreibt, die
in einer Teiltransaktion übertragbar
ist, sooft dies notwendig ist, um alle Daten zu lesen, die noch
nicht erhalten wurden, um von den Druckdaten im Speicherbereich,
der in diesem ORB beschrieben wird, die Druckdaten zu erhalten,
die bei der Verarbeitung der obigen ORB vor dem Bus-Reset noch nicht
vom Computer 1 erhalten wurden. Hier wird diese Vielzahl
von Read Block-Anforderungen
generiert und sequentiell so gesendet, daß, wenn eine Teiltransaktion
beendet ist, dann in der nächsten
Teiltransaktion die nächsten
Daten gelesen werden, die auf die Daten folgen, die in dieser Transaktion
aus dem Computer 1 gelesen wurden. Dadurch empfängt der
Drucker 2 sequentiell Read Block-Antworten vom Computer 1,
um die Druckdaten zu erhalten, die bei der Verarbeitung des Command
Block Agent-ORB, dessen Ausführung
durch den Bus-Reset unterbrochen wurde, noch nicht erhalten wurde.
-
Andrerseits,
um in einem Fall, wo die obigen Speicherbereiche voneinander verschieden
sind, die Druckdaten in dem Speicherbereich zu erhalten, der im
analysierten Command Block Agent-ORB beschrieben wird, generiert
der Drucker 2 sequentiell Read Block-Anforderungen, von
denen jede eine Lesestartadresse und eine vorgegebene Datenmenge (zum
Beispiel 2 KByte) beschreibt, die in einer Teiltransaktion übertragbar
ist, sooft dies notwendig ist, um alle Druckdaten im Speicherbereich
zu lesen, der in diesem ORB beschrieben wird. Hier wird diese Vielzahl
von Read Block-Anforderungen
generiert und sequentiell so gesendet, daß, wenn eine Teiltransaktion
beendet ist, dann in der nächsten
Teiltransaktion die nächsten
Daten gelesen werden, die auf die Daten folgen, die in dieser Transaktion
aus dem Computer gelesen wurden. Dadurch empfängt der Drucker 2 sequentiell
Read Block-Antworten vom Computer 1, um die Druckdaten
in dem Speicherbereich zu erhalten, der im betreffenden ORB beschrieben
wird.
-
Danach
sendet der Drucker 2 als Write Block-Anforderung ein Paket,
das angibt, daß die Verarbeitung
des Command Block Agent-ORBs (Druckdatenübertragungsvorgang) abgeschlossen ist.
-
4. Abmeldevorgang
-
Der
Computer 1 informiert den Drucker 2 über die
Write Block-Anforderung 1006, in welcher ein Speicherbereich
für den
Logout-ORB beschrieben wird, damit der Computer 1 den Drucker 2 abmeldet.
-
Wenn
er diese empfangen hat, sendet der Drucker 2 eine Write-Antwort
zurück.
Danach generiert der Drucker 2 Read Block-Anforderungen
zum Lesen von Daten aus dem Computer 1, sooft dies notwendig
ist, um alle Daten im Speicherbereich zu lesen, der in der Write
Block-Anforderung 1006 beschrieben wird. Hier wird diese
Vielzahl von Read Block-Anforderungen generiert und so gesendet, daß, wenn
eine Teiltransaktion beendet ist, dann in der nächsten Teiltransaktion die
nächsten
Daten gelesen werden, die auf die Daten folgen, die in dieser Transaktion
aus dem Computer 1 ge lesen wurden. Dadurch empfängt der
Drucker 2 sequentiell die Read Block-Antworten vom Computer 1,
um den Logout-ORB zu erhalten.
-
Dann
sendet der Drucker 2 als Write Block-Anforderung ein Paket,
das angibt, daß die Verarbeitung
des Logout-ORBs beendet ist.
-
Wenn,
wie oben beschrieben, in der vorliegenden Ausführungsform ein Druckdatenübertragungsvorgang,
der durch einen Command Block Agent ORB verursacht wurde, durch
ein Bus-Reset unterbrochen wird, erhält der Drucker 2 vom
Computer 1 nur Druckdaten, die bei der Verarbeitung dieses ORBs
vor dem Bus-Reset noch nicht erhalten wurden. Durch diese Anordnung
ist es selbst dann, wenn der Empfang von Druckdaten durch ein Bus-Reset unterbrochen
wird, möglich,
daß der
Drucker 2 die Druckdaten empfängt, deren Kontinuität gewährleistet
ist, ohne die gleichen Daten wiederholt zu empfangen.
-
Als
nächstes
werden der Computer 1 und der Drucker 2 beschrieben,
die die oben beschriebene Ausführungssequenz
zur Fortsetzung der Druckdatenübertragung
realisieren.
-
Zuerst
wird der Computer 1 beschrieben.
-
Wie
in der Zeichnung gezeigt, umfaßt
der Computer 1 ein Datenkommunikationsteil 11 und
ein Computerhauptteil 12.
-
Wie
in 5 gezeigt, weist das Computerhauptteil 12 einen
Aufbau eines gewöhnlichen
Computers auf, umfassend eine CPU 121, einen Speicher 122,
ein externes Speichergerät 123 wie
z.B. eine Festplatteneinheit, ein Lesegerät 124, um Daten von einem
tragbaren Speichermedium 125 wie z.B. einer CD-ROM oder
einer FD zu lesen, eine Eingabeeinheit 126 wie z.B. eine
Tastatur oder eine Maus, eine Anzeigeeinheit 127 wie z.B.
eine Bildschirm- oder LCD-Anzeige,
und eine Schnittstelle 128, die für das Senden und Empfangen
von Daten zwischen Elementen einschließlich der oben beschriebenen
Geräte
und dem Datenkommunikationsteil 11 zuständig ist. Hier wird angenommen,
daß im
Computerhauptteil 12 ein Druckertreiberprogramm zum Steuern
des Druckers 2 und ein Anwendungsprogramm wie z.B. ein
Textverarbeitungsprogramm oder ein Graphikprogramm zum Erstellen
von Druckdaten, die vom Drucker 2 gedruckt werden sollen,
ausgeführt
werden.
-
Der
Datenkommunikationsteil 11 umfaßt einen PHY-Verarbeitungsabschnitt 111 zum
Ausführen eines
Prozesses in der physikalischen Schicht von IEEE1394, einen Link-Verarbeitungsabschnitt 112 zum
Ausführen
eines Prozesses in der Link-Schicht von IEEE1394, einen Paketverarbeitungsabschnitt 113 zum
Ausführen
eines Prozesses in der Transaktionsschicht von IEEE1394, ein Bus-Reset-Erkennungsabschnitt 114 zum
Erkennen eines Bus-Resets, der in IEEE-1394 definiert wird, und einen Jobverarbeitungsabschnitt 115 zum
Verarbeiten des Datenübertragungsprotokolls
auf der Basis von SBP-2.
-
Hier
kann jedes Element, aus dem der Datenkommunikationsteil 11 besteht,
als Hardware mit einer integrierten Logikschaltung wie z.B. einem ASIC
(anwendungsspezifischer integrierter Schaltkreis), FPLA (anwenderprogrammierbares
Logikfeld) und dergleichen implementiert sein, oder kann mit einem
DSP (Digitalsignalprozessor) durch Software realisiert werden. Ferner
kann der Jobverarbeitungsabschnitt 115 so realisiert werden,
daß die
CPU 121 des Computerhauptteils 12 ein bestimmtes
Programm ausführt.
Darüber
hinaus kann der Datenkommunikationsteil 11 als ein Einzelgerät vorgesehen
werden, das in den Computerhauptteil 12 eingebaut werden
kann.
-
Der
Jobverarbeitungsabschnitt 115 generiert einen ORB (Operation
Anforderung Block) und fordert den Paketverarbeitungsabschnitt 113 auf,
ein Paket zu generieren, das zur Übertragung dieses ORBs an den
Drucker 2 benötigt
wird. Zum Beispiel ein Login-ORB/Logout-ORB, damit der Computer 1 den
Drucker 2 anmeldet/abmeldet, ein Command Block Agent-ORB,
damit der Drucker 2 Druckdaten aus dem Computer 1 liest,
oder dergleichen wird generiert und in einem bestimmten Speicherbereich
gespeichert. Dann fordert der Jobverarbeitungsabschnitt 115 den
Paketverarbeitungsab schnitt 113 auf, eine Write Block-Anforderung
zu generieren, damit der Drucker 2 diese ORBs aus dem Computer 1 liest.
-
Ferner,
wenn der Bus-Reset-Erkennungsabschnitt 114 während der
Ausführung
eines Command Block Agent-ORB, damit der Drucker 2 Druckdaten aus
dem Computer 1 liest, ein Bus-Reset erkennt, dann generiert der Jobverarbeitungsabschnitt 115, wenn
der Link-Verarbeitungsabschnitt 112 die Verarbeitung der
Baumidentifikation und der Selbsterkennung beendet hat, einen Reconnect-ORB,
um den Computer 1 wieder mit dem Drucker 2 zu
verbinden, und speichert diesen in einem bestimmten Speicherbereich
des Computerhauptteils 12. Dann führt der Jobverarbeitungsabschnitt 115 den
Wiederverbindungsvorgang durch, indem er den Paketverarbeitungsabschnitt 113 auffordert,
eine Write Block-Anforderung zu generieren, damit der Drucker 2 diesen ORB
aus dem Computer 1 liest. Danach fordert der Jobverarbeitungsabschnitt 115 den
Paketverarbeitungsabschnitt 113 erneut auf, eine Write
Block-Anforderung zu erzeugen, damit der Drucker 2 aus
dem Computer 1 den Command Block Agent-ORB liest, dessen
Ausführung
unterbrochen wurde.
-
Der
Paketverarbeitungsabschnitt 113 umfaßt einen paketempfangenden
Abschnitt 116 und einen paketerzeugenden Abschnitt 117.
-
Der
paketempfangende Abschnitt 116 empfängt durch den PHY-Verarbeitungsabschnitt 111 und den
Link-Verarbeitungsabschnitt 112 ein Paket von einem Knoten.
-
Der
paketerzeugende Abschnitt 117 generiert IEEE1394 entsprechend
verschiedene Pakete. Zum Beispiel generiert der paketerzeugende
Abschnitt 117 eine Write Block-Anforderung, damit der Drucker 2 den
vom Jobverarbeitungsabschnitt 115 generierten ORB einer
Anweisung vom Jobverarbeitungsabschnitt 115 entsprechend
liest. Oder der paketerzeugende Abschnitt 117 liest Daten,
die von der Read Block-Anforderung angefordert wurde, die vom paketempfangenden
Abschnitt 116 empfangen wurde, und erzeugt eine diese Daten
enthaltende Read Block-Antwort.
-
Als
nächstes
wird der Drucker 2 beschrieben.
-
6 ist
eine schematische Konfiguration des Druckers, der in 1 gezeigt
wird.
-
Wie
in der Zeichnung gezeigt, umfaßt
der Drucker 2 ein Datenkommunikationsteil 21 und
ein Druckerhauptteil 22.
-
Wie
in 7 gezeigt, weist der Druckerhauptteil 22 einen
Aufbau eines gewöhnlichen
Druckers auf, umfassend einen Speicher 222, eine CPU 221,
um verschiedene Teile, aus denen der Druckerhauptteil 22 besteht,
durch Ausführung
verschiedener Programme zu steuern, die im Speicher 222 gespeichert
sind, eine Druckvorrichtung 224, die Mechanismen (zum Beispiel
einen Druckkopf zur Tintenabgabe, eine Walze, einen Wagenantriebsmechanismus
zum Antreiben eines Wagens, der den Druckkopf trägt, einen Papiervorschubmechanismus,
einen Zuführ-/Ablagemechanismus
zum Zuführen/Ablegen
eines Druckmediums usw.) aufweist, um Daten auf ein Druckmedium
zu drucken, und eine Zf-Schaltung 223, die für das Senden/Enpfangen
von Daten vom Datenkommunikationsteil 21 zuständig ist.
-
Der
Datenkommunikationsteil 21 umfaßt einen PHY-Verarbeitungsabschnitt 211,
um einen Prozeß in
der physikalischen Schicht von IEEE1394 auszuführen, einen Link-Verarbeitungsabschnitt 212,
um einen Prozeß in
der Link-Schicht von IEEE1394 auszuführen, einen Paketverarbeitungsabschnitt 213, um
einen Prozeß in
der Transaktionsschicht von IEEE-1394
auszuführen,
ein Bus-Reset-Erkennungsabschnitt 214, um 214 zum
Erkennen eines Bus-Resets, der in IEEE1394 definiert definiert wird,
und einen Jobverarbeitungsabschnitt 215 zum Verarbeiten des
Datenübertragungsprotokolls
auf der Basis von SBP-2.
-
Hier
kann jedes Element, aus dem der Datenkommunikationsteil 11 besteht,
als Hardware mit einer integrierten Logikschaltung wie z.B. einem ASIC
(anwendungsspezifischer integrierter Schaltkreis), FPLA (anwenderprogrammierbares
Logikfeld) und dergleichen implementiert sein, oder kann mit einem
DSP (Digitalsignalprozessor) durch Software realisiert werden. Ferner
kann der Jobverarbeitungsabschnitt 215 so realisiert sein,
daß die
CPU 221 des Druckerhauptteils 22 ein bestimmtes
Programm ausführt.
Darüber
hinaus kann der Datenkommunikationsteil 21 als ein Einzelgerät vorgesehen
werden, das in den Druckerhauptteil 12 eingebaut werden kann.
-
Der
Paketverarbeitungsabschnitt 213 umfaßt einen paketempfangenden
Abschnitt 216 und einen paketerzeugenden Abschnitt 217.
-
Der
paketempfangende Abschnitt 216 umfaßt einen Druckdatenpuffer 2163,
einen Universalpuffer 2162 und einen Empfangsselektor 2161.
-
Der
Druckdatenpuffer 2163 speichert Druckdaten, die in der
Read Block-Antwort vom Computer 1 gespeichert sind, und
sendet die gespeicherten Druckdaten byteweise, d.h. als parallele
Daten, an den Druckerhauptteil 22.
-
Hier
ist die Größe des Druckdatenpuffers 2163 so
eingestellt, daß sie
größer (zum
Beispiel 4 KByte) ist die vorgegebene Datenmenge (zum Beispiel 2
KByte), die in einer Teiltransaktion übertragen werden kann und die
in der Read Block-Anforderung beschrieben wird, die erzeugt wird,
damit der Drucker 2 Druckdaten vom Computer 1 erhält (siehe
die oben beschriebene Druckausführungssequenz
oder die Ausführungssequenz
zur Fortsetzung der Druckdatenübertragung).
-
Als
Zeitpunkt, an dem die im Druckdatenpuffer 2163 gespeicherte
Druckdaten an den Druckerhauptteil 22 gesendet werden,
kann zum Beispiel ein Zeitpunkt benutzt werden, an dem die Daten
im Druckdatenpuffer 2163 gespeichert werden.
-
Der
Universalpuffer 2162 speichert Daten, die in einem anderen
Paket als der Read Block-Antwort enthalten sind, in welcher Druckdaten
gespeichert sind.
-
Der
Empfangsselektor 2161 wählt
einen Puffer als Empfänger
eines Pakets, das durch den PHY-Verarbeitungsabschnitt 211 und
den Link-Verarbeitungsabschnitt 212 empfangen wurde. Das
heißt, wenn
das empfangene Paket eine Read Block-Antwort ist, in der Druckdaten
gespeichert sind, wählt
der Empfangsselektor 2161 den Druckdatenpuffer 2163, und
wenn das empfangene Paket ein anderes Paket als eine Read Block-Antwort
ist, in der Druckdaten gespeichert sind, wählt der Empfangsselektor 2161 den
Universalspeicher 2162. In SBP-2 (Serial Bus Protocol 2)
wird ein Paket mit Information versehen, die die Art des Pakets
angibt. Durch Prüfung
dieser Information kann der Empfangsselektor 2161 beurteilen,
ob das empfangene Paket eine Read Block-Antwort ist, in der Druckdaten
gespeichert sind.
-
Der
paketerzeugende Abschnitt 217 umfaßt einen druckdatenpaketerzeugenden
Abschnitt 2173, einen universalpaketerzeugenden Abschnitt 2172 und
einen Sendeselektor 2171.
-
Der
druckdatenpaketerzeugende Abschnitt 2173 generiert eine
Read Block-Anforderung, in der eine Lesestartadresse und eine Menge
der zu lesenden Daten beschrieben wird, und die zum Lesen von Druckdaten
aus dem Computer 1 verwendet wird. Der druckdatenpaketerzeugenden
Abschnitt 2173 überwacht
eine freie Speicherkapazität
des Druckdatenpuffers 2163 des paketempfangenden Abschnitts 216.
Dann, nachdem bestätigt
wurde, daß der
Druckdatenpuffer 2163 eine freie Speicherkapazität für die in
die Lesedatenmenge hat, die in der Read Block-Anforderung beschrieben
wird, erzeugt der druckdatenpaketerzeugende Abschnitt 2173 diese Read
Block-Anforderung.
-
Der
universalpaketerzeugende Abschnitt 2172 erzeugt ein Paket,
das ein anderes ist als das Paket für die Read Block-Anforderung
zum Lesen von Druckdaten aus dem Computer 1.
-
Der
Sendeselektor 2171 wählt
eines vom druckdatenpaketerzeugenden Abschnitt 2173 und vom
universalpaketerzeugenden Abschnitt 2172 aus und sendet
ein Paket, das vom so gewählten
paketerzeugenden Abschnitt erzeugt wurde, durch den PHY-Verarbeitungsabschnitt 211 und
den Link-Verarbeitungsabschnitt 212 an
den Computer 1.
-
Der
Jobverarbeitungsabschnitt 215 umfaßt einen Ausführungsstatusüberwachungsabschnitt 2151 und
einen Jobausführungsabschnitt 2152.
-
In
Bezug auf den Command Block Agent ORB zur Übertragung der Druckdaten,
die aus dem Computer 1 gelesen wurden, zählt der
Ausführungsstatusüberwachungsabschnitt 2151 die
Zahl der Pakete mit Read Block-Anforderungen, die vom druckdatenpaketerzeugenden
Abschnitt 2172 diesem ORB entsprechend erzeugt worden sind,
und zählt die
Zahl der Pakete mit Read Block-Antworten, die auf diese Read Block-Anforderungen hin
vom Computer 1 empfangen wurden, bis die Ausführung dieses
ORBs abgeschlossen ist.
-
Der
Jobausführungsabschnitt 2152 analysiert
ein Paket, das im Universalpuffer 2162 gespeichert ist,
und führt
die Verarbeitung dem Inhalt dieses Pakets entsprechend durch.
-
Zum
Beispiel, wenn das im Universalpuffer 2162 gespeicherte
Paket eine Write Block-Anforderung ist, in der ein Bestimmungsort
zum Speichern des Login-ORBs/Logout-ORBs oder Reconnect-ORBs beschrieben
wird, dann informiert der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172 darüber, um
den betreffenden ORB vom Computer 1 zu erhalten. Wenn er diesen
empfängt,
generiert der universalpaketerzeugende Abschnitt 2172 Read
Block-Anforderungen, sooft dies notwendig ist, um den ORB zu lesen,
dessen Speicherbereich in der obigen Write Block-Anforderung beschrieben
wird.
-
Ferner,
wenn das im Universalpuffer 2162 gespeicherte Paket eine
Read Block-Antwort ist, in der ein Command Block Agent ORB zur Übertragung von
Druckdaten gespeichert ist, dann informiert der Jobausführungsabschnitt 2152 den
druckdatenpaketerzeugenden Abschnitt 2173 darüber, um
die Druckdaten im Speicherbereich zu erhalten, der durch diesen
ORB vom Computer 1 beschrieben wird. Wenn er diesen empfängt, erzeugt
der druckdatenpaketerzeugenden Abschnitt 2173 Read Block-Anforderungen,
sooft die notwendig ist, um die Druckdaten zu lesen, deren Speicherbereich
im obigen ORB beschrieben wird.
-
Hier
werden die obigen Read Block-Anforderungen sequentiell erzeugt und
so gesendet, daß, wenn
eine Teiltransaktion beendet ist, in der nächsten Teiltransaktion die
nächsten
Daten gelesen werden, die auf die Daten fol gen, die in dieser Transaktion
aus dem Computer 1 gelesen wurden.
-
Überdies
initialisiert der Jobausführungsabschnitt 2152 den
paketerzeugenden Abschnitt 217 und den paketempfangenden
Abschnitt 216, wenn ein Bus-Reset vom Bus-Reset-Erkennungsabschnitt 214 erkannt
wird.
-
Wenn
aber ein Bus-Reset auftritt, während ein
Command Block Agent-ORB zur Übertragung
der aus dem Computer 1 gelesenen Druckdaten verarbeitet
wird, wird die Initialisierung des Druckdatenpuffers 2163 des
paketempfangenden Abschnitts 216 verzögert, bis die von SBP-2 vorgeschriebene Wiederverbindungsperiode
nach dem Bus-Reset abgelaufen ist.
-
Wenn
in dieser Wiederverbindungsperiode eine Wiederverbindung vom Computer 1 auftritt,
wird der Druckdatenpuffer 2163 nicht initialisiert, wenn
der Speicherbereich der Druckdaten, der vom Command Block Agent-ORB
zur Übertragung
der aus dem Computer 1 gelesenen Daten beschrieben wird,
der gleiche ist wie der Speicherbereich der Druckdaten, der vom
Command Block Agent-ORB angegeben wurde, dessen Ausführung durch
das Bus-Reset unterbrochen wurde. In Bezug auf diesen ORB spezifiziert
der Jobausführungsabschnitt 2152 den Speicherbereich
der Druckdaten, die noch nicht erhalten worden sind, ausschließlich der
bereits erhaltenen Druckdaten (der Druckdaten, die bereits vor dem
Bus-Reset gelesen wurden), auf der Basis des von diesem ORB angegebenen
Druckdatenspeicherbereichs und der Paketzahl der Read Block-Anforderungen
oder Read Block-Antworten an dem Zeitpunkt, als die Ausführung des
betreffenden ORBs durch den Bus-Reset unterbrochen wurde. Dann informiert
der Jobausführungsabschnitt 2152 den druckdatenpaketerzeugenden
Abschnitt 2173 darüber,
um die Druckdaten, die noch nicht erhalten wurden, vom Computer 1 zu
erhalten. Daraufhin generiert der druckdatenpaketerzeugende Abschnitt 2173 Read
Block-Anforderungen, sooft dies notwendig ist, um die obigen Druckdaten,
die noch nicht erhalten wurden, zu lesen.
-
Andrerseits,
wenn in der von SBP-2 vorgeschriebenen Wiederverbindungsperiode
keine Wiederverbindung vom Computer 1 auftritt, oder wenn die
Wiederverbindung erfolgt und der Druckdatenspeicherbereich, der
vom neu gelesenen Command Block Agent-ORB zum Übertragen von Druckdaten angegeben
wird, von dem Druckdatenspeicherbereich verschieden ist, der vom
Command Block Agent-ORB angegeben wurde, dessen Ausführung durch
den Bus-Reset unterbrochen wurde, dann wird der Druckdatenpuffer 2163 initialisiert.
-
Als
nächstes
werden die Arbeitsweisen des Computers 1 und des Druckers 2 mit
dem oben beschriebenen Aufbau beschrieben.
-
Zuerst
wird die Arbeitsweise des Computers 1 beschrieben.
-
8 ist
ein Flußdiagramm
zur Erläuterung der
Arbeitsweise des Computers 1 in der Druckausführungssequenz,
die in 2 gezeigt wird.
-
Wenn
der Jobverarbeitungsabschnitt 115 eine Druckanweisung vom
Computerhauptteil 12 empfängt, führt er den in 2 gezeigten
Anmeldevorgang aus (Schritt S801).
-
Das
heißt,
der Jobverarbeitungsabschnitt 115 generiert einen Login-ORB,
damit der Computer 1 den Drucker 2 anmeldet, und
speichert diesen im vorgegebenen Speicherbereich. Dann veranlaßt der Jobverarbeitungsabschnitt 115 den
paketerzeugenden Abschnitt 117, eine Write Block-Anforderung
zu generieren, in welcher der Speicherbereich des Login-ORBs beschrieben
wird, und sendet sie an den Drucker 2. Danach liest der
paketerzeugende Abschnitt 117 die Daten, die von der Read
Block-Anforderung angefordert wurden, die über den paketempfangenden Abschnitt 116 vom
Drucker 2 empfangen wurde, und sendet eine diese Daten
enthaltende Read Block-Antwort
an den Drucker 2. Dadurch liest der Drucker 2 den
Login-ORB.
-
Dann
liest der paketerzeugende Abschnitt 117 die Daten, die
von der Read Quadlet-Anforderung angefordert wurden, die über den
paketempfangenden Abschnitt 116 vom Drucker 2 empfangen wurde,
und sendet eine diese Daten enthaltende Quadlet-Antwort an den Drucker 2.
Dadurch liest der Drucker 2 den Inhalt des Konfigurations-ROMs
des Computers 1 und erkennt die GUID (global ID) usw. des
Computers 1. Als nächstes
erhält
der Jobverarbeitungsabschnitt 115 die Login-Antwort, die
Informationen wie z.B. eine Adresse (ORB-Pointer) auf seiten des
Druckers 2 enthält,
an die der Command Block Agent-ORB zum Übertragen der Druckdaten geschrieben
werden soll. Diese Login-Antwort ist in der Write Block-Anforderung
gespeichert, die über den
paketempfangenden Abschnitt 116 vom Drucker 2 empfangen
wird.
-
Als
nächstes
führt der
Jobverarbeitungsabschnitt 115 den in 2 gezeigten
Druckdatenübertragungsvorgang
aus (Schritt S802).
-
Das
heißt,
der Jobverarbeitungsabschnitt 115 generiert den Command
Block Agent-ORB zum Übertragen
von Druckdaten und speichert diesen im vorgegebenen Speicherbereich.
Dann veranlaßt
der Jobverarbeitungsabschnitt 115 den paketerzeugenden
Abschnitt 117, eine Write Block-Anforderung zu generieren,
damit der Drucker 2 diesen ORB liest, und sendet sie an
den Drucker 2. Danach liest der paketerzeugende Abschnitt 117 die
Daten, die von der Read Block-Anforderung angefordert wurden, die über den
paketempfangenden Abschnitt 116 vom Drucker 2 empfangen
wurde, und sendet eine diese Daten enthaltende Read Block-Antwort
an den Drucker 2. Dadurch liest der Drucker 2 den
Command Block Agent-ORB.
-
Dann
liest der paketerzeugende Abschnitt 117 die Daten, die
von der Read Block-Anforderung angefordert wurden, die durch den
paketempfangenden Abschnitt 116 empfangen wurde, und sendet eine
diese Daten enthaltende Read Block-Antwort an den Drucker 2. Dieser
Vorgang wird wiederholt, bis der paketempfangende Abschnitt 116 eine
Write Block-Antwort
empfängt,
die dem obigen Command Block Agent-ORB entsprechend ein Ende des
Vorgangs (Druckdatenübertragungsvorgangs)
anzeigt. Dadurch liest der Drucker 2 die Druckdaten.
-
Als
nächstes
führt der
Jobverarbeitungsabschnitt 115 den in 2 gezeigten
Abmeldevorgang aus (Schritt S803).
-
Das
heißt,
der Jobverarbeitungsabschnitt 115 generiert einen Logout-ORB
zum Abmelden des Druckers 2 und speichert diesen im vorgegebenen Speicherbereich.
Dann veranlaßt
der Jobverarbeitungsabschnitt 115 den paketerzeugenden
Abschnitt 117, eine Write Block-Anforderung zu generieren,
damit der Drucker 2 diesen ORB liest, und sendet sie an den
Drucker 2. Danach liest der paketerzeugende Abschnitt 117 die
Daten, die von der Read Block-Anforderung angefordert wurden, die
durch den paketempfangenden Abschnitt 116 empfangen wurde,
und sendet eine diese Daten enthaltende Read Block-Antwort an den
Drucker 2. Dadurch liest der Drucker 2 den Logout-ORB.
-
9 ist
ein Flußdiagramm
zur Erläuterung der
Arbeitsweise des Computers 1 in der Ausführungssequenz
zur Fortsetzung der Druckdatenübertragung,
die in 3 gezeigt wird.
-
Wenn
während
der Anmeldung am Drucker 2 ein Bus-Reset auftritt, dann
erkennt der Jobverarbeitungsabschnitt 115 dies durch den
Bus-Reset-Erkennungsabschnitt 114 (Schritt S901) und initialisiert
den Paketverarbeitungsabschnitt 113 (Schritt S902). Aufgrund
des Bus-Resets führt
der Link-Verarbeitungsabschnitt 112 in
Verbindung mit den anderen Knoten die Baumidentifikation und Selbsterkennung
durch, um die Knoten-IDs zu erhalten.
-
Als
nächstes
führt der
Jobverarbeitungsabschnitt 115 den in 3 gezeigten
Drucker 2-Erkennungsvorgang durch (Schritt S903).
-
Das
heißt,
der Jobverarbeitungsabschnitt 115 veranlaßt den paketerzeugenden
Abschnitt 117, eine Read Quadlet-Anforderung zu erzeugen, und sendet
sie an einen Knoten mit einer beliebigen Knoten-ID. Dann, indem
daraufhin über
den paketempfangenden Abschnitt 116 die Read Quadlet-Antwort empfangen
wird, wird der Inhalt des Konfigurations-ROMs von diesem Knoten
gelesen, und Information wie z.B. die GUID wird erhalten. Dieser
Vorgang wird für
alle Knoten durchgeführt,
um die Entsprechung zwischen den aufgrund des Bus-Resets neu zugewiesenen
Knoten-IDs und den Knoten zu er kennen. Dadurch wird der Drucker 2,
der vor dem Bus-Reset angemeldet war, identifiziert.
-
Als
nächstes
führt der
Jobverarbeitungsabschnitt 115 den in 3 gezeigten
Wiederverbindungsvorgang aus (Schritt S904).
-
Das
heißt,
der Jobverarbeitungsabschnitt 115 erzeugt eine Reconnect-ORB
zur Wiederverbindung mit dem Drucker 2 und speichert diesen
im vorgegebenen Speicherbereich. Dann veranlaßt der Jobverarbeitungsabschnitt 115 den
paketerzeugenden Abschnitt 117, eine Write Block-Anforderung
zu generieren, damit der Drucker 2 diesen ORB liest, und
sendet ihn an den Drucker 2. Danach liest der paketerzeugende
Abschnitt 117 die Daten, die von der Read Block-Anforderung
angefordert wurden, die über
den paketempfangenden Abschnitt 116 empfangen wurde, und
sendet eine diese Daten enthaltende Read Block-Antwort an den Drucker 2.
Dadurch liest der Drucker 2 den Reconnect-ORB.
-
Als
nächstes
führt der
Jobverarbeitungsabschnitt 115 den in 3 gezeigten
Vorgang zur Fortsetzung der Druckdatenübertragung aus (Schritt S905).
-
Das
heißt,
der Jobverarbeitungsabschnitt 115 erzeugt ein Command Block
Agent-ORB, in welchem eine Druckdatenübertragungsanweisung und der
Speicherbereich für
die zu übertragenden
Druckdaten beschrieben werden, und speichert diesen im vorgegebenen
Speicherbereich. Dann veranlaßt
der Jobverarbeitungsabschnitt 115 den paketerzeugenden
Abschnitt 117, eine Write Block-Anforderung zu generieren,
damit der Drucker 2 diesen ORB liest, und sendet ihn an
den Drucker 2. Danach liest der paketerzeugende Abschnitt 117 die
Daten, die von der Read Block-Anforderung angefordert wurden, die über den
paketempfangenden Abschnitt 116 empfangen wurde, und sendet
eine diese Daten enthaltende Read Block-Antwort an den Drucker 2.
Dadurch liest der Drucker 2 den Command Block Agent-ORB.
-
Dann
liest der paketerzeugende Abschnitt 117 die Daten, die
von der Read Block-Anforderung angefordert wurden, die durch den
paketempfangenden Abschnitt 116 empfangen wurde, und sendet eine
diese Daten enthaltende Read Block-Antwort an den Drucker 2. Dieser
Vorgang wird wiederholt, bis der paketempfangenden Abschnitt 116 eine
Write Block-Antwort
empfängt,
die dem vorgenannten Command Block Agent-ORB entsprechend ein Ende des Vorgangs
(Druckdatenübertragungsvorgangs) angeben.
Dadurch liest der Drucker 2 die Druckdaten.
-
Wenn
während
des in 2 gezeigten Druckdatenübertragungsvorgangs ein Bus-Reset auftritt,
d.h., wenn zwischen dem Senden der Write Block-Anforderung, damit
der Drucker 2 den Command Block Agent-ORB liest, und dem
Empfang der Write Block-Antwort, die diesem ORB entsprechend das
Ende der Verarbeitung angibt, ein Bus-Reset auftritt, dann veranlaßt der Jobverarbeitungsabschnitt 115 den
paketerzeugenden Abschnitt 117, erneut Block Read-Anforderungen
zu generieren, damit der Drucker 2 den obigen Command Block
Agent-ORB liest, dessen Ausführung
unterbrochen wurde, und sendet diesen an den Drucker 2.
-
Als
nächstes
führt der
Jobverarbeitungsabschnitt 115 den in 3 gezeigten
Abmeldevorgang aus (Schritt S906). Das heißt, der Jobverarbeitungsabschnitt 115 generiert
einen Logout-ORB, um den Drucker 2 abzumelden, und speichert
ihn im vorgegebenen Speicherbereich. Dann veranlaßt der Jobverarbeitungsabschnitt 115 den
paketerzeugenden Abschnitt 117, eine Write Block-Anforderung
zu generieren, damit der Drucker 2 diesen ORB liest, und sendet
sie an den Drucker 2. Danach liest der paketerzeugende
Abschnitt 117 die Daten, die von der Read Block-Anforderung
angefordert wurden, die durch den paketempfangenden Abschnitt 116 empfangen
wurde, und sendet eine diese Daten enthaltende Read Block-Antwort
an den Drucker 2. Dadurch liest der Drucker 2 den
Logout-ORB.
-
Als
nächstes
wird die Arbeitsweise des Druckers 2 beschrieben.
-
10 ist
ein Flußdiagramm
zur Erläuterung der
Arbeitsweise des Druckers 2 in der Druckausführungssequenz,
die in 2 gezeigt wird.
-
Zuerst
führt der
Jobausführungsabschnitt 2152 den
in 2 gezeigten Anmeldevorgang aus (Schritt S1001).
-
Das
heißt,
wenn der Jobausführungsabschnitt 2152 über den
Universalpuffer 2162 die Write Block-Anforderung vom Computer 1 empfängt, in
der der Speicherbereich des Login-ORBs beschrieben wird, dann veranlaßt der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Write-Antwort
zu generieren, und sendet diese an den Drucker 2. Dann
veranlaßt
der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, Read Block-Anforderungen zu
generieren, sooft dies notwendig ist, um den Login-ORB zu lesen,
dessen Speicherbereich in der Write Block-Anforderung beschrieben
wurde, und sendet diese an den Computer 1. Als Antwort
darauf empfängt
der Jobausführungsabschnitt 2152 Read Block-Antworten über den
Universalpuffer 2162. Dadurch wird das Login-ORB vom Computer 1 gelesen.
-
Als
nächstes,
wenn das Lesen des Login-ORBs beendet ist, veranlaßt der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Read Quadlet-Anforderung zu generieren,
sendet diese an den Computer 1 und empfängt als Antwort darauf eine
Read Quadlet-Antwort über
den Universalpuffer 2162. Dadurch wird der Inhalt des Konfigurations-ROMs
des Computers 1 gelesen, und die GUID usw. des Computers 1 wird erhalten,
um den Computer 1 zu erkennen, der sich angemeldet hat.
-
Dann
generiert der Jobausführungsabschnitt 2152 eine
Login-Antwort, die Informationen wie z.B. eine Adresse auf seiten
des Druckers 2 enthält,
an welcher ein Command Block Agent-ORB, das eine Druckdatenübertragungsanweisung
und den Speicherbereich für
die zu übertragenden
Druckdaten beschreibt, gespeichert wird, veranlaßt den universalpaketerzeugenden
Abschnitt 2172, eine die Login-Antwort enthaltende Write
Block-Anforderung zu generieren, und sendet sie an den Computer 1. Danach
veranlaßt
der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Write Block-Anforderung
zu generieren, die Daten ent hält,
die angeben, daß die
Verarbeitung des Login-ORBs beendet ist, und sendet sie an den Computer 1.
-
Als
nächstes
führt der
Jobausführungsabschnitt 2152 den
in 2 gezeigten Druckdatenübertragungsvorgang aus (Schritt
S1002).
-
Das
heißt,
wenn der Jobausführungsabschnitt 2152 vom
Computer 1 über
den Universalpuffer 2162 die Write Block-Anforderung empfängt, die den
Speicherbereich des Command Block Agent-ORBs angibt, in dem die
Druckdatenübertragungsanweisung
und der Speicherbereich der Druckdaten beschrieben sind, dann veranlaßt der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Write-Antwort zu generieren,
und sendet sie an den Computer 1. Dann veranlaßt der Jobausführungsabschnitt 2152 den universalpaketerzeugenden
Abschnitt 2172, eine Read Block-Anforderung an den Computer 1 zu
senden, und empfängt
als Antwort darauf ein Read Block-Antwort vom Universalpuffer 2162.
Dadurch wird der Command Block Agent-ORB aus dem Computer 1 ausgelesen.
-
Um
als nächstes
die Druckdaten im Speicherbereich zu erhalten, der vom Command Block
Agent-ORB angegeben wird, der aus dem Computer 1 gelesen
wurde, veranlaßt
der Jobausführungsabschnitt 2152 den
druckdatenpaketerzeugenden Abschnitt 2173, eine Read Block-Anforderung
zu erzeugen. Als Antwort auf diese Read Block-Anforderung wird dann
die Read Block-Antwort vom Computer 1 empfangen, und sie
wird im Druckdatenpuffer 2163 gespeichert. Dadurch werden die
Druckdaten in dem Speicherbereich, der vom obigen ORB angegeben
wurde, empfangen.
-
Wenn
das Lesen der Druckdaten des vom Command Block Agent-ORB angegebenen Speicherbereichs
beendet ist, dann veranlaßt
der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Write Block-Anforderung
zu generieren, die angibt, daß die
Verarbeitung des obigen Command Block Agent-ORBs beendet ist, und
sendet diese an den Computer 1.
-
Als
nächstes
führt der
Jobausführungsabschnitt 2152 den
in 2 gezeigten Abmeldevorgang aus (Schritt S1003).
-
Das
heißt,
der Jobausführungsabschnitt 2152 empfängt über den
Universalpuffer 2162 vom Computer 1 die Write
Block-Anforderung, die den Speicherbereich für den Logout-ORB angibt. Dann, um
den Logout-ORB aus dem von der Write Block-Anforderung angegebenen
Speicherbereich au lesen, veranlaßt der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Read Block-Anforderung
zu generieren, sendet sie an den Computer 1, und empfängt als
Antwort darauf die Read Block-Antwort über den Universalpuffer 2162.
Dadurch wird der Logout-ORB aus dem Computer 1 gelesen.
-
Wenn
das Lesen des Logout-ORBs beendet ist, veranlaßt der Jobausführungsabschnitt 2152 den universalpaketerzeugenden
Abschnitt 2172, eine Write Block-Anforderung zu generieren,
die angibt, daß die
Verarbeitung des Logout-ORBs
beendet ist, und sendet diese.
-
11 ist
ein Flußdiagramm
zur Erläuterung der
Arbeitsweise des Druckers 2 in der Ausführungssequenz zur Fortsetzung
der Druckdatenübertragung,
die in 3 gezeigt wird.
-
Wenn
während
der Anmeldung des Computers 1 ein Bus-Reset auftritt, dann
erkennt der Ausführungsstatusüberwachungsabschnitt 2151 dies
durch den Bus-Reset-Erkennungsabschnitt 214 (Schritt S1101)
und initialisiert jeden Abschnitt des Paketverarbeitungsabschnitts 213,
mit Ausnahme des Druckdatenpuffers 2163 (Schritt S1102).
-
Aufgrund
des Bus-Resets führt
der Link-Verarbeitungsabschnitt 212 in Verbindung mit den
anderen Knoten die Baumidentifikation und Selbsterkennung durch,
um die Knoten-IDs
zu erhalten. Ferner, wenn aufgrund des in 3 gezeigten
Drucker 2-Erkennungsvorgangs eine Read Quadlet-Anforderung vom Computer 1 gesendet
wird, empfängt
der Paketverarbeitungsabschnitt 213 diese über den
Universalpuffer 2162, und liest die Daten, die von dieser
Anforderung angefordert wurden. Dann wird eine diese Daten ent haltende
Read Quadlet-Antwort im universalpaketerzeugenden Abschnitt 2172 generiert
und an den Computer 1 gesendet. Dadurch wird der Computer über Informationen
wie z.B. die GUID informiert, die im Konfigurations-ROM des Druckers 2 beschrieben
wird.
-
Als
nächstes
beurteilt der Ausführungsstatusüberwachungsabschnitt 2151 nach
der Erkennung des Bus-Resets, ob innerhalb der von SBP-2 vorgeschriebenen
Wiederverbindungsperiode eine Wiederverbindungsanforderung auftritt
(Schritte S1103 und S1104).
-
Das
heißt,
der Jobausführungsabschnitt 2152 prüft das im
Universalpuffer 2162 gespeicherte Paket und führt davon
abhängig,
ob innerhalb der von SBP-2 vorgeschriebenen Wiederverbindungsperiode
eine Write Block-Anforderung vom Computer 1 empfangen wird,
die den Speicherbereich von Reconnect-ORB angibt, eine Beurteilung
durch.
-
Falls
innerhalb der der von SBP-2 vorgeschriebenen Wiederverbindungsperiode
keine Wiederverbindung angefordert wird, wird der Druckdatenpuffer 2163 initialisiert
(Schritt S1105), und die Verarbeitung wird beendet.
-
Andernfalls,
wenn der Computer innerhalb der von SBP-2 vorgeschriebenen Wiederverbindungsperiode
die Wiederverbindung anfordert, dann führt der Jobausführungsabschnitt 2152 den
in 3 gezeigten Wiederverbindungsvorgang aus, um den Computer 1 als
den Knoten zu erkennen, der die Wiederverbindung angefordert hat
(Schritt S1106).
-
Das
heißt,
wenn der Jobausführungsabschnitt
2152 vom Computer 1 die Write Block-Anforderung empfängt, die
den Speicherbereich des Reconnect-ORBs angibt, veranlaßt der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Write-Antwort
zu generieren, und sendet diese an den Computer 1. Dann
veranlaßt
der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Read Block-Anforderung
zu generieren, um den Reconnect-ORB aus dem von der Write Block-Anforderung beschriebenen
Speicherbereich zu lesen. Der Jobausführungsabschnitt 2152 sendet
die generierte Read Block-Anforderung an den Computer 1 und empfängt als
Antwort darauf eine Read Block-Antwort aus dem Universalpuffer 2162.
Dadurch wird der Reconnect-ORB aus dem Computer 1 gelesen.
-
Als
nächstes,
wenn das Lesen des Reconnect-ORBs beendet ist, veranlaßt der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, ein Read Quadlet-Anforderung zu generieren,
sendet sie an den Computer 1, und empfängt als Antwort darauf die
Read Quadlet-Antwort aus dem Universalpuffer 2162. Dadurch
wird der Inhalt des Konfigurations-ROMs des Computers 1 gelesen,
und die GUID usw. des Computers 1 wird erhalten. Dadurch
erkennt der Jobausführungsabschnitt 2152 den
Knoten, der die Wiederverbindung anfordert, als den Computer 1,
der vor dem Bus-Reset
angemeldet war.
-
Danach
veranlaßt
der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Write Block-Anforderung zu generieren,
die Daten enthält,
die angeben, daß die
Verarbeitung von Reconnect-ORB beendet ist, und sendet sie an den
Computer 1.
-
Als
nächstes
führt der
Jobausführungsabschnitt 2152 den
in 3 gezeigten Vorgang zur Fortsetzung der Druckdatenübertragung
aus (Schritte S1107–S1111).
-
Das
heißt,
wenn der Jobausführungsabschnitt 2152 die
Write Block-Anforderung empfängt, die
den Speicherbereich des Command Block Agent-ORBs angibt, in welchem
die Druckdatenübertragungsanweisung
und der Speicherbereich der zu übertragenden
Druckdaten beschrieben sind, dann veranlaßt der Jobausführungsabschnitt 2152 den universalpaketerzeugenden
Abschnitt 2172, eine Write-Antwort zu erzeugen, und sendet
diese an den Computer 1. Dann veranlaßt der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Read Block-Anforderung
zu erzeugen, um den Command Block Agent-ORB aus dem Speicherbereich
zu lesen, der in der Write Block-Anforderung beschrieben wird, und
sendet sie an den Computer 1, und empfängt als Antwort darauf die Read
Block-Antwort aus dem Universalpuffer 2162.
-
Dadurch
wird der Command Block Agent-ORB zum Übertragen der Druckdaten aus dem
Computer 1 gelesen (Schritt S1107).
-
Dann,
wenn der Command Block Agent-ORB zum Übertragen der Druckdaten im Ausführungsstatusüberwachungsabschnitt 2151 behalten
wird, erhält
der Jobausführungsabschnitt 2152 diesen
ORB und vergleicht ihn mit dem Command Block Agent-ORB, der in Schritt
S1107 erhalten wurde (Schritt S1108).
-
Wie
oben beschrieben, zählt
der Ausführungsstatusüberwachungsabschnitt 2151 in Bezug
auf den aus dem Computer 1 gelesenen Command Block Agent-ORB
zum Übertragen
der Druckdaten die Zahl der Pakete der Read Block-Anforderungen,
die vom druckdatenpaketerzeugenden Abschnitt 2173 diesem
ORB entsprechend erzeugt wurden, und zählt die Zahl der Pakete der
Read Block-Antworten, die als Antwort auf diese Read Block-Anforderungen
vom Computer 1 empfangen wurden, bis die Ausführung dieses
ORBs abgeschlossen ist. Wenn die die Ausführung dieses ORBs durch ein
Bus-Reset unterbrochen wird, behält
der Ausführungsstatusüberwachungsabschnitt 2151 daher
die Zahl der Read Block-Anforderungen, die bis zum Bus-Reset vom
druckdatenpaketerzeugenden Abschnitt 2173 diesem ORB entsprechend
generiert wurde, und die Zahl der Pakete, die vom Computer 1 in
Bezug auf diesen ORB als Antwort auf diese Read Block-Anforderungen
empfangen wurden.
-
Falls
als Ergebnis des Vergleichs in Schritt S1108 der Druckdatenspeicherbereich,
der durch den im Ausführungsstatusüberwachungsabschnitt 2151 behaltenen
Command Block Agent-ORB angegeben wird, der gleiche ist wie der
Druckdatenspeicherbereich, der durch den in Schritt S1107 erhaltenen
Command Block Agent-ORB angegeben wird, führt der Jobausführungsabschnitt 2152 den
folgenden Vorgang aus, um die Kontinuität der Druckdaten zwischen vor
und nach dem Bus-Reset zu gewährleisten.
-
Das
heißt,
in Bezug auf den Command Block Agent-ORB, der in Schritt S1107 erhalten
wurde, spezifiziert der Jobausführungsabschnitt 2152 den Speicherbereich
der Druckdaten, die noch nicht erhalten wurden, ausschließlich der bereits
erhaltenen Druckdaten (der Druckdaten, die bereits vor dem Bus-Reset
gelesen wurden), auf der Basis des Druckdatenspeicherbereichs (der
tatsächlich
durch die Startadresse und die Übertragungsdatenmenge spezifiziert
wird), der durch diesen ORB und der Zahl der Pakete der Read Block-Anforderungen
oder Read Block-Antworten angegeben wird, die im Ausführungsstatusüberwachungsabschnitt 2151 behalten
wurden.
-
Um
dann die Druckdaten zu erhalten, die noch nicht vom Computer 1 erhalten
wurde, veranlaßt
der Jobausführungsabschnitt 2152 den
druckdatenpaketerzeugenden Abschnitt 2173, Read Block-Anforderungen
zu generieren, sooft dies zum Lesen der Druckdaten notwendig ist,
die noch nicht erhalten wurden, und sie an den Computer 1 zu
senden. Dann werden als Antwort auf diese Read Block-Anforderungen
Read Block-Antworten
vom Computer 1 empfangen und im Druckdatenspeicher 2163 gespeichert.
Durch diese Arbeitsweise werden nur die Druckdaten empfangen, die
noch nicht erhalten wurden (Schritt S1109).
-
Der
Ausführungsstatusüberwachungsabschnitt 2151 löscht den
Inhalt der Zählung,
wenn die Ausführung
des Command Block Agent-ORBs zum Übertragen der Druckdaten abgeschlossen
ist. Wenn dann ein neuer Command Block Agent-ORB zum Übertragen
der Druckdaten ausgeführt
wird, startet der Ausführungsstatusüberwachungsabschnitt 2151 die
Zählung
neu.
-
Andrerseits,
falls der Ausführungsstatusüberwachungsabschnitt 2151 den
Command Block Agent-ORB zum Übertragen
der Druckdaten nicht behält,
oder wenn als Ergebnis des Vergleichs in Schritt S1108 der Druckdatenspeicherbereich,
der durch den Command Block Agent-ORB angegeben wird, der im Ausführungsstatusüberwachungsabschnitt 2151 behalten
wurde, von dem Druckdatenspeicherbereich verschieden ist, der durch
den in Schritt S1107 erhaltenen Command Block Agent-ORB angegeben
wird, dann veranlaßt
der Jobausführungsabschnitt 2152 den
druckdatenpaketerzeugenden Abschnitt 2173, eine Read Block-Anforderung
zu generieren, und sendet sie an den Computer 1, um vom
Computer 1 die Druckdaten des Speicherbereichs zu erhalten,
der durch den in Schritt S1107 erhaltenen Command Block Agent-ORB
angegeben wird. Dann wird als Antwort auf diese Read Block-Anforderung
eine Read Block-Antwort vom Computer 1 empfangen und im Datenpuffer 2163 gespeichert.
Dadurch werden die Druckdaten des Speicherbereichs empfangen, der
in der vorgenannten ORB angegeben wird (Schritt S1110).
-
Als
nächstes,
wenn der Vorgang von Schritt S1109 oder 51110 zum Lesen der Druckdaten
beendet ist, veranlaßt
der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Write Block-Anforderung
zu generieren, die angibt, daß die
Verarbeitung des Command Block Agent-ORBs, der in Schritt S1107 erhalten
wurde, beendet ist, und sendet diese an den Computer 1 (Schritt
S1111).
-
Als
nächstes
führt der
Jobausführungsabschnitt 2152 den
in 3 gezeigten Abmeldevorgang aus (Schritt S1112).
Das heißt,
der Jobausführungsabschnitt 2152 empfängt vom
Computer 1 über den
Universalpuffer 2162 eine Write Block-Anforderung, die
den Speicherbereich des Logout-ORBs angibt. Dann, um den Logout-ORB
aus dem in der Write Block-Anforderung
angegebenen Speicherbereich zu lesen, veranlaßt der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Read Block-Anforderung
zu generieren, sendet diese an den Computer 1 und empfängt als Antwort
darauf über
den Universalpuffer 2162 eine Read Block-Antwort. Dadurch
wird das Logout-ORB aus dem Computer 1 gelesen.
-
Wenn
der Vorgang des Lesens des Logout-ORBs beendet ist, veranlaßt der Jobausführungsabschnitt 2152 den
universalpaketerzeugenden Abschnitt 2172, eine Write Block-Anforderung zu generieren,
die Daten enthält,
die angeben, daß die Verarbeitung
des Logout-ORBs beendet ist, und sendet diese an den Computer 1.
-
Im
obigen wurde eine Ausführungsform
der vorliegenden Erfindung beschrieben.
-
Wenn
im erfindungsgemäßen Drucker 2 eine Anforderung
des in SBP-2 definierten Wiederverbindungsvorgangs vom Computer 1 empfangen
wird, der einen Command Block Agent ORB gesendet hat, dessen Ausführung durch
ein Bus-Reset unterbrochen wurde, und ferner der gleiche Command
Block Agent ORB wie der unterbrochene Command Block Agent ORB empfangen
wird, dann spezifiziert der Jobausführungsabschnitt 2152 von
den Daten im Speicherbereich, der vom ORB angegeben wird, den Speicherbereich
der Daten, die noch nicht erhalten wurden, ausschließlich der
Daten, die vor dem Bus-Reset erhalten wurden, entsprechend der Zahl der
gesendeten Read Block-Anforderungen oder der empfangenen Read Block-Antworten
an dem Zeitpunkt, an dem die Ausführung des ORBs unterbrochen
wurde, was vom Ausführungsstatusüberwachungsabschnitt 2151 gezählt wurde.
Dann veranlaßt
der Jobausführungsabschnitt 2152 den
druckdatenpaketerzeugenden Abschnitt 2173, Read Block-Anforderungen
zu generieren, sooft die notwendig ist, um diese spezifizierten
Daten zu lesen, die noch nicht erhalten wurden, und sendet sie an den
Computer 1.
-
Ferner
speichert der Empfangsselektor 2161 in Bezug auf die Druckdaten,
die in den Read Block-Antworten enthalten sind, die als Antwort
auf diese Read Block-Anforderungen vom Computer 1 erhalten
werden, diese Daten in den Druckdatenpuffer 2163. Selbst,
wenn ein Bus-Reset auftritt, initialisiert der Jobausführungsabschnitt 2152 den
Druckdatenpuffer 2163 nicht sofort, sondern initialisiert
ihn, wenn nach Abschluß des
Bus-Resets innerhalb der in SBP-2 definierten Wiederverbindungsperiode
keine Wiederverbindung vom Computer 1 auftritt.
-
Durch
solch eine Arbeitsweise kann der Drucker 2 die Kontinuität der im
Druckdatenpuffer 2163 gespeicherten Druckdaten gewährleisten,
ohne dieselben Daten zu wiederholen, selbst wenn der Empfang durch
ein Bus-Reset unterbrochen wird. Daher kommt es zum Beispiel selbst
im Falle eines seriellen Druckers wie z.B. ein Tintenstrahldrucker,
der den Druck beim Empfang der Druckdaten für eine Zeile (eine Abtastung
des Druckkopfs) startet, nicht vor, daß dieselben Druckdaten nach
einem Bus-Reset wiederholt gedruckt werden.
-
Ferner
ist in der vorliegenden Ausführungsform
die Größe des Druckdatenpuffers 2163 auf
einen Wert (zum Beispiel 4 KByte) eingestellt, der größer ist
als eine vorgegebene Datenmenge (zum Beispiel 2 KByte), die in einer
Teiltransaktion übertragen werden
kann, welche in der Read Block-Anforderung beschrieben wird, damit
der Drucker 2 die Druckdaten vom Computer 1 erhält. Aufgrund
dessen werden Druckdaten der Read Block-Antwort, die vom Computer 1 als
Antwort auf diese Read Block-Anforderung gesendet wird, auf einmal
im Druckdatenpuffer 2163 gespeichert. Demnach kann der
Ausführungsstatusüberwachungsabschnitt 2151 den
Ausführungsstatus
des vom Command Block Agent-ORB verursachten Jobs (Druckdatenübertragungsvorgang/Vorgang
zur Fortsetzung der Übertragung) überwachen,
indem er die Zahl der gesendeten Read Block-Anforderungen oder die
Zahl der empfangenen Read Block-Antworten zählt, was die Überwachung
einfach macht.
-
Um
den Ausführungsstatus
bezüglich
des Command Block Agent-ORBs zu überwachen,
wird in der vorliegenden Ausführungsform
sowohl die Zahl der gesendeten Read Block-Anforderungen, um Druckdaten des Speicherbereichs
zu lesen, der im Command Block Agent-ORB beschrieben wird, als auch
die Zahl der als Antwort auf diese Read Block-Anforderungen empfangenen
Read Block-Antworten gezählt.
Doch es kann eine davon gezählt werden.
Oder der Ausführungsstatus
des Command Block Agent-ORBs kann überwacht werden, indem die
Gesamtbytezahl der in den obigen Read Block-Antworten enthaltenen
Daten gezählt
wird. Dies kann zum Beispiel durch Zählen der Bytezahl der Daten
durchgeführt
werden, die in den Druckdatenpuffer 2163 eingegeben werden.
-
Ferner
wird in der vorliegenden Ausführungsform
die Datenkommunikation mit einem Partnergerät über die serielle Schnittstelle
auf der Basis von IEEE1394 und dem Datenübertragungsprotokoll auf der
Basis von SBP-2 entsprechend durchgeführt. Die vorliegende Erfindung
ist aber nicht darauf eingeschränkt.
Zum Beispiel kann die vorliegende Erfindung auch auf andere Datenübertragungsprotokolle angewandt
werden, wie z.B. DPP (Direct Printer Protocol), in denen die Datenübertragung
durch ein bestimmtes Ereignis unterbrochen werden kann.
-
Ferner
ist das erfindungsgemäße Datenkommunikationsgerät nicht
auf einen Drucker beschränkt.
Die vorliegende Erfindung kann auf diverse Geräte angewandt werden, die angeschlossen
werden, wie z.B. ein Scanner und eine Digitalvideokamera.
-
Wie
oben beschrieben, ist es erfindungsgemäß möglich, Daten zu empfangen,
deren Kontinuität
gewährleistet
wird, ohne dieselben Daten wiederholt zu empfangen.