-
Die vorliegende Erfindung betrifft einen Strichcode-Drucker,
der einen Prozessor mit einem zugehörigen Speicher aufweist,
in den bzw. aus dem mittels einer Speicherschutzeinrichtung
geschrieben bzw. ausgelesen werden kann.
HINTERGRUND DER ERFINDUNG
-
Bei Strichcode-Druckern ist bekannt, daß sie zwischen einem
Mikroprozessor des Druckers und den Eingabe- und
Ausgabegeräten des Druckers, die typischerweise eine Tastatur zur
Dateneingabe, einen Druckkopf zum Drucken und einen Motor für
den Vorschub des Vorrats an zu bedruckendem Material wie z. B.
Etiketten, Anhänger etc. am Druckkopf vorbei enthalten,
Schnittstellenschaltungen haben.
-
Gemäß der vorliegenden Erfindung enthält eine Steuerung des
Druckers eine Speicherschutzfunktion für den RAM des Druckers.
Wenn, genauer dargestellt, ein Bereich des RAM des Druckers
mindestens ein Programm speichert, dementsprechend der
Prozessor des Druckers arbeitet, oder andere zu schützende
Informationen, hindert die vorliegende Erfindung einen Anwender
daran, in diesen Bereich des RAM zu schreiben. Die Steuerung
enthält des weiteren Einrichtungen zur Deaktivierung dieser
Speicherschutzfunktion, um zu ermöglichen, daß ein neues
Programm oder neue Informationen in den zuvor geschützten Bereich
des RAM des Druckers geschrieben werden.
-
Einzelheiten der dargestellten Ausführungsform der Erfindung
werden in der nachfolgenden Beschreibung und anhand der
Zeichnung näher erläutert.
KURZE BESCHREIBUNG DER ZEICHNUNG
-
Fig. 1 ist ein Blockschaltbild eines Strichcode-Druckers, der
eine Steuerung gemäß der vorliegenden Erfindung verwendet;
-
Fig. 2 ist ein Blockschaltbild, das die Mikroprozessor-
Schnittstellenschaltung von Fig. 1 darstellt;
-
Fig. 3 ist ein Blockschaltbild, das einen Teil der
Druckkopfdaten und der Steuerschaltung von Fig. 1 darstellt;
-
Fig. 4 ist ein Blockschaltbild, das einen weiteren Teil der
Druckkopfdaten und der Steuerschaltung von Fig. 1 darstellt;
-
Fig. 5 ist ein Impulsdiagramm, das die Steuersignale
darstellt, die zur Wärmeregelung in einem intelligenten Druckkopf
generiert werden;
-
Fig. 6 ist ein Impulsdiagramm, das die Steuersignale
darstellt, die zur Wärmeregelung in einem nicht intelligenten
Druckkopf generiert werden;
-
Fig. 7 ist ein Blockschaltbild, das den seriellen Eingangs-
/Ausgangsport von Fig. 1 darstellt;
-
Fig. 8 ist ein Blockschaltbild, das den Baudratengenerator von
Fig. 1 darstellt;
-
Fig. 9 ist ein Blockschaltbild, das die
Speicherschutzschaltung von Fig. 1 darstellt; und
-
Fig. 10 ist ein Impulsdiagramm, das die Funktionsweise des
Baudratengenerators von Fig. 1 darstellt.
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Fig. 1 zeigt einen Strichcode-Drucker 10 mit einer Steuerung
12 gemäß der vorliegenden Erfindung. Die Steuerung 12 stellt
eine Schnittstelle zwischen dem Mikroprozessor 14 des Druckers
mit einem zugehörigen RAM 16 und ROM 18 und eine Anzahl Ein-
und Ausgabegeräte des Druckers wie z. B. einen thermischen
Druckkopf 20 bereit. Der Mikroprozessor 14 steuert den
thermischen Druckkopf 20 über die Steuerung 12, um eine Bahn
Aufzeichnungselemente wie Etiketten, Anhänger oder dgl. zu
bedrucken. Die Bahn der Aufzeichnungselemente bildet einen
Vorrat, der von einem Schrittmotor 22 oder einem
Gleichstrommotor, der ebenfalls vom Mikroprozessor 14 gesteuert wird,
durch den Drucker 10 vorgeschoben wird. Obwohl ein Druckkopf
und ein Motor für den Vorschub des Vorrats für verschiedene
Typen Strichcode-Drucker erforderlich sind, sind andere der in
Fig. 1 dargestellten Eingabe- und Ausgabegeräte wie die
Anzeige 24, die Tastatur 26, der Piepser 28 etc. nicht notwendig
und ändern sich gemäß dem Typ des Druckers, in dem die
Steuerung 12 verwendet wird. Die Steuerung 12 ist also auf
Flexibilität ausgelegt, so daß sie in sehr komplexen teuren
Druckern mit sämtlichen oder den meisten der dargestellten
Eingabe- und Ausgabegeräte ebenso wie in preiswerteren
Druckern, die nur wenige der dargestellten Eingabe- und
Ausgabegeräte haben, verwendet werden kann. Aufgrund dieser
Konzeption kann ein preiswerte Drucker mit der Steuerung 12
hochgerüstet werden, um zusätzliche Funktionen bereitzustellen,
ohne die Basisarchitektur der Maschine zu ändern. Die
Steuerung 12 kann beispielsweise in einem Strichcode-Drucker
verwendet werden, der über eine Tastatur 26 eingegebene Daten als
Reaktion auf die Betätigung einer Auslösetaste 30 durch einen
Benutzer druckt. Die gleiche Steuerung 12 kann auch in einem
Drucker verwendet werden, der keine Tastatur 26 oder keinen
Auslöser 30 enthält, sondern Druckdaten von einem Host-Rechner
oder dgl. über beispielsweise eine mit der Steuerung 12
gekoppelten RS 232 Kommunikationsschnittstelle 32 erhält, wobei
die Daten einen Druckbefehl zum automatischen Ansteuern eines
Druckvorgangs des Strichcode-Druckers 10 beinhalten.
-
Wie in Fig. 1 dargestellt enthält die Steuerung 12 eine
Mikroprozessorschnittstelle 34, die es der Steuerung 12 gestattet,
mit mindestens zwei Typen Mikroprozessoren zu kommunizieren,
so daß die Steuerung 12 in einem Strichcode-Drucker 10 mit
einem beliebigen der unterstützten Mikroprozessoren verwendet
werden kann. Eine Speicherschutzschaltung 36 ist vorgesehen,
um einen Benutzer daran zu hindern, Daten in einen geschützten
Bereich des RAM 16 einzuschreiben. Dieses Merkmal ist in
Druckern wünschenswert, bei denen es möglich ist, Software zur
Steuerung des Betriebs des Mikroprozessors 14 in den RAM 16
des Druckers über die Kommunikationsschnittstelle 32 von einem
Host-Rechner herunterzuladen. Zur jeweiligen Verbindung
zwischen dem Mikroprozessor 14 und der Anzeige 24, der Tastatur
26 und dem Auslöser 30 sind eine Anzeigenschnittstelle 38,
eine Tastaturschnittstelle 40 und eine Auslöserschnittstelle
30 vorgesehen. Ein serieller Eingangs-/Ausgangsport 44 ist so
programmierbar, daß eine veränderliche Anzahl serieller Bits
verschoben werden kann sowie Änderungen der Datenrichtung und
Änderungen der Verschieberichtung möglich sind. Der serielle
Eingangs-/Ausgangsport 44 ist also extrem flexibel und kann
mit einer großen Vielfalt externer serieller Datengeräte
verwendet werden. Eine Druckkopf-Schutzschaltung 44 ist in der
Steuerung 12 enthalten, um ein Ausbrennen des Druckkopfes zu
verhindern, indem sichergestellt wird, daß die
Druckkopfelemente nicht zu lang mit Spannung versorgt und dadurch
beschädigt werden. Ein universeller Eingangs-/Ausgangsport 46 ist
vorgesehen, wobei jeder Kontaktstift dieses Port unabhängig
als Eingang oder als Ausgang programmierbar ist. Eine
Druckkopf-Daten- und Steuerschaltung 48 steuert die Übertragung der
Druckdaten an den thermischen Druckkopf 20 sowie die
Heizleitungen, die mit dem thermischen Druckkopf 20 gekoppelt sind,
um die Menge der erzeugten Wärme zu regeln, wenn ein
Druckkopfelement mit Spannung versorgt wird. Der
Heizsteuerungsabschnitt innerhalb der Schaltung 48 ermöglicht es, die
Steuerung 12 mit einem intelligenten oder mit einem nicht
intelligenten thermischen Druckkopf zu verwenden. Wie im Stand der
Technik hinreichend bekannt ist, regelt ein intelligenter
thermischer Druckkopf die Zeitdauer selbst, während der jedes
Druckkopfelement mit Spannung versorgt wird, gemäß der
historischen Spannungsbeaufschlagung des betreffenden Druckkopfelements
sowie der historischen Spannungsbeaufschlagung der
umgebenden Druckkopfelemente, indem ein bestimmter Impuls aus
einer Anzahl an diese gelieferten Taktimpulse gewählt wird.
Demgegenüber gibt es den nicht intelligenten Druckkopf, der
sich bezüglich der Regelung der Dauer der
Spannungsbeaufschlagung auf den Mikroprozessor 14 stützt. Eine
Schrittmotorsteuerung 50 spricht auf den Ausgang eines
Impulsbreiten-Modulationsgenerators 52 an, um die Steuersignale für den
Schrittmotor 22 des Strichcode-Druckers 10 zu erzeugen. Der
Impulsbreiten-Modulationsgenerator 52 erzeugt außerdem Signale für
eine Piepser-Schnittstelle 54, die einen Piepser 28 treibt.
Ein dualer Universal-Asynchron-Empfänger/Sender (dual
universal asynchronous receiver/transmitter - DUART) 56 wird vom
Ausgang eines Baudratengenerators 58 so getaktet, daß er mit
der Kommunikationschnittstelle 32 kommunizieren kann. Der
Baudratengenerator ist programmierbar, um Eingangs-Taktimpulse
verschiedener Frequenzen von einem Referenzfrequenzgenerator
60 anzunehmen, wobei jede Eingangsfrequenz ein zugehöriges
Taktimpulsmuster zur Erzeugung von Ausgangstaktimpulsen mit
einer gewünschten Frequenz hat. Der Baudratengenerator 58
bedient sich einer asymmetrischen Teilung, um die gewünschte
Frequenz aus der verfügbaren Referenzfrequenz zu erzeugen.
Interne Status- und Steuerregister 62 dienen zur
Bereitstellung von Statusinformationen und zur Erzeugung verschiedener
Interrupts für den Mikroprozessor 14.
-
Die Mikroprozessorschnittstelle 34 gemäß Fig. 2 gestattet es
der Steuerung 12 mit einem Mikroprozessor 14 eines ersten Typs
oder einer ersten Konfiguration in der Weise zu kommunizieren,
daß der Mikroprozessor über einen Adreßbus und einen
getrennten Datenbus kommuniziert. Ein Beispiel für einen solchen
Mikroprozessor ist der Motorola Mikroprozessor MC68331, der im
folgenden als der '331-Prozessor bezeichnet wird. Die
Schnittstelle 34 gestattet es der Steuerung 12 außerdem, mit einem
Mikroprozessor eines anderen Typs oder einer anderen Konfiguration
zu kommunizieren, wie z. B. mit einem Intel 80C86XL, der
im folgenden als der '186-Mikroprozessor bezeichnet wird, der
einen Zeitmultiplex-Adreßdatenbus verwendet. Um die Anzahl der
Kontaktstifte, die zum Datenaustausch mit diesen beiden
unterschiedlichen Mikroprozessoren erforderlich sind, auf einem
Minimum zu halten, enthält die Mikroprozessorschnittstelle 34
Gruppen von Kontaktstiften für die Kommunikation von einem
Satz oder Typ Signale zwischen der Steuerung 12 und dem einen
Typ Mikroprozessor; wobei die gleiche Gruppe von
Kontaktstiften für die Kommunikation eines anderen Satzes oder Typs
Signale zwischen der Steuerung 12 und einem Mikroprozessor des
anderen Typs dient.
-
Im einzelnen enthält die Mikroprozessorschnittstelle 34 einen
Modusmultiplexer 70 mit einem zur Leitung 76 gehörigen
Modusstift für den Empfang von Informationen, die den Typ des mit
der Steuerung 12 gekoppelten Mikroprozessors 14 angeben. Der
Multiplexer 70 enthält außerdem eine Anzahl zu einem Bus 72
gehöriger Kontaktstifte, der in einem Modus
'186-Mikroprozessor einen gemultiplexten Adreß-/Datenbus für die Signale
AD0 bis AD15 bildet. Im Modus '331-Mikroprozessor bildet der
zu den gleichen Kontaktstiften gehörige Bus 72 einen Datenbus
zur Eingabe und Ausgabe nur der Daten, die von den Signalen D0
bis D15 repräsentiert werden. Eine Anzahl zum Multiplexer 70
gehöriger Stifte sind mit einem Bus 74 gekoppelt, der A16 bis
A19 repräsentierende Adreßsignale sowohl im
'186-Mikroprozessormodus als auch im '331-Mikroprozessormodus führt.
-
Die Mikroprozessorschnittstelle 34 enthält außerdem einen
Signalspeicher 72. Im '186-Mikroprozessormodus bildet ein Bus
78 einen Ausgabebus, der mit einer Gruppe Kontaktstifte des
Signalspeichers 72 verbunden ist, um die zwischengespeicherten
Adressen AIL bis A6L und A12L bis A15L bereitzustellen. Im
'331-Mikroprozessormodus jedoch bildet der Bus 78 einen
Eingabebus, der mit den gleichen Stiften des Signalspeichers 72
gekoppelt ist, um die Adressen Al bis A6 und A12 bis A15
bereitzustellen, die in die Steuerung 12 eingegeben werden. Ein
Bus 80 dient zur Bereitstellung der zwischengespeicherten
Adressen AOL, A7L bis AllL und A16L bis A19L, die nur im '186-
Mikroprozessormodus von der Steuerung 12 ausgegeben werden.
Des weiteren stellt der '186 Mikroprozessor im
'186-Mikroprozessormodus ein Freigabesignal ALE für den Signalspeicher
bereit, das mit dem Signalspeicher 72 gekoppelt ist, um die
darin zwischenzuspeichernden Adressen freizugeben. Der
Signalspeicher 72 spricht auch auf ein Modussignal an, das vom
Multiplexer 70 auf eine Leitung 82 gelegt wird, um zu bestimmen,
ob der Signalspeicher Eingabeinformationen auf dem Bus 78
annehmen oder Ausgabeinformationen auf den Bus 78 oder den Bus
80 legen soll. Im Eingabemodus legt der Signalspeicher 72 die
oben beschriebenen Adreßinformationen vom '311 Mikroprozessor
von Bus 78 auf einen Bus 84 zur internen Verwendung durch die
Steuerung 12. Im Ausgabemodus liest der Signalspeicher 72 die
Adreßinformationen von Bus 84 und einem Bus 86 und liefert sie
zur Zwischenspeicherung an die Ausgabebusse 78 und 80. Es sei
darauf hingewiesen, daß andere Stifte der
Mikroprozessorschnittstelle 34 benutzt werden können, um je nach Modus
unterschiedliche Informationen zwischen der Steuerung 12 und dem
Mikroprozessor 14 auszutauschen. Des weiteren enthält die
Mikroprozessorschnittstelle 34 eine Anzahl Kontaktstifte, die
ausschließlich zur Verwendung nur eines Typs Mikroprozessor
reserviert sind.
-
Der Abschnitt zum Laden der Druckkopfdaten der Druckkopf-
Steuerschaltung 48 ist in Fig. 3 dargestellt. Wie daraus
ersichtlich ist, enthält ein doppelt gepuffertes Parallel-/
Seriell-Schieberegister 90 einen ersten Puffer, in den die
parallelen Daten auf Bus 88 zuerst verschoben werden, und
einen zweiten Puffer, in den die Daten vom ersten Puffer
parallel übertragen werden, wobei die Daten aus dem zweiten
Puffer seriell verschoben und über eine Leitung 96 mit dem
thermischen Druckkopf 20 gekoppelt werden. Ein Zähler 92 ist
mit dem Ausgang des Schieberegisters 90 gekoppelt, um die
Anzahl der die Elemente des thermischen Druckkopfes
repräsentierenden Datenbits zu zählen, die zum Druck einer
Informationszeile mit Spannung zu beaufschlagen sind. Die Daten im
Zähler 92 werden über den Datenbus 88 zum Mikroprozessor'14
zurück gekoppelt, so daß der Mikroprozessor 14 die
Zählerinformationen für Funktionen des Energiemanagements und der
Druckkopfüberwachung verwenden kann. Ein Ausgang auf der
Leitung 98 vom doppelt gepufferten Schieberegister 90
repräsentiert den leeren oder vollen Status des ersten Puffers, so daß
dann, wenn der Status des ersten Puffers rleer' ist, eine
Anforderung für einen direkten Speicherzugriff bestätigt wird,
um dem Mikroprozessor 14 einen Interrupt zu liefern, der
meldet, daß das Schieberegister 90 Daten für die nächste zu
druckende Zeile aufnehmen kann. Die Statusleitung leervoll 98
ist außerdem mit einem internen Statusregister 94 zum
Speichern gekoppelt, so daß der Mikroprozessor 14 das
Statusregister 94 abfragen kann, um den Zustand des ersten Puffers des
doppelt gepufferten Schieberegisters 90 zu bestimmen.
-
Der Steuerungsabschnitt für die Druckkopfheizeinrichtung der
Schaltung 48 der Steuerung 12 ist in Fig. 4 dargestellt. Wie
zu ersehen ist, ist ein Rechteckwellen-Register 100
vorgesehen, um zu bestimmen, ob die Druckkopflogik ein
Ausgangssteuersignal für einen intelligenten oder einen nicht
intelligenten thermischen Druckkopf bereitstellt. Ist das
Rechteckwellen-Register 100 mit dem Wert null programmiert, stellt die
Schaltung die Ausgänge H0, H1, H2, H3 und H4 zur
Heizungssteuerung für einen intelligenten Druckkopf aus den entsprechenden
Druckkopfheizregistern 102 bis 106 bereit. Die Steuersignale
H0 bis H4 für die Heizung sind jeweils aktive Signale auf L-
Pegel, deren Länge einen wählbaren Spannungspegel in Form
einer wählbaren Dauer der Spannungsbeaufschlagung für die
Elemente des thermischen Druckkopfes 20 repräsentiert, um die
Wärmemenge zu regeln, die von einem Druckelement zum Drucken
eines Punktes erzeugt wird. So kann beispielsweise das
Steuersignal H0 aus einem 800 ms langen aktiven Signal auf L-Pegel
gebildet sein; das Steuersignal H&sub1; kann aus einem 600 ms
langen aktiven Signal auf L-Pegel gebildet sein; das Steuersignal
H2 kann aus einem 500 ms langen aktiven Signal auf L-Pegel
gebildet sein; das Steuersignal H&sub3; kann aus einem 400 ms langen
aktiven Signal auf L-Pegel gebildet sein, während das
Steuersignal H4 aus einem 200 ms langen aktiven Signal auf L-Pegel
gebildet sein kann.
-
Da jedes der Druckkopfheizregister 102 bis 106 die gleiche
Konfiguration hat, wird nur das Register 102 detailliert
beschrieben. Wie für das Register 102 dargestellt, wird bei
Betrieb im Modus intelligenter Druckkopf eine Zahl, die die
Länge des aktiven Signals auf L-Pegel für das Steuersignal H0
repräsentiert, d. h. 800 ms im obigen Beispiel, vom Datenbus 88
in das Register 108 geschrieben. Ein Taktsignal auf einer
Leitung 110 taktet einen Zähler 112, um zu zählen, während
welcher Zeitspanne der Ausgang des Registers 102 auf LOW liegt.
Der Registerausgang geht nach HIGH, wenn der Wert im Zähler
112 gleich ist dem im Register 108 gespeicherten Wert, was von
einem Komparator 114 bestimmt wird. Die Register 103 bis 106
erzeugen die Steuersignale H1 bis H4 in ähnlicher Weise.
-
Zur Steuerung eines nicht intelligenten thermischen
Druckkopfes wird das Rechteckwellenregister 100 mit einem Wert
ungleich null programmiert, um die Dauer einer
Rechteckwellenausgabe vom Register 102 auf der dem Steuersignal H0
zugehörigen Leitung und die Dauer der zur Rechteckwelle
komplementären Ausgabe vom Register 103 auf der dem Steuersignal H1
zugehörigen Leitung zu steuern. Dieses Steuersignal H0 steuert
die Wärmemenge, die für eine Hälfte des nicht intelligenten
Druckkopfes erzeugt wird, während das Steuersignal H1 die
Wärmemenge steuert, die für die andere Hälfte des nicht intelligenten
Druckkopfes erzeugt wird. Obwohl der von null
verschiedene Wert im Register 100 die Dauer der
Rechteckwellensignale H0 und H1 repräsentiert, wird die Gesamtlänge der
Signale H0 und H1 von dem im Register 100 gespeicherten Wert,
z. B. 800 ms, bestimmt.
-
Ein Zeilenintervallzähler 116 wird mit einem Wert geladen, der
die Anzahl von Taktsignalen fepräsentiert, die zum
Synchronisieren des Ladens und Erwärmens des Druckkopfes 20 verwendet
werden. Der Zähler 116 erzeugt ein Signal PH LATCH auf einer
Leitung 122 und ein komplementäres Signal LINE INTERVAL OUT
auf einer Leitung 123, wenn der Zählwert des
Zeilenintervallzählers eins beträgt. Das Signal PH LATCH dient zur Übergabe
der Druckdaten an den thermischen Druckkopf 20, während das
Signal LINE INTERVAL OUT zur Meldung dient, daß die Steuerung
12 zur Verarbeitung der Daten für die nächste zu druckende
Zeile bereit ist. Es sei darauf hingewiesen, daß das Signal
LINE INTERVAL OUT auf der Leitung 123 direkt verwendet oder an
einen Interrupt-Generator 120 gelegt werden kann, um einen
Interrupt zu erzeugen. Des weiteren ist ein internes
Steuerregister 118 vorgesehen, um ein Start-Signal für den Druckkopf
zu erzeugen, das den synchronisierten Heizzyklus des
Druckkopfes beginnt. Fig. 5 und 6 sind Impulsdiagramme, die wie oben
beschrieben die für einen intelligenten Druckkopf erzeugten
Steuersignale H&sub0; bis H&sub4; und die für einen nicht intelligenten
Druckkopf erzeugten Signale H&sub0; und H&sub1; sowie andere
Steuersignale für den Druckkopf darstellen.
-
Der serielle Eingangs-/Ausgangsport 44 der Steuerung 12 ist in
Fig. 7 dargestellt. Der serielle Eingangs-/Ausgangsport 44
enthält einen Ausgang parallel zum seriellen Umsetzer 130, der
Daten auf dem parallelen Datenbus 88 empfängt, die seriell auf
eine Leitung 136 heraus zu verschieben sind. Der serielle
Eingangs-/Ausgangsport 44 enthält außerdem einen seriellen/-
parallelen Eingangsumsetzer 132, der serielle Daten auf einer
Leitung 138 empfängt, die in den Port 44 zu verschieben sind,
um mit dem parallelen Datenbus 88 gekoppelt zu werden. Ein
Datenzählregister 134 steuert den Ausgangsumsetzer 130 und den
Eingangsumsetzer 132 als Reaktion auf vom Bus 88 erhaltene
Daten, wobei die Daten die Anzahl der seriell zu verschiebenden
Bytes, die Datenrichtung, d. h. ob die Daten aus dem Port 44
oder in den Port 44 zu verschieben sind, und die Richtung der
Verschiebung, d. h. ob die Umsetzer 130 bzw. 132 vom
höchstwertigen zum niedrigstwertigen oder vom niedrigstwerten zum
höchstwertigen Bit verschieben, repräsentieren.
-
Als Antwort auf die vom Bus 88 erhaltenen Daten erzeugt das
Datenzählregister 134 Taktsignale auf einer Leitung 140, wenn
die Daten aus dem Port 44 zu verschieben sind, oder es erzeugt
Taktsignale auf einer Leitung 142 zum Umsetzer 132, wenn Daten
in den Port 44 zu verschieben sind. Ein Modussignal auf den
entsprechenden Leitungen 144 und 146 weist den entsprechenden
Umsetzer 130 oder 132 an, entweder das höchstwertige oder das
niedrigstwertige Bit zuerst zu verschieben. Das
Datenzählregister erzeugt auch ein Chipauswahlsignal 148 als Reaktion auf
Daten, die vom Bus 88 in das Datenzählregister geschrieben
werden, sowie ein serielles Synchronisierungstaktsignal auf
einer Leitung 150. Es ist zu beachten, daß das
Datenzählregister 134 gelesen werden kann, um den Status der
Datenübertragung von dem das Register abfragenden Mikroprozessor zu
bestimmen, um festzustellen, ob der darin enthaltene Zählwert
abgelaufen ist, was auf den Abschluß der Datenübertragung
hinweist.
-
Der programmierbare Baudratengenerator 58 gemäß Fig. 8 erzeugt
aus einem Eingangstaktsignal auf Leitung 152 vom
Referenzfrequenzgenerator 60 verschiedene Betriebsfrequenzen für den
DUART 56. Die dem DUART 56 bereitzustellende Frequenz ist das
16-Fache der gewünschten Baudrate. Um eine Baudrate von 19,2 K
zu unterstützen, muß deshalb die Mindestfrequenz, die in den
DUART 56 eingegeben werden kann, 16 · 19,2 kHz = 307,2 kHz
betragen. Sämtliche Standard-Baudraten von 75 Baud bis
19,2 KBaud können mittels des Baudratengenerator 58 aus den
307,2 kHz erzeugt werden. Da die erforderliche Baudrate von
19,2 K unterstützt werden sollte, wenn der Mikroprozessor 14
bei einer niedrigen Betriebsfrequenz arbeitet, die für einen
Typ Mikroprozessor ca. 524 kHz und für einen anderen Typ
Mikroprozessor 500 kHz oder 625 kHz beträgt, kann keiner der
Mikroprozessoren Taktsignale liefern, die in ihren unteren
Betriebsfrequenzen ganzzahlige Vielfache von 307,2 kHz sind.
Durch eine asymmetrische Teilung kann jedoch eine in etwa
korrekte Frequenz vom programmierbaren Baudratengenerator 58
erzeugt werden.
-
Eine asymmetrische Dividierschaltung 154 des
Baudratengenerators 58 nimmt die asymmetrische Teilung vor, indem jeder
Ausgangstaktimpuls aus einer Anzahl Eingangstaktimpulse in einer
vorgegebenen Struktur gebildet wird. Jede Eingangsfrequenz
erfordert eine andere Divisionsstruktur 156, um etwa die gleiche
Grundausgangsfrequenz zu erhalten. Die asymmetrische
Dividierschaltung 154 spricht auf die Eingangsfrequenz an, die in
einem Frequenzregister 158 vom Mikroprozessor 14 eingestellt
ist, um die entsprechenden Taktteiler zur Erzeugung der
bestimmten Divisionsstruktur zu wählen, die erforderlich ist, um
die Ausgangstaktimpulse einer gewünschten Frequenz aus den
Eingangstaktimpulsen zu erzeugen. Beträgt beispielsweise die
Frequenz der Eingangstaktimpulse auf Leitung 152 500 kHz, so
erzeugt eine 13 : 8-Teilerschaltung der Dividierschaltung 154
ein Ausgangstaktsignal von 307,69 kHz (500 kHz: 13/8 -
307,69 kHz). Die 13 : 8-Teilerschaltung zieht entweder einen
oder zwei Eingangstaktzyklen der folgenden Strukturabfolge
heran, die kontinuierlich über jeden der 13 Eingangstaktzyklen
wiederholt werden, um einen Ausgangstaktzyklus zu erzeugen: 2
- 2 - 1-2 - 2 - 1-2 - 1. Für ein Eingangstaktsignal von
524 kHz wird eine 17 : 10-Teilerschaltung verwendet, um einen
308,46 kHz Takt zu erzeugen, der innerhalb von 0,34% der
gewünschten Rate von 307,2 kHz liegt. Die 17 : 10-Teilerschaltung
zieht entweder einen oder zwei Eingangstaktzyklen der
folgenden Strukturabfolge heran, die kontinuierlich über jeden der
17 Eingangstaktzyklen wiederholt werden, um einen
Ausgangstaktzyklus zu erzeugen: 2 - 2 - 1-2 - 2 - 1-2 - 2- 2- 1.
Für ein Eingangstaktsignal von 625 kHz wird eine 64 :
63-Teilerschaltung verwendet, um einen 615,23 kHz Takt zu erzeugen, der
innerhalb von 0,13% einer optimalen Rate von 614,4 kHz liegt.
Die 64 : 63-Teilerschaltung verwendet mit jedem
Eingangstaktimpuls mit Ausnahme des 64. Taktimpulses eine sich wiederholende
Struktur von 64 Eingangstaktimpulsen, wodurch ein
Ausgangstaktimpuls erzeugt wird. Deshalb erzeugt jede Gruppe aus 64
Eingangstaktimpulsen 63 Ausgangstaktimpulse. Fig. 10 zeigt die
verschiedenen Taktstrukturen, die für die oben erörterten
Referenzfrequenzen 500 kHz, 524 kHz und 625 kHz erzeugt werden.
-
Die in Fig. 9 dargestellte Speicherschutzschaltung ermöglicht,
daß ein Speicherbereich, insbesondere der RAM 16, geschützt
wird, so daß die im geschützten Bereich gespeicherten
Informationen nicht versehentlich mit anderen Informationen
überschrieben werden können. Die Speicherschutzschaltung 36
enthält Register 160 für Schutzgrenzwerte, in das der obere und
der untere Grenzwert des zu schützenden Adreßbereichs
eingeschrieben werden. Die Adresse des RAM 16, in den geschrieben
wird, wird mit dem oberen Grenzwert und dem unteren Grenzwert
durch entsprechende Komparatoren 162 und 164 verglichen, um zu
bestimmen, ob die Schreibadresse innerhalb des geschützten
Adreßbereichs liegt. Ist dies nicht der Fall, kann die
betreffende Adresse des RAM 16 eingeschrieben werden. Liegt jedoch
die Schreibadresse innerhalb des geschützten Adreßbereichs,
sperrt die Speicherschutzschaltung 36 das Schreibsignal, um so
verhindern, daß in den geschützten Bereich des RAM geschrieben
wird.
-
Die Speicherschutzschaltung 36 kann deaktiviert werden, damit
ein neues Programm z. B. von der Kommunikationsschnittstelle 32
in den RAM 16 heruntergeladen werden kann. Die
Speicherschutzschaltung 36 wird durch ein Paßwort gefolgt von der
gleichzeitigen Betätigung bestimmter Tasten auf der Tastatur 26
deaktiviert, während die Tastaturschnittstellensteuerung 40 sich im
Modus 'Schreibschutz deaktivieren' befindet. Diese
Ereignisfolge informiert den Mikroprozessor 14 über ein internes
Statusregister 62, daß der Schreibschutz deaktiviert worden ist.
Nachdem der Schreibschutz deaktiviert worden ist, kann in den
bisher geschützten Bereich des RAM 16 geschrieben werden. Um
wieder einen neuen Bereich des RAM 16 zu schützen, werden nach
dem nächsten System-Reset neue obere und untere Grenzwert in
das Register 160 geschrieben.
-
Die Steuerung ist sehr flexibel, so daß sie verschiedene Typen
Mikroprozessoren 14 für den Drucker, verschiedene Typen
Druckköpfe 20, verschiedene Typen im Drucker 10 zu verwendende
serielle Eingangs- und Ausgangsgeräte und verschiedene Software-
Speicherprozesse mit der im Speicher des Druckers geschützten
Software aufnehmen kann. Somit kann die Steuerung 12 der
vorliegenden Erfindung in verschiedenen Druckertypen verwendet
werden, ohne daß diese dazu geändert werden müssen, um so die
Entwicklungsdauer und die Kosten in Zusammenhang mit neuen
Strichcode-Druckern zu senken.