DE69535625T2 - Laserabtastsystem und Abtastverfahren zum Lesen von Streifenkoden - Google Patents

Laserabtastsystem und Abtastverfahren zum Lesen von Streifenkoden Download PDF

Info

Publication number
DE69535625T2
DE69535625T2 DE69535625T DE69535625T DE69535625T2 DE 69535625 T2 DE69535625 T2 DE 69535625T2 DE 69535625 T DE69535625 T DE 69535625T DE 69535625 T DE69535625 T DE 69535625T DE 69535625 T2 DE69535625 T2 DE 69535625T2
Authority
DE
Germany
Prior art keywords
symbol
scanning
scan
pattern
scanner
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69535625T
Other languages
English (en)
Other versions
DE69535625D1 (de
Inventor
Paul Holtsville Dvorkis
Edward Miller Place Barkan
Harold Holtsville Charych
James East Northport Giebel
Stephen Plainview Osterweil
Sundeep Holtsville Kumar
John Holbrook Barile
Paul R. Holtsville Poloniewicz
Anthony D. S. Setauket Biuso
Steven M. East Northport Chew
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Symbol Technologies LLC
Original Assignee
Symbol Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symbol Technologies LLC filed Critical Symbol Technologies LLC
Application granted granted Critical
Publication of DE69535625D1 publication Critical patent/DE69535625D1/de
Publication of DE69535625T2 publication Critical patent/DE69535625T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10851Circuits for pulse shaping, amplifying, eliminating noise signals, checking the function of the sensing device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10554Moving beam scanning
    • G06K7/10564Light sources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10554Moving beam scanning
    • G06K7/10564Light sources
    • G06K7/10584Source control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10554Moving beam scanning
    • G06K7/10594Beam path
    • G06K7/10603Basic scanning using moving elements
    • G06K7/10633Basic scanning using moving elements by oscillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10554Moving beam scanning
    • G06K7/10594Beam path
    • G06K7/10603Basic scanning using moving elements
    • G06K7/10633Basic scanning using moving elements by oscillation
    • G06K7/10643Activating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10554Moving beam scanning
    • G06K7/10594Beam path
    • G06K7/10603Basic scanning using moving elements
    • G06K7/10633Basic scanning using moving elements by oscillation
    • G06K7/10643Activating means
    • G06K7/10653Activating means using flexible or piezoelectric means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10554Moving beam scanning
    • G06K7/10594Beam path
    • G06K7/10603Basic scanning using moving elements
    • G06K7/10673Parallel lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10554Moving beam scanning
    • G06K7/10594Beam path
    • G06K7/10683Arrangement of fixed elements
    • G06K7/10693Arrangement of fixed elements for omnidirectional scanning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10712Fixed beam scanning
    • G06K7/10722Photodetector array or CCD scanning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10792Special measures in relation to the object to be scanned
    • G06K7/10801Multidistance reading
    • G06K7/10811Focalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10861Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing of data fields affixed to objects or articles, e.g. coded labels
    • G06K7/10871Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing of data fields affixed to objects or articles, e.g. coded labels randomly oriented data-fields, code-marks therefore, e.g. concentric circles-code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10881Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices constructional details of hand-held scanners
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10881Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices constructional details of hand-held scanners
    • G06K7/10891Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices constructional details of hand-held scanners the scanner to be worn on a finger or on a wrist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10881Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices constructional details of hand-held scanners
    • G06K7/109Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices constructional details of hand-held scanners adaptations to make the hand-held scanner useable as a fixed scanner
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1456Methods for optical code recognition including a method step for retrieval of the optical code determining the orientation of the optical code with respect to the reader and correcting therefore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2207/00Other aspects
    • G06K2207/1011Aiming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2207/00Other aspects
    • G06K2207/1016Motor control or optical moving unit control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2207/00Other aspects
    • G06K2207/1017Programmable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2207/00Other aspects
    • G06K2207/1018Source control

Description

  • Hintergrund der Erfindung
  • Diese Erfindung bezieht sich allgemein auf die Konstruktion von Scanner- bzw. Scannsystemen zum Lesen von Strichcodesymbolen oder ähnlichen Anzeigemitteln und insbesondere auf die Scannung von sowohl eindimensionalen als auch zweidimensionalen Strichcodesymbolen in automatischer Weise. Die meisten herkömmlichen optischen Scannsysteme können entweder eindimensionale oder zweidimensionale Strichcodesymbole lesen. Ein Strichcodesymbol ist ein codiertes Muster von Anzeigemitteln (Indizia) die eine Reihe von Strichen mit variabler Breite getrennt durch Freiräume mit variabler Breite haben, wobei die Striche und Freiräume unterschiedliche Lichtreflektionscharakteristiken haben. Ein Beispiel eines eindimensionalen Strichcodes ist der UPC/EAN-Code, der gegenwärtig im Gebrauch ist, um Artikel und andere Informationen zu identifizieren. Ein Beispiel eines zweidimensionalen oder gestapelten bzw. zweizeiligen Strichcodes ist der PDF417-Strichcode, der in US-A-5,159,639 beschrieben wird.
  • Die meisten Scannsysteme oder Scanner erzeugen einen Lichtstrahl, der von einem Strichcodesymbol wegreflektiert wird, so dass das Scannsystem das reflektierte Licht aufnehmen kann. Das System wandelt dann das reflektierte Licht in elektrische Signale um und decodiert diese elektrischen Signale, um die Informationen herauszuziehen, die in dem Strichcodesymbol eingebettet sind. Scannsysteme dieser allgemeinen Bauart werden beschrieben in US-A-4,251,798 ; US-A-4,360,798 ; US-A-4,369,361 ; US-A-4,387,297 ; US-A-4,409,470 und US-A-4,460,120 .
  • Da sowohl eindimensionale Symbole als auch zweidimensionale Symbole gegenwärtig verwendet werden, wäre es einfacher und effizienter, wenn ein einzelnes Scannsystem nicht nur ein Strichcodesymbol von anderen Markierungen unterscheiden könnte, wie beispielsweise Schrift, sondern auch das Symbol detektieren könnte, unabhängig davon ob es eindimensional oder zweidimensional ist. Dieser Betriebsvorgang ist insbesondere wichtig, wenn das Strichcodesymbol relativ zu den Scannmustern des Scanners schräg liegt.
  • US-A-5,235,167 bezieht sich auf ein Laserscannsystem und Scannverfahren zum Lesen von Strichcodes und wurde als eine Basis für den Oberbegriff der unabhängigen Ansprüche verwendet. Dieses Dokument offenbart ein System zum Lesen von Strichcodesymbolen oder ähnlichem, welche eindimensionale oder zweidimensionale Strichcodesymbole mit einschließen, welches einen Scanner bzw. eine Scannvorrichtung besitzt, um einen Laserstrahl zu erzeugen, der zu einem Target bzw. Ziel geleitet wird und ein schmales erstes Rasterscannmuster erzeugt, welches es dem Anwender ermöglicht, manuell zu zielen und den Strahl auf die Stelle zu richten, die der Anwender haben möchte, und ein zweites Rasterscannmuster, welches bezüglich der Höhe zunimmt, welches über das gesamte zu lesende Symbol streicht, und einen Detektor zur Aufnahme von reflektiertem Licht von einem solchen Symbol zur Erzeugung von elektrischen Signalen, die den Daten entsprechen, die von einem solchen Symbol dargestellt werden.
  • Ein zusätzliches Problem für solche Scannsysteme tritt auf, wenn man zweidimensionale Strichcodesymbole decodiert. Diese Symbole haben nicht alle die gleiche Höhe, und somit muss das Scannsystem sein Scannmuster erweitern, um das gesamte zweidimensionale Symbol abzudecken. Einige herkömmliche Systeme tun dies manchmal über Gebiete außerhalb des Symbols. Obwohl die Anwendung eines solchen großen Musters nicht die Genauigkeit der Scannvorrichtung selbst beeinflusst, ist sie ineffizient. Die Teile des Scannmusters, die außerhalb des Strichcodesymbols liegen, sind nutzlos, und die Scannung dieser Gebiete verlangsamt den Scannungsvorgang. Zusätzlich verringert es die Genauigkeit der Decodierung des zweidimensionalen Strichcodesymbols, wenn das Scannmuster gezwungenermaßen zu groß ist.
  • Der Aufbau eines Systems zur Überwindung dieser Probleme ist nicht nur schwierig, er ist durch einen zusätzlichen Punkt kompliziert. Scannvorrich tungen bzw. Scanner sollten nicht noch größer werden, und zwar aus ergonomischen und wirtschaftlichen Gründen. Somit müssen leistungsfähige und flexible Scannvorrichtungen kompakt sein.
  • Ein weiterer Betrachtungspunkt ist die Geschwindigkeit. Die zusätzliche Verarbeitung, die für eine gesteigerte Effizienz und Flexibilität benötigt wird, darf nicht auf Kosten der Geschwindigkeit kommen. Diese Verarbeitung muss daher schnell und effizient voranschreiten.
  • Noch ein weiterer Betrachtungspunkt ist die Notwendigkeit sicherzustellen, dass die unterschiedlichen Scanner- bzw. Scannvorrichtungsuntersysteme miteinander wirkungsvoll kommunizieren, wenn sie robuster werden. Scannsysteme haben typischerweise Untersysteme, wie beispielsweise den Scanner- bzw. Scannmotor, den optischen Sensor und den Decoder. Die Schnittstellen zwischen diesen unterschiedlichen Untersystemen müssen die erforderliche Verarbeitungsleistung unterstützen und es gestatten, dass man einen Teil eines Scannsystems verbessert, ohne die anderen Systeme erneut zu konstruieren.
  • Eine Scannvorrichtung mit all diesen Merkmalen zu erhalten ist tatsächlich sehr schwierig. Die schnell ansteigende Anwendung von Strichcodes verlangt jedoch, dass die Scannsysteme eine steigende Flexibilität, Robustheit und Wirkungsgrad zeigen.
  • Es ist daher ein Ziel dieser Erfindung, eine Scannvorrichtung bzw. einen Scanner vorzusehen, der imstande ist zwischen eindimensionalen und zweidimensionalen Strichcodes zu unterscheiden, und diese automatisch und in geeigneter Art und Weise decodieren kann, selbst wenn diese nicht ursprünglich mit dem Scanner abgestimmt sind.
  • Es ist ebenfalls ein Ziel der Erfindung sicherzustellen, dass das Scannmuster fortschreiten kann, um die Position der Scannlinien zu verändern.
  • Es ist ein weitres Ziel der Erfindung, die Höhe der Scannmuster automatisch anzupassen, um sicherzustellen, dass das Scannmuster das gesamte Symbol abdeckt, ohne sich außerhalb des Symbols zu erstrecken.
  • Ein weiteres Ziel der Erfindung ist es, einen schnellen aber kompakten Scannmotor vorzusehen, um Scannmuster für sowohl eindimensionale als auch zweidimensionale Strichcodes zu erzeugen.
  • Es ist auch ein Ziel der Erfindung, einen solchen Scanner zu besitzen, der für unterschiedliche Charakteristiken der Scann- bzw. Scannelemente geeignet ist.
  • Es ist ein weiteres Ziel der Erfindung, einen derart leistungsfähigen und flexiblen Scannmotor mit dem Rest des Scanners über eine robuste und flexible Schnittstelle kommunizieren zu lassen.
  • Zusammenfassung der Erfindung
  • Um diese Ziele zu erreichen, sieht die vorliegende Erfindung einen Leser zum elektro-optischen Lesen eines Ziels gemäß Anspruch 1 vor.
  • Zusätzlich sieht die vorliegende Erfindung ein Verfahren zum elektro-optischen Lesen eines Ziels gemäß Anspruch 5 vor.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung können den abhängigen Ansprüchen entnommen werden.
  • Kurze Beschreibung der Zeichnungen
  • Die beigefügten Zeichnungen sorgen für ein weiteres Verständnis der Erfindung und erklären zusammen mit der Beschreibung die Prinzipien der Erfindung.
  • 1 ist eine vereinfachte diagrammartige Darstellung von einem Ausführungsbeispiel eines Laserscann- bzw. -scannsystems gemäß dieser Erfindung;
  • 2 ist ein Diagramm eines herkömmlichen Rasterscannmusters;
  • 3 ist ein Flussdiagramm eines bevorzugten Verfahrens zum Finden, Identifizieren und Decodieren von Strichcodes gemäß dieser Erfindung;
  • 4a-4d sind Darstellungen von Rasterscannstrahlen und Strichcodes;
  • 5 zeigt ein Rasterscannmuster, das einen eindimensionalen Strichcode überschreitet, der schräg in Bezug auf das Scannmuster verläuft;
  • 6a-6d sind Darstellungen eines Rasterscannmusters, das einen zweidimensionalen Strichcode überschreitet, der anfänglich schräg in Bezug auf das Scannmuster verläuft;
  • 7 ist ein Übersichtsdiagramm, das die Rastermustersteuerung gemäß dieser Erfindung zeigt;
  • 8 ist eine Vorderansicht die eine Kontur eines Symbols zeigt, das schräg in Bezug auf das Scannmuster verläuft;
  • 9 ist ein Flussdiagramm eines Verfahrens zur Implementierung eines vollständigen Rasterscanns eines zweidimensionalen Symbols;
  • 10 ist ein Blockdiagramm eines Scannsystems, das die Steuerung eines Scanners in einem Vollrastermodus zeigt;
  • 11 ist ein Diagramm einer Schaltung, um zu bestimmen, ob ein gescanntes Ziel ein Strichcode ist;
  • 12 ist ein Blockdiagramm eines Scanner- bzw. Scannmotors;
  • 13 ist eine Darstellung, die die bevorzugte Konstruktion eines PWM-Reglers bzw. Pulsbreitenmodulationsreglers zeigt, der bei dem Scannmotor der 12 verwendet wird;
  • 14 ist eine Darstellung, die Schalter zeigt, die in dem PWM-Regler in 13 verwendet werden;
  • 15a ist eine Darstellung des Frequenzansprechens für einen RASE- und Mylar-Träger, der bei dieser Erfindung verwendet werden kann;
  • 15b ist eine Darstellung, die die Größe und die Phasenveränderungen als eine Funktion der Frequenz für den RASE zeigt;
  • 16 ist eine Darstellung von zwei Sinuswellen, um eine grobe Amplitudeneinstellung zu zeigen;
  • 17 ist eine Darstellung von zwei Kurven, um die Feinamplitudeneinstellung zu zeigen;
  • 18 ist eine Kurvendarstellung, die die Veränderungen der Resonanzfrequenz eines RASE mit der Temperatur zeigt;
  • 19 ist eine Darstellung, die veranschaulicht, wie die Summe der Sinuswellen für das in 12 gezeigte digitale Antriebssignal gebildet wird;
  • 20 ist ein Flussdiagramm des Betriebs für die Motorsteuerung des Scannmotors in 12;
  • 21 ist ein Flussdiagramm des Verfahrens zur Erzeugung von Raster-Scannungen bzw. Raster-Scans;
  • 22a-22c sind unterschiedliche Perspektivansichten einer bevorzugten Anordnung für den in 12 gezeigten Scannmotor;
  • 23a-23c zeigen ein Führungs- bzw. Scannermuster und seine Fortschritte;
  • 24 ist ein Blockdiagramm des Scannmotors in 12 und seiner Schnittstellen zu anderen Untersystemen;
  • 25 ist ein Diagramm der bevorzugten Formate für Befehle und Nachrichten, die mit dem in 12 gezeigten Scannmotor bzw. Scannermotor ausgetauscht werden;
  • 26 ist eine Liste der Befehle und Nachrichten, die unter Verwendung des Formats der 25 ausgetauscht werden;
  • 27 ist ein Blockdiagramm einer Schaltung zur Veränderung der Höhe eines Rasterscannmusters;
  • 28 zeigt die Variation eines der Signale der 27 als eine Funktion der Zeit; und
  • 29 zeigt ein Blockdiagramm einer Amplitudensteuerschaltung, die in 27 verwendet wird.
  • Beschreibung der bevorzugten Ausführungsbeispiele
  • Die folgende Beschreibung der bevorzugten Ausführungsbeispiele dieser Erfindung beschreibt nicht alle möglichen Ausführungsbeispiele. In der Beschreibung beziehen sich gleiche Bezugszeichen in unterschiedlichen Fig.en auf gleiche Teile, außer wenn dies in anderer Weise angezeigt wird.
  • A. Überblick
  • Außer wenn der Kontext oder die speziellen Anweisungen dies anders zeigen, sollten die Ausdrücke "Symbol" und "Strichcode" in dieser Beschreibung und in den folgenden Ansprüchen breit ausgelegt werden. Beispielsweise decken diese Ausdrücke jegliche Anzahl von Mustern ab, die abwechselnde Striche und Freiräume haben, einschließlich jenen mit verschiedener Breite und einschließlich eindimensionalen oder zweidimensionalen grafischen Mustern, die anders sind, als jene, die insbesondere erwähnt wurden.
  • Die vorliegende Erfindung bezieht sich auf Scannsysteme, die jene miteinschließen, die automatisch die Scannung eines Ziels bzw. Targets einleiten und beenden können. Einige Scannsysteme mit dieser automatischen Fähigkeit verwenden einen manuell betätigten Auslöser bzw. Trigger, um die Scannung des Ziels einzuleiten, wie es beispielsweise das US-Patent 4 387 297 beschreibt. Obwohl der Auslöser für viele Anwendungen wichtig ist, ziehen einige Anwendungen aus anderen Techniken Vorteil, und diese Erfindung umfasst auch solche Technologien.
  • 1 zeigt ein stark vereinfachtes Ausführungsbeispiel eines Strichcodescanners 100, der gemäß der Prinzipien der vorliegenden Erfindung aufgebaut sein kann. Obwohl 1 einen Scanner bzw. eine Scannvorrichtung 100 als in der Hand gehalten zeigt, erfordert die Erfindung nicht, dass die Scannvorrichtung in dieser Form sein muss. Beispielsweise könnte die Scannvorrichtung eine Desktop- bzw. Tischarbeitsstation miteinschließen oder könnte eine andere Art einer stationären Architektur aufweisen. Die Scannvorrichtung 100 kann auch als tragbares Computerterminal arbeiten und eine Tastatur 148 und eine Anzeige 149 aufweisen, wie beispielsweise im US-Patent 4 409 470 beschrieben.
  • Der in der Hand gehaltene Scanner 100 der 1 hat die Bauart, die allgemein im US-Patent 4 760 248 oder 4 896 026 beschrieben wird, die beide der Symbol Technologies, Inc. zu eigen sind. Die Scannvorrichtung 100 hat auch eine ähnliche Konstruktion wie der Strichcodeleser, der im Handel erhältlich ist als Teil Nr. LS 8100 oder LS 2000 von Symbol Technologies Inc..
  • Ein Anwender zielt die Scannvorrichtung 100 auf ein Strichcodesymbol 170 ohne dies physikalisch zu berühren. Typischerweise arbeitet die Scannvorrichtung 100 mehrere Inch von dem gelesenen Strichcodesymbol entfernt.
  • Um die Scannvorrichtung 100 zu konstruieren, kann der Fachmann sich auf die US-Patente 4 387 297 ; 4 409 470 ; 4 760 248 ; 4 896 026 und 4 387 298 beziehen. Um beim Verständnis der beanspruchten Erfindung beizuhelfen, werden jedoch die Hauptmerkmale der Scannvorrichtung 100 unten beschrieben.
  • Die Scannvorrichtung 100 ist vorzugsweise pistolenförmig in einem Gehäuse 155 mit einem Pistolenhandgriff 153. Ein bewegbarer Auslöser 154 an dem Handgriff 153 gestattet, dass ein Anwender einen Lichtstrahl 151 und eine assoziierte Detektorschaltung aktiviert, wenn der Anwender den Scanner bzw. die Scannvorrichtung 100 auf ein Symbol 170 gezielt hat.
  • Das Gehäuse 155, welches vorzugsweise aus leichtgewichtigem Plastik gemacht ist, enthält eine Laserlichtquelle 146 (die eine Halbleiter-Laserdiode oder irgend eine andere Lichtquelle sein kann), weiter eine Linse 157, einen teilweise versilberten Spiegel 147, einen Detektor 158, einen oszillierenden Spiegel 159, einen Motor 160, eine Leistungsquelle (Batterie) 162 und eine Signalverarbeitungs- und Steuerschaltung 165. Die Schaltung 165 weist eine CPU bzw. zentrale Verarbeitungseinheit 140 und Decodierungs- und Steuerelektronik 142 auf einer gedruckten Schaltungsplatine 161 auf.
  • Wenn ein Anwender die Scannvorrichtung 100 aktiviert, in dem er den Auslöser 154 zieht, erzeugt die Lichtquelle 146 einen Lichtstrahl 151 entlang der Achse der Linse 157. Die Linse 157, die nicht in allen Ausführungsbeispielen notwendig ist, kann eine einzelne Linse oder ein System aus mehreren Linsen sein. Nach dem er durch die Linse 157 gelaufen ist, läuft der Strahl 151 durch den teilweise versilberten Spiegel 147, und falls erwünscht, durch andere Linsen oder Strahlformgebungsstrukturen. Der Strahl 151 trifft dann auf den oszillierenden Spiegel 159, der durch den Scanner- bzw. Scannmotor 160 angetrieben wird, was zusammen den Strahl 151 in einem Scannmuster leitet. Vorzugsweise startet der Motor 160 auch, wenn der Anwender den Auslöser 154 zieht.
  • Wenn der Lichtstrahl 151 unsichtbar ist, kann das optische System ein Ziellicht parallel zum Strahl 151 aufweisen, um dem Anwender dabei zu helfen, die Scannvorrichtung 100 zu zielen. Das Ziellicht ist ein sichtbarer Lichtstrahl, der entweder festgelegt sein kann oder dem Lichtstrahl 151 folgen kann.
  • Der Spiegel 159 leitet den Lichtstrahl 151 durch ein lichtdurchlässiges Fenster 156 und über das Strichcodesymbol 170 in einem gewissen vorbestimmten Muster, wie beispielsweise in einem linearen Rasterscannmuster. 2 ist ein Diagramm, das das Muster des bekannten linearen Rasterscanners zeigt. Das zweidimensionale Scannmuster kann durch Anzeigen einer eindimensionalen oder linearen Scannlinie in der vertikalen oder y-Richtung erzeugt werden, die in der horizontalen oder x-Richtung angetrieben wird. U.S. Patent 4,387,297 erklärt eine Technik zum Bilden des Scannmusters in 2.
  • Das Symbol 170 kann ein eindimensionaler Strichcode sein, wie beispielsweise der übliche UPC/EAN-Code, oder kann ein zweidimensionaler Strichcode sein, wie beispielsweise PDF417, wie im US-Patent 5 159 639 beschrieben. Zusätzlich, wie oben erklärt, kann das Symbol 170 irgend ein anderes akzeptables Symbol sein, welches zu decodierende Informationen trägt.
  • Der Lichtstrahl 152 ist das Licht von dem Strahl 151, welches von dem Symbol 170 wegreflektiert wurde. Der Strahl 152 kehrt zu der Scannvorrichtung 100 entlang eines Pfades zurück, der parallel zu dem Strahl 151 oder manchmal übereinstimmend mit diesem Strahl ist. Der Strahl 152 reflektiert somit weg vom Spiegel 159 und trifft auf den teilweise versilberten Spiegel 147. Der Spiegel 147 reflektiert einen Teil des Strahls 152 auf einen lichtansprechenden Detektor 158, der das Licht 152 in elektrische Signale umwandelt.
  • Die elektrischen Signale laufen dann in die Signalverarbeitungs- und Steuerschaltung 165, um verarbeitet und decodiert zu werden, um die Informationen zu extrahieren, die von dem Strichcode dargestellt werden. Die Signalverarbeitungs- und Steuerschaltung 165 steuert auch den Betrieb des Motors 160, um das Scannmuster einzustellen und eine andere Steuerung vorzusehen.
  • B. Adaptives Scannen
  • 1. Identifizieren eines Strichcodesymbols
  • Der Scanner dieser Erfindung befasst sich mit beiden Anliegen. Das erste besteht im Sicherstellen, dass das Ziel, das gescannt wurde, ein Strichcode ist. Das Zweite besteht im Identifizieren des Typs des Strichcodes.
  • Der Zweck des Sicherstellens, dass das gescannte Ziel ein Strichcode ist, ist offensichtlich. Der Zweck des Identifizierens des Typs des Strichcodes besteht darin, das Scannmuster anzupassen, um die Detektion zu verbessern.
  • Um beide Zwecke zu erfüllen, entnimmt ein System gemäß der vorliegenden Erfindung Proben des Lichts, das von einem Teil eines Zieles reflektiert wird und analysiert diese Proben. Das System bestimmt zunächst, ob das Ziel ein Strichcodesymbol ist. Ist dies der Fall, bestimmt das System als nächstes, ob das Strichcodesymbol eindimensional oder zweidimensional ist. Wenn das Symbol eindimensional ist, decodiert das System die von dem Scann empfangenen Signale. Wenn das Strichcodesymbol zweidimensional ist, stellt das System sicher, dass das Scannmuster in geeigneter Weise ausgerichtet ist und beginnt dann das Scannmuster auszudehnen, um den gesamten Code abzudecken.
  • 3 ist ein Flussdiagramm 300, das das bevorzugte Verfahren zum Finden, Identifizieren und Decodieren der Strichcodes anzeigt. Zunächst erzeugt ein Scanner 100 ein schmales (d.h. kleine vertikale Versetzung) Scannmuster (Schritt 305) und der Scanner 100 nimmt dann ein anfängliches Scannen vor. (Schritt 310) In dem bevorzugten Ausführungsbeispiel betätigt der Benutzer den Auslöser 154 und beginnt diesen Scannbetrieb. Das Betätigen des Auslösers bewirkt, dass der Scanner 100 ein schmales Scannmuster erzeugt, welches einfach für einen Benutzer zu zielen und auf ein Ziel zu richten ist.
  • Die 4a-4d zeigen eine Abfolge von Ansichten eines Ziels und ein Rasterscannmuster. 4a ist eine stark vereinfachte, schematische Darstellung der Anfangsstufe eines Betriebs, wenn der Scanner 100 das schmale Scannmuster 410 erzeugt hat, aber der Benutzer das Muster 410 noch nicht in geeigneter Weise auf das Zielstrichcodesymbol 420 platziert hat.
  • 4b zeigt die nächste Stufe des Betriebs, wenn der Benutzer das schmale Scannmuster 410 in geeigneter Weise auf dem zweidimensionalen Strichcode 420 (oder eindimensionalen Strichcode 430) angeordnet hat. Natürlich wird für die 4b angenommen, dass das Ziel ein Strichcodesymbol ist. Das Ziel könnte auch irgendeine andere Markierung sein, in welchem Fall das System in dem Ausgangsscannmodus bleiben würde. (Schritt 310) Sobald das Scannmuster in geeigneter Weise auf dem Ziel angeordnet wurde, stellt der Scanner 100 sicher, dass das gescannte Ziel ein Strichcodesymbol ist. (Schritt 320) Es gibt verschiedene herkömmliche Techniken um diese Bestimmung vorzunehmen. Diese Techniken sind keine exklusiven Verfahren um Strichcodes zu unterscheiden, noch schließen sie sich gegenseitig aus. Eine oder mehrere Techniken können gemeinsam verwendet werden.
  • Eine Technik umfasst das Analysieren der räumlichen Variation der Bereiche unterschiedlicher Lichtreflektivität, um zu bestimmen, ob das reflektierte Licht Charakteristiken besitzt, die von einem Strichcodesymbol erwartet werden. Die Signalverarbeitungs- und -steuerungsschaltung 165 würde typischerweise programmiert sein, um diese Analysen auszuführen.
  • Eine zweite Technik vergleicht die Länge der Teile der geringen Lichtreflektivität mit denen der hohen Reflektivität. Wenn das Verhältnis dieser Längen innerhalb des voreingestellten Bereichs liegt, bestimmt das System, dass ein Strichcode gefunden wurde.
  • Eine dritte Technik bestimmt die Anzahl der Übergänge in einer gegebenen Zeitperiode zwischen Teilen unterschiedlicher Lichtreflektivität. Diese Zählung kann das reflektierte Licht als ein vorbestimmtes Muster, wie beispielsweise ein allgemeines Strichcodesymbol, eine Klasse von Strichcodesymbolen, oder selbst ein spezifisches Strichcodesymbol charakterisieren.
  • Eine vierte Technik vergleicht die elektrischen Signale, die aus einer Abtastung erzeugt werden, mit denen von einer oder mehreren nachfolgenden Abtastungen. Wenn die nachfolgenden Abtastungen identische oder nahezu identische Signale ergeben, zieht das System die Schlussfolgerung, dass es einen Strichcode mit Strichen und Zwischenräumen gleichmäßiger Breiten betrachtet. Eine Variation dieser Technik vergleicht verschiedene Abtastungen, um zu bestimmen, ob sich nachfolgende Abtastungen unterscheiden, aber gleiche Gliederungen bzw. Gruppierungen besitzen. Wenn dies der Fall ist, ist das Ziel wahrscheinlich ein zweidimensionaler Strichcode.
  • Eine fünfte Technik besteht darin, zu versuchen die Scanns bzw. Abtastungen zu decodieren. Wenn die Decodierung nicht erfolgreich ist, kommt das System zu dem Ergebnis, dass das Ziel kein erkennbarer Strichcode ist.
  • Wenn das Ziel nicht ein Strichcodesymbol ist, bleibt das System im Anfangsscannmodus (Schritt 310). Zu diesem Zeitpunkt kann der Benutzer den Scanner 100 dichter an und weiter weg von dem Ziel bewegen, um die Möglichkeit zu berücksichtigen, dass das Ziel außerhalb des Arbeitsbereichs des Scanners 100 lag. Der Benutzer kann ebenfalls nach einem neuen Ziel suchen.
  • Wenn das Ziel ein Strichcodesymbol ist (Schritt 320), versucht der Scanner 100 zu bestimmen, ob der Strichcode eindimensional oder zweidimensional ist (Schritt 330). Es gibt ebenfalls mehrere Wege, um diese Bestimmung vorzunehmen. Ein Weg besteht darin zu versuchen, eine Reihe zu decodieren und die Bestimmung basierend auf der decodierten Information vorzunehmen. Ein weiterer Weg besteht darin, einen intelligenten Abfühlalgorithmus zu verwenden, wie beispielsweise eine Decodierung zu versuchen, um zu bestimmen, ob der abgefühlte Teil von einem eindimensionalen oder einem zweidimensionalen Strichcode stammt.
  • Darüber hinaus, obwohl das Flussdiagramm 300 zeigt, das die Bestimmung ob ein Ziel ein Strichcode ist, separat von der Bestimmung des Strichcode typs stattfindet, müssen die Vorgänge nicht separat sein. Beispielsweise können beide Bestimmungen während des gleichen Vorgangs stattfinden.
  • Nach dem Bestimmen des Strichcodetyps folgt der Scanner unterschiedlichen Pfaden zum Decodieren des Strichcodes. Wenn das Symbol ein eindimensionaler Strichcode ist, ist das Scannen nahezu vollständig. Der Scanner 100 versucht den Code ohne Verändern der Höhe oder der Breite des Scannmusters zu decodieren (Schritt 340). Wenn der Scanner 100 erfolgreich ist (Schritt 345), sendet er die decodierten Daten zur weiteren Verarbeitung aus (Schritt 350). Wenn nicht, nimmt der Scanner 100 zusätzliche Abtastungen vor (Schritt 310) bis er das Symbol erfolgreich decodiert (Schritt 345). Der Scanner 100 kann ebenfalls programmiert werden, um nach zu vielen erfolglosen Decodierversuchen oder nachdem eine zu lange Zeit verstrichen ist, anzuhalten.
  • Wenn das Symbol ein zweidimensionaler Strichcode ist (Schritt 330), müssen zusätzliche Scanns bzw. Abtastungen stattfinden. Zunächst muss der Scanner 100 sicherstellen, dass das Scannmuster in geeigneter Weise mit dem Strichcode ausgerichtet ist (Schritt 355).
  • Die Ausrichtung ist kein Problem für eindimensionale Strichcodes. 5 stellt das Rasterscannmuster 510 dar, das einen eindimensionalen Strichcode 520 überstreicht, und zwar verzerrt in Bezug auf die Richtung der Scannlinien. Die gescannten Linien eines Musters müssen nicht senkrecht zu den vertikalen Strichen eines eindimensionalen Strichcodes sein, da eine oder mehrere der Scannlinien immer noch die gleiche Abfolge von Strichen und Zwischenräumen überstreichen.
  • Die Situation bei zweidimensionalen Strichcodes ist schwieriger. 6a, 6b, 6c und 6d sind bildhafte Darstellungen des Rasterscannmusters, das einen zweidimensionalen Strichcode 600 überstreicht, der ursprünglich in Bezug auf das Scannmuster verzerrt ist.
  • 6a enthält eine stark vereinfachte, schematische Darstellung des ursprünglichen Rasterscannmusters das in Bezug auf den zweidimensionalen Strichcode 600 verzerrt oder falsch ausgerichtet ist. Der Scanner 100 bestimmt diesen Zustand vorzugsweise durch Kenntnisnahme wenn eine Scannlinie eine Reihe kreuzt. Beispielsweise verwendet der PDF417-Code unterschiedliche Codes in unterschiedlichen Zeilen (eigentlich gibt es drei unterschiedliche Codes, die sich wiederholen). Wenn sich der Code während dem Decodieren einer Scannlinie verändert, detektiert der Scanner 100, dass die Scannlinien nicht ausgerichtet sind.
  • Um die verzerrten, zweidimensionalen Strichcodes zu lesen, kann der Scanner 100 mehrere unterschiedliche Techniken anwenden, wie beispielsweise die, die in der gleichzeitig anhängigen U.S. Patentanmeldung Seriennummer 317,433 beschrieben, die hierin durch Bezugnahme enthalten ist. Sobald der Scanner 100 bestimmt, dass das Scannmuster falsch ausgerichtet ist, kann er beginnen es neu auszurichten, wie in 6b gezeigt.
  • Wenn die weitere Analyse offenbart, dass das Symbol 600 immer noch relativ zu dem Scannmuster schräg angesetzt bzw. verzerrt ist, kann das System die Neuausrichtung des Scannmusters fortsetzen, bis es schließlich mit dem Symbol 600 ausgerichtet ist, wie in 6c gezeigt. Wenn die Neuausrichtung vollständig ist, kann der gesamte Strichcode gelesen werden, und zwar durch Verwenden eines vollständig ausgerichteten und in der Höhe angepassten Scannmusters, wie in 6d gezeigt.
  • Nach dem Ausrichten des Scannmusters mit dem Strichcodesymbol tritt der Scanner 100 in den Vollrastermodus ein, um die Höhe des Scannmusters zu erhöhen (Schritt 360). Dies erfolgt um das vollständige Symbol zu decodieren. Der Ausdruck „Vollrastermodus" bezeichnet den Prozess des Steuerns des Spiegels 159 und des Motors 160, um die Höhen, und sogar die Breite, des Rasterscannmusters zu verändern. Während des Vollrastermodus nimmt die Musterhöhe und -breite stufenweise zu, wie in 4c und 4d dargestellt.
  • 4c ist eine stark vereinfachte, schematische Darstellung einer Zwischenstufe des Betriebs des Scanners 100 während des Vollrastermodus. Während die Höhe des Scannmusters 412 zunimmt, liest der Scanner 100 die StrichcodeZeilen, die durch das Muster abgedeckt werden, um das Muster zu decodieren und um zu bestimmen, wann die Erhöhung der Musterhöhe anzuhalten ist. Dies wird fortgesetzt bis das gesamte Symbol gelesen ist.
  • 4d ist eine stark vereinfachte, schematische Darstellung der Endstufe des Betriebs. Zu diesem Zeitpunkt deckt das Scannmuster 413 den gesamten Strichcode 420 ebenso wie Bereiche außerhalb des Codes 420 ab.
  • Beim Scannen im Vollrastermodus nimmt die Musterhöhe zu, aber die Anzahl der Scannlinien, die über das Strichcodesymbol hinweg streichen, verändert sich nicht. Stattdessen nehmen die Höhe und Breite des Scannmusters zu, und die Winkel zwischen benachbarten Scannlinien nehmen ebenfalls zu, wie die 4b-4d zeigen. Die effektivste Ausrichtung des Laserscannmusters tritt auf, wenn jede Scannlinie genau eine Reihe in dem zweidimensionalen Symbol kreuzt.
  • Sobald die Größe des Musters eingestellt ist (und vorzugsweise wenn die Größe zunimmt), decodiert der Scanner 100 das zweidimensionale Symbol (Schritt 370). Wenn der Scanner 100 das Symbol erfolgreich decodiert (Schritt 380), überträgt er die decodierten Daten und beschränkt den Scannstrahl oder schaltet ihn ab (Schritt 390). Wenn der Scanner 100 das Symbol nicht erfolgreich decodiert (Schritt 380), setzt der Scanner 100 das Scannen fort, bis er eine erfolgreiche Decodierung erreicht oder bis eine vorbestimmte Zeitdauer abgelaufen ist. Die vorbestimmte Zeitdauer befindet sich typischerweise in der Größenordnung von drei Sekunden, was als eine ausreichende Zeit für einen Bediener angesehen wird, ein Symbol in Sicht zu bekommen und eine erfolgreiche Decodierung zu erhalten.
  • 2. Scannhöhenanpassung
  • Ein Nachteil des gerade beschriebenen Betriebs besteht darin, dass in dem Vollrastermodus das Muster manchmal mehr als nur den Zielstrichcode abdeckt. Beispielsweise zeigen die 4d und 6d mehrere Scannlinien, die sich über die oberen und unteren Kanten des zweidimensionalen Symbols hinaus erstrecken. Dieses unnötige Scannen verlangsamt den gesamten Scannablauf. Um dieses Problem zu lösen, minimiert die vorliegende Erfindung den Betrag, mit dem sich ein gegebenes Muster über ein Symbol hinaus erstreckt und verkürzt die Scannzeit durch Begrenzen des Bereichs eines Strichcodesymbols und des umgebenden Bereichs, der durch das Scannmuster abgedeckt wird.
  • Es gibt zumindest zwei Techniken, um dieses Ziel zu bewerkstelligen. Die erste Technik funktioniert bei Codes, wie beispielsweise dem PDF417-Code, die Informationen über die Größe des Symbols in den Zeilen des Codes enthalten. Die zweite Technik funktioniert für andere Codetypen.
  • a. PDF417-Modus
  • Für Codes, wie beispielsweise dem PDF417-Code, ermöglicht Information, die von dem ursprünglichen Scannmuster erlangt wird, dass das System die Anzahl der Zeilen des Symbols oberhalb und unterhalb des ursprünglichen Scannmusters in der zweiten Stufe bestimmt. Dies ermöglicht es, dass das System ein geeignetes neues Scannmuster findet und die Öffnungsrate des Scannwinkels steuert, um das neue Muster zu erreichen und die geeigneten Steuerungssignale an den Scanner sendet.
  • 7 ist ein Übersichtsdiagramm, das die Rastermustersteuerung gemäß dieser Erfindung zeigt. Ein Rastermustersteuerprozessor 700, der Teil der Steuerschaltung 165 sein kann, steuert einen Scannmotor 710, der ebenfalls Teil der Schaltung 165 sein kann, um das Symbol 720 zu lesen, das durch eine Seitenansicht gezeigt ist. Der Scannmotor 710, der bei einem Abstand d (nicht gezeigt) von dem Symbol 720 gelegen ist, emittiert ein anfängliches Rasterscannmuster, das mit einem vertikalen Winkel z geöffnet ist.
  • Wenn der Rastersteuerprozessor das Ergebnis des Scannens mit dem Winkel z decodiert, bestimmt er, dass das anfängliche Scannmuster f Zeilen des zweidimensionalen Symbols kreuzt. Wenn das Scannmuster zentriert ist, beträgt die Anzahl der Zeilen, die oberhalb der mittleren Reihe m des Musters gekreuzt werden y, was f/2 entspricht.
  • Als nächstes decodiert der Rastersteuerprozessor 700 Information, die durch den anfänglichen Scann des Symbols 720 erhalten wird, um die Hälfte der maximalen Anzahl von Zeilen, Y, des gesamten Symbols 720 zu bestimmen. Wenn der Strichcode in dem PDF417-Format codiert ist, enthalten die ersten beiden Spalten in jeder Reihe Information über die Höhe des gesamten Symbols.
  • Aus dieser Information kann der Prozessor 700 den Scannwinkel Z bestimmen, der erforderlich ist, um das gesamte Symbol 720 zu lesen, ohne Bereiche oberhalb oder unterhalb des Symbols 720 zu lesen. Dies kann wie folgt getan werden: d = y/(tan(z)); Z = tan–1 (Y/d), oder tan–1 ((Y/y)·tan(z)).
  • Aus diesem Wert für Z bestimmt der Prozessor 700 die Rate R, um den Scannwinkel bis zu dem Winkel Z zu öffnen. Die Rate R ist wichtig, da der Prozessor 700 vorzugsweise das Symbol 720 decodiert während das Muster expandiert, und die Expansionsrate muss diesen Betrieb in Einklang bringen. Wenn beispielsweise das Symbol 720 groß ist, sollte die Rate gering sein. Wenn das Symbol 720 klein ist, sollte die Rate schnell sein. Ein weiterer Grund für die Steuerung der Rate der Expansion in der Y-Richtung besteht darin, dass der Scanner decodiert während er expandiert.
  • Während das Scannmuster in den Vollrastermodus expandiert, sind die gescannten Daten an der Ober- und Unterseite des Musters am nützlichsten, da der Scanner die mittleren Bereiche des Strichcodes bereits gelesen hat.
  • Um die Rate R der Expansion in der Y-Richtung zu bestimmen, bestimmt der Prozessor 700 zunächst das Winkeldifferential a als A = Z – z.
  • Dann bestimmt der Rastersteuerprozessor 700 die Rate R wie folgt: R = a/(r·Y),wobei r die Zeit ist, die der Scannmotor braucht, um eine einzelne Reihe zu lesen.
  • Der Steuerprozessor 700 sendet dann Befehle an den Scannmotor 710, um ihn anzuweisen, sich bis zu einem maximalen Scannwinkel Z mit einer Rate R zu öffnen. Eine bevorzugte Implementierung dieser Kommunikation wird unten in dem Abschnitt erläutert, der als „Scannmotorschnittstelle" bezeichnet ist.
  • Ansprechend auf die Befehle öffnet der Scannmotor 710 das Scannmuster zu einem Winkel Z, um sämtliche Zeilen des Symbols 720 zu umfassen, ohne Bereiche oberhalb und unterhalb des Symbols einzuschließen. Dies spart Scannzeit.
  • Dieses Verfahren zur Beschleunigung des Scannens ist anwendbar, selbst wenn der ursprüngliche Scannwinkel relativ zu dem Symbol schräg verläuft, was typisch ist. 8 zeigt eine Vorderansicht der Kontur eines Symbols 800, wobei Teile der Klarheit wegen weggelassen sind. In 8 verlaufen die ursprünglichen Scannlinien 810 schräg zu den Zeilen 820 des Symbols 800 mit einem Winkel α.
  • Die Formel zur Bestimmung des maximalen Scannwinkels Z und der Öffnungsrate R gilt sowohl, wenn kein Neigungs- bzw. Kippwinkel vorhanden ist, als auch wenn ein Kippwinkel vorhanden ist, da sich der Effekt des Kippwinkels aufhebt. Obwohl ein von Null abweichender Kippwinkel y die Anzahl der Zeilen, die ursprünglich oberhalb der Mittelreihe m gescannt wird um einen Faktor von cos α erhöht, nimmt die maximale Anzahl von Zeilen Y um den gleichen Faktor ab. Diese beiden Effekte heben sich auf.
  • Das mit Bezug auf 7 beschriebene Verfahren nimmt an, dass der Benutzer die Scannlinie ungefähr beim vertikalen Mittelpunkt des Strichcodes positioniert hat. Wenn der Benutzer die Scannlinie nicht genau beim Mittelpunkt positioniert, wird dies der Prozessor 700 aus der Information in dem PDF417-Code erkennen. Der Code in jeder Reihe enthält Information über die Anzahl der Zeilen, welche der Prozessor 700 verwenden kann, um die erforderlichen Korrekturen vorzunehmen.
  • b. Alternativer Modus
  • Wenn das zweidimensionale Strichcodesymbol keine eingebettete Information enthält, um das Verfahren zu ermöglichen, das in Verbindung mit den 7 und 8 beschrieben wurde, sieht die vorliegende Erfindung ein unterschiedliches Verfahren vor, das in 9 gezeigt ist. Und das Scannsystem 1000 verwendet, das in 10 gezeigt ist. 10 zeigt die Steuerung des Scanners 1010 im Vollrastermodus.
  • Das Flussdiagramm 900 in 9 beginnt durch Decodieren eines Scanns (Schritt 910). Dies erfolgt, indem ein Scanner 1010 veranlasst wird, ein Rastermuster über ein Strichcodesymbol hinweg zu beginnen und das von dem Symbol reflektierte Licht zu empfangen. Aus diesem reflektierten Licht erzeugt der Scanner 1010 elektrische Signale, die die Breiten des Strich- und Zwischenraummusters darstellen.
  • Tatsächlich sendet der Scanner 1010 zwei Arten von Signalen: Beginn des Scannens (SOS = Start of Scan) und Digitales Strich-/Zwischenraum-Muster (DBP = Digital Bar/space Pattern). Das SOS-Signal ist eine Quadratwellen form, die Pegel zu Beginn jedes Scanns verändert, somit ist es eine logische 0 für Scanns in einer Richtung und eine logische 1 für Scanns in der anderen Richtung. Das DBP-Signal ist eine digitale Wellenform, die aus logischen 1 und logischen 0 Pulsen besteht, deren Längen die Breiten des Strich- und Zwischenraummusters des Strichcodes darstellen, der gescannt wird.
  • Als nächstes werden die gescannten Signale konditioniert (Schritt 920). 10 zeigt tatsächlich diesen Schritt als in zwei kleinen Schritten auftretend. Zunächst misst die Scannerschnittstelle 1020 die Längen jedes Pulses durch Zählen der Anzahl von Pulsen eines Zeitgebers, die während jedes Strichs und Zwischenraums auftreten.
  • Die Scannerschnittstelle 1020 zeichnet diese Werte (DBP-Anzahlen) für jeden Strich und Zwischenraum auf und verwendet das SOS-Signal, um die DBP-Anzahlen für jeden Scann zu gruppieren. Die Scannerschnittstelle 1020 sendet diese gruppierten Anzahlen zu der Decodier-/Scannsteuerung 1030 als eine Strich-Zwischenraum-Sequenz.
  • Als nächstes werden die konditionierten Signale analysiert, um zu bestimmen, ob sich Strichcodeinformation oder eine andere Art von Information darstellen (Schritt 930). In dem in 10 gezeigten Ausführungsbeispiel nimmt die Decodier-/Scannsteuerung 1030 diese Bestimmung durch Betrachten der DBP-Anzahlen vor. Beispielsweise zeigt eine große DBP-Anzahl an, dass ein weißer oder schwarzer Raum zu groß ist, um ein Strich oder Zwischenraum in einem Strichcodesymbol zu sein. Alternativ kann die Decodier-/Scannsteuerung 1030 abfühlen, dass sich die Anzahl der Elemente in einem Scannsymbol deutlich von der Anzahl der Elemente unterscheidet, die durch Scanns bestimmt wurde, die innerhalb des Symbols vorgenommen wurden. Andere Techniken sind ebenfalls möglich. Beispielsweise könnte die Unfähigkeit der Decodier-/Scannsteuerung, irgendwelche Zeichen zu erkennen, anzeigen, dass der gegenwärtige Scann keinen Strichcode überquerte.
  • Wenn die konditionierten Signale ein Strichcodemuster (Schritt 940) darstellen, dann nimmt das Scannmuster zu (Schritt 950) und der Prozess wiederholt sich. Wenn nicht, wird das Muster auf seinen vorangehenden Wert (Schritt 960) verringert und der Rastermodus wird beendet (Schritt 970).
  • In 10 bestimmt die Decodier-/Scannsteuerung 1030, ob der Scanner 1010 das Rastermuster vergrößern oder verkleinern muss. Um die Größe des Rastermusters zu verändern, sendet die Decodier-/Scannsteuerung 1030 digitale Steuersignale an die Digital-zu-Analog-Umwandler 1040 und 1050, um die X- bzw. Y-Antriebssignale für den Scanner 1010 vorzusehen.
  • Anstatt die D/A-Umwandler 1040 und 1050 zu veranlassen, die Spannungen zu verändern, kann das System 1000 höher entwickeltere Techniken verwenden, um eine bessere Steuerung über das Verhalten des Scannerrastermusters vorzusehen. Einige von diesen sind unten in dem Abschnitt beschrieben, der mit „Scannsteuerung" betitelt ist.
  • Ein Warnhinweis muss jedoch ausgegeben werden. Sämtliche Techniken zur Steuerung des Rastermusters sollten jedoch Parameter aufweisen, die mit den mechanischen Eigenschaften des Scanners verbunden werden können. Diese Parameter ermöglichen eine glattere Veränderung der Größe des Rastermusters und die geeignete Veränderungsrate ermöglicht es, dass der Scanner 1010 glatt bzw. problemlos auf Spannungsveränderungen anspricht, die er von der Decodier-/Scannsteuerung 1030 empfängt. Die geeignete Rate und Glätte der Veränderung kann das Flimmern bzw. Flackern beseitigen, das einige Benutzer stört.
  • Die Länge des Scanns und die Rate, mit der er angepasst wird, hängt von der Anzahl der weißen Zwischenräume in den Scanndaten ab, die bevor und nachdem die nützlichen Strichcodedaten decodiert sind. Die Decodier-/Scannsteuerung 1030 kann bestimmen, wie viel das Raster die Kante des Strichcodesymbols in der Y-Richtung überschritten hat, und zwar durch Zählen der Scannzahl von denen keine Daten decodiert werden konnten. Bei spielsweise kann ein großer weißer Raum durch Beobachten einer großen DBP-Anzahl detektiert werden. Der Scanner 1010 nimmt dann Anpassungen vor, wie sie oben beschrieben wurden, und zwar basierend auf den empfangenen Datenwerten.
  • Obwohl die Größe der Scannmuster an Veränderungen in der Distanz zwischen dem Scanner und den Strichcodes angepasst werden kann, sollte die Veränderung der Größe nicht zu schnell stattfinden. Die Rate der Expansion in der Y-Richtung sollte von der Anzahl der Zeilen in einem Kennzeichen und der Höhe des Kennzeichens abhängen.
  • Um dem Scannerbediener die korrekte Reichweite und Ausrichtung des Scanners beizubringen, um die Symbole schnell und genau zu lesen, kann ein Rückkopplungssignal 1060 (ein hörbares „Piepen" oder eine visuelle Anzeige) verwendet werden, wenn ein Symbol in Reichweite detektiert wird. 10 zeigt dieses Signal 1060 als mit der Decodier-/Scannsteuerung 1030 verbunden. In einem Ausführungsbeispiel blinkt eine LED langsam, wenn eine schlechte Ausrichtung besteht und beschleunigt sich mit sich verbessernder Ausrichtung.
  • 3. Strichcodedetektions- und Identifizierungsschaltung
  • Eine der Schlüsselschritte in dem Flussdiagramm 300, das in der 3 gezeigt ist, besteht darin zu bestimmen, ob das gescannte Ziel ein Strichcode war. Obwohl es verschiedene Wege gibt, diese Bestimmung vorzunehmen, zeigt 11 ein Diagramm einer Schaltung 1100, um dies vorzunehmen. Diese Schaltung ist in einer übergeordneten Anmeldung mit der Seriennummer 506,674 offenbart.
  • Die Schaltung 1100 empfängt ein Signal 1105 von dem Verstärker/Digitalisierer 1116 und das Signal tritt in die Eingabe eines Invertierers 1131 ein. Die Ausgabe des Invertierers 1131 ist mit der Anode einer Diode 1132 verbunden, und die Kathode der Diode 1132 ist mit einer RC-Schaltung verbunden, die durch den Widerstand 1120 gebildet wird, der in Reihe mit einer Parallelschaltung des Widerstands 1121 und des Kondensators 1134 verbunden ist. Die Diode 1132 verhindert, dass sich der Kondensator 1134 in die Ausgabe des Invertierers 1131 entlädt.
  • Der Widerstand 1121 und der Kondensator 1134 sind ebenfalls zwischen einem Erdpotential und einer Eingabe 1135 eines offenen Sammelausgabevergleichers 1137 verbunden. Die zweite Eingabe 1138 des Vergleichers 1137 ist ein Grenzwertpegel. Dieser Grenzwertpegel ist ebenfalls das Potential eines Zwischenknoten eines Spannungsteilers, der durch de Serienschaltung der Widerstände 1123 und 1124 zwischen der Lieferspannung V und der Erde gebildet ist.
  • Die Ausgabe des Vergleichers 1137 ist ein „Laseraktivierungs"-Signal 1141, das das Ziel als einen Strichcode anzeigt. Die Ausgabe des Vergleichers 1137 wird ebenfalls zum Zwischenknoten 1150 des Spannungsteilers rückgekoppelt und auf diese Weise zu der Eingabe 1138 über den Widerstand 1125, welcher einen Wert R3 besitzt. Diese Rückkopplung sieht einen Hystereseeffekt zu dem Vergleichsbetrieb vor.
  • Wie 11 zeigt, besitzt der Widerstand 1120 einen Wert R1, der Widerstand 1121 besitzt einen Wert R2, der Widerstand 1123 besitzt einen Wert R4, der Widerstand 1124 besitzt einen Wert R5 und der Kondensator 1134 besitzt einen Wert C. R2 ist viel größer als R1.
  • Die Schaltung 1100 prüft die Längen der unterschiedlichen Teile des Signals 1105. Wenn das Signal gering ist, was das Vorhandensein eines Strichs anzeigt, ist die Ausgabe des Invertierers 1131 hoch und lädt den Kondensator 1134 mit einer Zeitkonstante von ungefähr R1*C, da R2 so viel größer als R1 ist.
  • Für einen Zwischenraum ist das Signal 1105 hoch und auf diese Weise die Ausgabe des Verstärkers 1131 gering. Dies entlädt den Kondensator 1134 durch den Widerstand 1121, da die Diode 1132 die Entladung durch den Widerstand 1120 verhindert. Die Zeitkonstante R2*C ist wesentlich größer als die Zeitkonstante R1*C, so dass die Schaltung einen großen Zwischenraum erfordert, um den Effekt eines Strichs zu beseitigen.
  • Nachdem die Schaltung 1100 einige Striche und Zwischenräume eines Strichcodes mit typischer Dichte überprüft hat, entwickelt der Kondensator 1134 eine Spannung die den Grenzwertpegel des Kondensators 1137 übersteigt. Dies aktiviert das Laseraktivierungssignal 1141.
  • Diese Aktivierung senkt ebenfalls die offene Sammlerausgabe des Vergleichers 1137, wodurch die Grenzwertspannung bei der Eingabe 1138 fällt. Dieses Verhalten verursacht die Hysterese, um zu verhindern, dass geringe Spannungsveränderungen bei dem Kondensator 1134 durch Striche, Zwischenräume und Ruhezonen das Laseraktivierungssignal 1141 abschalten.
  • Es könnte so aussehen, als ob die Schaltung 1100 ebenfalls ausgelöst werden würde, wenn der Verstärker/Digitalisierer 1116 ein detektiertes Signal erzeugt, welches einen langen schwarzen Strich darstellt. Dies ist jedoch kein Problem, da in dem bevorzugten Ausführungsbeispiel der Verstärker/Digitalisierer 1116 als ein Hochpassfilter fungiert, um die Erzeugung von langen Signalen zu verhindern. Beispielsweise könnte die Verstärker/Digitalisiererschaltung 1116 nur kurze Pulse von bekannten Längen für schwarze Striche erzeugen, so dass das Signal für einen langen schwarzen Strich, das Gleiche wie für einen kürzeren wäre.
  • Die Schaltung 1100 ist ausreichend flexibel, um gemeinsam mit Software verwendet zu werden, die durch die CPU 140 (1) zu anderen Zwecken ausgeführt wird. Beispielsweise kann die Schaltung 1100 behilflich sein, einen Strichcode von Text oder anderen Abbildungen zu unterscheiden. Um dies zu tun, nutzen die Schaltung 1100 und die CPU 140 die gleichmäßigen Breiten von Strichcodes vergleichen mit Text, der unterschiedliche Breiten besitzt, aus. Aufgrund dieser Charakteristik werden unterschiedliche Scanns durch unterschiedliche Schnitte eines Strichcodemusters wahrscheinlich zu ähnlichen Ergebnissen führen. Andererseits werden verschiedene Scanns durch unterschiedliche Teile von Text zu unterschiedlichen Ergebnissen führen. Scannlinien, die ausreichend dicht voneinander beabstandet sind, können sogar verwendet werden, um zweidimensionale Strichcodes von Graphiken zu unterscheiden, aufgrund der gleichförmigen Breite der Striche und Zwischenräume in zweidimensionalen Strichcodes.
  • Ein Rasterscannmuster funktioniert gut mit diesen Techniken, indem die Scanns automatisch senkrecht bewegt werden. Diese garantiert dass aufeinanderfolgende Scannlinien parallele Schnitte des gescannten Musters überqueren.
  • Darüber hinaus kann eine höhere Genauigkeit erzielt werden, indem bestimmte Betriebsparameter gesteuert werden, wie beispielsweise horizontale und vertikale Scannwinkel, und zwar ansprechend auf den bestimmten Typ des Strichcodes, der gescannt werden soll. Dies ist nützlich für ein einzelnes System zum Decodieren von sowohl eindimensionalen als auch zweidimensionalen Strichcodes.
  • Das Scannen gemäß dieser Erfindung ist nicht auf Rastertypscannen beschränkt. Die individuelle Steuerung der X-Achse und der Y-Achse ermöglicht es, dass das System ein Scannmuster jeglicher erwünschter Form vorsieht. Beispielsweise erzeugt die Verwendung von ausschließlich den X-Achsensteuerungen eine lineare Scannlinie auf dem Symbol. Das Antreiben der X-Achsen- und Y-Achsensteuerungen mit gleichförmigen Geschwindigkeitsraten verursacht ein Scannmuster vom Rastertyp mit einem Satz von im Allgemeinen parallelen Scannlinien. Das Antreiben der X-Achsen- und Y-Achsenscanns mit sinusförmig variierenden Raten erzeugt ein omnidirektionales Scannmuster vom Lissajous-Typ.
  • Informationen über Scannsteuerung können in dem U.S. Patent Nr. 4,387,297 , ebenso wie in der U.S. Patentanmeldung Seriennummer 520,464 , eingereicht am 8. Mai 1990, gefunden werden.
  • Ein letzter Vorteil der Verwendung der Schaltung in 11 entsteht durch die Signalverarbeitung, die sie ohne Verwendung anderer Scannerresourcen ausführt. Diese Technik verringert den Betrag der Verarbeitung, den die CPU 140 ausführen muss, und verringert auf diese Weise die Latenz des Systems, wenn es ein Strichcodesymbol liest.
  • C. Scannsteuerung
  • 1. Scannelementsteuerung
  • 12 zeigt die Details eines Scanner- bzw. Scannmotors 1200 gemäß dieser Erfindung, der sowohl flexibel als auch effizient ist. Der Scannmotor 1200 kann mit den Scanneruntersystemen verwendet werden, die in dieser Beschreibung beschrieben wurden, oder mit anderen Untersystemen.
  • Wie 12 zeigt, hat der Scannmotor 1200 drei Hauptkomponenten: die Steuervorrichtung 1210, den Digital/Analog-Wandler 1220 (D/A-Wandler) und den PWM-Regler bzw. Pulsbreitenmodulationsregler 1230. Der PWM-Regler 1230 steuert eine Motorspule 1240, die ein (nicht gezeigtes) Führungselement antreibt und eine Rückkoppelung zur Steuervorrichtung 1210 über den Verstärker 1250 liefert.
  • Die Steuervorrichtung 1210, die vorzugsweise ein PIC16C71 ist, der von Microchip Technology Inc. hergestellt wurde, formt und sendet ein digitales Treibersignal 1215 an den D/A-Wandler 1220. Das digitale Treibersignal 1215 ist tatsächlich eine Reihe von 7-Bit-Digitalzahlen entsprechend den Spannungswerten eines Signals zum Antrieb der Spule 1240. Wie genauer unten beschrieben ist das digitale Antriebssignal 1215 vorzugsweise die Summe von zwei Sinuswellen, eine zum Antrieb der horizontalen Auslen kung oder X-Achsen-Auslenkung, und eine zum Antrieb der vertikalen Auslenkung oder Y-Achsen-Auslenkung.
  • Der D/A-Wandler 1220 erzeugt ein analoges lineares Steuerspannungssignal 1225 aus dem digitalen Antriebssignal 1215 und liefert das analoge Antriebssignal 1225 als eine Einganggröße an den PWM-Reglers 1230. Der D/A-Wandler 1220 erscheint konzeptionell wie ein Leiter-Wandler, weil solche Wandler sehr kompakt gemacht werden können. Andere Wandlerkonstruktionen werden jedoch genauso gut arbeiten.
  • Der PWM-Regler 1230, der einen Komparator 1231 mit einschließt, erzeugt ein Stromtreibersignal 1235 aus dem analogen Antriebssignal 1225 und sendet das Stromtreibersignal 1235 durch die Spule 1240. Die Form des Stromtreibersignals 1235 ähnelt jener des analogen Spannungstreibersignals 1225, somit wirkt in einem Sinne der PWM-Regler 1230 als ein Spannung/Strom-Wandler.
  • Die Spule 1240 erzeugt ein Magnetfeld proportional zu dem Stromtreibersignal 1235. Dieses Magnetfeld bewirkt, dass ein RASE (RASE = Resonant Asymmetric Scan Element = resonantes asymmetrisches Scannelement) horizontal oszilliert, und dass ein Mylar-Träger des RASE vertikal oszilliert. In dieser Weise wirken das RASE und sein Träger als Führungsspiegel 159 (1). Das RASE und sein Träger werden beschrieben im US-Patent 5 280 165 .
  • Das RASE bzw. resonante asymmetrische Führungselement hat ein hohes Q, was ihm gestattet, weiter zu oszillieren, auch nach dem das Treibermagnetfeld stoppt. Das bevorzugte Ausführungsbeispiel zieht Vorteil aus diesem Merkmal durch periodisches Anhalten des aktiven Antriebs der Spule 1240. Das RASE oszilliert jedoch weiter, und die Spule 1240 wirkt dann als passives Abfühlelement, welches Informationen über die Amplitude und die Phase des sich bewegenden RASE aufnimmt.
  • Der Verstärker 1250, der als ein Puffer angeschlossen ist, wandelt die Signale von der Spule 1240 in ein Amplituden- und Phasenrückkoppelungssignal 1255 um, und Zwar als eine Eingangsgröße in die Steuervorrichtung 1210. Die Steuervorrichtung 1210 verwendet das Rückkoppelungssignal 1255 um sicherzustellen, dass sie die Spule 1240 ordnungsgemäß antreibt.
  • Ein Temperatursensor 1260 liefert eine zweite Eingangsgröße für die Steuervorrichtung 1210, das Temperatursignal 1265. Das Signal 1265 stellt die Umgebungstemperatur in der Nähe des Scannmotors 1200 dar.
  • Der Sensor 1260 misst die Umgebungstemperatur aus zwei Gründen. Einer ist es, den Motor 1200 zu kalibrieren, um Veränderungen aufgrund der Temperatur zu berücksichtigen. Der andere Zweck ist es, die Steuervorrichtung 1210 zu alarmieren, um die Betriebsvorgänge zu stoppen, wenn die Umgebungstemperatur außerhalb eines sicheren Betriebsbereiches ist.
  • Eine dritte Eingangsgröße für die Steuervorrichtung 1210 ist die serielle ZIF-Schnittstelle 1270 mit zwei Drähten (Takt plus Daten). Wie im folgenden in dem Abschnitt genauer erklärt wird, der mit "Scannmotorschnittstelle" bezeichnet ist, gestattet diese Schnittstelle, dass die Steuervorrichtung 1210 Befehle vom Rest der Scannvorrichtung aufnimmt und Informationen zu der Scannvorrichtung sendet.
  • Die restliche Eingangsgröße in die Steuervorrichtung 1210 ist ein externer Takt 1280. Der Takt bzw. Clock 1280 erzeugt ein Signal als eine Frequenz, die von dem bevorzugten Ausführungsbeispiel der Steuervorrichtung 1210 erzeugt wird.
  • Zusätzlich zu der ZIF-Schnittstelle 1270 und dem digitalen Treibersignal 1215 sendet die Steuervorrichtung 1210 auch zwei andere Signale aus. Eins ist ein "Listen-Signal" 1234, um dem PWM-Regler 1230 zu sagen, wann er aufhören muss, das Stromtreibersignal 1235 zu erzeugen, wodurch die Spule 1240 in eine Aufnahmevorrichtung umgewandelt wird.
  • Ein zweites Signal, welches von der Steuervorrichtung 1210 gesandt wird, ist das Scannungsbeginn- oder SOS-Signal 1290 (SOS = Start of Scan = Scannungsbeginn). Wie oben erklärt zeigt das SOS-Signal, wann und in welcher Richtung das RASE horizontal angetrieben wird.
  • In dem bevorzugten Ausführungsbeispiel enthält die Steuervorrichtung 1210 einen Mikroprozessor 1211, einen Nachschau-ROM 1212, einen inneren Timer 1213 und einen Analog/Digital-Wandler 1214 (A/D-Wandler). Der Mikroprozessor 1211 weist eine arithmetische Logikeinheit und einen internen Speicher auf. Der ROM 1212, der vorzugsweise programmierbar ist, sieht Datentabellen und Routinen zur Steuerung der Betriebsvorgänge des Mikroprozessors 1211 vor. Der Timer bzw. die Zeitsteuervorrichtung 1213 ist ein Interrupt-Timer, den der Mikroprozessor 1211 verwendet, um Echtzeitbetriebsvorgänge zu steuern. Der A/D-Wandler 1214 wandelt die analoge Temperatur, die Amplitude und die Phaseninformation in ein digitales Format für den Mikroprozessor 1211 um.
  • Wenn sie in ihrem normalen Betriebszustand arbeitet, erzeugt die Steuervorrichtung 1210 ein Sieben-Bit-Digitaltreibersignal 1215, welches die Summe von zwei Sinuswellen darstellt. Eine ist ungefähr 290 Hz, und die andere ist ungefähr 15 Hz. Das Signal mit 290 Hz wird verwendet, um die X-Achsen-Auslenkung des RASE anzutreiben, und das 15 Hz-Signal wird verwendet, um die Y-Achsen-Auslenkung des Mylar-Trägers anzutreiben.
  • Die Steuervorrichtung 1210 kann das digitale Treibersignal 1215 verändern, wie benötigt. Beispielsweise überwacht die Steuervorrichtung 1210 konstant das Rückkoppelungssignal 1255, um zu bestimmen, ob die Amplitude oder Frequenz des digitalen Treibersignals 1215 zu verändern ist. Zusätzlich kann die Steuervorrichtung 1210 ein Signal mit einer anderen Form oder mit anderen Frequenzen erzeugen, um andere Ausrüstungsgegenstände aufzunehmen bzw. zu bedienen.
  • Der D/A-Wandler 1220 wandelt kontinuierlich das digitale Treibersignal 1215 in ein analoges Treibersignal 1225 um. Ein analoges Treibersignal gestattet, dass der Scannmotor 1200 genau bei höheren Frequenzen arbeitet. Um zu verstehen warum, erfordert dies ein Verständnis des PWM-Reglers 1230.
  • Der PWM-Regler 1230 nimmt das analoge Antriebssignal 1225 an einem nicht invertierenden Eingang des Komparators 1231 auf und nimmt ein Stromrückkoppelungssignal 1232 an dem invertierenden Eingang des Komparators 1231 auf. Der Stromsensor 1242 erzeugt ein Stromrückkoppelungssignal 1232 als ein Spannungssignal entsprechend dem Stromtreibersignal 1235. Der Aufbau des PWM-Reglers 1230 in dieser Weise zwingt den Regler 1230 dazu, dem analogen Treibersignal 1225 zu folgen.
  • Diese Konstruktion des PWM-Reglers 1230 hat zwei Vorteile gegenüber herkömmlichen Spannungstreiberschaltungen. Erstens erfordern die Spannungstreiber eine Versorgung für sehr große Spannungen, um dem hinteren Ende der Spule 1240 entgegenzuwirken. Der PWM-Regler 1230 tut dies nicht, weil er ein Stromtreiber ist.
  • Zweitens kann ein Spannungstreiber das hohe Q des RASE reduzieren, in dem er durch die Spule 1240 Signale zwingt, die nicht bei der Resonanzfrequenz der Spule liegen. Das bevorzugte Ausführungsbeispiel des Reglers 1230 verringert nicht das Q des RASE, weil die Rückkoppelungskomponente sicherstellt, dass das RASE mit der Resonanzfrequenz angetrieben wird.
  • 13 zeigt die bevorzugte Konstruktion des PWM-Reglers 1230 genauer. Das analoge Treibersignal bzw. Antriebssignal 1225, welches als Vo gezeigt ist, tritt in den nicht invertierenden Eingang des Operationskomparators 1231 über den Widerstand 1301 ein. Der invertierende Eingang des Komparators 1231 ist in Verbindung mit einer Referenzspannung Vref über den Widerstand 1310.
  • Die Ausgangsgröße des Komparators 1231 mit offenem Kollektor, der auf eine Steuerspannung Vcc über den Widerstand 1230 heraufgezogen wird, erzeugt ein PWM-Signal, welches der Inverter 1330 verwendet, um ein invertiertes PWM-Signal zu bilden. Das PWM-Signal steuert einen Schalter 1340, und das invertierte PWM-Signal steuert einen Schalter 1345. Die Schalter 1340 und 1345 sind in Verbindung mit gegenüberliegenden Seiten der Spule 1240, um eine ½H-Brücke zu formen.
  • 14 zeigt, dass die Schalter 1340 und 1345 vorzugsweise Transistoren 1440 bzw. 1455 sind. Die Transistoren 1440 und 1455 wirken als Schalter, weil sie in einem von zwei Zuständen sind: Gesättigt oder nicht leitend. Die Anwendung von Transistoren in dieser Weise verringert den RDS-Verlust (RDS = resistance from drain to source = Widerstand von drain zu source) und ist wirkungsvoller als die Verwendung von Transistoren in ihren aktiven Regionen als lineare Antriebe. Der in den 13 und 14 gezeigte PWM-Regler ist ungefähr zweimal so effizient wie ein linearer Antrieb. Darüber hinaus erzeugt dieser PWM-Regler eine Schaltfrequenz von mehr als 100 KHz, wodurch die Schaltfrequenzstromkomponenten in der Motorspule minimiert werden.
  • Die Schalter 1340 und 1345 schalten abwechselnd an und aus, um eine Hochfrequenz-PWM-Impulsabfolge an der Spule 1240 zu erzeugen. Die Induktivität der Spule 1240 integriert diese Impulsabfolge, um in der Spule 1240 einen stückweise linearen Strom proportional zur Gleichstromkomponente der Impulsabfolge zu erzeugen. Dieser mit der Zeit variierende Strom nähert sich an die summierte Sinuswellenform eines analogen Signals 1225 an.
  • 13 zeigt, dass in dem bevorzugten Ausführungsbeispiel die Spule 1240 in zwei seriell verbundene Abschnitte 1347 und 1348 aufgeteilt ist, die von dem Stromabfühlwiderstand Rs 1242 getrennt sind. Eine Seite des Rs 1242 ist durch den Widerstand 1302 mit dem nicht invertierenden Eingang des Verstärkers 1231 verbunden, und die andere Seite des Abfühlwiderstandes 1242 ist durch den Widerstand 1312 mit dem invertierenden Eingang des Verstärkers 1231 verbunden. Die Größen der Widerstände werden so ausgewählt, dass der Strom durch die Spule 1240, iL, ungefähr gleich (Vo-Vref)/Rs ist.
  • Die Spule 1240 erzeugt ein Magnetfeld mit der gleichen Form wie des Stromtreibersignals 1235, die Summe der Sinuswellen mit 290 Hz und mit 15 Hz. Das RASE filtert mechanisch den niederfrequenten Teil des magnetischen Signals aus, und der Mylar-Träger filtert mechanisch den hochfrequenten Teil aus.
  • 15a zeigt die Frequenzantwort für das RASE und seinen Mylar-Träger, um die mechanische Filterung zu zeigen. Wie es offensichtlich ist, wird der Mylar-Träger nur auf die niederfrequenten Signale ansprechen, und das RASE wird nur auf die Signale in einem schmalen Band um 280 Hz ansprechen.
  • 15b zeigt das hohe Q (ungefähr 500) des RASE, dessen Resonanzfrequenz 280 Hz ist. Die Werte für die Größe und die Phase weichen merklich als eine Funktion der Frequenz ab.
  • Um das RASE mit einem so hohen Q anzutreiben erfordert dies eine sorgfältige Rückkoppelungsüberwachung. Der Mikroprozessor 1211 arbeitet so, dass er durch eine Extraktion aus dem digitalisierten Rückkoppelungssignal die Informationen über die maximale Amplitude und die Phase (oder die Frequenz) extrahiert. Das bevorzugte Verfahren zur Rückkoppelungsüberwachung sieht vor, dass periodische Messungen bei der gleichen relativen Phase des digitalen Treibersignals 1215 aufgenommen werden. Bei dem bevorzugten Ausführungsbeispiel nimmt der Mikroprozessor 1211 eine Rückkoppelungsmessung einmal alle 19½ Zyklen des X-Achsen-Antriebs auf, und steuert zeitlich die Messungen so, dass sie beim Nulldurchgang beginnen und bei der maximalen Amplitude oder dem Punkt des viertelten Zyklus beginnen. Wenn der gemessene Wert von dem beabsichtigten Wert ab weicht, ist die Steuervorrichtung 1210 außer Phase mit dem RASE, und der Mikroprozessor 1211 verändert die Frequenz, um diese Bedingung zu korrigieren.
  • Um die Amplituden- und Frequenzwerte des Signals 1215 zu korrigieren, verwendet der Mikroprozessor 1211 verschiedene Werte, die während der Kalibrierung in der Fabrik eingestellt wurden. Dies ist der bevorzugte Zeitpunkt, um die Grundwerte in den ROM 1212 einzugeben.
  • Natürlich können die in den ROM 1212 bei der Kalibrierung gespeicherten Werte nicht immer genau bleiben. Veränderungen der Temperatur, des RASE oder andere Faktoren könnten erfordern, dass der Mikroprozessor 1211 andere Werte für das Treibersignal 1215 erzeugt. Dies ist warum der Mikroprozessor 1211 Einstellungen basierend auf der Rückkoppelung vornimmt. Um Einstellungen vorzunehmen, erhält der Mikroprozessor 1211 vom ROM 1212 zwei Sätze von Amplitudenwerten für die X-Achsenauslenkung und eine Frequenzeinstellung (oder Sinuswellenperiodeneinsteilung). In dem bevorzugten Ausführungsbeispiel gibt es keine Y-Achsen-Einstellung, nur einen Satz von Amplitudenwerten für die X-Achsen-Einstellung. Um die Y-Achsen-Auslenkung zu korrigieren, könnte jedoch der ROM 1212 einen zusätzlichen Satz von Amplitudenwerten enthalten.
  • Für die X-Achsen-Auslenkung weist der ROM 1212 Grundlinienwerte auf, die die maximale Auslenkung darstellen, und grobe Amplitudeneinstellwerte. Die groben Einstellwerte sind 5 Prozent der entsprechenden Grundlinienwerte. Im bevorzugten Ausführungsbeispiel hat jeder Satz von Werten für die hohe Frequenz oder das X-Achsen-Signal 16 Einträge, und jeder Satz von Werten für die niedrige Frequenz oder das Y-Achsen-Signal hat 26 Einträge. In dem bevorzugten Ausführungsbeispiel stellen die Werte aufeinanderfolgende Werte für Sinuswellen dar.
  • Der Frequenzwert sagt dem Mikroprozessor 1211, wie oft er neue Werte für das digitale Treibersignal 1215 aussenden soll. Beispielsweise hätte für eine Sinuswelle von 300 Hz der Mikroprozessor 1211 einen vollständigen Satz von Werten alle 1/300 Hz oder 3,33 ms aussenden müssen. Wenn ein vollständiger Satz 16 Werte aufweisen würde, müßte der Mikroprozessor 1211 einen neuen Wert alle 3,33 ms/16 oder alle 208 μs liefern. Vorzugsweise wird der Interrupt-Timer 1213 auf den Wert eingestellt, der nötig ist, um das digitale Treibersignal 1215 mit der erwünschten Frequenz zu erzeugen.
  • Der Mikroprozessor 1211 macht Frequenzeinstellungen in dem er einen neuen Wert in den Interrupt-Timer 1213 lädt. Amplitudeneinstellungen sind ebenfalls nicht sehr kompliziert. Der Mikroprozessor 1211 bildet neue Werte für das Signal 1215 durch Subtraktion von Werten unter Verwendung von groben Einstellwerten von der Grundlinie und dann durch Verwendung einer Feineinstelltechnik.
  • 16 veranschaulicht, wie die groben Einstellungen vorgenommen werden. Die Kurve 1610 enthält verschiedene Grundlinienamplitudenwerte, und die Linie 1620 enthält verschiedene Grobeinstellwerte, die von den Grundlinienwerten zu subtrahieren sind. Um beispielsweise ein Amplitudensignal 15 Prozent niedriger zu formen als die Grundlinie, als Kurve 1630 gezeigt, subtrahiert der Mikroprozessor 1211 die Grobeinstellwerte (jeder mit 5 Prozent des entsprechenden Grundlinienwertes) dreimal von den Grundlinienwerten.
  • 17 zeigt, wie Feineinstellungen beim bevorzugten Ausführungsbeispiel gemacht werden. Die Feineinstellung erfordert auch eine wiederholte Subtraktion, jedoch anstelle der Verwendung eines Prozentsatzes von Grundlinienwerten, verwendet der Mikroprozessor 1211 eine feste Versetzung. Die Versetzung ist positiv, wenn der Grundlinienwert positiv ist, ist negativ, wenn der Grundlinienwert negativ ist, und ist Null, wenn der Grundlinienwert Null ist. Die Feineinstellung wandelt die Kurve 1710 in die Kurve 1720 um. Die Feineinstellung tendiert dazu, die Sinuswellenform geringfügig zu verzerren, jedoch mit wenig merklichem Effekt.
  • Zusätzlich verwendet der Mikroprozessor 1211 während der Kalibrierung das Umgebungstemperatursignal 1265 zur Einstellung der Frequenz des RASE gemäß der Temperatur. 18 zeigt eine typische Beziehung zwischen der Temperatur in Grad Celsius und einer Resonanzfrequenz in Hz für ein RASE. Weil das RASE einen so hohen Q-Wert hat, ist es wichtig, eine ordnungsgemäße Temperaturkompensation sicherzustellen.
  • In dem bevorzugten Ausführungsbeispiel bildet der Mikroprozessor 1211 die Werte für die Sinuswelle mit höherer Frequenz, wie oben beschrieben, und zwar durch Bestimmung eines neuen Spannungswertes immer dann, wenn der Interrupt-Timer 1213 ein Interrupt-Signal erzeugt. Der Mikroprozessor 1211 bildet einen neuen Wert für die Sinuswelle mit niedriger Frequenz durch Zugriff auf den ROM 1212, nach dem er eine gewisse vorbestimmte Anzahl von neuen Werten für das höherfrequente Signal erhalten hat. Um beispielsweise ein Signal mit 15 Hz aus einer Tabelle mit 26 Werten zu bilden, ruft der Mikroprozessor 1211 einen neuen Wert für das niederfrequente Signal alle 0,75 Zyklen eines höherfrequenten Signals von 300 Hz auf.
  • 19 zeigt die Bildung einer hochfrequenten Sinuswelle für ein Signal mit 300 Hz mit 16 Werten, und einer niederfrequenten Sinuswelle mit einem neuen Wert alle 0,75 Zyklen (oder alle 12 Werte) der hochfrequenten Sinuswelle. Wie oben erklärt, würde der Mikroprozessor 1211 bei einem Signal von 300 Hz mit 16 Werten alle 208 μs einen Interrupt aufnehmen. 19 zeigt auch die Beziehung zwischen dem SOS-Signal und dem digitalen Treibersignal 1215. Der Pegel des SOS-Signals zeigt die Polarität des Treibersignals 1215 und somit die Richtung der Scannung an.
  • Dieses grundlegende Verständnis der Schlüsselkomponenten des Scannmotors 1200 gestattet einen Überblick über den gesamten Betrieb des Scannmotors 1200. 20 enthält ein Flussdiagramm 2000, welches die Betriebsvorgänge zeigt, die für die Motorsteuerung nötig sind.
  • Als erstes wird das Verfahren entweder anfänglich oder nach einer gewissen Art eines Rücksetzvorgangs gestartet. (Schritt 2010). Als Nächstes liest der Mikroprozessor 1211 den Eingangsanschluss aus der seriellen Schnittstelle 1270 aus, um zu sehen, welche Befehle auszuführen sind. (Schritt 2015). Der erste Befehl wird wahrscheinlich gewisse Anfangswerte einstellen.
  • Der Mikroprozessor 1211 mißt dann die Temperatur. (Schritt 2020). Wenn die Temperatur zu warm ist, dann sendet die Steuervorrichtung 1200 ein Laser-Off-Signal, um die Scannvorrichtung abzuschalten. Anderenfalls geht das Verfahren weiter und der Mikroprozessor 1211 stellt die Frequenz (d.h. die Periode) für die X-Achse ein. (Schritt 2025).
  • Als nächstes startet die X-Achsenführung durch Vorsehen einer maximalen Eingabe oder eines "Stoßes". (Schritt 2030). Der Mikroprozessor 1211 mißt dann die maximale Amplitude für die X-Achse. (Schritt 2035). Der "Stoß" fährt fort, bis die maximale X-Achsenamplitude den Grundlinienwert erreicht. An diesem Punkt beginnt die Y-Achsensignalauslenkung. (Schritt 2040).
  • Als nächstes liest der Mikroprozessor 1211 wiederum den Steueranschluss aus, um den nächsten Befehl zu bekommen. (Schritt 2045). Wenn der Befehl ist, die X- oder Y-Amplitude zu modifizieren, dann wird die Modifikation durchgeführt (Schritt 2050), und der Steueranschluss wird wiederum für einen weiteren Befehl abgefragt. (Schritt 2045).
  • Wenn der Befehl anzeigt, dass das Symbol zweidimensional ist, öffnet der Mikroprozessor 1211 die Y-Achse, um die Höhe des Scannmusters zu vergrößern. (Schritt 2055). Nach dem man dies so getan hat, modifiziert der Mikroprozessor 1211 die X- oder Y-Amplituden zur Wiederspiegelung der Veränderung in dem Scannmuster. (Schritt 2060). Danach liest der Mikroprozessor 1211 den Steueranschluss bezüglich eines weiteren Befehls aus. (Schritt 2065).
  • Wenn der Befehl anzeigt, dass das Scannmuster wiederum modifiziert werden muss, erfüllt der Mikroprozessor 1211 dies (Schritt 2060) und liest den Steueranschluss bezüglich des nächsten Befehls aus. (Schritt 2065).
  • An diesem Punkt oder während einer früheren Auslesung des Steueranschlusses (Schritt 2045) kann die Steuervorrichtung 1210 einen Befehl aufnehmen, der eine Decodierung zur Überprüfung des Scannmotors 1200 anzeigt. Ansprechend darauf bremst der Mikroprozessor das RASE (Schritt 2070) und wartet auf die nächste Operation. Vorzugsweise bremst der Mikroprozessor 1211 das RASE, in dem er es um 180 Grad außer Phase antreibt.
  • 21 enthält ein Flussdiagramm 2100, welches die Schritte zur Erzeugung der ordnungsgemäßen Rasterscannungen zeigt. Nach dem Start (Schritt 2110) sendet der Mikroprozessor 1211 die summierten Sinuswellensignale an den D/A-Wandler 1220. (Schritt 2115). Dies wird die Scannung einleiten oder fortsetzen.
  • Als nächstes bestimmt der Mikroprozessor 1211, ob er die Amplituden- oder Frequenzwerte verändern muss, und zwar ansprechend auf einen Befehl vom Steueranschluss. (Schritt 2120). Wenn dies so ist, modifiziert der Mikroprozessor 1211 die geeigneten Register für die Frequenz, die X-Achsen-Amplitude oder die Y-Achsen-Amplitude. (Schritt 2125).
  • Nach der Modifikation der Register, oder wenn keine Veränderung erforderlich ist, nimmt der Mikroprozessor 1211 den nächsten Grundlinienwert für die X-Achse auf (Schritt 2130) und bekommt die entsprechenden Grob- und Feineinstellungswerte (insgesamt X'). (Schritt 2135).
  • Dann beginnt eine Schleife, in der die X'-Einstellwerte wiederholt von dem X-Grundlinienwert subtrahiert werden (Schritt 2140), und zwar eine Anzahl von Malen gleich einem gespeicherten Wert "xcntr". (Schritt 2145). Xcntr zeigt, um wieviel der Grundlinienwert modifiziert werden muss. Als nächstes führt der Mikroprozessor 1211 einen ähnlichen Satz von Operationen für die Y-Achsenwerte aus. Wie oben erklärt tritt dieser Betriebsvorgang alle 0,75 Zyklen der X-Achsen-Sinuswelle bei dem bevorzugten Ausführungsbeispiel auf. Ähnlich wie bei der X-Achsenschleife ruft der Mikroprozessor 1211 den Grundlinienwert für die Y-Achse auf (Schritt 2150), und die entsprechenden Y-Fine- und Y-Grobeinstellwerte Y'. (Schritt 2155). Als nächstes subtrahiert der Mikroprozessor die Y'-Einstellwerte (Schritt 2160) von dem Grundlinien-Y-Wert für eine Anzahl von Malen gleich "ycntr", ein gespeicherter Wert ähnlich xcntr. (Schritt 2165).
  • Nach der Bestimmung der eingestellten X- und Y-Werte addiert der Mikroprozessor 1211 diese Werte miteinander. (Schritt 2170). Dann wartet er auf eine Timer-Unterbrechung (timer-interrupt). (Schritt 2175).
  • Wenn der Interrupt auftritt, lädt der Mikroprozessor 1211 erneut einen Timer-Wert in ein X-Achsen-Frequenzsteuerregister. Der Timer-Wert ist entweder eine grobe Frequenzeinstellung, die vorzugsweise der Wert ist, der zwischen allen außer zwei Sampling- bzw. Aufnahmepunkten verwendet wird, oder er ist ein feiner Frequenzwert, der vorzugsweise der Wert ist, der zwischen zwei Sampling- bzw. Aufnahmepunkten verwendet wird, um kleinere Frequenzeinstellungen vorzunehmen. (Schritt 2180). Der gesamte Prozeß wiederholt sich dann, wobei die Summe der eingestellten X-Achsen- und Y-Achsen-Amplitudenwerte an einen D/A-Wandler 1220 ausgesandt wird. (Schritt 2115).
  • Um das Verständnis dieser Erfindung zu vervollständigen ist es nützlich, die spezifischen Variablen zu kennen, die in dem ROM 1212 bei dem bevorzugten Ausführungsbeispiel gespeichert sind. Während der anfänglichen Programmierung in der Fabrik ordnen die Techniker vorzugsweise einen Wert von 30 für die maximale Y-Amplitudenvariable zu. Der Mikroprozessor 1211 in dem Scannmotor 1200 bestimmt die grobe Einstellung und die feine Einstellung aus diesem Wert.
  • Der Techniker gibt die folgenden 8-Bit-Worte in eine Kalibrierungstabellenstelle in dem ROM 1212 ein.
  • Ymax:
    Maximale Y-Amplitude (größte Höhe des Scannmusters)
    Ymin:
    Minimale Y-Amplitude (kleinste Höhe des Scannmusters)
    Xdrive:
    X-Amplitudeneinstellung, die beim Start verwendet wird, um grobe und feine Einstellwerte zu erzeugen
    Fcrs:
    Grober Frequenzwert (Distanz zwischen allen Aufnahmepunkten außer den Einstellungspunkten)
    FFine:
    Feiner Frequenzwert (während den Einstellpunkten verwendet)
    Phase:
    Phasenreferenzwert für die X-Achsen-Frequenzsteuerung (Wert, der verwendet wird, um den maximalen Wert für die Phasenmessung zu finden)
    Fback:
    Amplitudenreferenz, die verwendet wird, wenn man das Rückkoppelungssignal untersucht
    Kcount:
    Anzahl der X-Achsen-Zyklen zur Anwendung des Stoßes (kick)
  • Dies ist der einzige Abschnitt des Programmraums der Steuervorrichtung 1200, der sich für jeden Scanner bzw. jede Scannvorrichtung verändert.
  • Der Kalibrierungstabellenbereich in dem ROM 1212 ist groß genug, um eine erneute Programmierung zu unterstützen. Vorzugsweise kann jede Kalibrierungstabelle eines jeden Scanners bis zu viermal programmiert werden. Um die alten Tabellenwerte auszulöschen, überschreibt der Mikroprozessor 1211 den Tabellenraum mit jenen Werten mit NOP-Anweisungen (0016). Er schreibt dann die neue Kalibrierungstabelle in neue zuvor reservierte Speicherstellen des ROM 1212. Wenn der Mikroprozessor 1211 auf die Kalibrierungstabelle zugreift, überspringt er die NOP-Anweisungen und inkrementiert einen Programmzähler, bis er die neuen Tabelleneinträge findet.
  • Gewöhnlicherweise muss ein Techniker nur die Kalibrierungstabelle erneut programmieren, wenn ein Motor während des Services ersetzt wird, oder wenn der Ausrichtungsoperator in der Fabrik die Motorausrichtungsfehler korrigieren muss. In der Fabrik wird der Scannmotor auf einer Ausrichtungsfixierung angeordnet, die automatisch den Motor ausrichtet, um Kalibrierungstabellenwerte zu erzeugen.
  • Nach einem Reset lädt der Mikroprozessor 1211 die Kalibrierungstabellen aus dem ROM 1212 in einen RAM in den Mikroprozessor 1211. Wie der Abschnitt unten erklärt der "Scannmotorschnittstelle" betitelt ist, können die RAM-Stellen modifiziert werden durch Verwendung des Kalibrierungsbetriebszustandes, um Veränderungen des Scannmusters "in Betrieb" zu bewirken. In den meisten Fällen jedoch gestattet die Scannmotorschnittstelle dynamische Scannmusterveränderungen, in dem sie den Decoderamplituden und Öffnungsraten durch Befehle festlegen läßt, wie beispielsweise durch OPEN Y. Die normalen Produktbefehle verändern nicht die Kalibrierungswerte, sind jedoch kein Teil des Kalibrierungsbetriebszustandes. Der Scannmotor 1200 erzeugt Befehle in die Steuerung, Variablen, die der Mikroprozessor 1211 verwendet, um die Grundlinienwerte zu manipulieren.
  • Es wird aus der vorangegangenen Beschreibung offensichtlich, dass die Konstruktion des Scannmotors 1200 seinen Scan- bzw. Führungsvorgang leistungsstark und wirkungsvoll macht. Ein weiterer Vorteil des Scanner- bzw. Scannmotors 1200 ist, dass er sehr wenig Raum erfordert. 22a zeigt eine Perspektivansicht einer bevorzugten Anordnung, die einen Laser 2210, den RASE-Spiegel 2220, die Mylar-Anordnung 2225 und die Motorspule 1240 enthält.
  • 22b zeigt eine andere Perspektivansicht von unten in der Ansicht der 22a, die wiederum den Laser 2210 zeigt, wobei eine gedruckte Schaltungsplatine (PCB = printed circuit board) 2250 des Scannmotorantriebs unter dem Laser 2210 und der Spule 1240 montiert ist. Die gedruckte Schaltungsplatine 2250 des Scannmotorantriebs, die die in 12 gezeigte Elektronik enthält, hat die Steuervorrichtung 1210 als ihr größtes Element.
  • 22c zeigt die Beziehung des Detektors 2220 und ihrer gedruckten Schaltungsplatine 2260. Die Decoderschaltung ist vorzugsweise auf einer anderen gedruckten Schaltungsplatine an einem anderen Teil des Scanners gelegen.
  • 2. Vorlauf
  • Ein weiteres Merkmal des bevorzugten Ausführungsbeispiels, welches nicht leicht offensichtlich ist, ist der Grund zur Auswahl der niedrigeren Frequenz mit 15 Hz. Insgesamt schlägt die 5a vor, dass mehrere unterschiedliche Frequenzen ein adäquates Ansprechen vorsehen würden. Der Grund zur Auswahl von 15 Hz ist, dass die X-Achsen-Führungsfrequenz von 290 Hz nicht ein ganzzahliges Vielfaches von 15 Hz ist. Das tatsächliche Verhältnis ist ungefähr 19,5.
  • Wenn die X-Achsen-Führungsfrequenz kein ganzzahliges Vielfaches der Y-Achsen-Führungsfrequenz ist, wird das Scannungsmuster dazu tendieren, vorzulaufen oder zu rollen, und zwar weil die Bewegungen entlang der zwei Achsen nicht simultan beginnen. Obwohl man ein solches Vorlaufen bzw. Durchlaufen als Nachteil empfinden kann, kann es tatsächlich hilfreich bei der Scannung von unterschiedlichen Teilen eines Strichcodesymbols sein.
  • Beispielsweise kann ein Strichcode einige Teile haben, die schwierig auszulesen sind, oder die Zeilen können eng gepackt sein. In diesem Fall stellt das Durchlaufen des Scannmusters sicher, dass die aufeinanderfolgenden Scannungen über unterschiedliche Teile des Symbols laufen und eine genauere Auslesung bieten.
  • 23a-23c zeigt aufeinanderfolgende Scannmuster während des Durchlaufs. Wie die Muster zeigen, laufen die Scannungen über unterschiedliche Pfade durch das Muster, um eine bessere gesamte Abdeckung vorzusehen.
  • Bei dem bevorzugten Ausführungsbeispiel ist der Durchlauf, dessen Rate von dem Verhältnis der X-Achsenfrequenz und der Y-Achsenfrequenz ab hängt, bei jedem Scanner eingebaut. Eine ordnungsgemäße Programmierung des ROM 1212, wie beispielsweise während der Kalibrierung, kann den Durchlauf verändern oder sogar eliminieren.
  • 3. Scannmotorschnittstelle
  • Wie die vorherige Beschreibung vorschlägt, muss der Scannmotor 1200 mit anderen Teilen der Scannvorrichtung 100 kommunizieren. 24 ist ein Blockdiagramm, welches die Schnittstellen zwischen dem Scanner- bzw. Scannmotor 1200, dem Decoder 2410, der Digitalisierungsvorrichtung 2420 und dem optischen Detektor 2430 zeigt. In 24 nimmt der optische Detektor 2430 das reflektierte Licht auf und gibt elektrische Signale aus, die die Pegel des aufgenommenen Lichtes reflektieren. Die Digitalisierungsvorrichtung 2420 bildet die DBP-Signale, die oben besprochen wurden, aus diesen elektrischen Signalen.
  • Der Decoder 2410 stellt die Schaltung sowohl zur Decodierung der Strichcodedaten als auch zur Steuerung des Betriebs des Scanners 100 dar. Wie 24 zeigt, nimmt der Decoder 2410 das SOS-Signal 1290 von dem Scannmotor 1200 auf und tauscht Befehle und Daten mit dem Mikroprozessor 1211 über die serielle ZIF-Schnittstelle 1270 aus. Der Decoder 2410 nimmt auch DBP-Daten von der Digitalisierungsvorrichtung 2420 auf, und sendet automatische Gain- bzw. Verstärkungssteuersignale zurück zum Detektor 2430, um eine Auflösung mit hoher Qualität sicherzustellen.
  • Die meisten der Signale und der Schnittstellen, die in 24 gezeigt sind, sind oben beschrieben worden. Eine wichtige Schnittstelle, die nicht beschrieben worden ist, ist die serielle ZIF-Schnittstelle 1270. Die Schnittstelle ist sehr leistungsfähig, weil sie gestattet, dass der Scannmotor 1200 mit dem Rest der Scannvorrichtung 100 zusammenarbeitet und die Vorteile erzeugt, die in der vorherigen Beschreibung aufgezählt wurden.
  • 25 zeigt ein bevorzugtes Format für die Befehle und die Nachrichten, die über die ZIF-Schnittstelle 1270 ausgetauscht werden. Die Befehle und Nachrichten werden in 8-Bit-Bytes 2500 gesandt. Jedes Byte hat zwei 4-Bit-Teile (Nibbel), gezeigt als Teil bzw. Nibbel 2510 und Teil bzw. Nibbel 2520. Der Nibbel 2510 trägt vorzugsweise den Befehl und den Nachrichtenidentifikator, und der Nibbel 2520 trägt irgendwelche Daten, die für die Nachricht des Befehls erforderlich sind.
  • 26 zeigt eine Liste von Befehlen und Nachrichten, die über die serielle ZIF-Schnittstelle 1270 zwischen dem Scannmotor 1200 und dem Decoder 2410 im bevorzugten Ausführungsbeispiel ausgetauscht wurden. Es gibt acht Befehle vom Decoder 2410 zum Scannmotor 1200 und fünf Nachrichten vom Scannmotor 1200 zum Decoder 2410.
  • Der Befehl CALIBRATION wird prinzipiell in der Fabrik verwendet, um den Scannmotor 1200 zu kalibrieren. Im bevorzugten Ausführungsbeispiel spricht der Mikroprozessor 1211 nur auf den Befehl CALIBRATION an, wenn das SOS-Signal 1290 tief ist. Wenn dies nicht der Fall ist, wird der Mikroprozessor 1211 diesen Befehl ignorieren.
  • Der spezielle Zweck der Kalibrierung ist es, den RAM in dem Mikroprozessor 1211 umzuschalten oder zu lesen. Die Kalibrierung sieht eine erste Annäherung der Scannelementparameter vor, die später bei der Rückkoppelung eingestellt werden.
  • Der Nibbel 2520 in dem Befehl CALIBRATION kann anzeigen, dass das RAM-Modul gelesen werden sollte (0001), dass in das RAM-Modul geschrieben werden sollte (0000) oder dass der Kalibrierungsbetriebszustand eingeschaltet werden sollte (0010). Wenn der Scannmotor schon in dem Kalibrierungsbetriebszustand ist, können zusätzliche Betriebszustände, wie beispielsweise Lesen, Schreiben oder Ende eingestellt werden, ohne das SOS-Signal 1290 tief zu halten.
  • Um die Inhalte einer RAM-Adresse zu verändern, setzt der Decoder 2410 den Scannmotor 1200 in den Write-RAM-Kalibrierungsbetriebszustand (Schreiben) und sendet ihn zu der erwünschten RAM-Adresse (ein Byte). Ansprechend darauf gibt der Führungs- bzw. Scannermotor 1200 die Adresse als Echo an den Decoder 2410, der dann überprüft, ob das Echo korrekt war. Als nächstes sendet der Decoder 2410 Daten für diese RAM-Adresse, und der Scannmotor 1200 sendet die Daten als Echo für den Decoder 2410 zur Überprüfung.
  • Um eine RAM-Stelle auszulesen, bringt der Decoder 2410 den Scannmotor 1200 in den Read-RAM-Kalibrierungsbetriebszustand (Lesen) und sendet die erwünschte Adresse des RAM (ein Byte). Ansprechend darauf sendet der Scannmotor 1200 die Daten von der angewiesenen RAM-Adresse zurück.
  • Diese beiden Mechanismen gestatten es dem Decoder 2410, die Parameter des Scannmotors 1200 dynamisch zu verändern. Beispielsweise ist dies der Weg, wie der Decoder 2410 die X-Achsen- und Y-Achsen-Amplituden während der Scannung verändern könnte.
  • Der Befehl AIM SLAB sagt dem Scannmotor 1200, dass er das Führungselement in einem vorbestimmten Muster zum Zielen oder für die anfängliche Aufnahme bringen soll. Dieser Befehl steuert jedoch nicht den Laser.
  • Der Befehl AIM DOT sagt dem Scannmotor 1200, dass er das Führungselement in einem vorbestimmten Muster für einen Punktzielvorgang im Sonnenlicht anordnen soll. Dieser Befehl steuert jedoch ebenfalls nicht den Laser.
  • Der Befehl SET Y ANGLE sagt dem Scannmotor 1200 den maximalen Winkel zur Öffnung in der Y-Richtung ansprechend auf einen später ausgegebenen Befehl OPEN Y. Dieser Befehl hat Daten in dem Nibbel 2520, die einen von 16 möglichen Winkeln identifizieren.
  • Der Befehl OPEN Y weist den Scannmotor 1200 an, das Y-Rastermuster in einer von 16 möglichen Öffnungsraten zu Öffnen. Die Rate wird im Nibbel 2520 codiert. Wenn der Befehl OPEN Y ohne einen Befehl SET Y ANGLE ausgesandt wird, wird der Scannmotor 1200 als eine Voreinsteilung den maximalen Winkel auswählen. Wenn ein anderer Winkel erwünscht ist, sollte der Befehl OPEN Y sofort dem Befehl SET Y ANGLE folgen.
  • Der Befehl CLOSE Y weist den Scannmotor 1200 an, das Y-Rastermuster zu schließen. Die Rate ist in dem Nibbel 2520 codiert und kann einen von 16 möglichen Werten haben.
  • Der Befehl BRAKE sagt dem Scannmotor 1200, dass er eine Abbremsung für die X-Bewegung, die Y-Bewegung oder für beide anwenden soll. Die Parameter im Nibbel 2520 zeigen an, welche Bewegung abgebremst werden soll.
  • Der Befehl STATUS REQUEST fragt den Status von dem Scannmotor 1200 ab. Der Scanner antwortet mit dem gegenwärtigen Status des Scan- bzw. Führungselementes und des Lasers.
  • Die Nachricht OPEN Y DONS ist eine Statusnachricht, dass der Scannmotor 1200 die maximale programmierte Y-Öffnung erreicht hat. Diese Nachricht folgt nur einem Befehl OPEN Y.
  • Die Nachricht CLOSE Y DONS ist eine Statusnachricht, die gesandt wird, wenn der Scannmotor 1200 das Schließen des Rasters in Y-Richtung beendet. Sie folgt nur einem Befehl CLOSE Y.
  • Die Nachricht STATUS ist die Antwort des Scannmotors 1200 auf einen Befehl STATUS. Sie zeigt den Status des Lasers und des Scan-Elementes in dem Nibbel 2520 an.
  • Die Nachricht RESET DONE wird folgend auf ein erfolgreiches Hochfahren gesandt und zeigt an, dass der Scannmotor 1200 nun Befehle auf der seriellen ZIF-Schnittstelle 1270 aufnehmen kann. Der Nibbel 2520 enthält die Versionsnummer der Scannmotor-Software, die von dem Mikroprozessor 1211 ausgeführt wird.
  • 4. Vereinfachte Scannhöhensteuerung
  • Bestimmte Aspekte der Erfindung, die oben beschrieben wurden, erfordern nicht die Verwendung eines Scannmotors, wie beispielsweise eines Scannmotors 1200. Beispielsweise kann die Veränderung der Scannhöhe mit einer viel einfacheren Schaltung bewerkstelligt werden, der die Flexibilität und Robustheit des Scannmotors 1200 fehlt. 27 zeigt einen Typ der Schaltung 2700.
  • Die Schaltung 2700 empfängt ein Eingabesignal 2710, das anzeigt, dass der Strichcode, der abgefühlt wird, ein zweidimensionaler Strichcode ist. Das Signal 2710 wird in eine Amplitudensteuerschaltung 2720 eingespeist, die ein Steuersignal Vc erzeugt, um die Höhe eines Scannmusters zu erhöhen, wenn das Symbol, das abgefühlt wird, in einem zweidimensionalen Strichcode codiert ist.
  • 28 zeigt Vc als eine Funktion der Zeit. Vc bleibt bei einer anfänglichen Amplitude V1 bis ein Scannen mit einem größeren Muster beim Zeitpunkt to initiiert wird. Zu diesem Zeitpunkt steigt Vc linear bis zum Zeitpunkt t1 an, wenn das Muster bis zu seiner maximalen Höhe expandiert wurde. Zu diesem Zeitpunkt befindet sich Vc bei einer Spannung V2.
  • In der Schaltung 2700 vermischt der Vervielfacher bzw. Multiplikator 2740 Vc mit dem Signal von dem Y-Achsen-Oszillator 2730. Der Y-Achsen-Antrieb 2750 verwendet dann das vermischte Signal, um das Y-Achsen-Scannelement 2760, wie beispielsweise den Mylar-Träger für das RASE zu steuern, zu steuern.
  • Die Schaltung 2700 arbeitet daher in sämtlichen Modi. Wenn der Scanner 100 nicht scannt, oder wenn er eindimensionale Strichcodes scannt, bleibt Vc bei seinem Anfangswert V1. Wenn der Scanner 100 zweidimensionale Strichcodes scannt, erhöht die Schaltung 2700 Vc, um ein größeres Muster zu erzeugen.
  • 29 zeigt ein bevorzugtes Ausführungsbeispiel der Amplitudensteuerschaltung 2720, um Vc zu erzeugen. Das Signal 2710 steuert den analogen Schalter 2910, der parallel verbunden ist, über einen Ladungskondensator 2920, der einen Wert C1 besitzt.
  • Eine Seite von sowohl dem Kondensator 2920 als auch dem Schalter 2910 ist mit dem invertierenden Anschluss des Betriebsverstärkers 2930 und mit einer Seite des variablen Widerstands 2940 verbunden. Die andere Seite des Widerstands 2940 ist mit der Erde verbunden. Der Wert des Widerstands 2940 beträgt R8. Die andere Seite des Kondensators 2920 und des Schalters 2910 ist durch den Widerstand 2950 mit der Ausgabe des Betriebsverstärkers 2930 verbunden. Der Wert des Widerstands 2950 beträgt R9.
  • Die nicht invertierende Eingabe des Betriebsverstärkers 2930 ist mit der Verbindungsstelle eines Spannungsteilers verbunden, der durch die Widerstände 2960 und 2965 gebildet wird, die die Werte R6 bzw. R7 besitzen. Der Widerstand 2960 ist ebenfalls mit einer Versorgungsspannung Vcc verbunden und der Widerstand 2965 ist ebenfalls mit der Erde verbunden. Diese Schaltung stellt ein Spannung V1 bei der Verbindungsstelle zwischen den Widerständen 2960 und 2965 ein.
  • Die Verbindungsstelle des Schalters 2910, der Kondensator 2920 und der Widerstand 2950 sind ebenfalls mit Zener-Diode 2970 verbunden und bilden das Ausgabespannungssignal Vo. Die Zener-Diode 2970, die eine Durchschlagsspannung von Vx besitzt, ist ebenfalls mit der Erde verbunden. Der Wert des Widerstands 2950, R9, wird gewählt, um den Strom in der Zener-Diode 2970 auf sichere Pegel zu begrenzen.
  • Die Ausgabespannung Vc erscheint an einem Ende des Potenziometers 2980, dessen Wert R10 ist. Das andere Ende des Potenziometers 2980 ist geerdet, und die Steuerspannung Vc erscheint beim Schleifarm des Potenziometers 2980.
  • Wenn der Scanner kein zweidimensionales Strichcodesymbol scannt, ist das Signal 2710 NIEDRIG (LOW) und der Schalter 2910 ist geschlossen. Dies entlädt den Kondensator 2920 und zwingt Vo Vj zu entsprechen. Dies stellt Vo wiederum auf einen konstanten Wert ein.
  • Beim Scannen eines zweidimensionalen Strichcodes ist das Signal 2710 HOCH (HIGH) und der Schalter 2910 ist offen. Dies lädt den Kondensator 2920 mit einer Rate, die durch Vj, R8 und C1 eingestellt wird. Die Schaltung 2720 dient dann als ein Integrator, der bewirkt, dass die Spannung Vo linear zunimmt, bis sie die Durchschlagsspannung Vz der Zener-Diode 2970 erreicht. Beim Punkt Vo steigt sie nicht mehr weiter an. Die Steuerschaltung Vc folgt ihr. Die Spannung Vo bleibt bei Spannung Vz, bis sich der Schalter 2910 schließt, wodurch der Kondensator 2920 schnell entladen und Vo gezwungen wird, auf Vj abzusinken.

Claims (9)

  1. Ein Leser zum elektro-optischen Lesen eines Ziels durch Betreiben eines Scanners (710), um einen Lichtstrahl über das Ziel hinweg in einem vorbestimmten Scannmuster zu scannen, und zwar durch Detektieren von Teilen des Lichtstrahls, die von dem Ziel reflektiert werden, um elektrische Signale zu erzeugen, die die detektierten Lichtstrahlenteile darstellen, und durch Bestimmen aus den elektrischen Signalen, ob das Ziel ein Strichcodesymbol (720) ist, welches einen definierten Rand mit oberen und unteren Kanten besitzt, dadurch gekennzeichnet, dass: ein Prozessor (700), ansprechend auf elektrische Signale, betriebsbereit ist, um den Scanner (710) zu steuern, um eine Form des vorbestimmten Scannmusters bis zu den oberen und unteren Kanten des Rands des Strichcodesymbols (720) abzubilden, und zwar ohne das vorbestimmte Scannmuster über das Symbol (720) hinaus auszudehnen, und zwar durch Bestimmen eines maximalen Scannwinkels (Z) basierend auf der Höhe des Symbols (720), einem Ausgangsscannwinkel (z) des vorbestimmten Scannmusters und einer Anzahl (f) von Zeilen, die ursprünglich durch das vorbestimmte Scannmuster gescannt werden.
  2. Leser gemäß Anspruch 1, wobei der Prozessor (700) betriebsbereit ist, um den Scanner (710) zu steuern, sich bis zu dem maximalen Scannwinkel (Z) mit einer Öffnungsrate R zu öffnen.
  3. Leser gemäß Anspruch 1, wobei der Prozessor (700) betriebsbereit ist, um die Höhe des Symbols (720) aus Information zu bestimmen, die in der Anzahl (f) der Zeilen des Symbols (720) enthalten ist, das ursprünglich durch das vorbestimmte Scannmuster gescannt wird.
  4. Leser gemäß Anspruch 2, wobei der Prozessor (700) betriebsbereit ist, um den Scanner (710) durch Bestimmen der Öffnungsrate R, basierend auf dem maximalen Scannwinkel (Z) zu steuern.
  5. Ein Verfahren zum elektro-optischen Lesen eines Ziels durch Betreiben eines Scanners (710), um einen Lichtstrahl über ein Ziel hinweg in einem vorbestimmten Scannmuster zu scannen, und zwar durch Detektieren von Teilen des Lichtstrahls, die von dem Ziel reflektiert werden, um elektrische Signale zu erzeugen, die die detektieren Lichtstrahlteile darstellen, und durch Bestimmen (700) aus den elektrischen Signalen, ob ein Strichcodesymbol (720) einen definierten Rand mit oberen und unteren Kanten besitzt, und zwar gekennzeichnet durch den folgenden Schritt: Erhöhen einer Höhe des vorbestimmten Scannmusters, um die oberen und unteren Kanten des Rands des Strichcodesymbols (720) anzupassen, und zwar ohne das vorbestimmte Scannmuster über das Symbol (720) hinaus auszudehnen, und zwar durch Steuern einer Rate R des Öffnens des vorbestimmten Scannmusters entlang einer Höhe des Symbols (720) gemäß einer Anzahl (f) von Zeilen in dem Symbol (720) und der Höhe des Symbols (720).
  6. Verfahren gemäß Anspruch 5, wobei das vorbestimmte Scannmuster bis zu einem maximalen Scannwinkel (Z) mit der Öffnungsrate R geöffnet wird.
  7. Verfahren gemäß Anspruch 5, wobei der Schritt des Erhöhens der Scannhöhe den Schritt des Bestimmens eines maximalen Scannwinkels (Z) umfasst, und zwar basierend auf der Höhe des Symbols (720), eines anfänglichen Scannwinkels (z) des vorbestimmten Scannmusters, und der Anzahl (f) von Zeilen, die ursprünglich durch das vorbestimmte Scannmuster gescannt werden.
  8. Verfahren gemäß Anspruch 7, wobei der Schritt des Erhöhens der Scannhöhe den Schritt des Bestimmens der Höhe des Symbols (720) aus Information umfasst, die in den Zeilen f des Symbols (720) enthalten sind, die ursprünglich durch das vorbestimmte Scannmuster gescannt werden.
  9. Verfahren gemäß Anspruch 8, wobei der Schritt des Steuerns des Öffnens des vorbestimmten Scannmusters den weiteren Schritt des Bestimmens der Öffnungsrate R, basierend auf dem maximalen Scannwinkel (Z) umfasst.
DE69535625T 1994-10-31 1995-10-27 Laserabtastsystem und Abtastverfahren zum Lesen von Streifenkoden Expired - Lifetime DE69535625T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US332581 1994-10-31
US08/332,581 US5561283A (en) 1988-10-21 1994-10-31 Laser scanning system and scanning method for reading bar codes

Publications (2)

Publication Number Publication Date
DE69535625D1 DE69535625D1 (de) 2007-11-29
DE69535625T2 true DE69535625T2 (de) 2008-02-07

Family

ID=23298873

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69532742T Expired - Lifetime DE69532742T2 (de) 1994-10-31 1995-10-27 Laserabtastsystem und Abtastungsverfahren zum Lesen von Streifencodes
DE69535625T Expired - Lifetime DE69535625T2 (de) 1994-10-31 1995-10-27 Laserabtastsystem und Abtastverfahren zum Lesen von Streifenkoden

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69532742T Expired - Lifetime DE69532742T2 (de) 1994-10-31 1995-10-27 Laserabtastsystem und Abtastungsverfahren zum Lesen von Streifencodes

Country Status (4)

Country Link
US (1) US5561283A (de)
EP (3) EP1398724B1 (de)
CA (1) CA2161357C (de)
DE (2) DE69532742T2 (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7387253B1 (en) 1996-09-03 2008-06-17 Hand Held Products, Inc. Optical reader system comprising local host processor and optical reader
US6672511B1 (en) * 1996-06-03 2004-01-06 Symbol Technologies, Inc. Omnidirectional reading of two-dimensional symbols
US5844222A (en) * 1996-07-02 1998-12-01 Intermec Corporation Rastering laser scanner with beam location feedback
CA2288758C (en) * 1997-05-05 2007-07-17 Alexander R. Roustaei Optical scanner and image reader for reading images and decoding optical information including one and two dimensional symbologies at variable depth of field
DE19724711B4 (de) * 1997-06-11 2004-09-16 Sick Ag Verfahren und Vorrichtung zum Erkennen und Lesen eines an einem Objekt vorgesehenen Strichcodes
US6206290B1 (en) * 1998-03-06 2001-03-27 Symbol Technologies, Inc. Control system for oscillating optical element in scanners
US6340114B1 (en) 1998-06-12 2002-01-22 Symbol Technologies, Inc. Imaging engine and method for code readers
US6250551B1 (en) 1998-06-12 2001-06-26 Symbol Technologies, Inc. Autodiscrimination and line drawing techniques for code readers
EP2249284B1 (de) 2001-01-22 2014-03-05 Hand Held Products, Inc. Optisches Lesegerät mit Partial-Frame-Betriebsmodus
US7270273B2 (en) 2001-01-22 2007-09-18 Hand Held Products, Inc. Optical reader having partial frame operating mode
US7268924B2 (en) 2001-01-22 2007-09-11 Hand Held Products, Inc. Optical reader having reduced parameter determination delay
US6766954B2 (en) 2001-06-15 2004-07-27 Symbol Technologies, Inc. Omnidirectional linear sensor-based code reading engines
US7086596B2 (en) 2003-01-09 2006-08-08 Hand Held Products, Inc. Decoder board for an optical reader utilizing a plurality of imaging formats
US20050078775A1 (en) * 2002-09-23 2005-04-14 Martin Hellmark Mitigating the impact of phase steps
US7083096B2 (en) * 2002-12-18 2006-08-01 Symbol Technologies, Inc. Miniature auto focus piezo actuator system
US7066388B2 (en) * 2002-12-18 2006-06-27 Symbol Technologies, Inc. System and method for verifying RFID reads
US7025271B2 (en) * 2002-12-18 2006-04-11 Symbol Technologies, Inc. Imaging optical code reader having selectable depths of field
US7025272B2 (en) * 2002-12-18 2006-04-11 Symbol Technologies, Inc. System and method for auto focusing an optical code reader
US6918538B2 (en) * 2002-12-18 2005-07-19 Symbol Technologies, Inc. Image scanning device having a system for determining distance to a target
US7195164B2 (en) 2003-01-03 2007-03-27 Symbol Technologies, Inc. Optical code reading device having more than one imaging engine
US7073715B2 (en) * 2003-02-13 2006-07-11 Symbol Technologies, Inc. Interface for interfacing an imaging engine to an optical code reader
US7097101B2 (en) * 2003-02-13 2006-08-29 Symbol Technologies, Inc. Interface for interfacing an imaging engine to an optical code reader
US7021542B2 (en) * 2003-08-01 2006-04-04 Symbol Technologies, Inc. Imaging and illumination engine for an optical code reader
US7044377B2 (en) * 2003-08-01 2006-05-16 Symbol Technologies Inc. Plug-and-play imaging and illumination engine for an optical code reader
US7967206B2 (en) * 2005-08-18 2011-06-28 Intermec Ip Corp. Functional aiming system for an automatic data collection device, such as an image acquisition device
US7549587B2 (en) * 2005-11-09 2009-06-23 Optoelectronics Co., Ltd. Scan engine with built-in auto trigger
CN101083540B (zh) * 2006-05-30 2012-06-06 银河联动信息技术(北京)有限公司 利用终端收集发布信息并按发布次数计费的系统及方法
US20080000980A1 (en) * 2006-06-29 2008-01-03 Benjamin Hejl Audible scan indicator
US20080000975A1 (en) * 2006-06-29 2008-01-03 Benjamin Hejl Audible pattern switching indicator
US7798409B2 (en) 2007-06-28 2010-09-21 Symbol Technologies, Inc. Reading failure prevention in imaging readers
US20090057409A1 (en) * 2007-08-30 2009-03-05 Nina Feinstein Automatic raster height and speed adjustment in programmable electeo-optical readers for reading two-dimensional symbols of different heights
US8028918B2 (en) * 2007-10-31 2011-10-04 Symbol Technologies, Inc. Enhanced monitoring of laser output power in electro-optical readers
US20090108068A1 (en) * 2007-10-31 2009-04-30 Igor Vinogradov Parallax adjustment in imaging readers for electro-optically reading indicia
US7963447B2 (en) * 2007-11-30 2011-06-21 Symbol Technologies, Inc. Enhanced monitoring of laser output power in electro-optical readers
US7866558B2 (en) * 2009-04-07 2011-01-11 Metrologic Instruments, Inc. Laser scanner
US9016578B2 (en) 2013-05-14 2015-04-28 Symbol Technologies, Inc. Apparatus for and method of electro-optically reading a target in the presence of ambient light by suppressing the ambient light
US8967478B2 (en) 2013-05-16 2015-03-03 Symbol Technologies, Inc. Apparatus for and method of electro-optically reading a target in the presence of ambient light by rejecting the ambient light
US8925814B1 (en) * 2013-10-09 2015-01-06 Symbol Technologies, Inc. Apparatus for and method of monitoring output power of a laser beam during reading of targets

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4360798A (en) * 1978-05-31 1982-11-23 Symbol Technologies, Inc. Portable laser scanning arrangement for and method of evaluating and validating bar code symbols
US4251798A (en) * 1978-05-31 1981-02-17 Symbol Technologies Portable laser scanning arrangement for and method of evaluating and validating bar code symbols
US4387297B1 (en) * 1980-02-29 1995-09-12 Symbol Technologies Inc Portable laser scanning system and scanning methods
US4369361A (en) * 1980-03-25 1983-01-18 Symbol Technologies, Inc. Portable, stand-alone, desk-top laser scanning workstation for intelligent data acquisition terminal and method of scanning
US4387298A (en) * 1981-11-27 1983-06-07 Burroughs Corporation Recognition logic circuit for bar code reader systems
US4460120A (en) * 1982-01-25 1984-07-17 Symbol Technologies, Inc. Narrow bodied, single- and twin-windowed portable laser scanning head for reading bar code symbols
US4409470A (en) * 1982-01-25 1983-10-11 Symbol Technologies, Inc. Narrow-bodied, single-and twin-windowed portable laser scanning head for reading bar code symbols
EP0367299B1 (de) * 1985-02-28 1992-11-11 Symbol Technologies, Inc. Tragbarer Abtastkopf mit einer Laserdiode
US4794239A (en) * 1987-10-13 1988-12-27 Intermec Corporation Multitrack bar code and associated decoding method
US5001406A (en) * 1988-10-19 1991-03-19 Spectra-Physics, Inc. Brushless DC motor speed control via power supply voltage level control
US5229591A (en) * 1988-10-21 1993-07-20 Symbol Technologies, Inc. Scanning system with adjustable light output and/or scanning angle
US4933538A (en) * 1988-10-21 1990-06-12 Symbol Technologies, Inc. Scanning system with adjustable light output and/or scanning angle
US5235167A (en) * 1988-10-21 1993-08-10 Symbol Technologies, Inc. Laser scanning system and scanning method for reading bar codes
US5478997A (en) * 1988-10-21 1995-12-26 Symbol Technologies, Inc. Symbol scanning system and method having adaptive pattern generation
US4896026A (en) * 1988-10-31 1990-01-23 Symbol Technologies, Inc. Laser diode scanner with improved shock mounting
US5162709A (en) * 1989-04-25 1992-11-10 Diesel Kiki Co., Ltd. Apparatus for controlling blower motor of automobile air-conditioner
US5117098A (en) * 1989-09-29 1992-05-26 Symbol Technologies, Inc. Multi-position trigger for control over aiming and symbol reading in a portable laser diode scanning head
US5168149A (en) * 1989-10-30 1992-12-01 Symbol Technologies, Inc. Scan pattern generators for bar code symbol readers
US5280165A (en) * 1989-10-30 1994-01-18 Symbol Technolgoies, Inc. Scan pattern generators for bar code symbol readers
US5115121A (en) * 1990-01-05 1992-05-19 Control Module Inc. Variable-sweep bar code reader

Also Published As

Publication number Publication date
DE69532742D1 (de) 2004-04-29
US5561283A (en) 1996-10-01
EP1394722A3 (de) 2010-01-20
EP1398724A2 (de) 2004-03-17
EP1398724B1 (de) 2007-10-17
DE69535625D1 (de) 2007-11-29
DE69532742T2 (de) 2005-05-25
EP0709797B1 (de) 2004-03-24
EP0709797A3 (de) 2000-07-19
EP0709797A2 (de) 1996-05-01
CA2161357C (en) 2007-05-29
EP1398724A3 (de) 2004-04-14
CA2161357A1 (en) 1996-05-01
EP1394722A2 (de) 2004-03-03

Similar Documents

Publication Publication Date Title
DE69535625T2 (de) Laserabtastsystem und Abtastverfahren zum Lesen von Streifenkoden
DE69632882T2 (de) Abtastmodul für einen optischen Abtaster
DE69932754T2 (de) Automatisch aktivierter, tragbarer Laser-Strichkodeabtaster mit Datenübertragungsvorrichtung
DE69630921T2 (de) Optischer Zeichenleser
DE69932250T2 (de) Optische symbolanzeige
DE69931532T2 (de) Codelesesystem mit Klangregelung für hörbares Signal
US5115121A (en) Variable-sweep bar code reader
DE4125899C2 (de) Strichcode-Abtastvorrichtung und Verfahren zum Betrieb derselben
DE4396943B4 (de) Optisches System mit veränderlichem Fokus zum Datenlesen
DE69733711T2 (de) Linsensystem zum Fokisieren eines Lichtstrahls
DE69133519T2 (de) Laserabtaster mit kombinierten Abtastbereichen
DE60123088T2 (de) Verahren zur automatischen belichtungssteuerung
DE2914509C2 (de)
DE69725016T2 (de) Tragbarer datensammlungsvorrichtung mit sichtvorrichtung
DE69532570T2 (de) Tragbarer Abtaster
DE60009193T2 (de) Optischer Scanner
DE3427658A1 (de) Positionssteuervorrichtung
DE4114925A1 (de) Strichcode-lesegeraet
DE60028443T2 (de) Optische Vorrichtung mit einer von der optischen Achse verschobenen Linse
DE69834003T2 (de) Optische Abtastvorrichtung
EP0896290A2 (de) Verfahren und Vorrichtung zum Lesen eines aus einer vorgegebenen Anzahl von Codeelementen bestehenden Strichcodes
DE3812031A1 (de) Bildabtastvorrichtung
EP2622536B1 (de) Vorrichtungen und verfahren zur erfassung von optischen barcodes
DE60312815T2 (de) System zur kamerapositionierung und zur bestätigungsrückmeldung
DE112019006242T5 (de) Verfahren und vorrichtung zur dekodierung mehrerer symboltypen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1398724

Country of ref document: EP

Representative=s name: SCHUMACHER & WILLSAU PATENTANWALTSGESELLSCHAFT, DE