-
Die
Erfindung betrifft allgemein Terminalgeräte, beispielsweise Drucker,
Anzeigeeinrichtungen und Bargeldeinzahlungsvorrichtungen, wie diese
bei Multifunktionsgeldautomaten (ATM), Geldautomaten, POS-Systemen
und in Ladengeschäften
befindlichen Bankzellen verwendet werden, und betrifft insbesondere
eine Übertragungssteuervorrichtung
und ein Übertragungssteuerverfahren
für ein
Senden von Daten von einem derartigen Terminalgerät an ein Host-System.
-
ATMs,
Geldautomaten, POS-Terminals, Bankzellen und andere derartige Systeme
weisen typischerweise eine Hauptsteuervorrichtung, wie beispielsweise
einen Personal-Computer (nachfolgend als PC oder Host-Computer bezeichnet),
und mehrere Terminalgeräte
auf, wie beispielsweise Drucker, Anzeigevorrichtungen, Speichereinrichtungen
und Strichcodeleser, die mit dem Host-Computer verbunden sind und durch diesen
gesteuert werden. Der Host-Computer steuert den Gesamtbetrieb der
verschiedenen Terminalgeräte,
um die gewünschte Funktionalität des jeweiligen
Systems zu erzielen. Insbesondere sind der Host-Computer und die
Terminalgeräte
untereinander durch eine Datenkommunikationsleitung verbunden, die
dem Host-Computer ermöglicht,
Steuerbefehle und andere Daten an die Terminalgeräte zu senden,
um die Terminalgeräte
zu steuern. Die Terminalgeräte
senden Daten an den Host-Computer gemäß der Funktion des jeweiligen Terminalgerätes, und
senden, wenn dies vom Host-Computer angefordert wird, einen Statusreport an
den Host, der den Betriebsstatus des jeweiligen Terminalgerätes angibt.
Die meisten der in einem derartigen System installierten Terminalgeräte sind mit
dem Host-Computer für
einen Datenaustausch über
die Datenkommunikationsleitung durch einen seriellen Anschluss (wie
beispielsweise RS-232C) verbunden.
-
Eine
Schnittstellenvorrichtung ist an jedem Ende einer jeden Kommunikationsleitung
vorgesehen und eine Steuerleitung ist zum Steuern der Kommunikationsvorgänge vorgesehen.
Ein Terminalgerät kann
beispielsweise ein Gerätesendebereitschaftssignal
(DTR-Signal) verwenden, um den Host-Computer zu benachrichtigen ob es zum
Empfangen von Daten bereit ist oder nicht. Wenn das DTR-Signal in den aktiven
Zustand geht, setzt der Host-Computer das Empfangsbereitschaftssignal
(DSR-Signal) auf aktiv und sendet Daten, nachdem auf diese Weise bestätigt wurde,
dass sich beide Seiten im Arbeitszustand befinden. Dies macht es
möglich,
zu verhindern, dass Daten während
der Datenkommunikation verloren gehen.
-
Die
Erfindung kann auf alle Arten von Terminalgeräten angewandt werden, jedoch
erfolgt zur Vereinfachung die folgende Beschreibung lediglich mit
Bezug auf einen Drucker, wobei dies ein häufig in ATMs, POS-Systemen,
und dergleichen verwendetes Terminalgerät ist.
-
Ein
Drucker kann nicht drucken, wenn irgendwelche benötigten Druckbedarfsmaterialien
wie beispielsweise Druckpapier oder Tinte fehlen. Es ist daher für den Host-Computer
möglich,
zu überprüfen, wie
viel Druckpapier und Tinte verbleibt. Insbesondere ist der Drucker
konfiguriert, um Statusdaten, die ein baldiges Aufbrauchen der Tinte
oder des Papiers anzeigen, an den Host- Computer zu senden, falls nur noch ein
geringer Vorrat an Druckpapier oder Tinte verbleibt, und einen Tintenaufbrauchs-
oder Papieraufbrauchs-Statusreport zu senden, falls der Vorrat vollständig erschöpft ist.
Zusätzlich
zu dem gerade Erwähnten
können
verschiedene weitere Statusdaten an den Host-Computer gesendet werden,
einschließlich
Statusdaten für 'Druckabdeckung offen', 'Tintentank entfernt', 'Papierstau' und 'Stromversorgungsfehler'.
-
Der
Drucker kann nicht mehr in der Lage sein, als Terminal-Gerät zu arbeiten
(ein nachfolgend als Offline-Zustand bezeichnet), falls beispielsweise ein
Empfangspuffer des Druckers voll ist (Status 'voller Empfangspuffer') ein Papierstau
oder ein anderer Fehler auftritt, oder die Druckerabdeckung offen
ist. Falls der Drucker, d. h. das Terminalgerät offline geht, ist es erforderlich,
den Host-Computer über den
Offline-Status zu informieren und das Senden von Daten vom Host-Computer
zu unterbrechen.
-
Daten
werden an den Host-Computer reagierend auf einen Statusanfragebefehl
des Host-Computers gesendet. Es gibt unterschiedliche Typen von
Statusanfragebefehlen. Beispielsweise kann der Host-Computer einen Befehl
an ein einzelnes Terminalgerät
senden, dass dieses Terminalgerät
Statusinformationen senden soll, oder er kann einen Befehl senden,
der eine sogenannte ASB-(Automatic Status Back)-Funktion des Terminalgerätes zum
automatischen Senden von Statusdaten aktiviert, immer wenn eine Änderung
in einen speziellen Status vorliegt.
-
Eine
Datenübertragungssteuervorrichtung gemäß dem Stand
der Technik wird nachfolgend detaillierter mit Bezug auf 8 beschrieben. 8 ist ein
Blockschaltbild eines Druckers 70, der mit einem Host-Computer
eines POS-Systems verbunden ist. 8 zeigt
lediglich die Hauptteile des Druckers 70. Ein Personal-Computer
mit einem Allzweck-Betriebssystem kann als Host-Computer 90 verwendet
werden. Der Host-Computer 90 steuert das gesamte POS-System.
Auch wenn dies nicht in 8 dargestellt ist, sind zahlreiche
Terminalgeräte,
wie beispielsweise eine Anzeigevorrichtung und eine Bargeldschublade,
die zum Bewerkstelligen der Funktionen eines POS-Systems benötigt werden,
zusätzlich zum
Drucker 70 mit dem Host-Computer 90 verbunden,
und der Host-Computer steuert diese Terminalgeräte, indem er Daten mit diesen
austauscht.
-
Der
Drucker 70 wird gesteuert, indem Steuerbefehle und Daten
vom Host-Computer 90 an den Drucker 70 gesendet
werden. Um den Drucker 70 zu steuern, kann der Host-Computer 90 einen
Befehl senden, der den Drucker 70 anweist, seinen Zustand (Status)
zu melden. Reagierend auf den Befehl vom Host-Computer 90 sendet
dann der Drucker 70 die angeforderten Statusdaten.
-
Der
Host-Computer 90 und der Drucker 70 sind beispielsweise über Ansteuereinrichtungen
für serielle
Kommunikationsanschlüsse
(RS-232C) verbunden. Druckersteuerbefehle und weitere vom Host-Computer 90 gesendete
Daten werden über den
Empfangstreiber 71 durch die Empfangseinheit 72 empfangen.
Empfangene Daten werden in einem (nicht in der Figur dargestellten)
Empfangspuffer in der Empfangseinheit 72 gespeichert. Im
Empfangspuffer gespeicherte Daten werden durch den Befehlsinterpreter 73 in
der Reihenfolge interpretiert, in der sie im Empfangspuffer gespeichert
sind.
-
Der
Befehlsinterpreter 73 interpretiert die Befehle und führt diese
aus. Falls beispielsweise ein Druckbefehl empfangen wird, bereitet
der Befehlsinterpreter 73 die Druckdaten in einem (nicht
in der Figur dargestellten) Druckpuffer vor, und die Daten werden
dann durch die Kopfansteuereinrichtung 76 und den durch
die Drucksteuereinrichtung 74 gesteuerten Druckmechanismus 77 gesteuert.
Eine Motoransteuereinrichtung 75 wickelt den Transport
des Druckpapiers und das Bewegen des Kopfschlittens ab (beide nicht
in der Figur dargestellt).
-
Ein
Statusmonitor 80 ist mit einer Stromversorgungsspannungs-Erfassungseinrichtung 81,
einem Papierdetektor 82, einem Tintendetektor 83,
einem Abdeckungsdetektor 84, einem Schalterdetektor 85 zum
Erfassen von Papierstaus und weiteren Detektoren 86 verbunden
und überwacht
den internen Zustand des Druckers 70. Eine anormale Versorgungsspannung,
Vorhandensein und Menge des verbleibenden Druckpapiers, Vorhandensein
und Menge der verbleibenden Tinte, ob die Abdeckungen geöffnet oder
geschlossen sind, Auftreten von Papierstaus, Schlittenantriebsfehler,
voller Empfangspuffer, und weitere Druckerbedingungen werden durch
die Detektoren 81 bis 86 erfasst und an den Statusmonitor 80 weitergeleitet.
-
Wenn
ein Statusanfragebefehl vom Host-Computer 90 gesendet wird,
durchläuft
er die Empfangseinheit 72 und wird durch den Befehlsinterpreter 73 interpretiert,
und Statusinformationen werden dann vom Statusmonitor 80 über den
Datenübertragungstreiber 78 an
den Host-Computer 90 gesendet.
-
Wenn
die ASB-Funktion verwendet wird, wird der Status des Druckers 70 bei
jeder Statusänderung
an den Host-Computer 90 gesendet. Somit kann, dadurch dass
zuerst die ASB-Funktion aktiviert wird, der Host-Computer 90 automatisch über gewisse
Druckerzustände
(Status) informiert werden, einschließlich Fehlern, dem Abdeckungsöffnungsstatus, der
Papierposition, und der verbleibenden Tintenmenge. Die durch die
ASB-Funktion gesendeten Statusdaten werden nachfolgend als ASB-Daten bezeichnet.
-
Die
Statusdaten können
lediglich ein einziges Byte lang sein, oder sie können mehrere
Bytes umfassen. Fall es sich um ein einziges Byte handelt, d. h.
8 Bit, können
8 Typen von Statusdaten übermittelt
werden, und mit zunehmender Bytezahl nimmt die Menge der Statusdaten,
die übertragen
werden können,
entsprechend zu. Ein Fall, bei dem ASB-Daten von 4 Byte Länge an den
Host-Computer 90 gesendet
werden, wird bei diesem Text angenommen, jedoch ist die Länge der
Statusdaten für
die Erfindung nicht von Bedeutung.
-
Wenn
die ASB-Funktion aktiviert ist und es eine Änderung eines speziellen Status
gibt, stellt der Statusmonitor 80 einen speziellen Statusreport
(von 4 Byte Länge
beim angenommenen Beispiel) zusammen und sendet diesen über den
Datenübertragungstreiber 78 an
den Host-Computer 90, nachdem bestätigt wurde, dass der Host-Computer 90 Daten empfangen
kann, d. h. der Host-Computer
nicht belegt ist.
-
Statusdaten
wie die zuvor beschriebenen, werden als Kommunikationsdaten an den
Host-Computer gesendet. Außerdem
ist es, da ASB-Daten (durch die ASB-Funktion gesendete Statusdaten) automatisch
an den Host-Computer gesendet werden, immer wenn es eine Statusänderung
gibt, möglich, dass
Statusdaten ziemlich häufig
gesendet werden. Das Problem besteht darin, dass dies verursachen könnte, dass
der Übertragungspuffer
des Terminalgerätes
voll wird (was zu einem vollständig
belegten Zustand des Puffers führt),
wodurch dieser nicht mehr in der Lage ist, weitere Informationen
zu speichern, was möglicherweise
zu einem Verlust von nach der vollständigen Belegung des Puffers
erzeugten Statusdaten führt.
Ein derartiges System ist in US-A-5802546 beschrieben.
-
Ein
Ziel der Erfindung besteht darin, ein Terminalgerät und ein Übertragungssteuerverfahren
für dieses
bereitzustellen, die ermöglichen,
dass eine Übertragung
zum Host-Computer ohne einen Verlust von für den Host-Computer wichtigen
Informationen erfolgt und der Transport durch vom Terminalgerät kontinuierlich
erzeugte Statusdaten erfolgt. Ein weiteres Ziel der Erfindung besteht
darin, ein Statusdatenübertragungssteuerverfahren
bereitzustellen, bei dem ein kleinerer Übertragungspuffer verwendet werden
kann und die Kommunikationslast beträchtlich verringert werden kann.
-
Dieses
Ziel wird mit einem Gerät
nach Anspruch 1 und mit einem Verfahren nach Anspruch 7 erreicht.
Bevorzugte Ausführungsformen
der Erfindung sind Gegenstand der abhängigen Ansprüche.
-
Dadurch
dass ein dedizierter Puffer bereitgestellt wird, um kontinuierlich
erzeugte Statusdaten zu speichern und zumindest die neuesten Statusdaten sowie
Chronikdaten zu speichern, welche Änderungen der Statusdaten widerspiegeln,
und dadurch, dass an den Host-Computer lediglich die neuesten Statusdaten
und die Chronikdaten der dazu führenden
Statusänderungen
gesendet werden, stellt die Erfindung ein Verfahren bereit, das
ermöglicht,
den für
eine Übertragung
benötigten
Puffer zu verringern und die Kommunikationslast stark zu verringern.
Als Ergebnis kann eine Chronik (zeitlicher Verlauf) von Statusänderungen
unter Verwendung einer geringen Datenmenge zuverlässig gespeichert
und übertragen werden.
-
Statusänderungen
können
unter Verwendung einer minimalen Menge an Daten gespeichert werden,
wenn der Übertragungspuffer
voll wird, und die Übertragungslast
kann daher verringert werden. Von einem Terminalgerät kontinuierlich
erzeugte Statusdaten können
ohne einen Verlust an wichtigen Informationen an den Host-Computer
gesendet werden. Die Statusänderungschronik
kann ebenfalls ohne Verluste in zuverlässiger Weise an den Host-Computer
gesendet werden.
-
Weitere
Ziele und Vorteile der Erfindung, sowie ein vollständigeres
Verständnis
von dieser gehen aus der folgenden Beschreibung bevorzugter Ausführungsformen
in Verbindung mit den anliegenden Zeichnungen klar hervor, welche
zeigen:
-
1 ein
Blockschaltbild eines Druckers, der ein Beispiel eines Terminalgerätes einer
Ausführungsform
der Erfindung bildet;
-
2 ein
Blockschaltbild, das ein Beispiel der Basiskonfiguration der Übertragungseinheit
des Druckers von 1 darstellt;
-
3 ein
Ablaufdiagramm, das verwendet wird, um die Funktionsweise der Übertragungseinheit von 2 zu
beschreiben;
-
4 ein
Ablaufdiagramm eines Prozesses in Zweig A, der von Schritt 100 in 3 abzweigt;
-
5 ein
Ablaufdiagramm des Mischprozesses;
-
6 ein
Blockschaltbild, das ein Beispiel der Basiskonfiguration des Mischprozessors
und des ASB-Puffers der Übertragungseinheit
von 2 zeigt;
-
7 die Änderungen
bei den zuletzt erzeugten Daten (Tran), Chronikdaten (Mid), und
zuletzt gespeicherten Daten (New); und
-
8 ein
Blockschaltbild, das die Hauptteile eines Druckers des Standes der
Technik zeigt.
-
Eine
bevorzugte Ausführungsform
der Erfindung wird nachfolgend mit Bezug auf die anliegenden Figuren
beschrieben. Wie zuvor angemerkt, kann die Erfindung mit verschiedenen
Typen von Terminalgeräten
verwendet werden, wird jedoch bei der bevorzugten Ausführungsform
nachfolgend mit Bezug auf einen Drucker beschrieben, bei dem es
sich um einen Typ von Terminalgerät handelt, das häufig in
ATM-, POS-, und Verkaufsladen-Terminalsystemen verwendet wird, der
eine große
Menge von Daten zum Host-Computer sendet und von diesem empfängt, und
der auch zahlreiche Statustypen aufweist. Die Erfindung wird nachfolgend
sogar noch spezieller mit Bezug auf einen Drucker verwendet, der
bei einem POS-System verwendet wird.
-
1 ist
ein Blockschaltbild eines Druckers 2 gemäß einer
bevorzugten Ausführungsform
der Erfindung. Wie in 8 sind lediglich die Hauptteile
des Drucker dargestellt. Die Konfiguration des Druckers 2 unterscheidet
sich vom Drucker 70 in 8 dadurch, dass
eine Übertragungseinheit 10 hinzugefügt wurde,
welche das Senden von Daten vom Drucker 2 an den Host-Computer 90 steuert.
Es sei angemerkt, dass ähnliche
Teile in den 8 und 1 mit gleichen
Bezugszeichen bezeichnet sind, und eine weitere Beschreibung von
diesen nachfolgend entfällt.
-
Beim
Senden von Daten vom Drucker 2 an den Host-Computer 90 sendet
die Übertragungseinheit 10 Daten
in Byteeinheiten, nachdem bestätigt wurde,
dass der Host-Computer die Daten empfangen kann. Falls ein belegter
Zustand des Host-Computers 90 auftritt, während die Übertragung
gerade stattfindet, wird die Übertragung
unterbrochen und fortgesetzt, wenn der Host-Computer 90 wieder
zum Empfangen von Daten in der Lage ist.
-
Eine
bevorzugte Ausführungsform
der Übertragungseinheit 10 gemäß der Erfindung
wird mit Bezug auf 2 beschrieben. Die Übertragungseinheit 10 weist
eine Übertragungssteuereinheit 11,
einen Übertragungspuffer 12 und
einen Pointer-Speicher 13 auf. Wenn ein Steuersignal an
die Übertragungssteuereinheit 11 gesendet
wird und Statusdaten gleichzeitig vom Statusmonitor 80 an
den Übertragungspuffer 12 gesendet
werden, überprüft die Statussteuereinheit 11,
ob der Host-Computer 90 belegt ist, und falls dies nicht
der Fall ist, sendet sie die im Übertragungspuffer 12 gespeicherten
Statusdaten.
-
Die Übertragungseinheit 10 bei
diesem Beispiel weist auch einen ASB-dedizierten Puffer 14,
einen PIR-dedizierten Puffer 15, einen Mischprozessor 16,
einen XOFF-Übertragungsprozessor 17 und
einen Signalleitungs-Statusprozessor 18 auf. Die ASB-Daten
werden vorübergehend
im ASB-dedizierten
Puffer 14 gespeichert, falls irgendwelche Übertragungsdaten
außer
den ASB-Daten im Übertragungspuffer 12 gespeichert
sind. Es wird bei dieser Ausführungsform
davon ausgegangen, dass die ASB-Daten aus 4 Byte bestehen.
-
Die
PIR-Daten werden vorübergehend
im PIR-Puffer gespeichert, falls irgendwelche Übertragungsdaten im Übertragungspuffer 12 gespeichert sind.
Es sei angemerkt, dass es sich bei den PIR-Daten um Daten handelt,
welche gemäß der Prozess-ID gesendet
werden, die optional durch den Host-Computer in Steuerbefehle oder Druckdaten
eingefügt wird,
und die an den Drucker gesendet werden und bezeichnen, dass der
Steuerbefehl oder die Druckdaten vom Drucker verarbeitet wurden.
Dies ermöglicht,
dass der Host-Computer Daten synchronisiert mit dem internen Zustand
des Druckers 2 sendet.
-
Bei
dieser Ausführungsform
steuert die Übertragungssteuereinheit 11 das
Senden von speziellen Übertragungsdaten
wie beispielsweise des XOFF-Signals und des Signalleitungsstatus
mit höherer
Priorität
als andere Übertragungsdaten.
Der XOFF-Übertragungsprozessor 17 sendet
ein Abmelde-Signal
(XOFF) vom Drucker 2 an den Host-Computer mit höchster Priorität. Der Signalleitungs-Statusprozessor 18 sendet
Signalleitungsstatusdaten an den Host-Computer 90, um zu
melden, wenn der Drucker 2 offline gegangen ist, und überträgt daher an
den Host-Computer mit nächsthöherer Priorität gegenüber XOFF.
Das XOFF-Signal und der Signalleitungsstatus werden direkt über den
Datenübertragungstreiber 78 an
den Host-Computer 90 gesendet, ohne den Übertragungspuffer 12 zu
durchlaufen.
-
Wenn
der ASB-Puffer 14 oder der PIR-Puffer 15 voll
ist, erzeugt der Mischprozessor 16 Statusänderungschronikdaten
(die nachfolgend einfach als Chronikdaten bezeichnet werden), welche
jegliche folgenden neuesten Statusdaten und eine Chronik der Statusänderungen
speichern.
-
Ein
Empfangen von Statusdaten durch die Übertragungseinheit 10 wird
nachfolgend beschrieben. Wenn Statusdaten und ein Steuersignal vom Statusmonitor 80 gesendet
werden, wird das Steuersignal der Übertragungssteuereinheit 11 zugeführt, und
die Statusdaten werden vorübergehend
im Übertragungspuffer 12 gespeichert,
es sei denn, der Übertragungspuffer
enthält
bereits Übertragungsdaten, abgesehen
von ASB-Daten. Die Speicherkapazität des Übertragungspuffers 12 kann
wie erforderlich festgelegt werden und ist in diesem Beispiel auf
128 Byte festgelegt.
-
Der
Pointer-Speicher 13 beinhaltet einen Lese-Pointer 13a,
der den Ort der nächsten
an den Host-Computer
zu sendenden Daten anzeigt, und einen Schreib-Pointer 13b,
der den nächsten
Speicherort im Übertragungspuffer 12 angibt,
falls vorhanden. Der Schreib-Pointer 13b wird inkrementiert, wenn Übertragungsdaten
einschließlich
Statusdaten in den Übertragungspuffer 12 geschrieben
werden. Es sei angemerkt, dass beide Pointer gesteuert werden, um
sich innerhalb des Adressbereichs des Übertragungspuffers im RAM zu
bewegen, in dem der Übertragungspuffer 12 vorgesehen
ist. Das heißt, wenn
eine Inkrementierung eines Pointers bis zu einer Adresse außerhalb
der höchsten
Adresse im Adressbereich erfolgt, wird dieser auf den niedrigsten Wert
im Adressbereich zurückgesetzt.
Dieser Typ von Pufferstruktur ist als "Ringpuffer" bekannt.
-
Beim
Stand der Technik werden die nächsten Statusdaten
im Übertragungspuffer 12 gespeichert, wenn
erneut Speicherplatz verfügbar
ist, nachdem der Übertragungspuffer
voll war. Gemäß dieser
Erfindung sind jedoch, da aufgrund der Beschaffenheit der ASB-Daten
und der PIR-Daten die zu speichernde Datenmenge sehr groß werden
könnte,
falls diese Daten häufig
erzeugt werden, dedizierte Puffer 14 bzw. 15 vorgesehen,
um diese Daten vor ihrer Übertragung
an den Übertragungspuffer 12 vorübergehend
zu speichern.
-
Unter
speziellen Bedingungen, wie beispielsweise, wenn ein dedizierter
Puffer 14 oder 15 voll wird (gefüllter Pufferzustand)
wird ein Mischprozess durch den Mischprozessor 16 gemäß den Eigenschaften
der zu speichernden Daten angewandt, wie beispielsweise Erzeugen
einer Chronik der Änderungen
der ASB- oder weiteren Statusdaten, und einem vorübergehenden
Speichern dieser Änderungschronik
gemeinsam mit den zuletzt aufgetretenen Statusdaten in den Puffern 14 bzw. 15.
Details des Mischprozesses werden später noch beschrieben.
-
Übertragungsprozess für normale Übertragungsdaten.
-
Der Übertragungsprozess
für die Übertragungseinheit 10 wird
nachfolgend zuerst unter Verwendung der 2 und 3 beschrieben. 3 ist ein
Ablaufdiagramm zur Beschreibung des Übertragungssteuerprozesses
der Übertragungseinheit 10.
-
Die Übertragungsdaten
L-ID-S1-S2-S3-S4, die oben rechts in 3 gezeigt
sind, sind ein Beispiel von im Übertragungspuffer 12 gespeicherten Daten,
wobei S1-S2-S3-S4 Datenbytes, z. B. von Statusdaten sind, die an
den Host-Computer 90 gesendet werden sollen.
-
Die Übertragungssteuereinheit 11 überprüft, ob Daten
im Übertragungspuffer 12 gespeichert
sind. Dies kann durch Vergleichen des zuvor angegebenen Schreib-Pointers 13b und
des Lese-Pointers 13a bestimmt werden; falls die Werte
gleich sind, ist der Übertragungspuffer 12 leer.
Falls Übertragungsdaten vorhanden
sind (S100; Ja) wird überprüft, ob der Host-Computer 90 belegt
ist (S101). Falls der Host-Computer 90 belegt ist, wird
der Übertragungsprozess
angehalten, bis der Host-Computer 90 empfangen
kann (S101; Ja). Falls der Host-Computer 90 nicht belegt
ist (S101; Nein), überprüft die Übertragungssteuereinheit 11,
ob der Drucker 2 bereits Daten sendet (S102). Da hier die Übertragungssteuereinheit 11 gerade
beabsichtigt, mit der Datenübertragung
zu beginnen und sich nicht mitten in einer Datenübertragung befindet (S102;
Nein), geht die Prozedur weiter auf den nächsten Schritt, und das Vorliegen
einer XOFF-Sendeanfrage wird überprüft (S103).
Falls keine XOFF-Sendeanfrage vorliegt, wird das Vorliegen eines
Signalleitungsstatus überprüft (S104),
und falls dieser nicht vorhanden ist (S104; Nein), werden die ersten
Daten, d. h. die Länge
L der zu sen denden Daten, aus dem Übertragungspuffer 12 ausgelesen,
und der Pointer 13a wird inkrementiert (S105). Es sei angemerkt,
dass die hier erhaltene Datenlänge
L im RAM gespeichert wird und als Startwert einer Schleifenzähleinrichtung
für die aktuelle
Sendeschleife verwendet. Die ID wird aus dem Sendepuffer 12 ausgelesen,
um den Typ der Übertragungsdaten
(beispielsweise Statustyp) zu bestimmen (S106). Bei Schritt S108
wird das nächste Datenbyte,
S1, aus dem Übertragungspuffer 12 ausgelesen
und an den Host-Computer 90 gesendet. Der Pointer 13a wird
dann inkrementiert, so dass er auf das nächste Datenbyte S2 zeigt, und
an dieser Stelle endet das Senden von 1 Byte (S109). Es sei angemerkt,
dass die oben angegebene Schleifen-Zähleinrichtung bei diesem Prozess
dekrementiert wird.
-
Das
nächste
1 Byte wird dann durch den oben beschriebenen Prozess übertragen,
d. h. durch Wiederholen der Hauptsendeschleife. Zuerst wird überprüft, ob es
irgendwelche Übertragungsdaten gibt
(S100). Da zu diesem Zeitpunkt Übertragungsdaten
(S2 bis S4) übrig
sind, fährt
die Prozedur mit dem nächsten
Schritt fort (S101), und es wird überprüft, ob der Host-Computer belegt
ist (S101). Falls dieser belegt ist, wird der Übertragungsprozess angehalten,
bis der Host-Computer bereit ist (S101; Ja). Falls der Host-Computer
nicht belegt ist (S101; Nein), wird überprüft, ob Daten gerade gesendet
werden (S102). Dies kann basierend darauf bestimmt werden, ob der
Wert der zuvor erwähnten
Schleifenzähleinrichtung
Null ist oder nicht. Falls die Schleifenzähleinrichtung auf Null gesetzt
ist, dann findet gerade keine Übertragung
statt. Da bei dem aktuell erläuterten
Beispiel gerade ein Senden von Daten erfolgt (S102; Ja), verzweigt
die Prozedur auf S110, S111, und es wird überprüft, ob das XOFF-Signal und
der Signalleitungsstatus vorhanden sind. Falls weder das XOFF-Signal
noch der Signalleitungsstatus erfasst wird (S110, Nein; S111, Nein),
wird das vom Pointer 13a bezeichnete Datenbyte S2 gelesen
und an den Host-Computer 90 gesendet (S108). Wenn das Senden
von 1 Byte endet, wird der Pointer 13a als Vorbereitung
für das
Senden des nächsten
Datenbyte S3 inkrementiert (S109). Eine Bytezahl, die gleich groß ist wie
die durch die Datenlänge
L bezeichnete Anzahl der Datenbyte, kann durch Wiederholen des gleichen
Prozesses unter Verwendung der Schleifenzähleinrichtung gesendet werden.
Unter Verwendung des Beispiels der zuvor beschriebenen Übertragungsdaten,
werden Datenbytes S3 und S4 gesendet, um den Übertragungsprozess für die Übertragungsdatensequenz
abzuschließen.
-
XOFF-Signal-
und Signalleitungsstatus-Übertragungsprozess
-
Als
nächstes
wird der Betriebsablauf beschrieben, wenn gerade Statusdaten gesendet
werden und eine XOFF-Signal-Sendeanfrage oder eine Signalleitungsstatus-Sendeanfrage
ausgegeben wird. Wie in 2 dargestellt, sind das XOFF-Signal und
der Signalleitungsstatus nicht im Übertragungspuffer 12 gespeichert,
sondern werden direkt über den
Datenübertragungstreiber 78 an
den Host-Computer
gesendet, und zwar durch den XOFF-Übertragungsprozessor 17 bzw.
den Signalleitungsstatusprozessor 18. Der Übertragungsprozess
dafür erfolgt mit
Priorität
gegenüber
den im Übertragungspuffer 12 befindlichen Übertragungsdaten.
Dies wird unter Verwendung des in 3 dargestellten Übertragungssteuerungsablaufdiagramms
beschrieben.
-
Wenn
eine XOFF-Sendeanfrage erfasst wird, während gerade das Senden des
ersten Datenbyte S1 vorbereitet wird (S103; Ja), verzweigt die Prozedur
auf D, und das XOFF-Signal (1 Byte) wird mit Priorität gesendet.
Falls eine XOFF-Signal-Sendeanfrage erfasst wird, während gerade
die Übertragungsdatensequenz
S2 bis S4 gesendet wird (S110; Ja), wird das XOFF-Signal gesendet,
es sei denn, der Signalleitungsstatus wird gerade gesendet (S112; Nein).
Das XOFF-Signal wird somit an den Host-Computer 90 mit
höchster
Priorität
gesendet, außer
wenn gerade der Signalleitungsstatus gesendet wird.
-
Falls
ein Signalleitungsstatus erfasst wird (S104; Ja), wird die Signalleitungs-Statuslänge (mehrere
Byte können
definiert sein) und eine ID gesetzt (S114), und 1 Byte des Signalleitungsstatus wird
gesendet (S115). Falls es mehrere Signalleitungs-Statusbyte gibt
und der Signalleitungsstatus gerade gesendet wird (S111 ergibt Ja
oder S112 ergibt Ja), nachdem bestätigt wurde, dass der Host-Computer
nicht belegt ist (S111), wird der verbleibende Signalleitungsstatus
sequentiell byteweise gesendet (S115). Wie aus diesem Steuerprozess
zu entnehmen, wird der Signalleitungsstatus mit nächsthöherer Priorität gegenüber dem
XOFF-Signal gesendet.
-
Als
nächstes
wird ein Fall beschrieben, bei dem sich keine Übertragungsdaten im Übertragungspuffer 12 befinden.
Falls keine Daten im Übertragungspuffer 12 sind,
verzweigt die Prozedur von Schritt S100 in 3 auf A. 4 ist
ein Ablaufdiagramm des Prozesses für Verzweigung A.
-
Falls
keine Übertragungsdaten
im Drucker 2 sind, wird zuerst überprüft, ob ASB-Daten oder PIR-Daten sich im ASB-Puffer 14 oder
im PIR-Puffer 15 befinden (S120). Falls ASB-Daten oder
PIR-Daten gefunden
werden, werden die Daten an den Übertragungspuffer 12 gesendet
(S121), und die Prozedur verzweigt auf B in 3. Wie zuvor
in 3 beschrieben, wird der Status gesendet, nachdem
bestätigt
wurde, dass der Host-Computer 90 nicht belegt ist (S101).
-
Falls
keine ASB-Daten oder PIR-Daten im Puffer 14 oder 15 gespeichert
sind (S120; Nein), wird überprüft, ob eine
Signalleitungsstatus- oder XOFF-Signal-Sendeanfrage vorliegt. Falls
keine Sendeanfrage vorliegt (S122; Nein), wird die Sendeanfrage
auf "Leeranweisung" gesetzt, die Steuerung verzweigt
auf C in 3, und der Übertragungsprozess endet. Falls
es eine Sendeanfrage gibt (S122; Ja), verzweigt die Steuerung auf
B in 3, und der XOFF-Signal- oder Signalleitungsstatus-Sendeprozess
erfolgt.
-
Mischprozess
-
Als
nächstes
wird der Mischprozess detailliert beschrieben. Der Mischprozess
wird ausgeführt, wenn,
bei der in 2 dargestellten Konfiguration, Übertragungsdaten,
abgesehen von im Übertragungspuffer 12 befindlichen
ASB-Daten, bereits im ASB-Speicher 14 oder im PIR-Speicher 15 gespeichert
sind und weitere ASB-Daten oder PIR-Daten erzeugt werden.
-
5 ist
ein Ablaufdiagramm des Mischprozesses. Zuerst bestimmt, falls ASB-Daten
oder PIR-Daten vom
Statusmonitor 80 ausgegeben werden, der Mischprozessor 16 (2),
ob der Mischprozess erforderlich ist. Beispielsweise wird, falls
es keinen Platz im entsprechenden dedizierten Puffer 14 oder 15 gibt,
der Mischprozess als notwendig bestimmt (S130). Falls es Platz im
Puffer gibt (S130; Nein), werden die neuesten (jüngsten) vom Statusmonitor 80 kommenden
Daten im entspre chenden Puffer 14 oder 15 gespeichert
(S133). In speziellen Fällen,
wie beispielsweise, wenn kein Platz vorhanden ist (S130; Ja), werden
die im Puffer 14 oder 15 gespeicherten Chronikdaten
aktualisiert (S131), und dann werden die neuesten Daten im entsprechenden Puffer 14 oder 15 gespeichert
(S132).
-
Das
Aktualisieren der auf die ASB-Daten bezogenen Chronikdaten wird
nachfolgend mit Bezug auf 6 beschrieben. 6 ist
ein Blockschaltbild, welches die Basiskonfiguration des Mischprozessors 16 und
des ASB-Puffers 14 beschreibt. Der ASB-Puffer 14 weist
einen 4-Byte-(32-Bit)-Statusdatenspeicher 20 und einen
4-Byte-(32-Bit)-Chronikdatenspeicher 21 auf. Es sei angemerkt,
dass die Kapazität von
4 Byte der Speicher 20 und 21 der für dieses
Beispiel angenommenen Statusdatenlänge von 4 Byte entspricht.
Also wäre
diese Kapazität
unterschiedlich, falls die Datenlänge unterschiedlich ist.
-
Die "zuletzt erzeugten
ASB-Daten" Tran
werden im Speicher 20 gespeichert, und werden zu den "zuletzt gespeicherten
ASB-Daten" New.
Wie später noch
detailliert beschrieben wird, werden Informationen, die angeben,
ob es eine Änderung
bei den mehreren sequentiell an den Mischprozessor gesendeten ASB-Daten
gab, d. h. die Chronikdaten, im Speicher 21 gespeichert.
-
Falls
Platz im Übertragungspuffer 12 zur
Verfügung
steht, werden ASB-Daten, d. h. das exklusive ODER aus den Chronikdaten
und den Daten New erzeugt und an den Sendepuffer übertragen,
gefolgt von den Daten New. Durch Erhalten des exklusiven ODER aus
den Chronikdaten und den Daten New, wird ein Status (Bit), der sich
geändert
hat, in den ASB-Daten als der inverse Wert des entsprechenden Bit
in den Daten New codiert, und jeglicher Status (Bit), der sich nicht
verändert
hat, ist der gleiche wie das entsprechende Bit in den Daten New.
Als Ergebnis kann, sogar wenn die zuletzt an den Host-Computer gesendeten
ASB-Daten und die Statusdaten New gleich sind und dazwischenliegende
Statusdaten aufgetreten sind, die nicht an den Host-Computer gesendet
werden konnten, der Host-Computer über eine Statusänderung
benachrichtigt werden, falls es in der Zwischenzeit eine Statusänderung
gegeben hat.
-
Aufgrund
der Beschaffenheit der ASB-Daten ist das Vorliegen einer Statusänderung
wichtig, jedoch ist es nicht erforderlich, den Prozess zu kennen, d.
h. die Abfolge der Änderungen.
Außerdem
ist es ebenfalls äußerst wichtig,
den neuesten Status an den Host-Computer so bald als möglich zu
senden, und es ist daher erwünscht,
die Menge von ASB-Daten zu verringern, die sobald als möglich gesendet werden
müssen.
Die geringste Menge an benötigten Daten
lässt sich
daher dadurch erzielen, dass für
jeden Status (Bit) der neueste Status sowie Informationen gespeichert
werden, die angeben, ob es eine Änderung
bei dem Status (Bit) gegeben hat.
-
Aus
den nachfolgend beschriebenen Gründen
werden Informationen, die angeben, ob es eine Änderung bei den ASB-Daten gegeben
hat, in ASB-Daten umgewandelt, die durch das Erhalten des exklusiven
ODER aus den Chronikdaten und den Statusdaten New erzeugt werden
und dann bei der vorliegenden Ausführungsform an den Host-Computer
gesendet werden. Der Host-Computer kann nicht bestimmen, ob es sich
bei den gesendeten Daten um "ASB-Daten" oder um "Chronikdaten" handelt, und der
Host-Computer kann daher den zeitlichen Verlauf (Chronik) der Änderungen
der ASB-Daten nicht rekonstruieren.
-
"Tran" in 6 sind
die zuletzt erzeugten ASB-Daten 22, die vom Statusmonitor 18 übertragen wurden,
und bestehen (im angenommenen Beispiel) aus 4 Byte (d. h. 32 Bit
Tran1 bis Tran32).
-
6 dient
zum Beschreiben eines Beispiels der Mischfunktion, und der zeitliche
Ablauf und weitere Steuerdetails sind weggelassen. Falls es Platz
im ASB-Puffer 14 gibt, werden, wenn Statusdaten vom Statusmonitor 80 gesendet
werden, diese direkt im Speicher 20 gespeichert, wie zuvor
beschrieben. Der Anfangswert im Speicher 21 beträgt Null, und
Chronikdaten im Speicher 21 werden durch Nullsetzen gelöscht, nachdem
die Daten an den Übertragungspuffer 12 gesendet
wurden.
-
Für jedes
Bit der ASB-Daten weist der Mischprozessor 16 einen jeweiligen
Statusänderungsdetektor 23-x (23-1 bis 23-32,
d. h. 1 × 32)
auf. Jeder Detektor 23-x weist ein Exklusiv-ODER-Gatter 24 und
ODER-Gatter 25 auf, die konfiguriert sind, um eine 1 auszugeben,
falls das Bit Tranx von dem Bit Newx abweicht. Die Ausgangsgröße des Exklusiv-ODER-Gatters 24 wird
dem ODER-Gatter 25 zugeführt, welcher dann das logische
ODER mit dem entsprechenden Bit Midx in den Chronikdaten erhält.
-
Die
Ausgangsgröße vom ODER-Gatter 25 ist daher
1, falls es eine auch nur einmalige Änderung bei den entsprechenden
ASB-Daten gegeben hat, die erzeugt wurden, nachdem die ASB-Daten
an den Übertragungspuffer 12 gesendet
wurden. Informationen, die angeben, dass es eine Änderung
gab, werden daher im Speicher 21 gespeichert. Die Ausgangsgröße des ODER-Gatters 24 wird
dem entsprechenden Bit im Chronikdatenspeicher zugeführt, und
die Daten im Speicher 21 werden zum ENB2-Zeitpunkt aktualisiert.
Eine Änderung
bei den ASB-Daten wird daher in den Bits der Chronikdaten im Speicher 21 reflektiert.
-
Nachdem
die Chronikdaten im Speicher 21 durch Anwendung von ENB2
aktualisiert wurden, wird ENB1 aktiv, und die Statusdaten Tran1
bis Tran32 werden im Speicher 20 unter Überschreiben der bestehenden
Statusdaten gespeichert. Die jüngsten
ASB-Daten und Änderungschronik
werden im ASB-Puffer 14 gespeichert, und wenn Platz im Übertragungspuffer 12 verfügbar wird,
wird das exklusive ODER aus den ASB-Daten New und den Chronikdaten
Mid, und dann die ASB-Daten New sequentiell übertragen, wie zuvor beschrieben.
-
Unter
Verwendung eines Beispiels werden diese Datenänderungen nachfolgend detaillierter
mit Bezug auf 7 beschrieben. 7 zeigt
die Änderungen
bei den zuletzt erzeugten Statusdaten (Tran), den Chronikdaten (Mid)
und den zuletzt gespeicherten Statusdaten (New). Um die Beschreibung
zu vereinfachen, zeigt 7 lediglich einen Teil (1 Byte
= 8 Bit) der ASB-Daten.
-
Es
wird angenommen, dass Statusdaten Tran (Daten 1) unter solchen Umständen übertragen werden,
bei denen sie nicht im Übertragungspuffer 12 gespeichert
werden können,
da der Übertragungspuffer 12 bereits Übertragungsdaten
enthält. Da
der ASB-Puffer 14 zu diesem Zeitpunkt keinen Mischprozess
erfordert, werden Daten 1 direkt im Speicher 20 gespeichert,
und der Misch prozess endet (S130 und S133 in 5).
-
Falls
dann die nächsten
Statusdaten Tran (Daten 2) empfangen werden, wird der Mischprozess gestartet
(S130 in 5 ergibt Ja), und die Chronikdaten
im Speicher 21 werden aktualisiert. In diesem Fall wird
Bit 1 (Mid1) der Chronikdaten zu 1, da New1, d. h. Bit 1 in den
zuletzt gespeicherten Daten 1 ist, und Bit1 (Tran1) in den zuletzt
erzeugten Daten 2 den Wert 0 hat; Mid2 in den Chronikdaten wird ebenfalls
1, da New2 (das 0 war) sich auf 1 (Tran2) geändert hat (S131, 5).
Daten 2 (Tran) werden dann als zuletzt gespeicherte Daten New im
Speicher 20 unter Überschreiben
von Daten 1 gespeichert (S132, 5).
-
Wenn
dann Daten 3 vom Statusmonitor 80 gesendet werden, ändert sich
Bit 2 (Mid3) in den Chronikdaten in ähnlicher Weise auf 1, und die
Bits 1 und 2 (Mid1, Mid2) bleiben auf 1 gesetzt. Die Daten 3 werden
dann direkt als zuletzt gespeicherte Daten New unter Überschreiben
der Daten 2 gespeichert.
-
Wenn
die Daten 4 und die Daten 5 dann in der Reihenfolge empfangen werden, ändern sich
die Bits 4 und 5 (Mid4, MidS) der Chronikdaten in der Abfolge auf
1, und die Statusdaten Tran (Daten 5) werden als zuletzt gespeicherte
Daten New gespeichert.
-
Wenn
die Daten 6 empfangen werden, wird Bit 1 von 0 (New1) auf 1 (Tran1)
geändert,
und Bit 5 wird von 1 (New5) auf 0 (Tran5) geändert, jedoch wurden die entsprechenden
Bits (Mid1, Mid5) in den Chronikdaten bereits auf 1 gesetzt, und
die Chronikdaten werden daher nicht verändert.
-
Falls
eine Übertragung
zum Übertragungspuffer 12 zum
diesem Zeitpunkt möglich
wird, wird das exklusive ODER ([00011110]) der zuletzt gespeicherten
Statusdaten New [00000001] und die Chronikdaten Mid [00011111] erhalten,
und dieses logische ODER wird als erstes an den Übertragungspuffer 12 übertragen.
Die zuletzt gespeicherten Statusdaten New werden dann an den Übertragungspuffer 12 gesendet.
-
Weiter
handelt es sich bei den PIR-Daten um Daten, die dem Host-Computer
eine Bestimmung des Fortschreitens eines speziellen Prozesses ermöglichen,
und eine Zwischenchronik von diesen ist daher nicht erforderlich.
PIR-Daten im PIR-Puffer 15, die nicht gesendet wurden,
können
daher mit den neuesten (jüngsten)
PIR-Daten überschrieben
werden.
-
Es
sei darauf hingewiesen, dass die zuvor beschriebene bevorzugte Ausführungsform
lediglich mit Bezug auf ein Senden von Daten von einem Drucker,
als Beispiel für
ein Terminalgerät,
an einen Host-Computer beschrieben wurde, falls jedoch eine unabhängig arbeitende
Schnittstelleneinrichtung im Terminalgerät vorgesehen ist, kann eine
Datenkommunikation mit der Schnittstelleneinrichtung in der gleichen
Weise wie eine Kommunikation mit dem Host-Computer gehandhabt werden.
Mit anderen Worten ist die Erfindung ebenfalls auf eine Übertragungssteuerung
zum Senden von Daten in Einheiten von 1 Byte an eine Schnittstelleneinrichtung
in einem Terminalgerät
anwendbar.
-
Bei
der zuvor erläuterten
Ausführungsform werden
ASB-Daten vorübergehend
im jeweiligen dedizierten Puffer gespeichert, wenn, zu dem Zeitpunkt, bei
dem diese Daten erzeugt werden, der Übertragungspuffer abgesehen
von den ASB-Daten bereits Übertragungsdaten
enthält.
Alternativ könnten ASB-Daten
im jeweiligen dedizierten Puffer nur dann gespeichert werden, wenn
zum Zeitpunkt der Erzeugung dieser Daten der Übertragungspuffer voll ist,
d. h. er diese neu erzeugten Daten nicht aufnehmen kann.
-
Wie
zuvor beschrieben ist, dadurch dass ein dedizierter Puffer für kontinuierlich
erzeugte Statusdaten bereitgestellt wird und eine Chronik von Statusänderungen
mit einer Konfiguration gespeichert wird, bei der lediglich die
neuesten Statusdaten und die Statusänderungschronikdaten an den
Host-Computer gesendet
werden, die Erfindung in der Lage, den für eine Übertragung benötigten Puffer
zu verringern und die Übertragungslast
stark zu verringern.