[0001] Die Erfindung betrifft ein Verfahren zur Reduzierung von Druckerfehlern während des
Druckens in einem Postbearbeitungsgerät, gemäß des Oberbegriffs des Anspruchs 1 und
eine Anordnung gemäß des Oberbegriffs des Anspruchs 4. Die Erfindung kommt in Frankiermaschinen,
Adressiermaschinen und anderen druckenden Postverarbeitungsgeräten zum Einsatz.
[0002] Die Erfindung steht in Zusammenhang mit den nicht vorveröffentlichten deutschen Patentanmeldungen
10230678.8 mit dem Titel: "Anordnung zum Steuern des Druckens in einem Postverarbeitungsgerät"
und 10230679.6 mit dem Titel: "Verfahren zum Steuern des Druckens in einem Postverarbeitungsgerät".
[0003] Auf dem Gebiet des digitalen Druckens wird der variable Druckbildanteil immer umfangreicher
und die Druckauflösung immer höher. Beispielsweise soll der variable Druckbildanteil
für unterschiedliche postalische Anforderungen flexibel sein und wird von Abdruck
zu Abdruck geändert. Gleichzeitig wird die Steuerung mit umfangreichen anderen Aufgaben
belastet. Zur Entlastung der Steuerung durch einen Mikroprozessor, hat es sich als
vorteilhaft erwiesen, die zu einer Druckbildspalte gehörenden Pixeldaten im Pixelspeicher
so anzuordnen, dass variable Bildelemente durch den Mikroprozessor in der verfügbaren
Zeit geändert werden können. Weiterhin hat es sich als vorteilhaft erwiesen, wenn
der für die Steuerung des druckenden Postbearbeitungsgerätes bzw. -Systems zuständige
Mikroprozessor durch eine Druckdatensteuerung bei der Steuerung des Druckens entlastet
wird. Das Drucken erfordert eine Relativbewegung zwischen einem Druckkopf und einem
Druckträger, beispielsweise einem blattförmigen Gegenstand, Brief, Postkarte, Päckchen,
Frankierstreifen, Adressenaufkleber bzw. Etikett.
[0004] Im US 6.457.901 (DE 10032855 A1) wird eine Vorrichtung zum Bedrucken eines Druckträgers
vorgeschlagen, die in einem Postverarbeitungsgerät, wie vorzugsweise in der Frankiermaschine
ultimail® der Patentinhaberin Francotyp Postalia AG & Co.KG zum Einsatz kommt. Die
Druckträger, beispielsweise Briefkuverts, Frankierstreifen oder vergleichbares Frankiergut,
werden mittels einer angetriebenen Transporttrommel poststromabwärts in Transportrichtung
transportiert, wobei eine nicht angetriebene Gegendruckvorrichtung den Druckträger
gegen die Transporttrommel in Andruckrichtung orthogonal zur Transportrichtung andrückt.
Die zwei Tintenkartuschen ragen teilweise in die Transporttrommel hinein und tragen
zwei Inkjet-Druckköpfe, welche das Drucken auf den bewegten Druckträger berührungslos
vornehmen. Beide Druckköpfe sind orthogonal zur Transportrichtung und orthogonal zur
Andruckrichtung sowie mit ihren Düsen nahe am Rand der Transporttrommel angeordnet,
wobei die Düsen bei einem Durchlauf des Druckträgers durch die Maschine einen kompletten
Abdruck erzeugen können. Auf der Stirnseite der Transporttrommel sind nahe zum Umfang
Markierungen aufgebracht, die über den Umfang der Transporttrommel verteilt sind.
Die Markierungen sind beispielsweise reflektierende Striche, die von einer Reflexlichtschanke
oder Durchlichtschranke eines Encoders erfasst und vom Mikroprozessor einer Steuerung
in Druckimpulse im Verhältnis 1:1 umgesetzt werden. Allmähliche langsame Schwankungen
in der Transportgeschwindigkeit haben somit keinen Einfluss auf ein erzeugtes Druckbild,
wenn der Druckzyklus entsprechend in seiner Dauer geändert wird.
[0005] Laut Druckkopfhersteller soll ein Druckzyklus möglichst 90% der Zeit zwischen zwei
positiven Encoderflanken dauern. Die Zeit zwischen den Encoderflanken kann gemessen
und die Druckzyklusdauer entsprechend einstellt werden. Der Einstellwert für die Druckzyklusdauer
wird aber erst nach seiner Ermittelung mit einer Verzögerung von mindestens zwei Encodertakten
wirksam. Durch Änderungen der Briefdicke und mechanische Schwingungen des Encoderabtastsytems
können sprunghafte Änderung in der Transportgeschwindigkeit hervorgerufen werden.
Die plötzlichen Schwankungen in der Transportgeschwindigkeit haben jedoch einen negativen
Einfluss auf ein erzeugtes Druckbild, d.h. trotz einer nachträglichen Anpassung der
Druckzyklusdauer an die Abstände zwischen den Encoderflanken muss mit Druckerfehlern
durch zu geringe Abstände zwischen den Encoderimpulsen gerechnet werden.
[0006] Die Aufgabe der Erfindung besteht darin, ein Verfahren und eine Anordnung zur Reduzierung
von Druckerfehlern während des Druckens auf ein bewegtes Postgut in einem Postbearbeitungsgerät
zu schaffen, wobei die Druckerfehler durch Encoderimpulse mit zu kurzem zeitlichen
Abstand hervorgerufen werden. Durch eine kostengünstige Lösung soll auch unter ungünstigen
Bedingungen eine hohe Druckqualität sichergestellt werden.
[0007] Die Aufgabe wird mit den Merkmalen des Verfahrens nach dem Anspruch 1 bzw. mit den
Merkmalen der Anordnung nach dem Anspruch 4 gelöst.
[0008] Davon ausgehend, dass Encoderimpulse entsprechend der Relativbewegung zwischen dem
Drucker und einem Druckträger generiert und einer Druckdatensteuerung zugeführt werden,
werden bei korrekten Encoderimpulsen bei jeder Encoderimpulsflanke eine Periode mit
einer Folge von DMA-Zyklen und ein Druckzyklus gestartet, ohne dass Druckerfehler
auftreten. Die Druckdatensteuerung generiert aus den Pixeldaten Druckdaten für Teile
einer jeden Druckspalte und löst für letztere einen Druckzyklus aus. Dadurch wird
der Mikroprozessor bei der Steuerung des Druckens entlastet. Während jeder DMA-Periode
werden aus dem Pixelspeicher binäre Pixeldaten eines Datenstrings zur Druckdatensteuerung
übermittelt, welche die binären Pixeldaten abhängig vom angeschlossenen Druckkopftyp
für einen Druckzyklus zusammenstellt. Die Erfindung geht deshalb von der Überlegung
aus, dass es für die Auswertung gedruckter sicherheitsrelevanter postalischer Daten
ungünstig wäre, wenn komplette Druckzyklen, d.h. ganze Druckspalten fehlen oder die
zu einer Druckspalte gehörenden Pixel über mehrere Druckspalten versetzt gedruckt
werden, weil die Encoderimpule den Druckzyklen vorauseilen. Das kann vermindert werden,
indem vollständige Druckzyklen unmittelbar aufeinanderfolgen. Es wurde gefunden, dass
der Ausfall nur weniger Pixel von einzelnen Druckspalten kein entscheidendes Hindernis
für die Auswertung von Sicherheitsabdrucken mit einer Druckbildauflösung von > 300
dpi darstellt, wenn die ausfallenden Pixel über die Spalte verteilt, d.h. nicht unmittelbar
hintereinander auftreten. Davon ausgehend, dass eine Reduzierung der Encoderperiode
nur zeitweise auftritt, wird bei mehreren aufeinanderfolgenden Encoderimpulsen mit
zu kurzem zeitlichen Abstand ein Druckzyklus abgebrochen, sofern die Encoderperiode
größer als ein Zeitabschnitt mit DMA-Zyklen ist. Durch nachträgliche Anpassung der
Druckzyklusdauer an die Abstände der Encoderflanken wird außerdem sichergestellt,
dass dieser Fall eine nur zeitweise auftretende Ausnahme bleibt.
[0009] Das Verfahren zur Reduzierung von Druckerfehlern während des Druckens in einem Postbearbeitungsgerät
umfasst die folgenden Schritte:
a) Erzeugen von Encoderimpulsen entsprechend der Relativbewegung zwischen Drucker
und Druckträger,
b) Vorwärts- und Rückwärtszählen zur Auswertung eines Zustandes mit verringerten zeitlichen
Abstandes benachbarter Encoderimpulse,
c) Durchführung von direkten Speicherzugriffen (DMA) für einen Datenstring von binären
Pixeldaten und
d) Durchführung eines Druckzyklusses für den vorgenannten Datenstring, wobei während
des Druckzyklusses weitere direkte Speicherzugriffe (DMA) für einen nächsten Datenstring
erfolgen und wobei nach der Durchführung der direkten Speicherzugriffe (DMA) für den
nächsten Datenstring und in Abhängigkeit vom zeitlichen Abstand der Encoderimpulse
einer Anzahl von aufeinanderfolgenden Encoderimpulsen der Druckzyklus vollständig
ausgeführt wird, solange der Mittelwert der Encoderperiode die eingestellte Dauer
eines Druckzyklusses nicht unterschreitet oder wobei bei verringertem zeitlichen Abstand
der Encoderimpulse der Anzahl von Encoderimpulsen die Durchführung des Druckzyklusses
zum Ausdrucken von binären Pixeldaten eines vorherigen Datenstrings vorzeitig abgebrochen
wird.
[0010] Die Druckdatensteuerung ist einerseits über einen Bus mit dem Mikroprozessor und
mit einem Pixelspeicher zur Übermittlung der Druckdaten und andererseits mit einem
Encoder verbunden, der die Bewegung des Druckträgers erfasst. An die Druckdatensteuerung
ist in an sich bekannter Weise über eine Treiberschaltung mindestens ein Druckkopf
angeschlossen. Die Druckdatensteuerung liefert in einer vom Druckkopftyp abhängigen
Sequenz die erforderlichen Daten zur jeweiligen Treiberschaltung eines zugehörigen
Druckkopfes. Es ist vorgesehen, dass die Druckdatensteuerung eine Auswerteeinheit
und eine Logik zur Fehlerreduzierung von Druckerfehlern aufweist, welcher Encoderimpulse
zugeführt werden und die einen rücksetzbaren Encodertaktzähler enthält, dessen Zählwert
innerhalb eines Zählbereiches kleiner bis gleich einem oberen Grenzwert mit jeder
Vorderflanke eines Encoderimpulses inkrementiert wird, dessen Zählwert mit jedem Druckzyklusstart
dekrementiert wird und der ausgangsseitig einen digitalen Zählwert abgibt, wobei letzterer
von der Auswerteeinheit hinsichtlich der Überschreitung eines innerhalb des Zählbereiches
liegenden Sollwertes ausgewertet wird, wobei bei Nichtüberschreitung des vorgenannten
Sollwertes jeder Druckzyklus vollständig ausgeführt und ein laufender Druckzyklus
bei Überschreitung des vorgenannten Sollwertes unter der Bedingung abgebrochen wird,
dass alle direkten Speicherzugriffe (DMA-Zyklen) auf den Pixelspeicher beendet sind,
die den nächsten Druckzyklus vorbereiten.
[0011] Die Druckdatensteuerung besteht beispielsweise aus mindestens einer Pixeldatenaufbereitungseinheit,
einer DMA-Steuerung, einem Adressengenerator und einer Druckersteuerung. Die Pixeldaten
für den jeweils aktuellen Druckzyklus werden abwechselnd in einem von zwei Zwischenspeichern
der Pixeldatenaufbereitungseinheit gespeichert. Die Pixeldaten für den nächsten Druckzyklus
werden via DMA in einen zweiten Zwischenspeicher der Pixeldatenaufbereitungseinheit
geladen, während die Pixeldaten für den aktuellen Druckzyklus zur jeweiligen Treiberschaltung
des zugehörigen Druckkopfes übermittelt werden. Der Adressengenerator stellt zu diesem
Zweck Leseadressen für Pixeldaten der Pixeldatenaufbereitungseinheit zur Verfügung
und die Druckersteuerung organisiert die serielle Ausgabe der Pixeldaten zur jeweiligen
Treiberschaltung in einem Druckzyklus in Abhängigkeit von den Encoderimpulsen. Die
Druckersteuerung weist erfindungsgemäß eine Logik zur Fehlerreduzierung von Druckerfehlern
auf, die durch Encoderimpulse mit zu kurzem zeitlichen Abstand hervorgerufen werden.
Die vorgenannte Logik enthält einen rücksetzbaren Encodertaktzähler, dessen Zählwert
innerhalb eines Zählbereiches kleiner dem oberen Grenzwert mit jeder Vorderflanke
eines Encoderimpulses inkrementiert wird, dessen Zählwert mit jedem Druckzyklusstart
dekrementiert wird und dessen Ausgänge mit einem ersten und zweiten Vergleicher verbunden
sind, wobei der erste Vergleicher beim Erreichen des Null-Zählwertes ein Dekrementieren
verhindert und der zweite Vergleicher das Erreichen des oberen Grenzwertes überprüft.
Der Encodertaktzähler liefert ausgangsseitig den vorgenannten Zählwert und steht mit
dem Adressengenerator in betriebsmäßiger Verbindung, wobei letzterer den laufenden
Druckzyklus abbricht, wenn alle Pixeldaten für den nächsten Druckzyklus via DMA bereits
in den Zwischenspeicher der Pixeldatenaufbereitungseinheit geladen wurden und der
im Zählbereich liegende Zählwert des Encodertaktzählers einen vorbestimmten Sollwert
überschritten hat.
[0012] Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet
bzw. werden nachstehend zusammen mit der Beschreibung der bevorzugten Ausführung der
Erfindung anhand der Figuren näher dargestellt. Es zeigen:
- Figur 1a,
- Impuls/Zeit-Diagramm für korrekte Encoderimpulse ohne eine Fehlerreduzierung,
- Figur 1b,
- Impuls/Zeit-Diagramm für Encoderimpulse, wobei die Encoderimpulse in einem zu geringen
zeitlichen Abstand auftreten, und ohne Fehlerreduzierung,
- Figur 1c,
- Impuls/Zeit-Diagramm für Encoderimpulse ohne Fehlerreduzierung, wobei die Encoderimpulse
im zu geringen zeitlichen Abstand über einen längeren Zeitabschnitt auftreten,
- Figur 1d,
- Impuls/Zeit-Diagramm für korrekte Encoderimpulse mit Fehlerreduzierung,
- Figur 1e,
- Impuls/Zeit-Diagramm für Encoderimpulse mit einem zu geringen zeitlichen Abstand und
mit Fehlerreduzierung,
- Figur 1f,
- Impuls/Zeit-Diagramm für Encoderimpulse mit Fehlerreduzierung, wobei die Encoderimpulse
einen zu geringen zeitlichen Abstand über einen längeren Zeitabschnitt aufweisen,
- Figur 2,
- Blockschaltbild für die Pixeldatenaufbereitung durch eine Druckdatensteuerung,
- Figur 3,
- Ausschnitt aus der Schaltungsanordnung nach Fig.2 mit einer Pixeldatenaufbereitungseinheit
für den zweiten Druckkopf,
- Figur 4,
- Druckersteuerung,
- Figur 5,
- Flussplan zur Ablaufsteuerung der Druckersteuerung,
- Figur 6,
- Logik zur Druckerfehlerreduzierung,
- Figur 7a,
- Flussplan zur Druckerfehlerreduzierung,
- Figur 7b,
- Impuls/Zeit-Diagramm für Druckerfehlerreduzierung,
- Figur 8,
- Blockschaltbild eines Adressengenerators,
- Figur 9,
- Blockschaltbild einer DMA-Steuerung,
- Figur 10,
- Flussplan zur DMA-Steuerung,
- Figur 11,
- Flussplan zur Adressengenerierung,
- Figur 12,
- Tabelle zur Adressengenerierung,
- Figur 13,
- Flussplan der Ausgaberoutine.
[0013] Die Figur 1a zeigt ein Impuls/Zeit-Diagramm für korrekte Encoderimpulse ohne Fehlerreduzierung.
Beim Auftreten jeder Encoder-Impuls-Flanke wird ein Druckzyklus und eine DMA-Periode
mit DMA-Zyklen gestartet, wenn zuvor ein vorangehender Druckzykuls beendet worden
ist. Letzteres ist bei korrekten Encoderimpulsen der Fall.
[0014] Beim Druckens in einem Postbearbeitungsgerät, beispielsweise einer Frankiermaschine,
wird ein Poststück in Transportrichtung unter bzw. an mindestens einem Druckkopf entlang
bewegt. Dabei wird das Druckbild aus Spalten in senkrechter Anordnung zur Transportrichtung
erzeugt, wobei jeder Druckkopf zeitversetzt einen zugeordneten Teil einundderselben
Spalte druckt. Der Zeitversatz in der Ansteuerung beider Druckköpfe zwecks Druckens
einundderselben Spalte resultiert einerseits aus dem Abstand zwischen den beiden Druckköpfen
in Transportrichtung und andererseits aus der Transportgeschwindingkeit des Druckträgers
in Transportrichtung. Da die beiden Druckköpfe in Transportrichtung zueinander versetzt
angeordnet sind und jeder Druckkopf über mindestens 300 Düsen verfügt, die darüber
hinaus in zwei in Transportrichtung beabstandeten Düsenreihen angeordnet sind, werden
bei einer zeitgleichen Ansteuerung beider Druckköpfe zu jedem Zeitpunkt Pixel in vier
voneinander beabstandeten Druckspalten gedruckt. Die Ansteuerung aller 300 Düsen jedes
Druckkopfes erfolgt innerhalb eines Druckzyklusses bei dem nacheinander 22 Gruppen
mit je 14 Pixeldaten zum Druckkopf übertragen und gedruckt werden.
[0015] Die Briefbewegung wird durch einen Encoder erfasst. Nach jeder positiven Flanke des
Encodersignals wird ein Druckzyklus gestartet, sofern vor dem Auftreten dieser Encoderflanke
der durch die vorangehenden Flanke ausgelöste Druckzyklus beendet ist (Figur 1a).
Letzteres ist aber nicht der Fall, falls eine Folge von Encoderimpulsen mit zu geringem
zeitlichen Abstand, aufgrund zu kurzer Impulsbreite oder ―pause, auftritt (Fig. 1b).
[0016] Die Figur 1b zeigt ein Impuls/Zeit-Diagramm für Encoderimpulse, wobei die dritten
bis sechsten Encoderimpulse in einem zu geringen zeitlichen Abstand auftreten. Also
löst nicht jeder Encoderimpuls einen Druckzyklus aus. Das führt dazu, dass einige
Encoderimpulse, insbesondere der dritte und fünfte Encoderimpuls, nun keinen Druckzyklus
und keine DMA-Periode auslösen, da die Zeit zwischen den zweiten bis sechsten Encoderimpulsen
zu kurz ist. Die Ursachen dafür sind unterschiedlich. Die zum Einsatz kommende Encoderscheibe
kann einen Fehler von bis zu 10% aufweisen. Auch muss von zusätzlichen Fehlern wie
zum Beispiel einer sprunghaften Änderung der Transportgeschwindigkeit ausgegangen
werden, die durch Änderungen der Briefdicke, Stöße und mechanische Schwingungen zwischen
Encoderscheibe und Encoderabtastsystem hervorgerufen werden. Trotz einer Anpassung
der Druckzyklusdauer an die Abstände zwischen den Encoderflanken muss deshalb mit
Druckfehlern durch zu geringe Abstände zwischen den Encoderimpulsen gerechnet werden,
wenn keine Maßnahmen zur Fehlerreduzierung vorgesehen sind.
[0017] Die Figur 1c zeigt ein Impuls/Zeit-Diagramm für Encoderimpulse ohne Fehlerreduzierung,
wobei aufgrund einer zu kurzen Impulsbreite und/oder -pause die 2. bis 7. Encoderimpulse
einen zu geringen zeitlichen Abstand, aufweisen, so dass über einen längeren Zeitabschnitt,
nur jeder zweite Druckzyklus und Zeitabschnitt mit DMA-Zyklen ausgelöst wird. Für
das Drucken, insbesondere eines 2D-Barcodes, können Druckbildfehler sehr störend sein,
wenn damit die Echtheit eines Frankierabdruckes nachgewiesen werden soll.
[0018] Im Falle des Auftretens von Encoderimpulsen in einem zu geringen zeitlichen Abstand
löst erst der nächstfolgende Encoderimpuls einen Druckzyklus aus, d.h. in Figur 1b
der vierte und sechste Encoderimpuls und in Figur 1c der vierte, sechste und achte
Encoderimpuls. Dadurch wird der Abstand zwischen den gedruckten Dots in Transportrichtung
ca. doppelt so groß als vorgesehen. Auch werden die zu einer Druckspalte gehörenden
Pixel über mehrer Druckspalten versetzt als Dots gedruckt. Die Druckqualitiät verschlechtert
sich in dem Maße wie Encoderpulse in zu geringen zeitlichen Abstand auftreten.
[0019] Die Figur 1 d zeigt ein Impuls/Zeit-Diagramm für korrekte Encoderimpulse mit Fehlerreduzierung.
Die Zeit zwischen den Encoderflanken wird vom Mikroprozessor ermittelt, der dann die
Druckzyklusdauer den Angaben des Druckkopfherstellers entsprechend einstellt, welche
mit einer Verzögerung von mindestens zwei Encodertakten wirksam wird. Laut Druckkopfhersteller
soll ein Druckzyklus möglichst 90% der Zeit zwischen zwei positiven Encoderflanken
dauern. Zusammen mit der vorgenannten Regelung der Druckzyklusdauer, welche für Encoderimpulse
mit großem zeitlichen Abstand wirksam ist, wird erfindungsgemäß ein Zähler für Encoderimpulse
mit zu geringen zeitlichen Abstand eingesetzt. Der Encodertaktzähler dient zur Fehlerreduzierung.
Er wird am Beginn jedes Druckzyklusses auf den Wert 'Null' zurückgesetzt und bei jedem
Encoderimpuls inkrementiert, d.h. hier auf den Wert 'Eins' gesetzt. Nach dem Start
der DMA-Steuerung und des Adressengenerators, wobei letzterer den Druckzyklus für
die Pixeldaten eines Datenstring auslöst, wird der Encodertaktzähler dekrementiert,
d.h. hier auf den Wert 'Null' gesetzt.
[0020] Die Figur 1e zeigt ein Impuls/Zeit-Diagramm für Encoderimpulse mit einem zu geringen
zeitlichen Abstand und mit Fehlerreduzierung. Der zeitliche Abstand zwischen den ersten
beiden Encoderimpulsen ist größer als ein Druckzyklus. Ab dem zweiten bis zum sechsten
Encoderimpuls ist der zeitliche Abstand zwischen benachbarten Encoderimpulsen jedoch
deutlich kleiner als ein Druckzyklus. Ab dem sechsten Encoderimpuls wird der zeitliche
Abstand zwischen benachbarten Encoderimpulsen wieder größer und ist größer als ein
Druckzyklus. Erfindungsgemäß ist vorgesehen, dass in Abhängigkeit vom verringerten
zeitlichen Abstand aus einer Anzahl von Encoderimpulsen der Abstand der Druckzyklen
voreinander verringert wird bis der nachfolgende Druckzyklus zum Ausdrucken von binären
Pixeldaten eines nachfolgenden Datenstrings unmittelbar an einen vollständig ausgeführten
Druckzyklus zum Ausdrucken von binären Pixeldaten eines vorherigen Datenstrings anschließt,
wobei das Verringern in dem Maße erfolgt, wie die Encoderimpulse den Druckzyklen vorauseilen.
[0021] Die Figur 1f zeigt ein Impuls/Zeit-Diagramm für Encoderimpulse mit Fehlerreduzierung,
wobei die Encoderimpulse eine zu kurze Impulsbreite und/oder ―pause über einen längeren
Zeitabschnitt aufweisen. In der Figur 1f führt ein Zählwert 2, der einen Sollwert
Z = 1 übersteigt, beim siebenten Encoderimpuls dazu, dass der laufende Druckzyklus
um den schraffiert dargestellten Bereich vorzeitig abgebrochen wird und ein neuer
Druckzyklus beginnt.
[0022] Die Figur 2 zeigt das Blockschaltbild der bevorzugten Schaltungsanordnung für die
Pixeldatenaufbereitung durch eine Druckdatensteuerung. Ein erster und ein zweiter
Druckkopf 1 und 2 sind jeweils über eine Treibereinheit (Pen-Driver-Board) 11 und
12 mit einer Druckdatensteuerung 4 verbunden, welche bei einem direkten Speicherzugriff
eingangsseitig 16 bit parallel anliegende binäre Druckbilddaten von einem BUS 5 annimmt
und ausgangsseitig seriell binäre Druckbilddaten an die Treibereinheiten 11 und 12
abgibt. Über den BUS 5 sind mindestens ein Mikroprozessor 6, ein Pixelspeicher 7,
ein nichtflüchtiger Speicher 8 und ein Festwertspeicher 9 adress-, daten- und steuerungsmäßig
verbunden. Ein Encoder 3 ist mit der Druckdatensteuerung 4 verbunden, um das Zwischenspeichern
der binären Pixeldaten und das Drucken der Druckbildspalten auszulösen, wobei jeder
Druckkopf mit einer Taktfrequenz von max. 6,5 KHz betrieben wird. Ein für einen Frankierabdruck
postalisch gesicherter und über eine zugehörige Teibereinheit (Pen Driver Board) ansteuerbarer
Tintenstrahldruckkopf, der in einer Tintenkartusche vom Typ HP 51645A der Firma Hewlett
Packard angeordnet ist, wird in der europäischen Patentanmeldung EP 1 176 016 A2 näher
erläutert, welche den Titel trägt: Anordnung und Verfahren zur Datennachführung für
Aufwärmzyklen von Tintenstrahldruckköpfen. Die Druckdatensteuerung 4 weist eine erste
und zweite Pixeldatenaufbereitungseinheit 41 und 42 sowie die zugehörigen Steuerungen
auf, wie DMA-Steuerung 43, Adressengenerator 44 und Druckersteuerung 45. Die Steuerungen
enthalten zur Fehlerreduzierung von Druckerfehlern eine Auswerteeinheit 453 und eine
Logik 452, welcher die Encoderimpulse e zugeführt werden. Es ist vorgesehen, dass
eine Druckersteuerung 45 mindestens mit der DMA-Steuerung 43 und mit dem Adressengenerator
44 sowie dass der Adressengenerator 44 mit der Pixeldatenaufbereitungseinheit 41,
42 steuerungsmäßig verbunden ist.
[0023] Die Druckersteuerung 45 ist über den BUS 5 und über eine Steuerleitung für ein Interruptsignal
I direkt mit dem Mikroprozessor 6 verbunden. Die DMA-Steuerung 43 ist über eine Steuerleitung
für DMA-Steuersignale DMA
ACK, DMA
REQ mit dem Mikroprozessor 6 verbunden.
[0024] Die Figur 3 zeigt einen Ausschnitt aus der Schaltungsanordnung nach Figur 2 mit der
Pixeldatenaufbereitungseinheit 42 für den zweiten Druckkopf, mit der DMA-Steuerung
43 für einen direkten Speicherzugriff (DMA) sowie mit dem Adressengenerator 44 und
der Druckersteuerung 45. Der Encoder 3 liefert ein Signal e und ist mit der erfindungsgemäßen
Logik 452 der Druckersteuerung 45 verbunden. Die Letztere ist mit der DMA-Steuerung
43 direkt über Steuerleitungen 46 für erste DMA-Steuersignale (DMA-Start und DMA-busy)
verbunden, wobei der DMA-Steuerung 43 von der Druckersteuerung 45 das DMA-Startsignal
zugeführt wird und wobei die DMA-Steuerung 43 das DMA-busy-Signal mit dem Wert 'Null'
an die Druckersteuerung 45 abgibt, um zu signalisieren, daß die DMA-Zyklen beendet
sind. Die DMA-Steuerung 43 ist über eine Steuerleitung 50 für das DMA-busy-Signal
auch mit dem Adressengenerator 44 verbunden.
[0025] Die Druckersteuerung 45 ist mit dem Mikroprozessor 6 über den BUS 5 und über eine
Steuerleitung 47 für ein Interruptsignal I, mit dem Adressengenerator 44 über eine
Steuerleitung zur Zuführung eines Adressengeneratorstartsignals AG-start sowie mit
der DMA-Steuerung 43 über eine Steuerleitung 49 für ein Umschaltsignal SO verbunden.
Über den Bus 5 sind mindestens der Mikroprozessor 6, der Pixelspeicher 7, der nichtflüchtige
Speicher 8 und der Festwertspeicher 9 adress-, daten- und steuerungsmäßig verbunden.
Es ist vorgesehen, dass die Druckersteuerung 45 Mittel zur Generierung und Ausgabe
eines Umschaltsignals SO aufweist, um damit die Pixeldatenaufbereitungseinheit 42
anzusteuern, wodurch die Pixeldaten von dem jeweils ersten oder dem jeweils zweiten
der beiden Zwischenspeicher 412 und 422 für eine Übertragung zu der Treibereinheit
12 ausgewählt werden. Der Treibereinheit 12 können dadurch die binären Pixeldaten
eines weiteren Datenstrings gruppenweise zugeführt werden. Der DMA-Steuerung 43 wird
von der Druckersteuerung 45 das Umschaltsignal SO zugeführt. Die DMA-Steuerung 43
weist Mittel zur Generierung und Ausgabe von Auswahlsignalen Sel_2.1, Sel_2.2 in Abhängigkeit
vom Schaltzustand des Umschaltsignals SO auf, um die binären Pixeldaten in den jeweils
ersten oder den jeweils zweiten der beiden Zwischenspeicher 421 oder 422 zwischenzuspeichern,
wobei bei einer Übertragung von Pixeldaten aus dem jeweils einen der beiden Zwischenspeicher
zu der Treibereinheit 12, die jeweils anderen Zwischenspeicher zum Zwischenspeichern
eines Datenstrings nacheinander durch die Auswahlsignale ausgewählt werden. Die binären
Pixeldaten werden der Pixeldatenaufbereitungseinheit 42 in den DMA-Perioden jeweils
datenstringweise zur Verfügung gestellt.
[0026] Die DMA-Steuerung 43 gibt das DMA-busy-Signal mit dem Wert 'Null' an die Druckersteuerung
45 ab, um zu signalisieren, daß alle direkten Speicherzugriffe erfolgt sind, d.h.
die Periode mit DMA-Zyklen beendet ist. Die Druckersteuerung 45 ist mit dem Adressengenerator
44 über mindestens eine Steuerleitung zur Zuführung eines Startsignals (AG-Start)
verbunden. Der Adressengenerator 44 weist - in hier nicht gezeigter Weise - eine Einheit
zur Generierung von Leseadressen und Mittel zur Bildung eines Adressenlesesignals
AR auf. Ist eine Anzahl an Adressenlesesignalen AR für eine Adressgruppe A generiert
worden, gibt der Adressengenerator 44 ein Druckstartsignal PS via Steuerleitung 48
an die Druckersteuerung 45 ab.
[0027] Nach Übermittlung einer 22. Datengruppe sind alle der 300 binären Pixeldaten übermittelt,
welche ein ½ Zoll Tintenstrahldruckkopf zum Drucken je Druckzyklus benötigt. Die andere
Hälfte des Druckbildes wird von dem ersten Druckkopf gedruckt. Die Pixeldatenaufbereitungseinheit
für den ersten Druckkopf ist in gleichartiger Weise aufgebaut.
[0028] Die Druckersteuerung 45 ist mit dem Mikroprozessor 6 über eine Steuerleitung 47 für
ein Interruptsignal I und über den BUS 5 verbunden. Über den BUS 5 sind mindestens
der Mikroprozessor 6, der Pixelspeicher 7, der nichtflüchtige Speicher 8 und Festwertspeicher
9 adress-, daten- und steuerungsmäßig verbunden. Die Druckersteuerung 45 weist Mittel
zur Generierung und Ausgabe eines Umschaltsignals SO auf und ist über eine Steuerleitung
mit der DMA-Steuerung 43 und mit der Pixeldatenaufbereitungseinheit 42 verbunden.
Letztere wird angesteuert, um mittels Umschaltsignal SO einen der Zwischenspeicher
412, 422 für eine Übertragung von Pixeldaten zu der Treibereinheit 12 auszuwählen.
Der letzteren können dadurch die binären Pixeldaten eines bereits gespeicherten Datenstrings
gruppenweise zugeführt werden. Das Umschaltsignal SO wird der DMA-Steuerung 43 zugeführt,
um den jeweis anderen der Zwischenspeicher 412 und 422 für ein Laden von Pixeldaten
auszuwählen. Die DMA-Steuerung 43 weist Mittel zur Generierung und Ausgabe von Auswahlsignalen
Sel_2.1, Sel_2.2 in Abhängigkeit vom Schaltzustand des Umschaltsignals SO auf, um
die binären Pixeldaten in den jeweils ersten oder den jeweils zweiten der beiden Zwischenspeicher
421 oder 422 zwischenzuspeichern, wobei bei einer Übertragung von Pixeldaten aus dem
jeweils einen der beiden Zwischenspeicher zu der Treibereinheit 12, die jeweils anderen
Zwischenspeicher zum Zwischenspeichern eines Datenstrings nacheinander durch die Auswahlsignale
ausgewählt werden.
[0029] Die beiden Pixeldatenaufbereitungseinheiten sind jeweils eingangsseitig zwar am BUS
5 jedoch dort nur an die niederwertigen 16 Bit des Daten-Busses angeschlossen. In
den nachfolgenden Ausfühungsbeispielen sollen unter den Begriffen wie "Datenwort"
bzw. "wortweise" immer ein 16 Bit breites Datenwort verstanden werden, wenn nicht
ausdrucklich die Datenwortbreite zusätzlich angegegeben wird. Die Pixeldaten für einen
½ Zoll-Druckkopf benötigen nur den halben Platz (max. 320 Bit aus jedem Datenstring)
im Pixelspeicher 7, aus dem diese Pixeldaten der Pixeldatenaufbereitungseinheit 42
zur Verfügung gestellt werden. Ein Datenstring für beide Druckkopfe erfordert folglich,
daß zweimal ein Zwischenspeichern von je 20 * 16 Bit Datenworten, beispielsweise in
den jeweils ersten Zwischenspeicher vorgenommen wird. Für aufeinanderfolgende Datenstrings
werden die ersten und zweiten Zwischenspeicher 421 und 422 durch die Auswahlsignale
Sel-2.1 und Sel-2.2 abwechselnd ausgewählt.
[0030] Es ist vorgesehen, dass die DMA-Steuerung 43 mit dem Mikroprozessor 6 und mit den
Zwischenspeichern 421 und 422 steuerungsmäßig verbunden ist, dass die DMA-Steuerung
43 Mittel zur Generierung und Ausgabe von Adressenschreibsignalen AW aufweist, die
bei einem DMA-Zugriff auf die im Pixelspeicher 7 gespeicherten binären Pixeldaten
deren Einschreiben in die Zwischenspeicher 421, 422 der Pixeldatenaufbereitungseinheit
42 gestatten. Von der DMA-Steuerung 43 wird zur wortweisen Adressierung ein 5 Bit
breites Adressenschreibsignal AW geliefert. Letzteres liegt jeweils an einem separaten
Adresseneingang des ersten und zweiten Zwischenspeichers 421 und 422 für Pixeldaten
für den zweiten Druckkopf an. Von der DMA-Steuerung 43 wird ein erstes Auswahlsignal
Sel_2.1 für Pixeldaten für den zweiten Druckkopf geliefert und liegt an einem separaten
Steuereingang des ersten Zwischenspeichers 421 für Pixeldaten für den zweiten Druckkopf
an. Von der DMA-Steuerung 43 wird ein zweites Auswahlsignal Sel_2.2 für Pixeldaten
für den zweiten Druckkopf geliefert und liegt an einem separaten Steuereingang des
zweiten Zwischenspeichers 422 für Pixeldaten für den zweiten Druckkopf an.
[0031] Es ist vorgesehen, dass der Adressengenerator 44 mindestens Mittel zur Generierung
und Ausgabe von Adressensignalen AR, AP und von Steuersignalen WR, LD, PS aufweist,
und wobei die Adressensignale AR, AP und Steuersignale WR, LD der Pixeldatenaufbereitungseinheit
41, 42 zur Auswahl der zwischengespeicherten binären Pixeldaten und deren Gruppierung
in einer vorbestimmten Reihenfolge zugeführt werden.
[0032] Jede Pixeldatenaufbereitungseinheit weist zwei Zwischenspeicher, einen Selektor zur
Auswahl der binären Pixeldaten und ein Schieberegister zur Parallel/Serienwandlung
der in einer neuen Reihenfolge bereitgestellten binären Pixeldaten auf. Die vom Adressengenerator
44 generierten Adressenlesesignale AR werden den Zwischenspeichern und dem Selektor
der Pixeldatenaufbereitungseinheit zugeführt. Die vom Adressengenerator 44 generierten
Primitiv-Adressensignale AP und das Schreibsteuersignal WR werden dem Selektor und
ein Ladesignal LD wird dem Schieberegister zugeführt. Von der Druckersteuerung 45
wird ein Startsignal AG-start dem Adressengenerator 44 zugeführt. Vom Adressengenerator
44 wird nun ein Adressenlesesignal AR zur Auswahl des Datenwortes mit den Pixeldaten
geliefert, die für den zweiten Druckkopf bestimmt sind. Zur wortweisen Adressierung
liegen die höherwertigen Bits des Adressenlesesignals AR an einem separaten Adresseneingang
des ersten und zweiten Zwischenspeichers 421 und 422 an. Die vier niederwertigen Bits
des Adressenlesesignals AR liegen an einem Adresseneingang eines zweiten Selektors
423 an und erlauben eine Adressierung innerhalb des 16 Bit breiten Datenwortes. Die
parallelen Datenausgänge des ersten und zweiten Zwischenspeichers 421 und 422 für
Pixeldaten für den zweiten Druckkopf liegen an einem ersten und zweiten Eingang des
Selektors 423 an, der vom Adressengenerator 44 gesteuert an seinem Ausgang ein 14
Bit paralleles Datensignal an den parallelen Dateneingang eines Schieberegisters 424
für Pixeldaten für den zweiten Druckkopf liefert. Das Schieberegister 424 wird durch
ein Schiebetaktsignal SCL der Druckersteuerung 45 gesteuert und gibt ein serielles
Datenausgangssignal SERIAL DATA OUT 2 aus. Der Adressengenerator 44 erzeugt außerdem
eine primitive Adresse AP zur Steuerung des Selektors 423 und ein Schreibsignal WR.
Der Adressengenerator 44 gibt ein Ladesignal LD an das Schieberegister 424 und ein
Druckstartsignal PS an die Druckersteuerung 45 aus. Die letztere gibt die Latch- und
Print2-Signale für die Steuerung des Pen Driver Boards 12 aus. Die Druckersteuerung
45 ist über eine Steuerleitung für die Ausgabe des Umschaltsignals SO mit einem entsprechenden
Steuereingang der DMA-Steuerung 43 und mit dem Selektor 423 der Pixeldatenaufbereitungseinheit
42 verbunden. Die Druckersteuerung 45 hat Auswertemittel zur Auswertung der via BUS
5 übermittelten Adress-und Steuerungssignale, die hinsichtlich des Vorkommens eines
Druckbefehls ausgewertet werden. Die Druckersteuerung 45 generiert mindestens die
Signale DMA-start, AG-start und SO, speichert letztere in Registern und steht mit
der DMA-Steuerung 43 über Steuerleitungen für DMA-start, DMA-busy und SO-Signale in
Verbindung. Das SO-Signale wird erst beim Empfangen eines Druckbefehls erzeugt und
ausgelöst durch den Druckbefehl wird von der Druckersteuerung 45 ein erstes Steuersignal
DMA-start an die DMA-Steuerung 43 abgegeben, wobei letztere daraufhin ein Anforderungssignal
DMA
REQ erzeugt und zum Mikroprozessor 6 sendet. Der Mikroprozessor verfügt über einen internen
DMA-controller (nicht gezeigt), der bei einem direkten Speicherzugriff eine bestimmte
Adresse an den Pixelspeicher (RAM) 7 anlegt, wodurch ein wortweises Übermitteln von
binären Pixeldaten via BUS 5 an die Zwischenspeicher ermöglicht wird. Von der DMA-Steuerung
43 wird dazu ein Adressenschreibsignal AW an die Zwischenspeicher geliefert. Der Mikroprozessor
6 kann via DMA aus dem Pixelspeicher 7 beispielsweise ein 16 Bit breites Datenwort
mit Pixeldaten auslesen und zur Druckdatensteuerungseinheit übermitteln. Der Mikroprozessor
6 sendet ein Bestätigungssignal DMA
ACK an die DMA-Steuerung 43, um die Generierung des Adressenschreibsignals AW in der
DMA-Steuerung 43 mit dem DMA-Zyklus des Mikroprozessors 6 zu synchronisieren. Je DMA-Zyklus
gelangt ein 16 Bit breites Datenwort mit binären Pixeldaten in einen Zwischenspeicher.
Jeder der vier Zwischenspeicher kann nach je 20 DMA-Zyklen insgesamt 320 Bit zur weiteren
Datenaufbereitung bereitstellen. Zur Erzielung einer Druckauflösung von 600 dpi werden
je zwei der vier Zwischenspeicher für ein Einspeichern während der DMA-Zyklen benutzt.
Beim wortweisen Einspeichern und Auslesen von Pixeldaten für den zweiten Druckkopf
wechseln sich die beiden Zwischenspeicher 421 und 422 ab. Von der DMA-Steuerung 43
werden deshalb während der DMA-Zyklen ein erstes und ein zweites Auswahlsignal Sel_2.1
oder Sel_2.2 wechselweise zum wortweisen Einspeichern von Pixeldaten für den zweiten
Druckkopf geliefert. Von der DMA-Steuerung 43 wird beispielsweise zum wechselweisen
und wortweisen Einspeichern von Pixeldaten für den zweiten Druckkopf ein erstes Auswahlsignal
Sel_2.1 und ein Adressenschreibsignal AW geliefert. Die für jede Druckbildspalte gewünschte
Pixelanzahl erfordert maximal 40 Datenworte a 16 Bit in zwei von vier Zwischenspeichern
zwischenzuspeichern. In der DMA-Steuerung 43 werden Schaltungsmittel zur Abgabe des
zweiten Steuersignals DMA-busy und zur Realsierung mindestens eines Zyklenzählers
für eine vorbestimmte Anzahl an 16 Bit-Datenwörtern vorgesehen.
[0033] Auf die gleiche ― jedoch nicht näher gezeigten - Weise werden wortweise die binären
Pixeldaten für den ersten Druckkopf via BUS 5 geliefert und liegen an einem entsprechenden
Dateneingang des ersten und zweiten Zwischenspeichers 411 und 412 für Pixeldaten für
den ersten Druckkopf an. Die - nicht detailliert gezeigte - erste Pixeldatenaufbereitungseinheit
41 für den ersten Druckkopf umfasst ebenfalls einen ersten und zweiten Zwischenspeicher
411 und 412, welche jeweils eingangsseitig an die niederwertigen 16 Bit des Datenbusses
des Busses 5 angeschlossen sind. Das von der DMA-Steuerung 43 gelieferte Adressenschreibsignal
AW liegt ebenfalls jeweils an einem separaten Adresseneingang des ersten und zweiten
Zwischenspeichers 411 und 412 für Pixeldaten für den ersten Druckkopf an. Von der
DMA-Steuerung 43 wird ein erstes Auswahlsignal Sel_1.1 für Pixeldaten für den ersten
Druckkopf geliefert und liegt an einem separaten Steuereingang des ersten Zwischenspeichers
411 für Pixeldaten für den ersten Druckkopf an. Von der DMA-Steuerung 43 wird ein
zweites Auswahlsignal Sel_1.2 für Pixeldaten für den ersten Druckkopf geliefert und
liegt an einem separaten Steuereingang des zweiten Zwischenspeichers 412 für Pixeldaten
für den ersten Druckkopf an.
[0034] Das vom Adressengenerator 44 gelieferte Adressenlesesignal AR liegt ebenso wieder
an einem separaten Adresseneingang des ersten und zweiten Zwischenspeichers 411 und
412 für Pixeldaten für den ersten Druckkopf und an einem ersten Selektor 413 an. Die
parallelen Datenausgänge des ersten und zweiten Zwischenspeichers 411 und 412 für
Pixeldaten für den ersten Druckkopf liegen an einem ersten und zweiten Eingang des
Selektors 413 an, der vom Adressengenerator 44 gesteuert an seinem Ausgang ein 14
Bit paralleles Datensignal an den parallelen Dateneingang eines Schieberegisters 414
für Pixeldaten für den ersten Druckkopf liefert. Das Schieberegister 414 wird durch
das Schiebetaktsignal SCL der Druckersteuerung 45 gesteuert und gibt ein serielles
Datenausgangssignal Serial data out 1 aus.
[0035] Die Druckersteuerung 45 gibt einen Schiebetakt SCL an das Schieberegister 414 für
Pixeldaten für den ersten Druckkopf sowie Signale Latch und Print1 für die Steuerung
des Pen Driver Boards 11 aus. Die Druckersteuerung 45 ist über eine Steuerleitung
für die Ausgabe des Signals SO mit einem entsprechenden Steuereingang der DMA-Steuerung
43 und mit der Pixeldatenaufbereitungseinheit 41 verbunden.
[0036] Der Zyklenzähler der DMA-Steuerung 43 ist ein Wortzähler für eine vorbestimmte Anzahl
an 16 Bit-Datenworten, der durch ein DMA-start-Signal gestartet wird. Die DMA-Steuerung
ist beispielsweise Bestandteil einer anwendungsspezifischen Schaltung (ASIC), wobei
der Zyklenzähler einerseits mit den vorgenannten Mitteln zur Generierung und Ausgabe
von Adressenschreibsignalen AW und andererseits mit Mitteln zur Generierung und Ausgabe
von Auswahlsignalen verbunden ist, wobei die letzteren - in nicht gezeigter Weise
- mindestens ein Ausgabemittel und Vergleichsmittel aufweisen. Beispielsweise steuert
ein erstes Vergleichsmittel die Ausgabemittel in Abhängigkeit vom SO-Signal an, um
bis zum Erreichen einer ersten vorbestimmten Anzahl an 16 Bit-Datenworten ein für
die erste Pixeldatenaufbereitungseinheit 41 bestimmtes Auswahlsignal Sel_1.1 oder
Sel_1.2 und um nach dem Erreichen der ersten vorbestimmten Anzahl an 16 Bit-Datenworten
ein für die zweite Pixeldatenaufbereitungseinheit 42 bestimmtes Auswahlsignal Sel_2.1
oder Sel_2.2 auszugeben. Nach dem Erreichen einer zweiten vorbestimmten Anzahl von
40 * 16 Bit-Datenworten wird von dem ersten oder einem zweiten Vergleichsmittel ein
Signal, das am Zyklenzähler anliegt, um das Zählen von DMA-Zyklen zu beenden. Aus
dem Signal wird ein DMA-busy-Signal mit dem Wert 'Null' erzeugt und über ein Register
ausgegeben.
[0037] Während die Pixeldaten für einen Datenstring per direkten Speicherzugriff (DMA) in
die jeweils ersten Zwischenspeicher 411 und 421 geladen und dort zwischen gespeichert
werden, können die jeweils zweiten Zwischenspeicher 412 und 422 ausgelesen werden.
Mittels des speziellen Adressengenerators 44 und den Selektoren 413, 423 werden die
binären Pixeldaten aus diesen Zwischenspeichern in der von den Druckköpfen benötigten
Reihenfolge ausgelesen, gruppenweise gesammelt und anschließend mittels Schieberegister
414, 424 seriell zu den beiden Druckköpfen übertragen. Mindestens eine halbe Druckbildspalte
wird von dem ersten Druckkopf und mindestens eine andere halbe Druckbildspalte wird
von dem zweiten Druckkopf gedruckt.
[0038] Durch diese Lösung können binäre Pixeldaten im Pixelspeicher in einer optimalen Ordnung
gespeichert vorliegen, die den Mikroprozessor bei der Druckbildänderung entlastet.
Durch die Datenübertragung per DMA wird der Mikroprozessor ebenfalls entlastet.
[0039] Die Logik 542 für Encoderimpulse mit Fehlerreduzierung ist ein Bestandteil der Druckersteuerung
45 und die zugehörige Auswerteeinheit (nicht gezeigt) ist ein Bestandteil des Adressengenerators
44. Die Logik 542 übermittelt dann ausgangsseitig ein mehr als zwei Bit breites digitales
Zählwertsignal ENC zum Adressengenerator 44, der einen digitalen Vergleicher enthält.
[0040] In der Druckersteuerung 45 ist weiterhin ein Datenstringzähler realisiert (nicht
näher gezeigt), wobei jeder Datenstring maximal die oben genannte Anzahl von 40 *
16 Bit-Datenwörtern aufweist. Nachdem die aus einem Datenstring entnommenen und aufbereiteten
binären Pixeldaten gedruckt worden sind, wird beim Auftreten der LH-Flanke des Encodertaktes
der Datenstringzähler inkrementiert. Wenn ein vorgegebener Sollwert U an Datenstrings
erreicht ist, wird das Drucken des Druckbildes beendet.
[0041] Die gesamte Druckdatensteuerung kann vorzugsweise mit einer anwendungsspezifischen
Schaltung (ASIC) bzw. programmierbaren Logik, wie beispielsweise Spartan-II 2,5V FPGA
der Firma XILINX (
www.xilinx.com) realisiert werden.
[0042] Die Figur 4 zeigt ein Blockschaltbild der Druckersteuerung 45, die eine Logik 542
zur Fehlerreduzierung aufweist, welche weiter unten anhand der Figur 6 noch näher
erläutert wird. Die vorgenannte Logik 542 ist mit einer Ablaufsteuerung und Verarbeitungseinheit
451 betriebsmäßig verbunden, an welche eine Druckersteuerungslogik 450 und eine Ein/Ausgabeeinheit
454 angeschlossen sind. Die Druckersteuerungslogik 450 umfaßt eine Anzahl an ― nicht
näher gezeigten ― Blöcken, jedoch mindestens folgende Blöcke, wie einen Datenstring-Zähler
4503 für die beim Drucken erreichte Datenstring-Zahl V, ein Register 4504 für den
Datenstring-Sollwert U, einen Vergleicher 4506 für U = V, ein Speicher 4505 für Y
und andere Parameter, ein Shift-Impulsgenerator 4507, ein Latch-Impulsgenerator 4508,
ein erster Print-Impulsgenerator 4509 und ein zweiter Print-Impulsgenerator 4510.
[0043] Im ersten Block 451 mit der Ablaufsteuerung und Verarbeitungseinheit sind ― in nicht
gezeigter Weise ― ein Encoder-Filter und ein Encoder-Controller enthalten, der ein
Startsignal zum Drucken einer Spalte liefert, eine Interrupt-Anforderung mit jeder
steigenden Encoder-Flanke auslöst und die zeitrichtige Übertragung der Druckdaten
innerhalb einer Druckspalte unterstützt. Durch den Encoder-Filter werden Störungen
(Spikes) auf den Encoder-Signalen unterdrückt. Im ersten Block 451 sind ― in nicht
gezeigter Weise - noch ein weiterer Zähler und weitere Auswerteschaltungen enthalten,
wobei dem Zähler ein Systemtakt zur Ermittlung der Periodendauer von Encoderimpulsen
zugeführt wird. Über den e-Eingang BUS-E/A und weiteren Register der E/A-Einheit 454
erfolgt die Kommunikation mit dem Mikroprozessor. Eine mikroprozessor-gesteuerte Regelung
der Druckzyklusdauer bewirkt - in nicht gezeigter Weise - eine Einstellung des Druckzyklusses
auf eine vorbestimmte Zeitdauer, vorzugsweise ca. 90% der Zeit zwischen zwei positiven
Encoderflanken.
[0044] Die Ein/Ausgabeeinheit 454 weist ebenfalls eine Anzahl an ― nicht näher gezeigten
― Blöcken, jedoch mindestens folgende Blöcke auf, eine BUS-Ein/Ausgabeeinheit 4541,
ein Eingang 4542 für das Encodersignal e, einen Eingang 4543 für das DMA-busy-Signal,
ein Register 4544 für das DMA-start-Signal, einen Eingang 4545 für das AG-busy-Signal,
ein Register 4546 für AG-start-Signal, ein Register 4547 für das Umschaltsignal SO,
einen Eingang 4550 für das PS-Signal, einen Ausgang 4551 für das I-Signal, einen Ausgang
4553 für das Shift-clock-Signal, einen Ausgang 4554 für das Latch-Impuls-Signal, einen
Print1-Impuls-Ausgang 4555 und einen Print2-Impuls-Ausgang 455x. Zur Ausgabe des digitalen
Zählwertes ENC hat die Ein/Ausgabeeinheit 454 einen ENC-Ausgang 4560.
[0045] Wenn die gestrichelt gezeigte Auswerteeinheit 453 beispielsweise ― wie in Fig.1 gezeigt
ist - ebenfalls ein Bestandteil der Druckersteuerung 45 ist, dann wird das Ausgangssignal
der Auswerteeinheit 453 zwar ebenfalls zum Adressengenerator 44 übermittelt, jedoch
nur als ein Bit breites binäres Abbruchsignal, dass am Ausgang 4560 bereitgestellt
wird.
[0046] Die Druckersteuerung 45 kann ebenfalls in der bereits erläuterten oder in einer alternativen
Ausführungsform realisiert werden, wobei jede Druckersteuerung 45 - von der Ausführungsform
unabhängig - einen Datenstringzähler 4503 aufweist und mit dem Encoder 3 verbunden
ist. Nach jedem gedruckten Datenstring wird der Wert V des Datenstringzählers bei
Auftreten des Encodertaktes inkrementiert, wobei das Drucken des Druckbildes beendet
wird, wenn ein vorgegebener Sollwert U des Datenstringzählers erreicht ist.
[0047] Die Figur 5 zeigt einen Flussplan zur Ablaufsteuerung der Druckersteuerung. Nach
dem Einschalten im Schritt 101 wird ein Schritt 102 erreicht und in der Routine 100
der Ablaufsteuerung werden die Signale Verringerungssignal DEC_ENC, Rücksetzsignal
Encoderzähler_Reset und Auswahlsignale Sel_1.1, Sel_1.2, Sel_2.1, Sel_2.2 auf den
Wert 'Null' gesetzt. In einem ersten Abfrageschritt 103 wird nun ein via Bus übermitteltes
Datenwort hinsichtlich des Auftretens eines Befehls zum Druckstart ausgewertet. Ist
der letztere noch nicht erteilt worden, dann wird in eine Warteschleife verzweigt.
Andererseits wird nach dem Druckstart in einem Schritt 104 ein Setzen des Spaltenzählwertes
V auf den Wert 'Null'. Das Umschaltsignal SO wird auf den Wert 'Eins' gesetzt und
ausgegeben. In einem zweiten Abfrageschritt 105 wird nun das Encodersignal e hinsichtlich
des Auftretens einer LH-Flanke ausgewertet. Ist die letztere noch nicht aufgetreten,
dann wird in eine Warteschleife verzweigt. Andererseits wird in einem Schritt 106
ein Signal DMA-Start ausgegeben und eine Subroutine 300 gestartet, welche bestimmte
Auswahlsignale Sel_1.1, Sel_1.2, Sel_2.1 oder Sel_2.2 auf den Wert 'Eins' setzt, um
die binären Pixeldaten in die Zwischenspeicher der Pixeldatenaufbereitungseinheiten
41 und 42 zu übernehmen, was anhand der Figur 13 später noch genauer erläutet wird.
[0048] In einem dritten Abfrageschritt 107 wird nun das DMA-busy-Signal hinsichtlich dessen
ausgewertet, ob es auf den Wert 'Null' gesetzt worden ist. Ist das letztere noch nicht
der Fall, dann wird in eine Warteschleife verzweigt. Ist jedoch das DMA-busy-Signal
auf den Wert 'Null' gesetzt worden, dann wird im Schritt 108 ein Signal Encoderzähler_Reset
:= 1 generiert. Anschließend wird ein vierter Abfrageschritt 109 erreicht, in welchem
das digitale Ausgangssignal ENC des Encodertaktzählers hinsichtlich eines vom Wert
'Null' abweichenden Wertes ausgewertet wird. Für den unverkürzten zeitlichen Abstand
der Encoderimpulse erfolgt eine Einstellung des Druckzyklusses auf eine vorbestimmte
Zeitdauer zwischen zwei positiven Encoderflanken. Damit ergibt sich aufgrund des vierten
Abfrageschrittes 109 ein Abstand zwischen den einzelnen Druckzyklen (Fig. 1d). Ist
das digitale Ausgangssignal ENC nicht ungleich dem Wert 'Null', d.h. gleich dem Wert
'Null', dann wird in eine Warteschleife verzweigt.
[0049] Beim Auftreten einer LH-Flanke eines Encodersignals wird der Encodertaktzähler inkrementiert
und das digitale Ausgangssignal ENC wird nun ungleich dem Wert 'Null'. Beim Auftretens
einer LH-Flanke wird also vom vierten Abfrageschritt 109 in einem Schritt 110 verzweigt,
in welchem das Umschaltsignal SO logisch negiert und dann ausgegeben wird.
[0050] Anschließend wird im Schritt 111 der Adressengenerator aktiviert und eine Subroutine
400 gestartet, welche für die Pixeldatenaufbereitungseinheiten 41 und 42 bestimmte
Leseadressen AR und Steuerungssignale, wie das Umschaltsignal SO, die Primitivadresse
AP, das Schreibsignal WR und ein Ladesignal LD erzeugt. Im Schritt 112 wird ein DMA-Start-Signal
ausgegeben und die DMA-Steuerung aktiviert, zum erneuten Starten der vorgenannten
Subroutine 300. Beide Subroutinen 300 und 400 laufen parallel zueinander ab. Dann
wird in einem Schritt 113 der Druckzyklusstart signalisiert indem ein kurzer Impuls
generiert bzw. indem in einem ersten Teilschritt 113a das Signal DEC_ENC auf den Wert
'Eins' und in einem zweiten Teilschritt 113b das Signal DEC_ENC auf den Wert 'Null'
gesetzt wird. Anschließend wird in einem fünften Abfrageschritt 114 ausgewertet, ob
der Adressengenerator mit seiner Subroutine 400 fertig ist und ob das DMA-busy-Signal
auf den Wert 'Null' gesetzt worden ist. Ist das erstere oder letztere noch nicht der
Fall, dann wird in eine Warteschleife verzweigt. Ist jedoch der Adressengenerator
mit seiner Subroutine 400 fertig und das DMA-busy-Signal ist auf den Wert 'Null' gesetzt
worden, dann wird ein Schritt 115 erreicht. Im Schritt 115 wird der Datenstringzählwert
um einem Wert 'Eins' inkrementiert auf V:= V + 1. In einem sechsten Abfrageschritt
116 wird ausgewertet, ob der Spaltenzählwert V einen Grenzwert U erreicht hat. Ist
das nicht der Fall, dann wird auf den vierten Abfrageschritt 109 zurück verzweigt.
Anderenfalls wird über einen Schritt 117 auf den ersten Abfrageschritt 103 zurück
verzweigt und die Routine beginnt erneut, wenn im ersten Abfrageschritt 103 ein Druckstartbefehl
festgestellt wird. Im vorgenannten Schritt 117 wird ein Rücksetzsignal Encoderzähler_Reset
:= 0 generiert und der Encoderzähler auf den Wert 'Null' zurückgesetzt.
[0051] Im ― in der Figur 4 gezeigten ― Ausführungsbeispiel existiert ein separater zweiter
Block 452, der mit dem die Ablaufsteuerung und Verarbeitungseinheit enthaltenen ersten
Block 451 der Druckersteuerung 45 betriebsmäßig verbunden ist. Der vorgenannte Block
452 enthält die Logik zur Druckerfehlerreduzierung und ist Bestandteil der Druckersteuerung
45. Die Verbindung umfaßt mehrere ― nicht gezeigte ― Leitungen für analoge und/oder
digitale elektrische Signale. Dem zweiten Block 452, der ein paralleles n-Bit breites
digitales Ausgangssignal ENC erzeugt, das einen Zählwert repräsentiert, wird ein vom
ersten Block 451 gefiltertes Encodersignal e seriell zugeführt. Die Verbindung des
zweiten Blocks 452 mit dem ENC-Ausgang der E/A-Einheit 454 erfolgt ebenfalls über
den ersten Block 451 der Druckersteuerung 45. Der Block 451 ist mit der E/A-Einheit
454 der Druckersteuerung 45 verbunden. Nach dem Einschalten setzt die Verarbeitungseinheit
des ersten Blocks 451 das Verringerungssignal DEC_ENC und das Rücksetzsignal Encoderzähler_Reset
auf den Wert 'Null'. Die Druckersteuerung 45 enthält einen dritten Block 450 mit der
Druckersteuerungslogik. Die letztgenannte weist im Parameter-Speicher 4505 einen Parameter
Y als einen oberen Grenzwert für die Logik zur Druckerfehlerreduzierung auf.
[0052] Alternativ kann ein separater zweiter Block entfallen (nicht gezeigt), wenn die Logik
zur Druckerfehlerreduzierung ein Bestandteil des ersten Blocks 451 der Druckersteuerung
45 ist.
[0053] In der Figur 6 ist ein Blockschaltbild der Logik zur Druckerfehlerreduzierung dargestellt.
Ein erstes und zweites AND-Gatter 4521, 4522 sind ausgangsmäßig mit den Eingängen
eines Encodertaktzählers 4523 verbunden, der einen ersten Eingang CLK_down, einen
zweiten Eingang CLK_up und einen dritten Eingang ENC_RESET für das Rücksetz-Signal
Encoderzähler_Reset aufweist. Das Verringerungs-Signal DEC-ENC wird über einen ersten
Eingang des ersten AND-Gatter 4521 zugeführt. Mit dessen zweiten Eingang ist der Ausgang
K eines ersten digitalen Vergleichers 4524 verbunden. In einer einfachen Ausführungsform
(nicht gezeigt) wird als erster digitaler Vergleicher 4524 ein OR-Gatter eingesetzt,
das das digitale Ausgangssignal ENC des Encodertaktzählers 4523 verknüpft und bei
ENC ≠ 0 ausgangsseitig ein Logik-Signal 'Eins' abgibt.
[0054] Das gefilterte Encodersignal e wird seriell über einen ersten Eingang des zweiten
AND-Gatter 4522 zugeführt, mit dessen zweiten Eingang der Ausgang L eines zweiten
digitalen Vergleichers 4525 verbunden ist.
[0055] An den jeweils ersten Eingängen des ersten und zweiten digitalen Vergleichers 4524,
4525 liegt der Zählwert in digitaler Form an, indem der an den beispielsweise n =
4 Ausgängen Q1, Q2, Q3, Q4 des Encodertaktzählers 4523 jeweils ein Binärwert ausgegeben
wird. Der Encodertaktzählers 4523 ist im Ausführungsbeispiel als 4 Bit-Zähler dargestellt,
aber soll nicht allein darauf beschränkt sein. Vielmehr sind auch andere Ausführungsformen
als n-Bit-Zähler möglich. In der bevorzugten Ausführungsform sind beide digitale Vergleicher
gleich aufgebaut. Beispielsweise sind n Exclusiv-OR-Gatter ausgangsseitig über ein
OR-Gatter miteinander verknüpft, wobei jedes Exclusiv-OR-Gatter jeweils eine Stelle
der n-Bit-Zahl mit einer entsprechenden Stelle der n-Bit-Vergleichszahl vergleicht.
[0056] An den jeweils zweiten Eingängen des ersten digitalen Vergleichers 4524 liegt ein
n-Bit breites digitales Datensignal mit dem Binärwert 'Null' an. An den jeweils zweiten
Eingängen des zweiten digitalen Vergleichers 4525 liegt ein n-Bit breites digitales
Datensignal mit den entsprechenden Binärwerten für einen oberen Grenzwert 'Y' an,
welcher über den ersten Block 451 der Druckersteuerung 45 geliefert wird. Vom ersten
Block 451 der Druckersteuerung 45 wird ebenfalls das Signal Encoderzähler_Reset und
das DEC-ENC-Signal geliefert. Der erste digitale Vergleicher 4524 arbeitet in einer
an sich bekannten Weise und gibt ein Logik-Signal ab, beispielsweise TTL. Beispielsweise
ein Binärwert 'Eins' am Ausgang K signalisiert, dass die Bedingung ENC ≠ 0 erfüllt
ist. Das über einen ersten Eingang des ersten AND-Gatter 4521 zugeführte DEC-ENC-Signal
wird folglich auf den ersten Eingang CLK_down des Encodertaktzählers 4523 durchgeschaltet,
um den Zählwert zu dekrementieren. Der zweite digitale Vergleicher 4525 gibt ein Logik-Signal
mit dem Binärwert 'Eins' am Ausgang L ab, wenn die Bedingung ENC ≠ Y erfüllt ist.
Das über einen ersten Eingang des zweiten AND-Gatter 4522 zugeführte gefilterte Encodersignal
e wird dann auf den zweiten Eingang CLK_up des Encodertaktzählers 4523 durchgeschaltet,
um den Zählwert zu inkrementieren. Der ersten bzw. zweite digitale Vergleicher 4524
bzw. 4525 geben ein TTL-Signal mit dem Wert 'Null' ab, wenn die vorgenannte jeweilige
Bedingung nicht erfüllt ist. In diesem Fall sind die AND-Gatter 4521 bzw. 4522 gesperrt.
[0057] In der Figur 7a ist ein Flussplan zur Druckerfehlerreduzierung gezeigt. Die Routine
700 wird im Schritt 701 gestartet. Nach dem Start wird zunächst im Schritt 702 der
Zählstand auf den Wert 'Null' zurückgesetzt. Im folgenden Abfrageschritt 703 wird
in Erwartung einer Freischaltung mittels eines Rücksetz-Signals Encoderzähler-Reset
mit dem Wert 'Eins' ständig auf den Schritt 702 zurückverzweigt.
[0058] Das Rücksetz-Signal Encoderzähler-Reset wird nach einem ersten DMA-Zyklus von der
Verarbeitungseinheit des - in der Figur 4 gezeigten - Blockes 451 auf den Wert 'Eins'
gesetzt, wie dem Schritt 108 der Figur 5 zu entnehmen ist. Das vorgenannte Rücksetzsignal
liegt am dritten Eingang ENC_RESET des - in der Figur 6 gezeigten ― Encodertaktzähles
4523 an. Wenn im Abfrageschritt 703 ein Encoderzähler-Reset-Signal mit dem Wert 'Eins'
festgestellt wird, dann wird ein zweiter Abfrageschritt 704 erreicht, in welchem festgestellt
wird, ob eine Encoder LH-Flanke über einen ersten Eingang dem zweiten AND-Gatter 4522
zugeführt wird, während der zweite Vergleicher 4525 ausgangsseitig einen Wert 'Eins'
abgibt, mit welchem letzterer signalisiert, dass die Bedingung ENC ≠ Y erfüllt ist.
[0059] Das zweite AND-Gatter 4522 gibt ausgangsseitig einen Wert 'Eins' auf den zweiten
Eingang CLK_up des Encodertaktzählers ab, was dazu führt, dass im folgenden Schritt
705 der Zählwert um den Wert 'Eins' inkrementiert wird, so dass der Zählwert ENC :=
ENC +1 erreicht wird. Nachfolgend wird zu einem dritten Abfrageschritt 706 verzweigt.
[0060] Wenn aber keine Encoder LH-Flanke über einen ersten Eingang dem zweiten AND-Gatter
4522 zugeführt wird und die Bedingung ENC ≠ Y nicht erfüllt ist, dann wird vom zweiten
Abfrageschritt 704 auf den dritten Abfrageschritt 706 verzweigt.
[0061] Im dritten Abfrageschritt 706 wird vom ersten Vergleicher 4524 festgestellt, dass
der Zählwert ENC ungleich dem Zählwert 'Null' ist. In diesem Fall wird zum vierten
Abfrageschritt 707 verzweigt. Anderenfalls wird zum ersten Abfrageschritt 703 zurückverzweigt.
Im vierten Abfrageschritt 707 wird geprüft, ob dass über den ersten Eingang des ersten
AND-Gatter 4521 zugeführte DEC-ENC-Signal den Wert 'Eins' hat. In diesem Fall wird
vom ersten AND-Gatter 4521 ausgangsseitig ein Wert 'Eins' auf den ersten Eingang CLK_down
des Encodertaktzählers abgegeben, was dazu führt, dass im folgenden Schritt 708 der
Zählwert um den Wert 'Eins' dekrementiert wird, so dass der Zählwert ENC := ENC -
1 erreicht wird. Anderenfalls wird vom vierten Abfrageschritt 707 auf den ersten Abfrageschritt
703 zurückverzweigt. Anschließend wird vom Schritt 708 auf den ersten Abfrageschritt
703 zurückverzweigt.
[0062] In der Figur 7b ist ein Impuls/Zeit-Diagramm für die Druckerfehlerreduzierung dargestellt.
Nach dem Start werden in der Routine 100 der Druckersteuerung das Rücksetzsignal Encoderzähler_Reset
und das Verringerungssignal DEC_ENC auf den Wert 'Null' gesetzt. Mehrere Encoderimpulse
treten in einem zu geringen zeitlichen Abstand über einen längeren Zeitabschnitt auf.
Bei dem Impuls/Zeit-Diagramm der Figur 7b ist der vorgenannte Zeitabschnitt jedoch
länger, als bei dem Impuls/Zeit-Diagramm der Figur 1f.
[0063] Nach dem ein erster Encoderimpuls auftritt, beginnt zum Zeitpunkt t
0 eine erste Periode, um die Pixeldaten für den ersten Druckzyklus per DMA-Zyklen in
die Zwischenspeicher zu laden. Zum Zeitpunkt t
1 wird dann der vorgenannte Encodertaktzähler 4523 durch das auf den Wert 'Eins' gesetzte
Rücksetzsignal Encoderzähler_Reset := 1 (Figur 5, Schritt 108) freigeschaltet. Beim
Zählwert 'Null' ist die Bedingung ENC ≠ Y erfüllt, damit der vorgenannte Encodertaktzähler
mit jeder positiven Encoderflanke des Encodersignals e um den Wert 'Eins' inkrementiert
wird. Zum Zeitpunkt t
2 tritt ein zweiter Encoderimpuls auf und der vorgenannte Encodertaktzähler wird inkrementiert
und hat nun den Zählwert 'Eins'. Der Ausgang K des ersten Vergleichers 4524 (Fig.
6) gibt dann den Binärwert 'Eins' ab, der am Eingang des ersten AND-Gatters 4521 anliegt.
Der Ausgang Q1 bzw. K bleiben bis zum Zeitpunkt t
3 auf den Binärwert 'Eins' gesetzt. In Abhängigkeit vom zeitlichen Abstand benachbarter
Encoderimpulse wird entweder das Inkrementieren weiter fortgesetzt, solange ein vorbestimmter
oberer Grenzwert Y nicht erreicht ist, oder der Zählwert kann beim Auftreten eines
Druckzyklusses dekrementiert werden. Zum Zeitpunkt t
3 werden eine zweite Periode mit DMA-Zyklen und ein erster Druckzyklus für die bei
der vorangehenden ersten DMA-Periode mit DMA-Zyklen geladenen Pixeldaten eines Datenstrings
gestartet. Ein von der Druckersteuerung 45 generiertes impulsförmiges Verringerungs-Signal
DEC_ENC wird an die Logik 452 abgegeben, was zur Dekrementierung und zu dem Ergebnis
führt, dass der Zählwert wieder den Wert 'Null' hat.
[0064] Ab dem Zeitpunkt t
3 wird der zuerst genannte Zwischenspeicher der Druckdatensteuerung 4 zum Drucken eines
Datenstrings ausgelesen. Zugleich werden die Pixeldaten für einen zweiten Druckzyklus
per DMA in den jeweils anderen Zwischenspeicher der Druckdatensteuerung 4 geladen.
Zum Zeitpunkt t
4 tritt bereits ein dritter Encoderimpuls auf, bevor ein dritter Druckzyklus gestartet
werden kann. Die Ausgänge Q1 bzw. K bleiben bis zum Zeitpunkt t
5 auf den Binärwert 'Eins' gesetzt. Zum Zeitpunkt t
5 werden ein zweiter Druckzyklus und eine dritte DMA-Periode gestartet. Der zeitliche
Abstand der nachfolgenden Zeitpunkte t
6 und t
7, t
8 und t
9 sowie t
10 und t
11 wächst soweit an, dass zum Zeitpunkt t
11 der siebente Encoderimpuls vor der sechsten DMA-Periode wirksam wird. In einem solchen
Fall wird der Encodertaktzähler nicht mehr im gleichen Maße dekrementiert wie inkrementiert.
Infolge dessen wächst der Zählwert an. Trotz eines laufenden Druckzyklusses überprüft
der erste Vergleicher 4524 der vorgenannten Logik 452, ob der Zählerinhalt ungleich
Null ist. Ist das der Fall, wird auf ein Verringerungssignal DEC_ENC gewartet. Wird
ein Druckzyklus gestartet, dann gibt die Druckersteuerung ein Verringerungssignal
DEC_ENC ab. Zum Zeitpunkt t
11 wird der Encodertaktzähler vor dem Dekrementieren noch inkrementiert. Die Ausgänge
Q1 bzw. K bleiben vom Zeitpunkt t
10 bis zum Zeitpunkt t
11 auf den Binärwert 'Eins' gesetzt und wechseln dann auf den Wert 'Null'. Zugleich
wechselt der Ausgang Q2 auf den Binärwert 'Eins', d.h. der Zählerinhalt ist zum Zeitpunkt
t
11 auf den Zählwert 'Zwei' angestiegen. Dieser Zählerzustand hält nur bis zum Zeitpunkt
t
12 an, da zum Zeitpunkt t
11 auch ein Verringerungssignal DEC_ENC mit dem Wert 'Eins' an den Encodertaktzähler
abgegeben wurde. Der Ausgang Q2 wechselt wieder auf den Binärwert 'Null' und der Ausgang
Q1 wechselt wieder auf den Binärwert 'Eins' entsprechend dem dekrementierten Zählwert
'Eins'. Zum Zeitpunkt t
13 wird der achte Encoderimpuls abgegeben und es herrschen vergleichbare Zustände wie
zum Zeitpunkt t
2 mit der Ausnahme, dass der Encodertaktzählwert vor dem Inkrementieren nun auf dem
vorgenannten Wert 'Eins' steht. Auch der achte Encoderimpuls zum Zeitpunkt t
13 ist vor der siebenten DMA-Periode mit DMA-Zyklen wirksam. Der Ausgang Q2 wechselt
wieder auf den Binärwert 'Eins' und der Ausgang Q1 wechselt wieder auf den Binärwert
'Null' entsprechend dem inkrementierten Zählwert 'Zwei'. Dieser Zählerzustand hält
nur bis zum Zeitpunkt t
14 an, da zum Zeitpunkt t
13 ebenfalls ein Dekrementierungssignal DEC_ENC mit dem Wert 'Eins' an den Encodertaktzähler
abgegeben wurde.
[0065] Nach dem Drucken einer jeden Pixelgruppe wird vom Adressengenerator 44 in der Subroutine
400 überprüft, ob der Zählwert einen Sollwert Z erreicht hat. Ist das der Fall und
sind die Daten für den nächsten Druckzyklus per DMA in den Zwischenspeicher geladen,
wird der laufende Druckzyklus abgebrochen. In der Figur 1f bzw. 7b führt ein Zählwert
- der den Sollwert Z = 1 übersteigt - dazu, dass beim siebenten bzw. beim siebenten
und achten Encoderimpuls der laufende Druckzyklus um den schraffiert dargestellten
Bereich vorzeitig abgebrochen wird und ein neuer Druckzyklus beginnt.
[0066] Zum Zeitpunkt t
15 wird der sechste Druckzyklus beendet und ein siebenter Druckzyklus beginnt. Deshalb
wird ein Verringerungssignal DEC_ENC mit dem Wert 'Eins' an den Encodertaktzähler
abgegeben und der Ausgang Q1 wechselt wieder auf den Binärwert 'Null' entsprechend
dem dekrementierten Zählwert 'Null'. Dieser Zählerzustand hält nur bis zum Zeitpunkt
t
16 an, da der neunte Encoderimpuls abgegeben wurde. Somit wird wieder inkrementiert
und der Ausgang Q1 wechselt wieder auf den Binärwert 'Eins' entsprechend dem inkrementierten
Zählwert 'Eins'. Das geht weiter so bis eine vorgegebene Anzahl von Druckzyklen abgearbeitet
ist. Der Zählwert des Encodertaktzählers wird mit jedem Druckzyklusstart dekrementiert
(Figur 1d, 1e, 1f und 7b). Durch dieses Verfahren ergeben sich eine Reihe von Vorteilen.
Alle Encoderimpulse mit zu kurzem zeitlichen Abstand starten Druckzyklen, sofern die
Encoderimpuls-Periodendauer größer als die DMA-Periode mit DMA-Zyklen ist. Erst bei
einer Vielzahl von aufeinanderfolgenden Encoderimpulsen von sehr kurzem zeitlichen
Abstand ist mit einer geringen Beeinträchtigung der Druckqualität zu rechnen. Ein
resultierender Versatz der zu einer Druckspalte gehörigen Pixeldaten ist im erläuterten
Ausführungsbeispiel höchstens gleich dem Abstand einer Druckspalte. Dadurch wird sichergestellt,
das die zu einer jeden Druckspalte gehörenden Pixel nicht über mehrere Druckspalten
versetzt gedruckt werden. Da nur ein laufender Druckzyklus vorzeitig abgebrochen wird,
was in den Figuren 1f bzw. 7b schraffiert dargestellt wird, fehlen im Druckbild entsprechend
weniger Pixel als im Extremfall, wenn ein kompletter Druckzyklus fehlt.
[0067] In der Figur 8 wird ein Blockbild einer Ausführungsform des Adressengenerators gezeigt.
Es ist vorgesehen, dass der Adressengenerator 44 eine Ein/Ausgabelogik 444, eine Auswerteeinheit
442 und eine Einheit 441 zur Generierung von Leseadressen aufweist, wobei letztere
einen ersten Zähler 4410 für die Primitivadresse und einen zugeordneten erster Vergleicher
4411 für den Vergleich eines Zählwertes P der Primitivadresse mit einem ersten Sollwert
aufweist, der von einem ersten Sollwertregister 4412 geliefert wird. Die Einheit 441
umfaßt einen zweiten Zähler 4413 für eine Adressengruppe und ein zugeordneten zweiten
Vergleicher 4414 für den Vergleich eines Zählwertes A der Adressengruppe mit einem
zweiten Sollwert, der von einem zweiten Sollwertregister 4415 geliefert wird sowie
eine Ablaufsteuerung 4401. Letztere arbeitet zusammen mit einer Berechnungseinheit
4402 für den Parameter C, einem WR-Signalgeber 4403, einem LD-Signalgeber 4404, einem
PS-Signalgeber 4405, mit den vorgenannten Zählern 4410 und 4413, mit den Vergleichern
4411, 4414, 4418, mit den Registern 4412, 4415 4417 und mit einem AGbusy-Signalgeber
4416.
[0068] Die Auswerteeinheit 442 umfaßt einen Inverter 4420 für das DMA-busy-Signal, ein AND-Gatter
4423, ein Register 4422 für mindestens einen dritten Sollwert Z und einen dritten
Vergleicher 4421, dem der Zählwert des Encodertaktzählers zum Vergleich mit mindestens
einem dritten Sollwert Z zugeführt wird. Der Inverter 4420 und der Vergleicher 4421
sind ausgangsseitig je mit einem Eingang des AND-Gatters 4423 verbunden. Wenn im Regelfall
nur ENC-Werte von 'Null' bis 'Zwei' auftreten, ist der dritte Sollwert Z = 1. Der
dritte Vergleicher 4421 kann einfach aufgebaut sein, indem überprüft wird, dass weder
ENC-Werte 'Null' noch 'Eins' auftreten. Beispielsweise sind einerseits die an den
Q-Ausgängen des Encodertaktzählers abgegebenen Logik-Signale über ein OR-Gatter und
andererseits n Exclusiv-OR-Gatter ausgangsseitig über ein zweites OR-Gatter verknüpft,
wobei jedes Exclusiv-OR-Gatter jeweils eine Stelle der n-Bit-Zahl mit einer entsprechenden
Stelle der n-Bit-Vergleichszahl des Sollwerts Z = 1 vergleicht und die OR-Gatter-Ausgänge
über ein AND-Gatter verknüpft sind, welches das Ausgangssignal des dritten Vergleichers
4421 abgibt. Das AND-Gatter 4423 gibt ausgangsseitig ein Abbruchsignal BO mit dem
Wert 'Eins' ab, wenn das negierte DMA-busy-Signal und das Ausgangssignal des dritten
Vergleichers 4421 den Wert 'Eins' haben.
[0069] Es ist weiterhin vorgesehen, dass die Ein/Ausgabelogik 444 des Adressengenerators
44 einen Eingang 4450 für das DMA-busy-Signal, einen Eingang 4451 für das ENC-Signal,
einen Eingang 4444 für den Empfang des Adressengeneratorstartsignals und ein Register
4445 für das zu sendende Adressengeneratorbusysignal aufweist.
[0070] Alternativ kann die Druckersteuerung den o.g. Vergleich des ENC-Signals mit dem Sollwert
Z bereits umfassen, um im Ergebnis des Vergleichs ein Abbruchsignal BO zu erzeugen.
Die E/A-Einheit 454 der Druckersteuerung 45 enthält dann einen BO-Ausgang statt dem
ENC-Ausgang 4560. Die Ein/Ausgabelogik 444 des Adressengenerators 44 muß nur noch
einen BO-Eingang statt dem ENC-Eingang 4451 enthalten, dem das Abbruchsignal BO statt
Zählwert ENC zugeführt wird. Damit entfallen die Steuerleitung 50, der DMA-busy-Eingang
4450 und die Auswerteeinheit 442 im Adressengenerator 44. Eine entsprechende Auswerteeinheit
453 wird statt dessen in der Druckersteuerung 45 realisiert, um den o.g. Vergleich
des ENC-Signals mit dem Sollwert Z durchzuführen und im Ergebnis des Vergleichs ein
Abbruchsignal für den Druckzyklus zu erzeugen, dass dem Adressengenerator 44 zugeführt
wird.
[0071] Die Betriebsweise des Adressengenerator 44 wird nachfolgend genauer beschrieben.
Nach einer Bildung des Adressenlesesignals AR und nach einer Inkrementierung eines
Zählwertes P für die Primitivadresse um den Wert 'Eins' wird der Vergleich im ersten
Vergleicher 4411 vorgenommen, wobei nachdem nacheinander eine Anzahl an Leseadressen
generiert, ein Überschreiten des ersten Sollwertes bzw. ein Überlauf des Zählers 4410
für die Primitivadresse ausgelöst, ein Ladesignal LD ausgegeben und eine Subroutine
zur Ausgabe gestartet wird, der Zähler 4413 für eine Adressengruppe um den Wert 'Eins'
inkrementiert wird, wobei ein Unterschreiten des zweiten Sollwertes beim Vergleich
im zweiten Vergleicher 4414 ein Rücksetzen des Zählwertes P der Primitivadresse auf
den Wert 'Eins' und ein Generieren einer nachfolgenden Leseadresse auslöst, die zu
einer weiteren Adressengruppe zugehörig ist und wobei beim Eintreten einer vorbestimmten
Bedingung ein laufender Druckzyklus vorzeitig abgebrochen wird. Letzteres ist dann
der Fall, wenn einerseits ein Überschreiten des dritten Sollwertes beim Vergleich
im dritten Vergleicher 4421 festgestellt und andererseits von der DMA-Steuerung ein
DMA-busy-Signal mit dem Wert 'Null' abgegeben wird, welches anzeigt, dass alle DMA-Zyklen
zum Zugriff auf den Pixelspeicher 7 beendet sind, die den nächsten Druckzyklus vorbereiten.
[0072] Die Ablaufsteuerung 4401 ist mit einer Berechnungseinheit 4402 für den Parameter
C mit einem Signalgeber 4403 zur Erzeugung eines Schreibsignals WR, mit einem Signalgeber
4404 zur Erzeugung eines Ladesignals LD, mit einem weiteren Signalgeber 4405 zur Erzeugung
eines Druckstartsignals PS zum Veranlassen des Ausdruckens der Pixeldaten aus einem
Datenstring und mit dem Busy-Signalgeber 4416 verbunden. Die Ein/Ausgabelogik 444
weist auch ein Register 4446 für die Abgabe der Primitivadresse AP, ein Register 4447
für das Schreibsignal WR, ein Register 4448 für das Ladesignal LD, ein Register 4449
für die Ausgabe des Adressenlesesignals AR und ein Register 4440 für die Ausgabe des
Druckstartsignals PS auf.
[0073] Die Figur 9 zeigt ein Blockschaltbild einer DMA-Steuerung. Die DMA-Steuerung 43 weist
mindestens eine Ablaufsteuerung 4301, einen Wortzähler 4302, ein Sollwertregister
4303, eine Ein/Ausgabelogik 4304, einen Speicher 4305, einen Vergleicher 4306 und
ein Schieberegister 4307 auf, welche miteinander verschaltet sind, um DMA-Zyklen durchzuführen.
In die Ablaufsteuerung 4301 ist eine weitere Verarbeitungseinheit integriert, mit
welcher die vorgenannten Blöcke 4302 bis 4307 schaltungsmäßig verbunden sind und welche
weitere Vergleicher (nicht gezeigt) aufweist. Um den Signalfluss innerhalb der Druckdatensteuerung
4 und zwischen der DMA-Steuerung 43 und dem Mikroprozessor 6 zu gewährleisten, ist
weiterhin vorgesehen, dass - in nicht gezeigter Weise - die Ein/Ausgabelogik 4304
mindestens einen Eingang 43042 für das empfangene DMA-Start-Signal und Register 43043
bis 43046 für die zu sendenden Select-Signale, ein Register 43047 für das zusendende
DMA-busy-Signal, ein Register 43048 für das zusendende Anforderungssignal DMA
REQ, einen Eingang 43049 für das empfangene Quittungssignal DMA
ACK, einen Eingang 43050 für das Umschaltsignal (SO) und Register 43051 für das Adressenschreibsignal
AW aufweist.
[0074] In der Figur 10 ist ein Flussplan zur DMA-Steuerung dargestellt. Eine solche Subroutine
300 wird aufgerufen, wenn von der Druckersteuerung 45 ein DMA-Startsignal an die DMA-Steuerung
43 ausgegeben wird (Schritt 301). In einem Schritt 302 der Subroutine 300 wird ein
Wortzählwert W auf den Wert 'Null' gesetzt. Ein DMA-busy-Signal wird auf den Wert
'Eins' gesetzt und zur Druckersteuerung 45 übermittelt. In einem weiteren Schritt
303 der Subroutine 300 wird ein DMA-Anforderungssignal DMA
REQ mit einem Wert 'Null' an den Mikroprozessor 6 übermittelt. Letzterer übermittelt
ein Quittungssignal DMA
ACK an die DMA-Steuerung 43. In einem ersten Abfrageschritt 304 der Subroutine 300 wird
beim Nichtempfangen des Quittungssignals DMA
ACK mit einem Wert 'Null' in eine Warteschleife verzweigt. Vom ersten Abfrageschritt
304 der Subroutine 300 wird beim Empfangen des Quittungssignals DMA
ACK mit einem Wert 'Null' zu einem zweiten Abfrageschritt 305 weitergesprungen, wobei
der Zustand des Umschaltsignals SO ermittelt wird. Hat das Umschaltsignal SO den Zustand
gleich Eins, dann wird zu einem dritten Abfrageschritt 306 verzweigt. Anderenfalls
hat das Umschaltsignal SO den Zustand gleich 'Null' und es wird zu einem vierten Abfrageschritt
309 verzweigt. Im dritten Abfrageschritt 306 wird geprüft, ob der Wortzähler einen
Wert W kleiner als zwanzig aufweist. Für diesen Fall (W < 20) wird auf einen Schritt
307 verzweigt. Im Schritt 307 wird das erste Auswahlsignal für den ersten Druckkopf
Sel_1.1. auf den Wert 'Eins' umgeschaltet und das Adressenschreibsignal AW erhält
den aktuellen Wert W des Wortzählers. Im nachfolgenden Schritt 312 werden die Pixeldaten
in die Zwischenspeicher der Pixeldatenänderungseinheiten 41, 42 übernommen. Anschließend
werden im Schritt 313 alle Auswahlsignale auf den Wert 'Null' umgeschaltet und ein
DMA-Anforderungssignal DMA
REQ mit einem Wert 'Eins' an den Mikroprozessor 6 übermittelt.
[0075] Dann wird im Schritt 314 der Wortzählwert W mit dem Wert 'Eins' inkrementiert. In
einem anschließenden Abfrageschritt 315 wird geprüft, ob der Wortzähler einen Wert
W kleiner als vierzig aufweist. Für diesen Fall, in welchem der Wortzähler einen solchen
Wert W < 40 aufweist, wird auf einen Schritt 303 zurückverzweigt. Anderenfalls wird
auf einen Schritt 316 verzweigt, um ein Signal DMA-busy mit dem Wert 'Null' auszugeben,
bevor das Ende (Schritt 317) der Subroutine 300 erreicht ist. Anderenfalls, wenn also
im dritten Abfrageschritt 306 festgestellt wird, dass der Wortzählwert W nicht kleiner
als zwanzig ist, dann wird auf einen Schritt 308 verzweigt, in welchem das erste Auswahlsignal
für den zweiten Druckkopf Sel_2.1. auf den Wert 'Eins' umgeschaltet wird und das Adressenschreibsignal
AW den um den Wert 'Zwanzig' verminderten aktuellen Wert W des Wortzählers erhält.
Im nachfolgenden Schritt 312 werden die Pixeldaten wieder in den Zwischenspeicher
übernommen.
[0076] Im vorgenannten vierten Abfrageschritt 309 wird ebenfalls geprüft, ob der Wortzähler
den vorbestimmten Wert W < 20 aufweist, wobei zuvor im Abfrageschritt 305 festgestellt
wurde, das binäre Umschaltsignal SO den Wert gleich Eins nicht aufweist. Wenn der
Wortzähler den vorbestimmten Wert W < 20 aufweist, dann wird im Schritt 310 das zweite
Auswahlsignal für den ersten Druckkopf Sel_1.2. auf den Wert 'Eins' umgeschaltet und
das Adressenschreibsignal AW erhält den aktuellen Wert W des Wortzählers. Im nachfolgenden
Schritt 312 werden die Pixeldaten wieder in den Zwischenspeicher übernommen.
[0077] Anderenfalls, wenn der Wortzähler den vorbestimmten Wert W < 20 nicht aufweist, wird
vom vierten Abfrageschritt 309 auf einen Schritt 311 verzweigt, in welchem das zweite
Auswahlsignal für den zweiten Druckkopf Sel_2.2 auf den Wert 'Eins' umgeschaltet wird
und das Adressenschreibsignal AW den um den Wert 'Zwanzig' veminderten aktuellen Wert
W des Wortzählers erhält. Im nachfolgenden Schritt 312 werden die Pixeldaten wieder
in den Zwischenspeicher übernommen.
[0078] Die Figur 11 zeigt einen Flussplan zur Adressengenerierung. Die Adressen von gespeicherten
binären Pixeldaten beginnen bei beiden Druckköpfen mit der Startadresse Null, die
auf folgende Weise für das Adressenlesesignal AR generiert wird. Nach dem Start im
Schritt 401 werden im Schritt 402 die Anfangswerte aufgerufen, A := 1 für einen Zähler
der Adressengruppe, P:= 1 für einen Zähler der Primitivadresse AP und C:= 255 für
einen Zähler des Adressenlesesignals AR. Im ersten Abfrageschritt 403 wird gefragt,
ob der Zahlenwert P des Zählers der Primitivadresse gleich dem Wert Eins ist. Wenn
das der Fall ist, wird der zweite Abfrageschritt 404 erreicht. Hier wird ermittelt,
ob der Zähler A den Wert 8 oder 9 oder 15 oder 16 erreicht hat. Ist das der Fall,
dann wird der Schritt 406 ausgeführt und vom Zahlenwert C des Zählers des Adressenlesesignals
AR wird der Zahlenwert 255 subtrahiert. Im nachfolgenden dritten Abfrageschritt 418
wird festgestellt, dass der Zahlenwert C des Zählers des Adressenlesesignals AR größer/gleich
dem Wert Null ist und dann zum Schritt 419 zur Ausgabe des Adressenlesesignals AR
verzweigt. Anderenfalls wird auf den Schritt 420 verzweigt, um zum negativen Zahlenwert
einen Zahlenwert 512 hinzu zu addieren. Nach den Schritten 419 und 420 werden die
Schritte 425, 426 und 427 durchlaufen.
[0079] Im Schritt 425 wird der Zahlenwert für den Zähler der Primitivadresse AP ausgegeben.
Dann wird im Schritt 426 ein Schreibsignal WR für den Eintrag des binaren Pixeldatums
in ein Sammelregister abgegeben. Im Schritt 427 wird der Zahlenwert für den Zähler
der Primitivadresse AP um den Wert Eins inkrementiert. Dann ist ein vierter Abfrageschritt
428 erreicht und es wird festgestellt, dass der Zahlenwert P des Zählers der Primitivadresse
AP den Grenzwert 15 noch nicht erreicht hat. Anschließend wird auf den ersten Abfrageschritt
403 zurückverzweigt.
[0080] Im ersten Abfrageschritt 403 wird nun festgestellt, dass der Zahlenwert P des Zählers
der Primitivadresse nicht gleich dem Wert Eins ist und zum fünften Abfrageschritt
407 verzweigt. Wenn der der Zahlenwert P ungerade ist, dann wird zum sechsten Abfrageschritt
408 verzweigt, in welchem geprüft wird, ob der Zähler der Adressengruppe den Wert
8 oder 15 hat. Ist das der Fall, dann wird auf einen Schritt 409 verzweigt und zum
Zahlenwert C des Zählers des Adressenlesesignals AR wird der Zahlenwert 3 hinzuaddiert.
Anderenfalls wird vom sechsten Abfrageschritt 408 auf einen Schritt 410 verzweigt
und zum Zahlenwert C des Zählers des Adressenlesesignals AR wird der Zahlenwert 47
hinzuaddiert.
[0081] Wenn aber der Zahlenwert P gerade ist, dann wird vom fünften Abfrageschritt 407 zum
siebenten Abfrageschritt 415 verzweigt, in welchem geprüft wird, ob der Zähler der
Adressengruppe den Wert 8 oder 15 hat. Ist das der Fall, dann wird auf einen Schritt
416 verzweigt und zum Zahlenwert C des Zählers des Adressenlesesignals AR wird der
Zahlenwert 41 hinzuaddiert. Anderenfalls wird vom siebenten Abfrageschritt 415 auf
einen Schritt 417 verzweigt und zum Zahlenwert C des Zählers des Adressenlesesignals
AR wird der Zahlenwert 3 subtrahiert.
[0082] Von den vorgenannten Schritten 405, 406, 409, 410, 416 und 417 ausgehend wird der
dritte Abfrageschritt 418 wiedererreicht und festgestellt, ob der Zahlenwert C des
Zählers des Adressenlesesignals AR größer/gleich dem Wert Null ist. Nach den Schritten
419 und 420 werden wieder die Schritte 425, 426 und 427 durchlaufen bis der vierte
Abfrageschritt 428 erreicht wird, in welchem festgestellt wird, ob der Zahlenwert
P des Zählers der Primitivadresse AP den Grenzwert 15 schon erreicht hat. Ist das
der Fall, dann wird auf einen Schritt 429 verzweigt und ein Ladesignal zum Laden des
Schieberegisters abgegeben. Um die Pixeldaten auszudrucken wird im Schritt 430 eine
Subroutine 500 gestartet, in welcher u.a. ein Schiebetaktsignal SCL an das Schieberegister
angelegt wird, um von letzterem seriell die Pixeldaten auszugeben. Anschließend wird
im Schritt 431 der Wert des Zählers der Adressengruppe um den Wert Eins inkrementiert.
Dann wird ein achter Abfrageschritt 432 erreicht, in welchem festgestellt wird, ob
der Zahlenwert A des Zählers der Adressengruppe den Grenzwert 23 schon erreicht hat.
Ist das nicht der Fall, dann wird ein neunter Abfrageschritt 433 erreicht, in welchem
festgestellt wird, ob das DMA-busy-Signal mit dem Wert 'Null' bereits vorliegt und
ob der Zahlenwert ENC des Zählers der Adressengruppe den dritten Sollwert Z überschreitet.
Ist das aber nicht der Fall, dann wird auf den ersten Abfrageschritt 403 zurückverzweigt.
Ist aber der dritten Sollwert Z überschritten, dann wird im Schritt 434 ein Signal
AG-busy := 0 ausgegeben und die Subroutine 400 im Schritt 435 gestoppt.
[0083] In einer alternativen Variante, mit einer entsprechenden Auswerteschaltung in der
Druckersteuerung 45, braucht im neunten Abfrageschritt 433 nur festgestellt werden,
ob ein Abbruchsignal bereits vorliegt.
[0084] In der Figur 12 ist eine Tabelle zur Adressengenerierung dargestellt, deren Adressenlesesignale
AR für 22 Adressengruppen durch die vorgenannte Routine 400 generiert werden. Durch
den Adressengenerator 44 werden in der Praxis die Adressenwerte vorzugsweise als Binärzahl
erzeugt und an die Pixeldatenaufbereitungseinheiten 41, 42 angelegt. Eine Binärzahl
kann bekanntlich beispielweise als Hexadezimalzahl oder Dezimalzahl dargestellt werden,
wodurch die Darstellung weniger Platz benötigt. Nur deshalb und zum besseren Verständnis
sind in der Tabelle Dezimalzahlen eingetragen. Die Routine 400 erzeugt zunächst eine
Primitivadresse P := 1 und eine Binärzahl Null als Adressenlesesignal AR für eine
erste Adressgruppe A := 1. Dann wird nach einander bis zur Primitivadresse P := 14
eine entsprechende Binärzahl als Adressenlesesignal AR für die erste Adressgruppe
A := 1 generiert. Das Adressenlesesignal AR (Address read) wird also für 14 Binärzahlen
je Adressengruppe erzeugt. Nacheinander werden so entsprechende Binärzahlen als Adressenlesesignal
AR für 22 Adressengruppen erzeugt. Durch ein jedes Adressenlesesignal AR wird im Zwischenspeicher
auf ein binäres Pixeldatum zugegriffen.
[0085] Die Treibereinheiten 11 und 12 ignorieren die binäre Pixeldaten, die bei Adressenwerten
A = 1 mit P = 2, A = 7 mit P = 13, A = 8 mit P = 1 und mit P = 14, A = 15 mit P =
1 und mit P = 14, A = 16 mit P = 2 sowie die bei A = 22 mit P = 14 gelesen werden.
Die Adressenwerte größer als 500 müssen als Binärzahl deshalb nicht vollständig erzeugbar
sein. Zum Bereitstellen von binären Pixeldaten werden alle Adressenwerte größer als
299 zwar erzeugt, aber ebenfalls nicht beim Drucken benötigt.
[0086] Die Routine 400 wird solange ausgeführt bis alle Druckbildspalten gedruckt worden
sind oder ein Abbruch erfolgt. Es ist bereits erläutert worden, dass zum Drucken von
Druckbildspalten die Düsenreihen eines Druckkopfes abwechselnd aktiv werden. Während
einer der Zwischenspeicher per direktem Speicherzugriff mit binären Pixeldaten geladen
wird, wird der andere Zwischenspeicher ausgelesen, um aufbereitete Gruppen von binären
Pixeldaten zu den Treibereinheiten zu übertragen. Das wechselseitige Wiederholen der
Routine 400 und weitere anschließende Schritte werden von der Druckersteuerung 45
veranlaßt, welche gesteuert von einem Signal e des Encoders 3 auch die Drucksignale
Print 1 bzw. Print 2 generiert.
[0087] In der Figur 13 ist ein Flussplan der Ausgaberoutine 500 dargestellt. Zu deren Start
wird vom Adressengenerator 44 ein Druckstartsignal PS an die Druckersteuerung 45 abgegeben.
Für einen vollständigen Druckzyklus wird die Ausgaberoutine zweiundzwanzig mal als
Subroutine im Verlauf der Subroutine 400 aufgerufen, um die Schieberegister in der
Druckdatensteuerung 41, 42 und um die Treibereinheiten 11, 12 anzusteuern. Nach dem
Start im Schritt 501 wird ein Schritt 502 erreicht und ein Schietakt SCL generiert,
um die im Schieberegister geladenen Pixeldaten via der seriellen Datenausgabe zur
jeweiligen die Treibereinheit 11, 12 weiterzuschieben. Anschließend wird im Schritt
503 ein Latch-Signal generiert und an die Treibereinheiten 11, 12 ausgegeben. Dann
werden im Schritt 504 die Druck-Signale Print1, Print2 generiert und an die Treibereinheiten
11, 12 ausgegeben und im Schritt 505 wird die Subroutine 500 gestoppt.
[0088] In jedem Datenstring existiert eine erste bzw. zweite Anzahl von Datenwörtern, die
binären Pixeldaten für einen ersten bzw. zweiten Tintenstrahldruckkopf 1, 2 enthalten.
Mit jedem Tintenstrahldruckkopf 1, 2 wird jeweils eine Hälfte einer jeden Druckbildspalte
ausgedruckt, wobei durch die erste und zweite Düsenreihe eines jeden Tintenstrahldruckkopfes
gleichzeitig die Pixel mit ungeraden Nummern mindestens auf der einen Hälfte einer
ersten Druckbildspalte und die Pixel mit geraden Nummern mindestens auf der einen
Hälfte einer zweiten Druckbildspalte gedruckt werden. Die erste bzw. zweite Anzahl
von Datenwörtern im Datenstring enthält jeweils die binären Pixeldaten für beide Düsenreihen
des ersten bzw. zweiten Tintenstrahldruckkopfes, wobei in jedem Datenwort eines jeden
Datenstrings nur die ersten bzw. zweiten Pixeldaten zum Drucken einer ersten bzw.
weiteren Druckbildspalte enthalten sind, so dass erst nach dem Ausdrucken der Pixeldaten
zum Beispiel dreier Datenstrings oder mindestens eines weiteren Datenstrings eine
der Druckbildspalten vollständig gedruckt vorliegt. Aus jedem Datenstring wird die
jeweils an erster Stelle in Transportrichtung liegende Düsenreihe zeitversetzt mit
den binären Pixeldaten für die Pixel mit ungeraden Nummern der ersten Druckbildspalte
versorgt, während die jeweils an zweiter Stelle in Transportrichtung liegende Düsenreihe
bereits mit den binären Pixeldaten für die Pixel mit geraden Nummern der nachfolgenden
weiteren Druckbildspalte versorgt wird. Jede Druckbildspaltenhälfte wird durch die
erste und zweite Düsenreihe eines jeden Tintenstrahldruckkopfes ausgedruckt, wobei
jede Druckbildspaltenhälfte zeitlich nach dem Drucken mit der jeweils zweiten Düsenreihe
vervollständigt wird, durch ein Drucken mit der jeweils ersten Düsenreihe.
[0089] Die erste Druckbildspalte wird also von der zweiten Druckbildspalte in Transportrichtung
beabstandet ausgedruckt, wobei beide Druckbildspalten bei einigen Druckkopftypen weiter
und bei anderen Typen sehr nahe beieinander liegen. Zur Erhöhung der horizontalen
Druckbildauflösung, insbesondere auf 600 dpi, ist es vorgesehen, dass innerhalb des
Abstandes weitere Druckbildspalten in Transportrichtung liegen. Damit erhöht sich
entsprechend die Anzahl U an Datenstrings, welche im Pixelspeicher für ein Druckbild
gespeichert sind. Falls die in der Druckersteuerung 45 bzw. im Adressengenerator 44
gespeicherten Parameter Z und Y größere Werte haben, als im vorgenannten Ausführungsbeispiel
genannt wurden, erfolgt der Abbruch von laufenden Druckzyklen erst dann, nachdem eine
noch größere Anzahl von aufeinanderfolgenden Encoderimpulsen mit verringerten zeitlichen
Abstand aufgetreten sind. Es muß dann ein größerer Versatz - als gezeigt - in Kauf
genommen werden. Pixel, die zu einer Druckspalte gehören, würden dann auch über eine
entsprechend größere Anzahl an Druckspalten verteilt gedruckt werden.
[0090] Die in den Blockschaltbilder der Figuren 2, 3, 4, 8 und 9 gezeigten Blöcke sind in
der konkreten Ausführungsform in einer positiven digitalen Logik ausgeführt. Da die
Logik-Art prinzipiell beliebig wählbar ist, existiert eine Vielzahl an geeigneten
Ausführungsvarianten. Die Hardware-Realisierung ist in einer ansich bekannten Weise,
beispielsweise durch ein ASIC oder vorteilhaft durch ein FPGA (Field Programmable
Gate Array) möglich. Die Erfindung ist nicht auf die vorliegenden Ausführungsform
beschränkt. So können offensichtlich weitere andere Ausführungen der Erfindung entwickelt
bzw. eingesetzt werden, die vom gleichen Grundgedanken der Erfindung ausgehend, die
von den anliegenden Ansprüchen umfasst werden.
1. Verfahren zur Reduzierung von Druckerfehlern während des Druckens auf ein bewegtes
Postgut in einem Postbearbeitungsgerät,
gekennzeichnet durch die Schritte:
a) Erzeugen von Encoderimpulsen entsprechend der Relativbewegung zwischen Drucker
und Druckträger,
b) Vorwärts- und Rückwärtszählen zur Auswertung eines Zustandes mit verringerten zeitlichen
Abstandes benachbarter Encoderimpulse,
c) Durchführung von direkten Speicherzugriffen (DMA) für einen Datenstring von binären
Pixeldaten und
d) Durchführung eines Druckzyklusses für den vorgenannten Datenstring, wobei während
des Druckzyklusses weitere direkte Speicherzugriffe (DMA) für einen nächsten Datenstring
erfolgen und wobei nach der Durchführung der direkten Speicherzugriffe (DMA) für den
nächsten Datenstring und in Abhängigkeit vom zeitlichen Abstand der Encoderimpulse
einer Anzahl von aufeinanderfolgenden Encoderimpulsen der Druckzyklus vollständig
ausgeführt wird, solange der Mittelwert der Encoderperiode die eingestellte Dauer
eines Druckzyklusses nicht unterschreitet oder wobei bei verringertem zeitlichen Abstand
der Encoderimpulse der Anzahl von Encoderimpulsen die Durchführung des Druckzyklusses
zum Ausdrucken von binären Pixeldaten eines vorherigen Datenstrings vorzeitig abgebrochen
wird.
2. Verfahren, nach Anspruch 1, gekennzeichnet dadurch, dass in Abhängigkeit vom verringerten zeitlichen Abstand der Encoderimpulse aus einer
Anzahl von Encoderimpulsen der Abstand der Druckzyklen voreinander verringert wird
bis der nachfolgende Druckzyklus zum Ausdrucken von binären Pixeldaten eines nachfolgenden
Datenstrings unmittelbar an einen vollständig ausgeführten Druckzyklus zum Ausdrucken
von binären Pixeldaten eines vorherigen Datenstrings anschließt, wobei das Verringern
in dem Maße erfolgt, wie die Encoderimpulse den Druckzyklen vorauseilen.
3. Verfahren, nach Anspruch 1, gekennzeichnet dadurch, dass für den unverkürzten zeitlichen Abstand der Encoderimpulse eine Einstellung des Druckzyklusses
auf eine vorbestimmte Zeitdauer zwischen zwei positiven Encoderflanken so erfolgt,
dass die einzelnen Druckzyklen voneinander beabstandet sind und dass zum Feststellen
eines verkürzten zeitlichen Abstand der Encoderimpulse ein Inkrementieren eines Zählwertes
bei jedem Encoderimpuls und ein Dekrementieren des Zählwertes bei jedem Beginn eines
Druckzyklusses vorgenommen wird sowie dass einerseits unter einer Bedingung und andererseits
bei einem Zählwert, der einen vorbestimmten Sollwert (Z) überschreitet, der laufende
Druckzyklus vorzeitig abgebrochen wird und ein neuer Druckzyklus beginnt, wobei die
vorgenannte Bedingung darin besteht, dass alle direkten Speicherzugriffe (DMA) auf
den Pixelspeicher (7) beendet sind, die den nächsten Druckzyklus vorbereiten.
4. Anordnung zur Reduzierung von Druckfehlern während des Druckens in einem Postbearbeitungsgerät,
mit einer Druckdatensteuerung (4) zur Pixeldatenaufbereitung während des Druckens
auf ein bewegtes Postgut mit mindestens einem Druckkopf, die über einen Bus (5) mit
mindestens einem Mikroprozessor (6), mit einem Pixelspeicher (7) und mit einem Encoder
(3) verbunden ist, gekennzeichnet dadurch, dass die Druckdatensteuerung (4) eine Auswerteeinheit (442 bzw. 453) und eine Logik (452)
zur Fehlerreduzierung von Druckerfehlern aufweist, welcher Encoderimpulse (e) zugeführt
werden und die einen rücksetzbaren Encodertaktzähler (4523) enthält, dessen Zählwert
innerhalb eines Zählbereiches kleiner bis gleich einem oberen Grenzwert (Y) mit jeder
Vorderflanke eines Encoderimpulses inkrementiert wird, dessen Zählwert mit jedem Druckzyklusstart
dekrementiert wird und der ausgangsseitig einen digitalen Zählwert (ENC) abgibt, wobei
letzterer von der Auswerteeinheit (442 bzw. 453) hinsichtlich der Überschreitung eines
Sollwertes (Z) ausgewertet wird, wobei bei Nichtüberschreitung des Sollwertes (Z)
jeder Druckzyklus vollständig ausgeführt und bei Überschreitung des Sollwertes (Z)
ein laufender Druckzyklus unter der Bedingung abgebrochen wird, dass alle direkten
Speicherzugriffe (DMA) auf den Pixelspeicher (7) beendet sind, die den nächsten Druckzyklus
vorbereiten.
5. Anordnung, nach Anspruch 4, gekennzeichnet dadurch, dass die Druckdatensteuerung (4) eine DMA-Steuerung (43), einen Adressengenerator (44),
eine Druckersteuerung (45) und die Logik (452) zur Fehlerreduzierung von Druckerfehlern
aufweist, der Encoderimpulse (e) zugeführt werden und die ausgangsseitig einen digitalen
Zählwert (ENC) an einen Adressengenerator (44) abgibt und dass der Adressengenerator
(44) eine Auswerteeinheit (442) zum Abbruch eines laufenden Druckzykluses aufweist,
wobei Auswerteeinheit (442) einen Vergleicher (4421) und ein Register (4422) zum Speichern
des Sollwertes (Z) enthält.
6. Anordnung, nach den Ansprüchen 4 bis 5, gekennzeichnet dadurch, dass die Logik (452) zur Fehlerreduzierung von Druckerfehlern einen rücksetzbaren Encodertaktzähler
(4523) einschließt, dessen Zählwert innerhalb eines Zählbereiches kleiner bis gleich
einem oberen Grenzwert (Y) mit jeder Vorderflanke eines Encoderimpulses inkrementiert
wird, dessen Zählwert mit jedem Druckzyklusstart dekrementiert wird und dessen Ausgänge
mit einem ersten Vergleicher (4524), welcher beim Erreichen des Null-Zählwertes ein
Dekrementieren verhindert und einem zweiten Vergleicher (4525) verbunden sind, welcher
das Erreichen des oberen Grenzwertes (Y) überprüft und der ausgangsseitig den entsprechenden
Zählwert liefert und der mit dem Adressengenerator (44) in betriebsmäßiger Verbindung
steht, wobei letzterer den laufenden Druckzyklus abbricht, wenn alle Pixeldaten für
den nächsten Druckzyklus via direkte Speicherzugriffe (DMA) bereits in einen Zwischenspeicher
einer Pixeldatenaufbereitungseinheit (41, 42) geladen wurden und der im Zählbereich
liegende Zählwert des Encodertaktzählers einen vorbestimmten Sollwert (Z) überschreitet.
7. Anordnung, nach den Ansprüchen 4 bis 6, gekennzeichnet dadurch, dass die Logik (452) zur Druckerfehlerreduzierung ein erstes und zweites AND-Gatter (4521,
4522) aufweist, die ausgangsmäßig mit den Eingängen eines Encodertaktzählers (4523)
verbunden sind, dass der Encodertaktzähler (4523) einen ersten Eingang (CLK_down),
einen zweiten Eingang (CLK_up) und einen dritten Eingang (ENC_RESET) für ein Rücksetzsignal
(Encoderzähler_Reset) aufweist, dass ein Verringerungs-Signal (DEC-ENC) über einen
ersten Eingang des ersten AND-Gatters (4521) zugeführt wird, mit dessen zweiten Eingang
der Ausgang (K) des ersten digitalen Vergleichers (4524) verbunden ist, dass ein Encodersignal
(e) seriell über einen ersten Eingang des zweiten AND-Gatters (4522) zugeführt wird,
mit dessen zweiten Eingang der Ausgang (L) des zweiten digitalen Vergleichers (4525)
verbunden ist, dass an den jeweils ersten Eingängen des ersten und zweiten digitalen
Vergleichers (4524, 4525) der Zählwert anliegt, der an den Ausgängen (Q1, Q2, Q3,
Q4) des Encodertaktzählers (4523) als n-Bit breiter Binärwert ausgegeben wird, und
dass an den zweiten Eingängen des ersten digitalen Vergleichers (4524) ein Vergleichswert
'Null' und an den zweiten Eingängen des zweiten digitalen Vergleichers (4525) ein
oberer Sollwert (Y) als n-Bit breites Datensignal anliegt.
8. Anordnung, nach den Ansprüchen 4 bis 7, gekennzeichnet dadurch, dass der Encodertaktzählers (4523) als n-Bit-Zähler ausgeführt ist.
9. Anordnung, nach den Ansprüchen 4 bis 7, gekennzeichnet dadurch, dass über einen ersten Block (451) der Druckersteuerung (45) der Druckdatensteuerung (4)
ein gefiltertes Encodersignal (e), das Rücksetzsignal (Encoderzähler_Reset) und das
Verringerungs-Signal (DEC-ENC) sowie der obere Sollwert (Y) geliefert wird.
10. Anordnung, nach den Ansprüchen 4 bis 9, gekennzeichnet dadurch, dass die Druckdatensteuerung (4) als anwendungsspezifische Schaltung bzw. programmierbare
Logik realisiert wird.