-
Die
vorliegende Erfindung bezieht sich auf Strichcode-Scanner. Insbesondere
bezieht sich die Erfindung auf Verfahren und Vorrichtungen zum Aufnehmen
und Aufzeichnen von Zeit- und Spiegelpositions-Informationen während eines
Strichcode-Scans.
-
Strichcode-Scanner
werden gegenwärtig
in einer Vielzahl von Anwendungen verwendet, und tragen dazu bei,
die Effizienz und die Genauigkeit überall dort, wo sie eingesetzt
werden, zu erhöhen.
Die Verwendung von Strichcode-Scannern in Transaktionen des Einzelhandels
verringert die Zeit für
das Eingeben einer Transaktion und verringert die Wahrscheinlichkeit
eines Fehlers während
einer manuellen Eingabe von Daten. Wenn sie sachgerecht eingesetzt
werden, erlauben Strichcode-Scanner eine erhöhte Effizienz beim Einsatz
von Arbeitskräften,
eine erhöhte
Kundenzufriedenheit wegen einer Verringerung von Wartezeiten und
unzutreffenden Abrechnungen und eine verbesserte Qualität des Ablaufs, die
aus einer Reduzierung von Auszeichnungsfehlern herrührt. Das
Scannen von Strichcodes erlaubt zudem ein sofortiges, genaues Aktualisieren
des. Inventars, was zu einer stark verbesserten Effizienz der Abläufe beiträgt.
-
Heutige
Strichcode-Scanner zeigen eine recht große Häufigkeit fehlgeschlagener Scans.
Das erfordert es, dass der jeweilige Gegenstand erneut gescannt
oder dass der Code des entsprechenden Gegenstandes manuell eingegeben
wird. Das verlangsamt den Scan-Vorgang und vermindert dessen Effizienz.
-
Um
die Scan-Effizienz zu verbessern und die Zahl der fehlgeschlagenen
Scans zu vermindern, nehmen heutige Hochleistungs-Strichcode-Scanner Teile
von Scans von Strichcodes neben kompletten Scans auf. Wenn lediglich
Teile eines Scans oder Fragmente eines Strichcodes zur Verfügung stehen, wird
der Versuch unternommen, einen gültigen Strichcode
aus diesen zu rekonstruieren.
-
In
Strichcode-Scannern nach dem heutigen Stand der Technik werden lediglich
numerische Informationen aus dem Strichcode selbst aufgenommen. Heutige
Scanner sind, in andern Worten, nicht in der Lage, Informationen über die
Position des Strichcodes oder die Geschwindigkeit oder die Zeitabfolge des
Scans aufzunehmen. Die Information, die für eine Rekonstruktion von Teilen
eines Scans zur Verfügung
steht, ist daher begrenzt, was die Zahl erfolgreicher Strichcode-Rekonstruktionen
aus Teilen von Scans reduziert.
-
Strichcode-Scanner
umfassen typischerweise einen Laserstrahl, der durch Spiegel und/oder
Linsen auf eine zu scannende Fläche
oder ein zu scannendes Objekt gerichtet ist. Licht vom Laser wird
von dieser Fläche
oder diesem Volumen aufgenommen und unter Verwendung vergleichbarer
Mittel zu einem Fotodetektor geleitet. Das Signal vom Fotodetektor
wird durch eine Rechnereinheit analysiert, die versucht, gültige Strichcodes
aus den ankommenden Signalen zu konstruieren. Beispielsweise führt bei
einer Supermarktkasse der Kassierer jeden zu kaufenden Gegenstand
an einem Scanner, wie beispielsweise dem NCR 7875 Scannermodell,
das von der NCR Corporation, Dayton, Ohio, USA erhältlich ist, vorbei.
-
Es
würde die
Fähigkeit
von Strichcode-Scannern, Informationen zu erfassen und Informationen aus
Teilen eines Scans zu rekonstruieren, deutlich verbessern, wenn
der Scanner die Zeit, innerhalb derer das Strichcodefragment aufgenommen
wurde und den Winkel der drehbaren Spiegelanordnung zu dem Zeitpunkt,
an dem die Daten aufgenommen wurden, erfassen würde. Das würde die verfügbaren Informationen
deutlich vergrößern, aus
der ein vollständiger
Strichcode rekonstruiert werden könnte. Beispielsweise könnte so
die vermutliche Position des Etiketts, sowie die Geschwindigkeit
und die Richtung der Bewegung des Etiketts ermittelt werden, so dass
die Effizienz des Scan-Vorgangs deutlich verbessert würde.
-
Darüber hinaus
existiert eine große
Vielzahl an Möglichkeiten
für Zweideutigkeiten
und Störungen während des
Scanners von Strichcodes. Wenn beispielsweise zwei Gegenstände zum
gleichen Zeitpunkt in das Gesichtsfeld des Scanners gelangen, ist es
nicht möglich,
beide von ihnen zu scannen. Es ist vielmehr sehr viel wahrscheinlicher,
dass der Scanner nicht in der Lage sein wird, die Informationen
von beiden Strichcodes getrennt aufzulösen, und der Scan-Vorgang fehlschlagen
wird. Das Hinzunehmen von Positions- und Zeitabfolge-Informationen
würde die
Wahrscheinlichkeit erhöhen,
dass zwei Objekte unterschieden und erfolgreich erkannt werden können.
-
Es
besteht daher im Stand der Technik ein substantielles Bedürfnis nach
einem Strichcode-Scanner, der Zeitabfolge- und Spiegelwinkel- oder
Positions-Informationen während
eines Scans aufnimmt und speichert, um die Informationen zum Erhöhen der
Wahrscheinlichkeit eines erfolgreichen Scans zu erhöhen.
-
Die
GB-A-2310066 offenbart einen Strichcode-Scanner nach dem Oberbegriff
der unabhängigen
Ansprüche
der vorliegenden Erfindung. Insbesondere offenbart dieses Dokument
einen Strichcode-Positionsdetektor, der eine optische Anordnung mit
einem drehbaren Abschnitt, der an einen Motor angekoppelt ist, auf weist.
Die Position des Motors wird durch einen Motor-Referenzpositionssensor
bestimmt, der bestimmt, wann sich der Motor in einer Referenzposition
befindet, und umfasst einen Zeitmesser, der präzise die Zeit bestimmt, die
vergangen ist, seitdem der Motor in der Referenzposition war. Der
Strichcode-Scanner beinhaltet zudem ein einzelnes Videosystem zum
Aufnehmen von Strichcode-Scan-Informationen und einen Prozessor,
der in der Lage ist, die Position eines Strichcodes aus den Motorpositions-Informationen
und den Strichcode-Scan-Informationen zu bestimmen.
-
Die
US-A-5 633 488 offenbart einen Strichcode-Scanner, der ausgebildet
ist zum Ermöglichen einer
Bewertung der Qualität
von Strichcodedaten mit hoher Geschwindigkeit durch Verarbeiten
eines Reflexionsprofil-Signals eines Scans, der von einer Scanner-Einheit
erzeugt wurde. Das Reflexionsprofil des Scans wird verarbeitet,
um den höchsten
positiven Peakwert und den größten negativen
Peakwert für
jedes Element des Strichcodes zu erhalten. Die vorstehend erwähnten Peakwerte
werden weiter verarbeitet, um einen Kennwert bezüglich der Qualität des Strichcodes
zu erhalten.
-
Die
US-A-5 510 605 offenbart einen Strichcode-Scanner mit einer Vielzahl
von Halbleiterlaserdioden, die angeordnet sind, um Scan-Muster zum Lesen
eines Strichcodes bereitzustellen.
-
Die
US-A-5 361 158 offenbart einen optischen Scanner mit mehreren Quellen,
der eine Mehrzahl von Scan-Lichtquellen verwendet, um die Gesamtschärfentiefe
und die Dichte des Gesamt-Scan-Rasters
zu erhöhen.
In einer ersten Ausführungsform
weisen die Laser verschiedene Wellenlängen auf und sind alle angeschaltet.
Deren individuelle Schärfentiefen
sind aneinander angrenzend oder auf überlappende Art und Weise zueinander
orientiert. In einer zweiten Ausführungsform weisen die Laser
alle die gleiche Wellenlänge
auf und werden einzeln und aufeinander folgend aktiviert. Beide
Ausführungsformen
verwenden kollimierende und fokussierende Optiken, um Scan-Strahlen herzustellen, verwenden
Sammeloptiken, um von einem ein Strichcode-Etikett aufweisenden
Artikel reflektiertes Licht zu sammeln und Verarbeitungsschaltkreise zum
Erzeugen von Signalen, die Informationen, die auf den Intensitäten des
reflektierten Lichts beruhen, über
die Artikel zu erzeugen. Die erste Ausführungsform verwendet zudem
Filteroptiken zum Separieren der individuellen Wellenlänge des
reflektierten Lichts. Jede Wellenlänge von reflektiertem Licht
wird durch ihren eigenen Kanal innerhalb der Verarbeitungsschaltkreise
verarbeitet. Die zweite Ausführungsform verwendet
eine Modulation und Verarbeitungsschaltkreise zum Ein- und Ausschalten
der jeweiligen Quelle. Zum Dekodieren wird ein einzelner Kanal verwendet.
-
Gemäß einem
ersten Aspekt betrifft die vorliegende Erfindung einen Positionsdetektor
für einen Strichcode-Scanner,
wobei der Strichcode-Scanner eine optischen Anordnung, die einen
drehbaren Abschnitt aufweist, und einen Motor, der mit der optischen
Anordnung verbunden ist, umfasst, und wobei der Detektor ausgebildet
ist, um die Zeitabfolge eines Scans eines Strichcodes zu erfassen,
der vom Strichcode-Scanner gelesen wird und einen Winkel des drehbaren
Abschnitts der optischen Anordnung zum Zeitpunkt des Scans zu bestimmen,
wobei der Positionsdetektor umfasst: einen Motor-Referenzpositionssensor
zum Ermitteln eines Motor-Referenzpositionssignals, wenn der Motor
sich in einer Referenzposition befindet; einen Zeitmesser zum genauen Messen
der Zeit, die seit dem Zeitpunkt vergangen ist, zu dem der Motor
in der Referenzposition war; ein Video-System zum Aufnehmen von
Strichcode-Informationen von einem Strichcode-Scan und einen Prozessor
zum Aufnehmen von Informationen vom Zeitmesser über die seit dem Zeitpunkt
ver gangene Zeit, zu dem der Motor in der Referenzposition war, und des
Motor-Referenzpositionssignals, wobei der Prozessor den Drehwinkel
des Motors zu dem Zeit-punkt berechnet, an dem die Strichcode-Information
empfangen wurde, dadurch gekennzeichnet, dass der Positionsdetektor
zusätzlich
ein zweites Video-System, das parallel zum ersten Video-System arbeitet, und
einen analogen Video-Prozessor umfasst, der ausgebildet ist, um
verschiedene Filter und Schwellenwerte auf die Signale der beiden
Video-Kanäle
anzuwenden, umfasst, und wobei das Video-System zusätzlich eine
Intervallmessschaltung zum Messen des Intervalls zwischen dem Anfang
und dem Ende von Segmenten eines Strichcodes umfasst, und wobei
das Video-System zusätzlich
einen Filter umfasst, der ausgebildet ist, um einen Strichcode-Scan
in Abhängigkeit
von dem Verhältnis
verschiedener benachbarter Intervalle, die während eines Scans aufgezeichnet
wurden, zu akzeptieren oder zurückzuweisen.
-
Gemäß einem
zweiten Aspekt betrifft die Erfindung ein Verfahren zum Bestimmen
der Zeitabfolge eines Strichcode-Scans und der Winkelposition eines
drehbaren Abschnitts einer optischen Anordnung zum Zeitpunkt des
Scans, wobei die optische Anordnung an einem Motor angebracht und
durch diesen gedreht wird, wobei der Motor eine zugeordnete Pulserzeugungseinheit
aufweist, die immer dann einen Referenzpuls erzeugt, wenn der Motor durch
eine Referenzposition dreht, wobei das Verfahren die folgenden Schritte
umfasst: Überwachen
der Zeit, die seit dem Zeitpunkt vergangen ist, zu dem der Motor
die Referenzposition erreicht hatte; Scannen eines Strichcodes und
Aufnehmen von Strichcode-Informationen eines Strichcode-Scans mit
einem Video-System; für
jeden Scan Aufnehmen der Daten über
die vergangene Zeit und Verknüpfen
der Daten zur vergangenen Zeit mit dem Scan und Verarbeiten der
Daten zur vergangenen Zeit zum Bestimmen der Winkelposition des
Motors und der Zeit des Scans, gekennzeichnet durch den Schritt
des Aufnehmens von Strichcode-Informationen von einem Strichcode-Scan
mit einem zweiten Video-System, das parallel zu dem ersten Video-System arbeitet und
Verwenden eines analogen Video-Präprozessors zum Bereitstellen
verschiedener Filter- und Schwellenwertanwendungen für die Signale
der beiden Videokanäle
und Messen des Intervalls zwischen einem Anfang und einem Ende eines
Segments eines Strichcodes unter Verwendung einer Intervall-Messschaltung
und Akzeptieren oder Zurückweisen
eines Strichcode-Scans in Abhängigkeit
von dem Verhältnis
verschiedener benachbarter Intervalle, die während eines Scans aufgenommen
wurden, unter Verwendung eines Filters.
-
Durch
das Rekonstruieren der wahrscheinlichen Position eines Strichcode-Etiketts
in Zeit und Raum zum Zeitpunkt des Scannens kann eine große Anzahl
von Vorteilen erreicht werden. Beispielsweise kann mehr als ein
Strichcode-Etikett zur gleichen Zeit gelesen werden, unabhängig davon,
ob die beiden Etiketten an dem gleichen Gegenstand oder an zwei verschiedenen
Gegenständen
angebracht sind, und sogar dann, wenn beide die gleichen Strichcodedaten
aufweisen. Die Zeit- und Raumdaten erlauben es, zwischen zwei Gegenständen der
gleichen Art, die schnell hintereinander oder sogar im Wesentlichen gleichzeitig
gescannt werden, und einem schnell auftretenden doppelten Lesen
des gleichen Gegenstands zu unterscheiden.
-
Die
Rekonstruktion der Position eines Strichcode-Etiketts in Zeit und
Raum erlaubt das Bestimmen der Geschwindigkeit und der Richtung
des Etiketts, während
es über
den Scanner geführt
wird. Das erlaubt es, den Strichcode-Scanner so zu programmieren,
dass er dem Kassierer eine Rückmeldung
gibt, um so beim Selbsttraining bezüglich der Effizienz im Umgang
mit dem Strichcode-Scanner Unterstützung zu geben. Die Zeit- und
Raumdaten ermöglichen
es zudem, verbesserte Messdaten über erfolgreiches
Lesen im ersten Versuch zu erhalten, was es dem Manager eines Kaufhauses
erlaubt, festzustellen, welche Kassierer die effizientesten sind und
welche zusätzlichen
Trainings bedürfen.
-
Zusätzlich werden
eine verbesserte Sicherheit beim Kassieren und eine höhere Genauigkeit beim
Kassieren erreicht. Die Wahrscheinlichkeit, dass ein falscher Code
aus Teilen von Scans von zwei verschiedenen Etiketten rekonstruiert
wird, ist signifikant geringer. Etiketten, die die Scan-Zone verlassen
und danach zurückkehren,
können
erkannt und ignoriert werden. Wird beispielsweise ein Gegenstand
von rechts nach links über
den Strichcode-Scanner bewegt und ein guter Scan erhalten, und wird
er dann von links nach rechts in die Scan-Zone und danach zurück nach links und aus der Scan-Zone
hinaus bewegt, so kann das Etikett, das zum zweiten Mal gescannt
wird, ohne Probleme ignoriert werden. Der vorliegende Ansatz kann
daher verwendet werden, um das doppelte Scannen unter diesen und
unter anderen Umständen
zu vermeiden. Des Weiteren kann die Verzögerung zwischen zwei Scans
von Gegenständen
reduziert oder vollständig eliminiert
werden.
-
Des
Weiteren können
Daten, die durch Multifilterschaltungen aufgenommen werden, vorteilhaft erfasst
und korreliert werden. Daten, die unter bestimmten Winkeln oder
für bestimmte
Flächen
der Scan-Zone aufgenommen wurden, können ignoriert werden, wenn
die zugehörigen
Daten nicht in anderen Abschnitten der Scan-Zone detektiert werden, um
Fehl-Scans zu vermeiden, wie beispielsweise Scans auf dem Förderband.
Filtermoden für
bestimmte Bereiche der Scan-Zone können selektiv verändert werden.
Durch das Aufzeichnen von Zeit- und Positionsdaten kann daher eine
Vielzahl von substantiellen Verbesserungen erreicht werden.
-
Eine
Ausführungsform
der vorliegenden Erfindung wird nun exemplarisch mit Bezug auf die
beigefügten
Zeichnungen beschrieben, wobei:
-
1 ein Diagramm ist, das einen Strichcode-Scanner
darstellt, der die Verwendung von aufgenommenen Zeit- und Spiegelwinkeldaten
gemäß der vorliegenden
Erfindung verkörpert,
-
2 ein Diagramm ist, das eine Regel- bzw.
Steuer- und Positionsdaten-Erfassungsschaltung gemäß einem
Aspekt der vorliegenden Erfindung zum Regeln bzw. Steuern eines
Strichcode-Scanners und zum Erhalten von Zeitabfolge- und Spiegelwinkeldaten
darstellt,
-
3 ein
Diagramm ist, das eine Videoschaltung darstellt, die verwendet wird,
um Spiegelwinkeldaten in einem Strichcode-Scanner gemäß einem
Aspekt der vorliegenden Erfindung zu erhalten, und
-
4 ein
Flussdiagramm ist, das ein Verfahren zum Erhalten von Zeitabfolge-
und Spiegelwinkeldaten gemäß einem
Aspekt der vorliegenden Erfindung darstellt.
-
1 ist ein Diagramm, das einen Strichcode-Scanner 10 zeigt,
der die Verwendung von aufgenommenen Zeit- und Spiegelwinkeldaten
gemäß der Lehre
der vorliegenden Erfindung enthält.
Der Strichcode-Scanner 10 beinhaltet vorzugsweise einen
ASIC (application specific integrated circuit, einer Anwendung angepasster,
integrierter Schaltkreis) 12. Der ASIC 12 beinhaltet
eine Master-Regel- bzw. Steuerschaltung, eine erste Videoschaltung 17 und
eine zweite Videoschaltung 19, die detaillierter im Zusammenhang
mit den 2 und 3 unten erläutert wird.
Der dargestellte Strichcode-Scanner 10 beinhaltet bevorzugt
des Weiteren eine Messanordnung 16, auf die ein Objekt,
beispielsweise eine variable Masse 21 abgelegt werden kann,
um sie zu wägen.
Die variable Masse 21 kann beispielsweise eine Tüte mit Äpfeln oder
anderen Produkten sein, die nach Kilogramm von einem Obst- und Gemüsegeschäft verkauft
wird. Die Messanordnung 16 stellt dem ASIC 12 Gewichts-Informationen
bereit.
-
Der
Strichcode-Scanner 10 umfasst zudem bevorzugt eine Messwertanzeige
und eine Kommunikationsschaltung 18, eine erste dezentrale
Kommunikationsschaltung 20, eine zweite dezentrale Kommunikationsschaltung 22,
eine Messwert-zu-Host-Terminal-Übermittlungsschaltung 24 und
eine Scanner/Messwert-zu-Host-Terminal-Übermittlungsschaltung 26,
wobei jede der Schaltungen 18 bis 26 dem ASIC 12 Signale
bereitstellt, wobei das Signal von jeder der Schaltungen 18 bis 26 zunächst durch
einen Spannungsregler (line conditioner) 28 läuft. Der
ASIC 12 stellt einem Laser 29 zudem ein Laser-Regel- bzw.
-Steuersignal bereit und stellt zudem einem Motor 30 Ansteuerbefehle
bereit. Der Motor 30 umfasst eine Motorwelle 30a,
an die eine optische Anordnung 32 angebracht ist, die daran
angebrachte Spiegel umfasst, die sich drehen, wenn sich die Motorwelle 30a dreht.
Zusätzlich
angebrachte Linsen und Spiegel können
ggf. eingesetzt werden, um die gewünschte Anzahl und Orientierung
von Scan-Linien auf bekannte Art und Weise zu erzeugen. Während die
vorliegende Erfindung zum Beispiel mit einer Vielzahl bestehender
Strichcode-Scanner und Strichcode-Scannern, die noch nicht entworfen
sind, verwendet werden kann, kann die Erfindung in einer zum jetzigen
Zeitpunkt bevorzugten Ausführungsform
auf geeignete Art und Weise als Aufrüstung zum NCR-Strichcode-Scanner,
Modell 7875 eingesetzt werden.
-
Da
der Motor 30 in Abhängigkeit
von Signalen vom ASIC 12 angetrieben ist, wird die optische Anordnung 32 durch
den Motor 30 bewegt. Wenn Licht vom Laser 29 emittiert
wird, tritt das Licht durch die optische Anordnung 32,
um auf ein Strichcode-Etikett 34 zu
treffen, wenn ein Strichcode-Etikett 34 innerhalb des Gesichtsfelds
des Strichcode-Scanners vorhanden ist.
-
Wenn
das Licht ein Strichcode-Etikett 34 trifft, wird das Licht
zur optischen Anordnung 32 zurückreflektiert und von der optischen
Anordnung 32 gesammelt. Es wird ein elektrisches Signal
aus dem gesammelten optischen Signal erzeugt und an eine analoge
Video-Präprozessorschaltung 52 weitergeleitet,
die dem ASIC 12 ein digitales VIDEO0- und VIDEO1-Signal
bereitstellt.
-
Der
Strichcode-Scanner 10 umfasst zudem einen Mikroprozessor 42.
Interrupts, Verarbeitungssignale, Universal Asynchronous Receiver
Transmitter (UART-) Signale und andere Input-/Output-(I/O)-Signale
werden zwischen dem ASIC 12 und dem Mikroprozesor 42 ausgetauscht.
Der Strichcode-Scanner 10 beinhaltet des Weiteren eine
Input-/Output-Baugruppe 40, die Frontpanelschalter, einen
Fotodetektor und LEDs umfasst. Der Mikroprozessor 42 kann Einstellwerte
von den Frontpanelschaltern erhalten, indem er ein Signal, das die
Schalterstellung wiedergibt, von der Input-/Output-Baugruppe 40 empfängt. Der
Mikroprozessor setzt den Status der LEDs auf der Input/Output-Baugruppe 40 durch Übermitteln
eines LED-Statussignals an die Input-/Output-Baugruppe 40.
-
Der
Strichcode-Scanner 10 beinhaltet bevorzugt zudem Einrichtungen
zur Tonerzeugung, die eine Tonausgangsschaltung 48 und
einen Lautsprecher 50 beinhaltet. So kann beispielsweise
ein Piepen einen geglückten
Strichcode-Lesevorgang anzeigen. Es kann auch eine Rückmeldung,
wie beispielsweise eine Trai ningsrückmeldung, die auf Zeit- und
Positionsdaten beruht, bereitgestellt werden. Der Strichcode-Scanner 10 beinhaltet
zudem einen Schreib-/Lesespeicher (random access memory, RAM) 44 und
einen Nur-Lese-Speicher (read only memory, ROM) 46.
-
Der
Strichcode-Scanner 10 erzeugt Töne und Geräusche in Form von Stimmen,
um mit dem Bediener zu kommunizieren. Die Tonausgangsschaltung 48 empfängt Signale
von dem ASIC 12 und vom Mikroprozessor 42 bezüglich der
Anweisungen, welche Töne
und wann diese zu erzeugen sind. Die Töne werden an den Lautsprecher 50 weitergeleitet. Wie
oben bereits ausgeführt,
kann eine Vielzahl von Rückmeldungen
an einen neuen Bediener auf der Basis der Zeit- und Positionsdaten
bereitgestellt werden.
-
Ein
Datenbus verläuft
zwischen dem ASIC 12, dem Mikroprozessor 42, dem
Schreib-/Lesespeicher 44, dem Nur-Lese-Speicher 46 und
der Tonausgangsschaltung 48. Ein Adress- und Steuerbus
verläuft
ebenfalls zwischen dem ASIC 12, dem Mikroprozessor 42,
dem Schreib-/Lesespeicher 44 und dem Nur-Lese-Speicher 46.
-
Der
Motor 30 treibt den drehbaren Abschnitt der optischen Anordnung 32 an.
Der Motor umfasst vorzugsweise eine Hall-Effekt-Einheit, die eine
festgelegte Zahl an Pulsen immer dann abgibt, wenn der Motor um
eine Umdrehung gedreht hat. Es ist anzumerken, dass jeder Sensor,
der in der Lage ist, die Motorposition genau zu messen, einsetzbar
ist. Die Pulse werden an den ASIC 12 und an den Mikroprozessor 42 in
Form eines Motorpulssignals übertragen.
Der ASIC 12 und der Mikroprozessor 42 sind ausgebildet,
um das Motorpulssignal mit einer Referenzposition des Motors zu
korrelieren. Eine Zeitzählung
(count time), die aus schnellen Takt- bzw. Uhrimpulsen abgeleitet
ist, wird generiert, wenn sich der Motor 30 mit einer bekannten
Geschwindigkeit dreht, und dessen Position kann be rechnet und mit
Ereignissen korreliert werden, beispielsweise Strichcode-Scans oder
Strichcode-Intervallen.
-
Das
Motorpulssignal wird daher verwendet, um zu einem bestimmten Zeitpunkt
einen Zeitmesser zu synchronisieren, der im Prozessor 42 enthalten
ist und den Winkel des Motors 30 zu einer bestimmten Zeit
angibt. Zu einem geeigneten Zeitpunkt vor Aufnahme des Betriebs
des Strichcode-Scanners 10 wird der Prozessor 42 mit
Informationen programmiert, wie beispielsweise der Anzahl der Pulse
während
einer Motorumdrehung und dem Puls, der als Referenz für den Beginn
einer Scan-Umdrehung zu verwenden ist. Der ASIC 12 verwendet
diese Informationen, um die Gesamtheit aus Zeitpunkt eines Ereignisses
und Umdrehung des Motors zu synchronisieren, wie im Weiteren detailliert
beschrieben wird.
-
2 ist ein Diagramm, das weitere Details der
Master-Regel- bzw. Steuerschaltung 15a darstellt, die in
dem ASIC 12 enthalten ist. Die Master-Regel- bzw. Steuerschaltung 15 umfasst
eine Schaltung zum Dekodieren und Auswählen 102, eine Vorderflanken-Erkennungsschaltung 104 und
eine Hinterflanken-Erkennungsschaltung 106.
Die Master-Regel- bzw. Steuerschaltung 15 umfasst zudem ein
Voreinstellregister 108, ein Motorkonfigurationsregister 110,
einen Multiplexer 112, ein Motorgeschwindigkeitsregister 114,
ein Laser-Aus-Register 116 und eine Laser-Regelung bzw.
-Steuerung 118, die mit der Schaltung zum Dekodieren und
Auswählen 102 und
auch mit dem Datenbus 43 verbunden sind.
-
Während eines
typischen Betriebs des ASICS 12 erhält die Master-Regel- bzw. Steuerschaltung 15 Adress-,
Regel- und Dateneingaben vom Mikroprozessor 42. Die Schaltung
zum Dekodieren und Auswählen 102 wählt in Abhängigkeit
von Adress- und Steuersignalen vom Mikroprozessor 42 das
Voreinstellregister 108, das Motorkonfigurationsregister 110,
das Motorgeschwindigkeitsregister 114, das Laser-Aus-Register 116 und
die Laser-Regelung
bzw. -Steuerung 118 aus. Gleichzeitig werden durch den Mikroprozessor 42 Daten
auf den Datenbus 43 gebracht, wobei die Daten in die ausgewählte Einheit geladen
werden.
-
Die
Master-Regel- bzw. Steuerschaltung 15 umfasst zudem eine
Zeitstempeluhr (time stamp clock) 130, die einen Zeitstempelwert
erzeugt, der bis zu 14 Bit lang sein kann. Die Zeitstempeluhr 130 wird durch
einen Uhrenvoreinsteller (clock prescaler) 120 gesteuert.
Der Uhrenvoreinsteller empfängt
ein gleichbleibendes Uhreneingangssignal und die Frequenz, mit der
der Uhrenvoreinsteller eine Ausgabe erzeugt, wird durch einen Wert
gesteuert, der im Voreinstellregister 102 abgelegt ist.
Der Voreinstellwert ist so eingestellt, dass der Maximalwert für die Bits von
0 bis 9 gerade größer ist
als die Zeit für
eine volle Umdrehung des Motors 30, wenn er mit einer voreingestellten
Minimalgeschwindigkeit dreht, wie weiter unten beschrieben ist.
Der Uhrenvoreinsteller liefert ein Uhreneingangssignal an den Zeitstempelzähler bzw.
die Zeitstempeluhr 130, so dass die Uhr des Zeitstempelzählers 130 jedes
Mal dann aktiviert ist, wenn der Uhrenvoreinsteller inkrementiert.
Der Zeitstempelzähler 130 erzeugt
ein Signal TS, nämlich
die Überlaufbits
10 bis 13, das an den Eingang A eines Motorgeschwindigkeits-Komparators 126 geliefert wird.
Der Motorgeschwindigkeits-Komparator 126 ist ein A > B-Komparator und erhält seine
Eingabe bezüglich
B vom Motorgeschwindigkeitsregister 114, das eine erste,
vorgegebene minimal erlaubte Geschwindigkeit des Motors 30 angibt.
Wenn der Motor sich langsamer als die minimal erlaubte Geschwindigkeit
dreht, überschreitet
der Wert TS den im Motorgeschwindigkeitsregister gespeicherten Wert
und die Eingabe A des Komparators 126 übersteigt seine Eingabe B.
Der Komparator 126 erzeugt dann ein Interrupt-Signal an
den Mikroprozessor 42, der dieser Bedingung entsprechend
reagieren kann. Das erlaubt es dem Mikroprozessor 42, die
Geschwindigkeit wie gewünscht
anzupassen, um speziellen Scan-Bedingungen Rechnung zu tragen, beispielsweise
wenn Strichcodes leichter bei Drehgeschwindigkeiten gemessen werden
können,
die geringer als normal sind.
-
Das
Signal TS wird auch als das A-Eingangssignal des Laserkomparators 128,
einem A < B-Komparator,
zugeführt,
der als sein B-Eingangssignal Daten vom Laser-Aus-Register 116 empfängt, die
ein zweites, vorgegebenes Minimum angeben, nämlich die minimal zulässige Geschwindigkeit
des Motors 30, bei der der Laser 29 in Betrieb
sein darf. Das Ausgangssignal des Laserkomparators 128 wird dem
UND-Gatter 134 zugeführt,
das auch ein Eingangssignal von der Lasersteuerung 118 erhält. Das UND-Gatter 134 liefert
ein Laser-AN-Signal, das steuert, ob der Laser 20 eingeschaltet
oder ausgeschaltet ist. Der Laser 29 kann entsprechend
nur in Betrieb sein, wenn die Lasersteuerung 118 den Laser 29 auf
AN ansteuert und wenn der TS-Wert
anzeigt, dass die Geschwindigkeit des Motors 30 sich innerhalb
der vorgegebenen Grenze bewegt. Ist die Geschwindigkeit des Motors 30 kleiner
als die minimal erlaubte Geschwindigkeit, überschreitet das Eingangssignal
A des Laserkomparators 128 das Eingangssignal B, das Ausgangssignal
des Laserkomparators 128 wird auf AUS gesetzt und bewirkt,
dass das UND-Gatter 134 ebenfalls auf AUS gesetzt wird und
der am Signal hängende
Laser wird ebenfalls auf AUS gesetzt, was dazu führt, dass der Laser 29 abgeschaltet
wird.
-
Das
Motorkonfigurationsregister 110 speichert Daten, die die
Zahl der Pulse pro Umdrehung und die Polarität der Flanke, auf die zu synchronisieren
ist, anzeigt. Die Information bezüglich der Flanke, auf die zu
synchronisieren ist, wird dem Multiplexer 112 bereitgestellt,
der das Signal, dass die richtige Kante detektiert wurde, vom Detektor 104 oder 106 an den
Zeitstempelzähler 130 multiplext.
Der Pulskomparator 122 empfängt eine Anzahl von Pulsen pro
Umdrehung und liefert ein Reset-Eingangssignal an einen Takt-/Motor-Pulszähler 124 und
an den Zeitstempelzähler 130 und
liefert einen Zeiteingabewert an den Motorumdrehungszähler 132.
-
Wenn
sich der Motor 30 dreht, wird ein Motorpulssignal an den
ASIC 12 gesendet, der dieses an seiner Vorderflankenerkennungsschaltung 104 bzw.
seiner Hinterflankenerkennungsschaltung 106 empfängt. Die
Vorderflankenerkennungsschaltung 104 und die Hinterflankenerkennungsschaltung 106 produzieren
jeweils ein Ausgangssignal, das an den Multiplexer 112 übermittelt
wird. Der Multiplexer 112 liefert dann ein Ausgangssignal,
das an den Takt-/Motor-Pulszähler 124 geleitet
wird. Der Takt-/Motor-Pulszähler 124 zählt das
Eingangssignal, das vom Multiplexer 112 empfangen wird,
und sendet den Zählwert
an einen Pulskomparator 122. Der Pulskomparator 122 empfängt, wie
oben ausgeführt,
auch ein Eingangssignal vom Motorkonfigurationsregister 110,
wobei das Eingangssignal vom Motorkonfigurationsregister 110 die
Anzahl an Pulsen pro volle Umdrehung angibt. Wenn der vom Takt-/Motor-Pulszähler 124 erzeugte
Zählwert
dem Wert entspricht, der im Motorkonfigurationsregister 110 gespeichert
ist, erzeugt der Pulskomparator 122 einen Puls, der den
Zeitstempelzähler 130 und
den Takt-/Motor-Pulszähler 124 zurücksetzt
und den Wert der Uhr des Motorumdrehungszählers 132 inkrementiert.
Der Motorumdrehungszähler 132 liefert
einen Zählwert
MR, der mit dem Signal TS vom Zeitstempelzähler kombiniert wird, um den
Zeitstempelzählwert
zu erhalten, der wie weiter unten in Verbindung mit der Erläuterung
von 3 näher
beschrieben wird.
-
3 ist
ein Diagramm, das die erste Videoschaltung 17 detaillierter
beschreibt. Die erste Videoschaltung 17 ist identisch mit
der zweiten Videoschaltung 19, die hier aus Gründen der Übersichtlichkeit nicht
detailliert beschrieben wird, und arbeitet parallel zu dieser.
-
Die
erste Videoschaltung 17 umfasst einen Intervallzähler 302,
einen Flankendetektor 304, eine Filteröffnungs-/Grenzwert-Register-Schaltung 306 und
einen Vorpuffer 308. Der Vorpuffer 308 umfasst des
Weiteren einen Flag-Vorpuffer 308a und ein Intervall-Vorpuffer-Shiftregister 308b.
Die Videoschaltung 17 umfasst zudem ein Zeitstempel-Vorpuffer-Shiftregister 310,
eine Komparatorschaltung 312, eine Intervallsummenschaltung 314,
eine FIFO-Steuerschaltung 316 (FIFO, first in first out,
Speicherung bei dem diejenigen Elemente, die zuerst gespeichert werden,
auch zuerst wieder entnommen werden), einen Multiplexer 318,
einen UPC-Filter 320 (universal product Code) und eine
Intervall-FIFO-Schaltung 322.
-
Die
erste Videoschaltung 17 empfängt ein Videoeingangssignal,
das in den Flankendetektor 304 geleitet wird. Der Flankendetektor 304 erzeugt
ein Uhrenänderungsausgangssignal,
das dem Flag-Vorpuffer/Shiftregister 308a und dem Zeitstempel-Vorpuffer-Shiftregister 310 zugeführt wird.
Das Uhrenänderungsausgangssignal
wird zudem dem Intervallzähler 302 als
Rücksetz-Eingangssignal zugeführt. Der
Flankendetektor 304 bewirkt, dass der Intervallzähler 302 bei
einem Bildübergang,
einem 12-Bit-Signal-INT, das den Wert und die Videopolarität auf dem
Intervall darstellt, gestartet wird. Das Signal INT wird beim nächstfolgenden Übergang
des Videosignals in das Intevall-Vorpuffer/Shiftregister verschoben,
wobei der Übergang
des Videosignals auch den Intervallzähler 302 zurücksetzt
und so die Zeitsteuerung des nächsten
Intervalls startet. Diese Intervalle repräsentieren das Zeitintervall
oder im Endeffekt die Breite der Striche und Zwischenräume, die
einen Strichcode ausmachen, der gerade gescannt wird.
-
Gleichzeitig
wird das Zeitstempelsignal, das den 10-Bit-Zeitstempel und die vier
am wenigsten signifikanten Bits des Motorumdrehungszählers 132 repräsentieren,
in das Zeitstempel-Vorpuffer-Shiftregister 310 verschoben.
Die Zeitdauer für
jedes Videointervall, die Polarität und das zeitliche Verhältnis relativ
zur Motorposition werden so für
jeden Videoübergang
aufgenommen.
-
Die
Videointervalle werden auch durch die Intervallsummenschaltung 314 und
die Filterschaltung 320 geschickt, die ermitteln, ob der
Videodatenstrom vorgegebene zeitliche Verhältnisse erfüllt, die anzeigen, dass der
Videodatenstrom Daten eines gültigen
Strichcodes darstellt. Weitere Details der hier bevorzugten Videodatenbearbeitung
werden im US-Patent Nr. 5 262 625 beschrieben. Ist beispielsweise
das Zeitintervall zwischen dem Anfang und dem Ende der Videodaten
zu lang, so stammen sie nicht von einem gültigen Scan eines Strichcodes
und werden verworfen. Der Anfang und das Ende von zulässigen Strichcode-Daten
werden durch das Setzen von Flag-Bits
im Flag-Vorpuffer-Shiftregister 308a markiert. Die Flag-Bits werden dann
zur zugehörigen Intervalldatenzeichenfolge
addiert, die im Intervall-Vorpuffer-Shiftregister 308b gespeichert
sind. Die Flags werden von der FIFO-Steuerschaltung 316 verwendet,
um zu ermitteln, welche Intervalle in die Intervall-FIFO-Schaltung 322 zu
schreiben sind, die die Intervalldaten für den Mikroprozessor 42 puffert. Wird
der Anfang eines Blockintervalls in die Intervall-FIFO-Schaltung 322 geschrieben,
so wird auch der korrespondierende Zeitstempelwert der Intervalldatenzeichenkette
vorangehend in die Intervall-FIFO-Schaltung 322 geschrieben.
Das geschieht dadurch, dass das Zeitstempelsignal vom Zeitstempel-Vorpuffer-Shiftregister 310 und
dem Ausgang des Vorpuffers 318 in den Multiplexer 318 weitergereicht
wird, der unter der Steuerung der FIFO-Steuerung 316 arbeitet
und steuert, ob der Zeitstempel oder die Intervalldaten selektiv
in den Komparator 312 geschrieben werden. Der Zeitstempelwert
wird zudem an die Komparatorschaltung 312 gesendet, wo
das Signal mit dem Inhalt in den Registern der Filteröffnungs-/Grenzwert-Register-Schaltung 306 verglichen
wird.
-
Die
Filteröffnungs-/Grenzwert-Register-Schaltung 306 umfasst
vier Sätze
an Filteröffnungs-/Grenzwert-Registern,
in die der Mikroprozessor 42 Zeitwerte zum Vergleich mit
den Zeitstempelwerten laden kann, die aus dem Zeitstempel-Vorpuffer
erhalten werden. Der Mikroprozessor 42 kann beim Analysieren
der Intervalldaten, die von der Intervall-FIFO-Schaltung 322 eingeladen
werden, feststellen, dass mehr Intervalle als vom Satz digitaler Filter 320 erlaubt
sind, notwendig sind, um die Strichcodedaten angemessen zu dekodieren.
Das ermöglicht
eine effiziente Echtzeit-Steuerung der Filterregister, die an die
beobachteten Scan-Bedingungen angepasst ist.
-
Der
Mikroprozessor 42 errechnet dann die Zeitwerte für benachbarte
Laser-Scan-Strahlen und lädt
diese Grenzwerte in ein oder mehrere der Filteröffnungs-/Grenzwert-Register
in der Filteröffnungs-/Grenzwert-Register-Schaltung 306.
Der Inhalt der Register in der Filteröffnungs-/Grenzwert-Register-Schaltung 306 wird
zum Vergleich mit dem Zeitstempelsignal in die Komparatorschaltung 312 geladen.
Wenn das Zeitstempelsignal sich innerhalb der Zeitgrenzen befindet,
die von der Filteröffnungs-/Grenzwert-Register-Schaltung 306 erhalten wurden,
sendet die Komparatorschaltung 312 ein Filteröffnungssignal
an die FIFO-Steuerschaltung 316, was dazu führt, dass
die FIFO-Steuerschaltung 316 allen folgenden Intervallen
erlaubt, in die interne FIFO-Schaltung 322 geschrieben
zu werden, solange das Filteröffnungssignal
andauert. Dieses Signal überschreibt
ein Start-Flag-Bedingungssignal oder ein End-Flag-Bedingungssignal aus dem Flag-Vorpuffer 308a.
-
Wie
in 2 gezeigt, umfasst der ASIC 12 den
Block der zweiten Videoschaltung 19, die parallel zum Block
der ersten Videoschaltung 17 arbeitet. Die Blöcke der
beiden Videoschaltungen 17 und 19 werden vorteilhafterweise
mit Signalen VI-DEO0
und VIDEO1 beschickt, die mit verschiedenen Filter- und 5chwellenwertverfahren
in einem analogen Video-Präprozessor 52 bearbeitet
wurden. Die empfangenen Videosignale werden daher mit unterschiedlich
eingestellten analogen Schaltungen aufgenommen. Eine geeignete Wahl
der verwendeten Filterung und der Verarbeitung im Block der ersten Videoschaltung 17 und
der zweiten Videoschaltung 19 ergibt eine breitere Abdeckung
für das
Lasersignal, das vom Strichcode 34 reflektiert worden ist.
-
4 ist
ein Flussdiagramm und stellt ein Verfahren 400 der zum
Detektieren von Zeit- und Winkelpositionen einer optischen Anordnung,
die in einem Strichcode-Scanner nach den Grundsätzen der vorliegenden Erfindung
verwendet wird. Bei Schritt 402 wird der Strichcode-Scanner
gestartet. Der Strichcode-Scanner umfasst vorzugsweise eine optische
Anordnung, die einen drehbaren Abschnitt umfasst. Dieser drehbare
Abschnitt der optischen Anordnung wird vorzugsweise durch einen
Motor angetrieben, der eine mit diesem verbundene Pulserzeugungseinheit
aufweist. Bei Schritt 404 wird der Motor gestartet. Ein
Puls oder Pulse werden durch die Pulserzeugungseinheit erzeugt,
die mit dem Motor verbunden ist. Es ist anzumerken, dass jeder geeignete
Positionssensor verwendet werden kann. Bei Schritt 406 wird
eine Uhr gestartet und die Zeit wird überwacht. Bei Schritt 408 werden
Zeitpulse bzw. Taktpulse gezählt
und ein Zeitstempel wird generiert. Schritt 408 setzt sich
auf einer sich wiederholenden Basis fort. Das heißt, dass
die Taktpulse weitergezählt
werden und dass ein Zeitstempel solange weitererzeugt wird, wie
der Strichcode- Scanner
in Betrieb ist oder der Zeitstempel auf Null zurückgesetzt wird.
-
Bei
Schritt 410 wird ein Scan eines Strichcodes durchgeführt. Bei
Schritt 412 wird der Scan auf seine Gültigkeit hin überprüft. Ist
der Scan ungültig, wird
ein Steuersignal zu Schritt 414 gesendet und der Scan wird
verworfen. Ist der Scan gültig,
wird ein Steuersignal zu Schritt 416 gesendet und der Zeitstempel
wird überprüft, um den
Zeitpunkt des Scans zu ermitteln. Die Zeitdaten werden dann abgespeichert.
Bei Schritt 418 wird die Pulszählung des Pulszählers erfasst
und abgespeichert. Bei Schritt 420 wird der gesamte Drehwinkel
des Motors von seinem Startpunkt aus entsprechend der Synchronisationspulse,
die während
der Zeitmessung durch den Zeitstempel erzeugt wurden, berechnet.
Bei Schritt 422 werden die Zeit und die assoziierten Intervalldaten
für ein
interessierendes Ereignis kombiniert, um so einen kombinierten Informationsblock
herzustellen. Bei Schritt 424 wird der Informationsblock
einem Mikroprozessor zugeführt
und wird dann vom Mikroprozessor dazu verwendet, die Genauigkeit
des Scans dadurch zu verbessern, dass ein Strichcode aus geeigneten
Strichcode-Fragmenten zusammen mit Zeitablauf- und Positionsdaten
rekonstruiert wird, die darauf hinweisen, dass sie vom gleichen
Strichcode stammen oder durch Unterscheiden zwischen zwei Strichcodes,
die innerhalb einer Zeit gelesen wurden, die kürzer ist als das normalerweise
akzeptable Intervall. Alternativ können die Zeitablauf- und Positionsdaten
dazu verwendet werden, um eine Rückmeldung
für den
Bediener bereitzustellen oder um andere Vorteile zu erlangen, die
oben bereits diskutiert wurden.
-
Obwohl
die vorliegende Erfindung im Zusammenhang mit einem zur Zeit bevorzugten
Ausführungsbeispiel
offenbart wurde, ist zu erkennen, dass die vorliegende Erfindung
eine weitgefä cherte Anwendbarkeit
auf Strichcode-Scanner hat und es im Allgemeinen ermöglicht,
eine große
Bandbreite von Verbesserungen im Betrieb zu ermöglichen, die zum jetzigen Zeitpunkt
noch nicht verfügbar
sind.