DE69925925T2 - Barcodeleser und barleseverfahren - Google Patents

Barcodeleser und barleseverfahren Download PDF

Info

Publication number
DE69925925T2
DE69925925T2 DE69925925T DE69925925T DE69925925T2 DE 69925925 T2 DE69925925 T2 DE 69925925T2 DE 69925925 T DE69925925 T DE 69925925T DE 69925925 T DE69925925 T DE 69925925T DE 69925925 T2 DE69925925 T2 DE 69925925T2
Authority
DE
Germany
Prior art keywords
demodulated data
data
characters
bar code
demodulated
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
DE69925925T
Other languages
English (en)
Other versions
DE69925925D1 (de
Inventor
Mitsuo Kawasaki-shi Watanabe
Motohiko Kawasaki-shi ITOH
Hiroaki Kawasaki-shi Kawai
Isao Kawasaki-shi IWAGUCHI
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE69925925D1 publication Critical patent/DE69925925D1/de
Application granted granted Critical
Publication of DE69925925T2 publication Critical patent/DE69925925T2/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/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/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1491Methods for optical code recognition the method including quality enhancement steps the method including a reconstruction step, e.g. stitching two pieces of bar code together to derive the full bar 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/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/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1465Methods for optical code recognition the method including quality enhancement steps using several successive scans of the optical code

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Cash Registers Or Receiving Machines (AREA)

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft einen Strichcodeleser und ein Strichcodeleseverfahren und insbesondere einen Strichcodeleser und ein Strichcodeleseverfahren, bei welchem ein Strichcode mit einer Vielzahl von Zeichen durch teilweises Lesen gelesen wird.
  • Stand der Technik
  • In den letzten Jahren wird die Warenbewirtschaftung oder dergleichen, wie sie durch POS-Systeme bei Distributoren verkörpert wird, im Allgemeinen durch Strichcodes durchgeführt. Beispielsweise wird in einem POS-System von Läden Information, wie die Art und der Preis von Waren, im Format eines Strichcodes codiert und der Strichcode wird auf den Waren aufgedruckt. Danach wird das Ausbuchen durch Lesen des Strichcodes auf einem Kassentisch durchgeführt und die Anzahl der verkauften Waren wird in Echtzeit gezählt. Die Anzahl der verkauften Waren wird im Lagerhaltungs- und Einkaufsmanagement verwendet.
  • Strichcodes werden grob in einen WPC-Code, wie einen JAN-Code, einen UPC-Code oder einen EAN-Code und einen zweiten Code mit einer variablen Länge unterteilt. Der WPC-Code hat, wie in 6 gezeigt, einen linken Führungsstrich (left guard bar LGB: ebenso genannt Startführungsstrich (start guard bar SGB)), der an dem linken Ende angeordnet ist, einen Zentralstrich (centre bar CB), der im Zentrum angeordnet ist, und einen rechten Führungsstrich (right guard bar RGB: ebenfalls als Schlussführungsstrich (end guard bar EGB)) bezeichnet, der am rechten Ende angeordnet ist. Ein linksseitiger Datenblock, der durch sechs oder vier Datenzeichen (die nachfolgend als "Zeichen" bezeichnet werden) gebildet ist, ist zwischen dem LGB und dem CB gebildet. Ein rechtseitiger Datenblock, der durch sechs oder vier Zeichen gebildet ist, ist zwischen dem CB und dem RGB gebildet.
  • Das Zeichen ist eine Minimaleinheit von codierten numerischen Werten oder codierten Symbolen und ist durch eine Vielzahl von Modulen gebildet.
  • Da die Muster des LGB, CB und RGB durch Standards bestimmt sind, kann ein Strichcodeleser den LGB, CB und den RGB ermitteln. Der Strichcodeleser kann die Zeichen eines Strichcodes auf der Basis des LGB, des CB und des RGB lesen. Der Strichcodeleser liest die Zeichen mittels dreier Methoden, d.h. einem "kontinuierlichen Lese"-Verfahren, einem "Blocklese"-Verfahren und einem "Teillese"-Verfahren. Das "kontinuierliche Lese"-Verfahren ist ein Verfahren, bei welchem, wenn ein LGB, ein CB und ein RGB durch Ausführen einer Strichcodeabtastverfolgung einmal ermittelt ist, die Zeichen, die zwischen diesen Strichen angeordnet sind, als ein Strichcode erkannt werden, um demoduliert zu werden. Das "Blocklese"-Verfahren ist ein Verfahren, bei welchem nur der Zeichenblock, der zwischen einem LGB oder einem RGB und einem CB angeordnet ist, als ein Strichcode erkannt wird, wobei die zwei Blöcke unabhängig demoduliert werden und die demodulierten Daten der Blöcke miteinander synthetisiert (verbunden) werden und wobei Daten, die in einen Strichcode moduliert werden, reproduziert werden. Das "Teillese"-Verfahren ist ein Verfahren, bei welchem selbst eine Zeichenfolge, die zumindest mit einem Führungsstrich oder einem Zentrumsstrich verbunden ist, als ein Strichcode erkannt wird, wobei die Teile der demodulierten Daten dieser Zeichen, die unabhängig voneinander gelesen werden, miteinander synthetisiert werden und die Daten entsprechend einem gesamten Strichcode reproduziert werden. Aufgrund der Art des Vorbeiführens eines Abtaststrahls über einen Strichcode, wie in 7 gezeigt, sind die Teillese-Verfahren in drei Verfahren klassifiziert: (1) ein "2-Teil"-Verfahren (siehe 7(A)), bei welchem demodulierte Daten, die nur einen LGB beinhalten und demodulierte Daten, die einen CB und einen RGB beinhalten, ermittelt werden und miteinander synthetisiert werden, um die Daten des gesamten Strichcodes zu erhalten, (2) ein "3-1-Teil"-Verfahren (7(B)), bei welchem demodulierte Daten, die nur einen LGB beinhalten, demodulierte Daten, die nur einen CB beinhalten und demodulierte Daten, die nur einen RGB beinhalten, ermittelt und miteinander synthetisiert werden, um die Daten des gesamten Strichcodes zu erhalten, und (3) ein "3-2-Teil"-Verfahren (siehe 7(C)), bei welchem demodulierte Daten, die nur einen LGB beinhalten, demodulierte Daten, die nur einen CB beinhalten, und demodulierte Daten, die den CB und einen RGB beinhalten, ermittelt und miteinander synthetisiert werden, um die Daten des gesamten Strichcodes zu erhalten.
  • Bei einem konventionellen Teilleseverfahren werden, wenn die demodulierten Daten eines Datenblocks durch Synthetisieren zweier demodulierter Daten gebildet werden, die folgenden Methoden eingesetzt. Insbesondere werden, wenn ein linksseitiger Datenblock durch Synthese gebildet wird, demodulierte Daten, die synthetisiert werden sollen, miteinander verglichen, ob zwei Zeichen überlappen (wie zum Beispiel in 7 gezeigt, die dritte und vierte Zeichen überlappen), und es wird geprüft, ob diese Zeichen die gleichen sind oder nicht. Zu diesem Zeitpunkt, wenn die zwei überlappenden Zeichen dieselben sind, werden die demodulierten Daten miteinander synthetisiert.
  • Hier werden, wenn das Verfahren in dem "2-Teil"-Verfahren ausgeführt wird, die demodulierten Daten des gesamten Strichcodes zu diesem Zeitpunkt erhalten. Andererseits wird, wenn das Verfahren im "3-1-Teil"-Verfahren oder dem "3-2-Teil"-Verfahren durchgeführt wird, die durch dieses Verfahren synthetisierten modulierten Daten mit anderen modulierten Daten synthetisiert, um die modulierten Daten des gesamten Strichcodes zu erhalten. Danach werden die Zeichenzählüberprüfung und die Modulüberprüfung an den demodulierten Daten des gesamten Strichcodes durchgeführt. Wenn bevorzugte Überprüfungsergebnisse erhalten werden, werden die demodulierten Daten als normale demodulierte Daten gehandhabt.
  • Das obige Verfahren hat jedoch das nachfolgende Problem. Beispielsweise, wie in 8(A) gezeigt ist, wird angenommen, dass ein Strichcode (UPC/A-Code), bei welchem Datenblöcke, die jeweils durch sechs Zeichen gebildet sind, zwischen einem LGB und einem CB und zwischen dem CB und einem RGB gespeichert werden, vorhanden ist. Dieser Strichcode hat die Daten "027000 388150".
  • In diesem Fall wird angenommen, dass der Strichcode durch einen Abtaststrahl (a) und einem Abtaststrahl (b) abgetastet wird. Die Abtastmittel (a) starten von der Mitte des ersten Zeichens des linksseitigen Datenblocks und passieren den CB nicht. Auf der anderen Seite streicht der Abtaststrahl (b) von dem vierten Zeichen des linksseitigen Datenblocks bis zum RGB. Zu diesem Zeitpunkt wird, wenn das Hell/Dunkelmuster des ersten Zeichens von dem Teil, an dem der Taststrahl (a) vorbeistreicht, derselbe ist, wie das Hell/Dunkelmuster des LGB, das erste Zeichen fehlerhafterweise als ein LGB erkannt (dies wird als eine Bitverschiebung (bit shift) bezeichnet). Als Ergebnis dienen die Teile der demodulierten Daten, die durch den Abtaststrahl (a) erhalten werden als ein LGB, ein erstes Zeichen (C1(0-2)), ein zweites Zeichen (C2(0-7)), ein drittes Zeichen (C3(0-0)), ein viertes Zeichen (C4(0-0)) und ein fünftes Zeichen (C5(0-0)). Auf der anderen Seite dienen die Stücke der demodulierten Daten, die durch den Abtaststrahl (b) erhalten werden als ein viertes Zeichen (C4(0-0)), ein fünftes Zeichen (C5(0-0)), ein sechstes Zeichen (C6(0-0)), ein CB, Zeichen eines rechtseitigen Datenblocks und als ein RGB.
  • Die Stücke der zwei modulierten Daten haben überlappende Teile in Bezug auf die vierten und fünften Blöcke eines linksseitigen Blocks. Im normalen Code des linksseitigen Datenblocks sind die überlappenden Teile dieselben, wie in 8(B) gezeigt, da die vierten bis sechsten Zeichen 0 sind. Aus diesem Grund werden die Teile dieser demodulierten Daten miteinander als passende demodulierte Daten synthetisiert, wobei die fehlerhaft gelesenen Daten "270000 388150" gebildet werden.
  • Danach werden die Zeichenzählüberprüfung und die Modulüberprüfung (Modul 10/Gewicht drei) auf die fehlerhaft gelesenen Daten angewendet und eine Entscheidung über die Genauigkeit wird gemacht. Die fehlerhaft demodulierten Daten haben jedoch eine korrekte Anzahl von Zeichen eines Datenblocks und ein korrektes Modulüberprüfungsergebnis. Aus diesem Grund kann nicht ermittelt werden, dass die Daten fehlerhaft gelesen worden sind.
  • Es ist eine Aufgabe der vorliegenden Erfindung einen Strich codeleser und ein Strichcodeleseverfahren bereitzustellen, welches verhindern kann, dass ein Strichcode durch eine Bitverschiebung falsch gelesen wird, wenn der Strichcode durch ein Teillese-Verfahren gelesen wird.
  • JP-A-09081663 und US-A-5 798 510 offenbaren einen Strichcodeleser umfassend: eine Strichcodedatenermittlungseinheit zum Abtasten eines Strichcodes, der durch eine Vielzahl von Zeichen gebildet ist, und zwar zumindest zweimal, um die Strichcodedaten an dem Abtastort zu ermitteln; einen Demodulationsbereich zur Demodulation der entsprechenden Strichcodedaten, die durch die Strichcodedatenermittlungseinheit ermittelt worden sind, einen ersten Beurteilungsbereich für das Ermitteln überlappender Teile zwischen ersten demodulierten Daten an einem ersten Abtastort und zweiten demodulierten Daten an einem zweiten Abtastort der demodulierten Daten, die durch den Demodulationsbereich demoduliert wurden, um zu beurteilen, ob die überlappenden Teile durch eine vorbestimmte Anzahl von Zeichen gebildet werden oder nicht (S002, S003).
  • Die vorliegende Erfindung ist dadurch gekennzeichnet, dass der Strichcodeleser ferner umfasst: einen zweiten Beurteilungsbereich zum Beurteilen, ob die überlappenden Teile zwischen den ersten demodulierten Daten und den zweiten demodulierten Daten dieselben sind oder nicht, wenn durch den ersten Beurteilungsbereich beurteilt wird, dass die überlappenden Teile durch eine vorbestimmte Anzahl von Zeichen gebildet werden, einen dritten Beurteilungsbereich zum Beurteilen, ob die Zeichen, die die überlappenden Teile der ersten oder zweiten demodulierten Daten bilden, dieselben sind oder nicht, wenn durch den zweiten Beurteilungsbereich beurteilt wird, dass die überlappenden Teile dieselben sind, und einen vierten Beurteilungsbereich zum Beurteilen, ob ein Zeichen genau vor dem überlappenden Teil der ersten demodulierten Daten, ein Zeichen genau nach dem überlappenden Teil der zweiten demodulierten Daten und Zeichen, die die überlappenden Teile bilden, alle dieselben sind oder nicht, wenn durch den dritten Beurteilungsbereich beurteilt wird, dass die Zeichen dieselben sind.
  • Die vorliegende Erfindung umfasst ferner einen Synthetisierbereich zum Synthetisieren der ersten demodulierten Daten und der zweiten demodulierten Zeichen und kann so gestaltet sein, dass, wenn durch den vierten Beurteilungsbereich beurteilt wird, dass die Zeichen alle die gleichen sind, der Synthetisierbereich die ersten demodulierten Daten und die zweiten demodulierten Daten nicht synthetisiert.
  • Der erste Beurteilungsbereich der vorliegenden Erfindung kann so angeordnet sein, dass die überlappenden Teile durch eine vorbestimmte Anzahl von Zeichen gebildet werden, wenn die überlappenden Teile durch zwei Zeichen gebildet sind.
  • Gemäß der vorliegenden Erfindung beurteilt der vierte Beurteilungsbereich, ob ein Zeichen genau vor dem überlappenden Teil der ersten demodulierten Daten, ein Zeichen genau nach dem überlappenden Teil der zweiten demodulierten Daten und die Zeichen, die die überlappenden Teile bilden, alle dieselben sind oder nicht. Zu diesem Zeitpunkt tritt wahrscheinlich, wenn die Zeichen alle dieselben sind, das fehlerhafte Lesen durch eine Bitverschiebung auf. Deshalb wird beispielsweise, wenn durch den vierten Beurteilungsbereich beurteilt wird, dass die Zeichen alle dieselben sind, der Synthetisierbereich die ersten demodulierten Daten und die zweiten demodulierten Daten nicht miteinander synthetisieren. In diesem Fall kann verhindert werden, dass ein Strichcode durch eine Bitverschiebung fehlerhaft gelesen wird.
  • Der vierte Beurteilungsbereich kann beurteilen, ob ein Zeichen genau vor dem Zeichen genau vor dem überlappenden Teil der ersten demodulierten Daten dasselbe Zeichen wie die Zeichen ist oder nicht oder ob ein Zeichen genau nach dem Zeichen genau nach dem überlappenden Teil der zweiten demodulierten Daten dasselbe Zeichen wie die Zeichen ist oder nicht.
  • Der Strichcode ist beispielsweise ein WPC-Code, ein EAN-Code, ein JAN-Code oder ein UPC-Code und kann einen Datenblock aufweisen, der durch vier oder mehr Zeichen gebildet ist. Insbesondere wird die vorliegende Erfindung vorzugsweise für beispielsweise einen EAN-13-code oder einen UPC/A-Code verwendet.
  • Die vorliegende Erfindung ist ein Strichcodeleseverfahren. Das Strichcodeleseverfahren umfasst den ersten Schritt des Abtastens eines Strichcodes, der durch eine Vielzahl von Zeichen gebildet ist, und zwar zumindest zweimal, um die Strichcodedaten an dem Abtastort zu ermitteln, einen zweiten Schritt des Demodulierens der entsprechenden Strichcodedaten, die in dem ersten Schritt ermittelt worden sind, den dritten Schritt des Vergleichens der ersten demodulierten Daten in einem ersten Abtastort und zweiter demodulierter Daten an einem zweiten Abtastort der demodulierten Daten, die in dem zweiten Schritt demoduliert worden sind, und zum Beurteilen, ob die überlappenden Teile durch eine vorbestimmte Anzahl von Zeichen gebildet sind oder nicht, wenn die ersten demodulierten Daten und die zweiten demodulierten Daten überlappende Teile aufweisen, den vierten Schritt des Beurteilens, ob die überlappenden Teile zwischen den ersten demodulierten Daten und den zweiten demodulierten Daten dieselben sind oder nicht, wenn in dem dritten Schritt beurteilt wird, dass die überlappenden Teile durch eine vorbestimmte Anzahl von Zeichen gebildet werden, den fünften Schritt des Beurteilens, ob die Zeichen, die die überlappenden Teile der ersten oder zweiten demodulierten Daten bilden, dieselben sind oder nicht, wenn im vierten Schritt beurteilt wird, dass die überlappenden Teile dieselben sind und den sechsten Schritt des Beurteilens, ob ein Zeichen genau vor dem überlappenden Teil der ersten demodulierten Daten, ein Zeichen genau nach dem überlappenden Teil der zweiten demodulierten Daten und die Zeichen, die die überlappenden Teile bilden, alle dieselben sind oder nicht, wenn in dem fünften Schritt entschieden wird, dass die Zeichen dieselben sind.
  • Das Strichcodeleseverfahren der vorliegenden Erfindung umfasst ferner den siebten Schritt des Synthetisierens der ersten demodulierten Daten und der zweiten demodulierten Daten und ist vorzugsweise so gestaltet, dass, wenn im sechsten Schritt beurteilt wird, dass die Zeichen alle dieselben sind, der siebte Schritt nicht ausgeführt wird.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Diagramm der Konfiguration eines Strichcodelesers gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 2 ist ein Diagramm zur Erklärung der Puffer, die in 1 gezeigt sind.
  • 3 ist ein Flussdiagramm, das die Prozesse zeigt, die durch die CPU, die in 1 gezeigt ist, durchgeführt werden.
  • 4 ist ein Flussdiagramm, das den Prozess der Überprüfung des überlappenden Teiles, wie in 3 gezeigt, darstellt.
  • 5 ist ein Diagramm zur Erklärung eines konkreten Beispiels des Verfahrens der Überprüfung des überlappenden Teiles, das in 4 gezeigt ist.
  • 6 ist ein Diagramm zur Erklärung eines WPC-Codes.
  • 7 ist ein Diagramm zur Erklärung des Teil-Lesens.
  • 8 ist ein Diagramm, das ein konventionelles Problem zeigt.
  • Bevorzugte Ausführungsformen zur Ausführung der Erfindung
  • Die bevorzugte Ausführungsform zur Ausführung der Erfindung wird nachfolgend mit Bezug auf die Zeichnungen beschrieben.
  • <Konfiguration des Strichcodelesers>
  • 1 ist ein Blockdiagramm, das eine schematische Konfiguration eines Strichcodelesers gemäß der Ausführungsform der vorliegenden Erfindung zeigt. Der Strichcodeleser gemäß dieser Ausführungsform liest einen Strichcode 21 gemäß UPC/A und EAN-13 des WPC-Codes. Der Strichcode 21 hat Führungsstriche, d.h. einen linken Führungsstrich (left guard bar LGB: Startführungsstrich (start guard bar SGB)) und einen rechten Führungsstrich (right guard bar RGB: Endführungsstrich (end guard bar EGB)) und einen Zentralstrich (centre bar CB) sowie einen Datenblock (linksseitigen Datenblock), der durch sechs Zeichen, die zwischen dem LGB und dem CB angeordnet sind, gebildet ist, und einen Datenblock (rechtseitigen Datenblock), der durch sechs Zeichen, die zwischen dem CB und dem RGB (siehe 6) angeordnet sind, gebildet ist.
  • In 1 weist der Strichcodeleser eine CPU 1, einen Speicherpuffer 2 für eine Strichweitendatengruppe, eine Kontrollbereichsschaltung 3, eine Schnittstellenschaltung 4, ein ROM 5 und ein RAM 6 auf, die untereinander durch einen Bus B verbunden sind. Der Strichcodeleser hat einen Strichweitenzähler 16, der mit dem Speicherpuffer 2 für die Strichweitendatengruppe verbunden ist, einen Taktgeber 19 und einen A/D-Wandler 15, der mit dem Strichweitenzähler 16 verbunden ist, und ein lichtempfangendes Element 18, das mit dem A/D-Wandler 15 verbunden ist. Darüber hinaus weist der Strichcodeleser eine Motorantriebsschaltung 8, eine Laserantriebsschaltung 9, einen Lautsprecher 10 und eine LED 11 auf, die jeweils mit der Kontrollbereichsschaltung 3 verbunden sind, einen Motor 12, der mit der Motorantriebsschaltung 8 verbunden ist, ein optisches Abtastsystem 14, das durch den Motor 12 angetrieben wird und einen Halbleiterlaser 13, der mit der Laserantriebsschaltung 9 verbunden ist.
  • Das ROM ist ein Nur-Lesespeicher, in welchem ein Strichcodeerkennungs-/Demodulationsverfahrensprogramm gespeichert ist. Die CPU 1 führt das Strichcodeerkennungs/Demodulationsverfahrensprogramm, das im ROM 5 gespeichert ist, aus, um den Strichcodeleser als Gesamtes zu kontrollieren bzw. zu steuern, und demoduliert Strichweitendatengruppen, die durch das Lesen des Strichcodes 21 erhalten werden, um Daten entsprechend dem gesamten Strichcode 21 zu reproduzieren. Diese CPU 1 funktioniert als ein Demodulationsbereich sowie ersten bis vierten Beurteilungsbereichen gemäß der vorliegenden Erfindung.
  • Die Schnittstellenschaltung 4 kontrolliert bzw. steuert den Status des Busses B und kontrolliert bzw. steuert die Datenübertragung oder dergleichen an eine übergeordnete Maschine (Hauptcomputer (host computer)) (POS) 201.
  • Die Kontrollbereichsschaltung 3 steuert bzw. kontrolliert die Motorantriebsschaltung 8, die Laserantriebsschaltung 9, den Lautsprecher 10 und die lichtemittierende Diode (LED) 11. Die Motorantriebsschaltung 8 treibt den Motor 12 an, um den Polygonspiegel (nicht gezeigt) zu rotieren, der das optische Abtastsystem 14 bildet. Die Laserantriebsschaltung 9 treibt den Halbleiterlaser 13 an, um zu verursachen, dass der Halbleiterlaser 13 einen Laserstrahl L emittiert. Der Lautsprecher 10 erzeugt ein Signal, das die Beendigung des Lesens des Strichcodes (Demodulation) anzeigt. Die LED 11 ist ein Anzeigeelement zur Anzeige von einer Information, wie z.B. dem Preis oder ähnliches von Waren, die als Ergebnis der Demodulation des Strichcodes 21 erhalten werden.
  • Der Laserstrahl L, der durch den Halbleiterlaser 13 emittiert wird, strahlt auf das optische Abtastsystem 14 ein und wird durch das optische Abtastsystem 14 polarisiert. Insbesondere polarisiert das optische Abtastsystem 14 den Laserstrahl L in eine Richtung durch den Polygonspiegel (nicht gezeigt), der durch den Motor 12 rotiert wird. Auf der gegenüberliegenden Seite des Polygonspiegels liegt eine Vielzahl von befestigten Spiegeln vor. Deshalb wird der Laserstrahl L, der durch den Polygonspiegel polarisiert wird, durch die jeweiligen befestigten Spiegel wieder reflektiert, so dass die Polarisationsrichtung (Abtastrichtung) des Laserstrahls in verschiedene Richtungen geändert wird. Gemäß dem optischen Abtastsystem 14 werden Laserstrahlabtastspuren in einer Vielzahl von Richtungen kontinuierlich mit hoher Geschwindigkeit innerhalb eines Polarisationszyklus, der durch eine reflektierende Oberfläche des Polygonspiegels erhalten wird, durchgeführt. Jede der Vielzahl von Laserstrahlabtastspuren, die innerhalb des Polarisationszyklus, der durch eine reflektive Oberfläche des Polygonspiegels erhalten wird, durchgeführt wird, wird nachfolgend eine Abtastspur in der nachfolgenden Beschreibung genannt.
  • Wenn der Laserstrahl L, der wie oben beschrieben abtastet, auf den Strichcode 21 trifft, wird der Laserstrahl L an der Oberfläche gestreut und ein Teil der reflektierten Lichtkomponente R wird durch das lichtempfangende Element (Fotodiode) 18 empfangen. Der A/D-Wandler 15 vergleicht einen Stromwert, der die Helligkeit der reflektierten Lichtkomponente R darstellt und durch das lichtempfangende Element 18 empfangen wurde, mit einem vorbestimmten Schwellwert, und wandelt den Wert in ein Binärsignal um. Dieses Binärsignal stellt "H" dar, wenn die Intensität der reflektierten Lichtkomponente der Reflexion eines schwarzen Strichs in dem Strichcode 21 entspricht und stellt "L" dar, wenn die Intensität der reflektierten Lichtkomponente R der Reflexion eines weißen Strichs in dem Strichcode 21 entspricht.
  • Der Strichweitenzähler 16 misst eine Zeit von der Anfangszeit des Binärsignals zur Endzeit (von der erwartet wird, dass sie mit der Weite eines schwarzen Strichs in dem zweischichtigen Strichcode 21 korrespondiert) und eine Zeit von der Anfangszeit des Binärsignals zu der Endzeit (von der erwartet wird, dass sie mit der Weite eines weißen Strichs einem zweischichtigen Strichcode 21 entspricht) basierend auf dem Binärsignaleingang von dem A/D-Wandler 15. Der Strichweitenzähler 16 zählt die Anzahl von Takten des Taktgebers 19 zur Messung der Zeiten, die den Strichweiten entspricht. Die gelesenen Daten (Strichcodedaten) der Striche, die von dem Strichweitenzähler ausgegeben werden, haben eine Konfiguration, die durch Kombination der gezählten Werte und eines Farbidentifikationssignals, welches weiß oder schwarz entspricht, erhalten werden, und die gelesenen Daten werden kontinuierlich während jedes Abtastvorgangs des Laserstrahls ausgegeben. Die gelesenen Daten, die während jeder Abtastoperation erhalten werden und kontinuierlich in dieser Weise ausgegeben werden, werden Strichweitendatengruppe genannt.
  • Die Strichweitendatengruppe wird zeitweilig indem Speicherpuffer 2 für die Strichweitendatengruppe gespeichert. Der Speicherpuffer 2 für die Strichweitendatengruppe speichert sequentiell die Strichweitendatengruppen, die von dem Strichweitenzähler 16 eingegeben werden und gibt die Strichweitendatengruppen an die CPU 1 nacheinander in der Reihenfolge der Speicherung auf Anforderung der CPU 1 ab.
  • Die Kontrollbereichsschaltung 3, die Motorantriebsschaltung 8, die Laserantriebsschaltung 9, der Motor 12, der Halbleiterlaser 13, das optische Abtastsystem 14, der A/D-Wandler 15, der Strichweitenzähler 16, das lichtempfangende Element 18, der Taktgeber 19 und der Speicherpuffer 2 für die Strichweitendatengruppen entsprechen dem Strichweitenermittlungsbereich gemäß der vorliegenden Erfindung.
  • Der Arbeitsbereich der CPU 1 wird in dem RAM 6 ausgestaltet. Die Schnittstellenschaltung 4 weist einen L-Puffer 6a, einen R-Puffer 6b und einen C-Puffer 6c auf, die zeitweilig demodulierte Daten speichern, die als Ergebnis eines Demodulationsprozesses für eine Strichweitendatengruppe erhalten werden. In dem L-Puffer 6a werden demodulierte Daten gespeichert, die erhalten werden, wenn ein LGB ermittelt wird oder demodulierte Daten werden gespeichert, die erhalten werden, wenn ein LGB und ein RGB durch eine Abtastspur ermittelt werden. In dem R-Puffer 6b werden demodulierte Daten gespeichert, die erhalten werden, wenn kein LGB, aber ein RGB ermittelt wird. In dem C-Puffer 6c werden demodulierte Daten gespeichert, die erhalten werden, wenn ein CB ermittelt wird, aber kein LBG und kein RGB.
  • 2 ist ein Diagramm zur Erläuterung der Puffer 6a bis 6c. Wie in 2 gezeigt, weist jeder der Puffer 6a bis 6c eine Speicherkapazität von 15 Bytes auf und hat Speicherbereiche zur jeweiligen Speicherung von Speicherinformation (1 Byte), einem Demodulationsstellenzähler (1 Byte) eines linksseitigen Datenblocks, einem Demodulationsstellenzähler (1 Byte) eines rechtsseitigen Datenblocks, Demodulationsdaten (6 Bytes) des linksseitigen Datenblocks und Demodulationsdaten (6 Bytes) des rechtsseitigen Datenblocks.
  • In diesem Fall wird in dem Speicherbereich für die Speicherinformation ein Markierungszeichen, das die Anwesenheit/Abwesenheit der Speicherung von Demodulationsbeendigungsdaten, darstellt, ein Markierungszeichen, das ein Modulüberprüfungsresultat der modulierten Daten darstellt, ein Markierungszeichen, das darstellt, ob die demodulierten Daten Daten einer toten Zone sind, und ähnliches gespeichert.
  • In dem Speicherbereich für den Demodulationsstellenzähler des linksseitigen Datenblocks wird eine Stellenzahl (die Zahl der Zeichen: irgendeine zwischen "1" bis "6") der demodulierten Daten, die in dem Speicherbereich der demodulierten Daten des linksseitigen Datenblocks gespeichert sind, eingespeichert. Wenn die demodulierten Daten erhalten werden, wenn der LGB und der CB ermittelt werden, werden alle Zeichen der demodulierten Daten, der LGB und der linksseitige Datenblock ermittelt. Es wird jedoch "7" gespeichert, um die demodulierten Daten von demodulierten Daten zu unterschieden, die erhalten werden, wenn der CB nicht ermittelt wird.
  • In dem Speicherbereich des demodulierten Demodulationsstellenzählers des rechtsseitigen Datenblocks wird eine Stellenzahl (die Anzahl der Zeichen: irgendeine zwischen "1" bis "6") der demodulierten Daten des rechtsseitigen Datenblocks gespeichert. Wenn die demodulierten Daten erhalten werden, wenn der RGB und der CB ermittelt werden, werden alle Zeichen der demodulierten Daten, der RGB und der rechtsseitige Datenblock ermittelt. Es wird jedoch "7" gespeichert, um die demodulierten Daten von den demodulierten Daten zu unterscheiden, die erhalten werden, wenn der CB nicht ermittelt wird.
  • Die demodulierten Daten werden in den Speicherbereichen der demodulierten Daten des linksseitigen Datenblocks und des rechtsseitigen Datenblocks abhängig von den Positionen der Zeichen gespeichert.
  • <Strichcodeerkennungs/Demodulationsprozess>
  • Die konkreten Inhalte des Strichcodeerkennungs/Demodulationsprozesses, der in dem ROM 5 gespeichert und durch die CPU 1 ausgeführt wird, wird auf der Basis der Flussdiagramme der 3 und 4 beschrieben. Das Flussdiagramm in 3, welches die Hauptroutine des Strichcodeerkennungs/Demodulationsprozesses ist, wird so gestaltet, dass eine Hauptenergieversorgung des Strichcodelesers angeschaltet wird und eine Strichweitendatengruppe in dem Speicherpuffer 2 für die Strichweitendatengruppe gespeichert wird.
  • Zuerst extrahiert die CPU 1 sequentiell eine Vielzahl von Strichweitendatengruppen von dem Speicherpuffer 2 für die Strichweitendatengruppe und Demodulationsprozesse für die Strichweitendatengruppen werden ausgeführt (S01). Im Detail ermittelt die CPU 1 einen LGB, einen CB und einen RGB aus den Strichweitendatengruppen. Wenn die CPU irgendeinen der Striche ermittelt, wird die Überprüfung der Zeichenlänge der Strichweitendaten des Strichs ausgeführt, die Anzahl der effektiven Zeichen wird berechnet und demodulierte Daten entsprechend der Anzahl der effektiven Zeichen werden demoduliert.
  • Nachfolgend speichert die CPU die demodulierten Daten, die im Schritt S01 demoduliert worden sind, in irgendeinem der L-Puffer 6a, der R-Puffer 6b und der C-Puffer 6c, abhängig von dem Status der demodulierten Daten (Ermittlungsstatus des LGB des RGB und des CB) (S02).
  • Die CPU beurteilt die Syntheseverfahren für die demodulierten Daten, die in den Puffern 6a bis 6c gespeichert sind, auf der Basis der Demodulationsstellenzähler der Datenblöcke, die in den Puffern 6a bis 6c gespeichert sind (S03). Im Detail versteht die CPU 1, wenn der Demodulationsstellenzähler des linksseitigen Datenblocks und der Demodulationsstellenzähler des rechtsseitigen Datenblocks in dem L-Puffer 6a, jeweils "7" ist, dass die demodulierten Daten, die in dem L-Puffer 6a gespeichert sind, demodulierte Daten sind, die erhalten wurden, wenn ein LGB, ein CB und ein RGB durch eine Abtastspur (gesamter Strichcode wird detektiert) ermittelt werden, und die CPU 1 beurteilt das Syntheseverfahren als ein kontinuierliches Leseverfahren. Im Gegensatz zu diesem beurteilt die CPU 1 das Syntheseverfahren als ein Block-Leseverfahren, wenn der Demodulationsstellenzähler des linksseitigen Datenblocks des L-Puffers 6a "7" ist und wenn der Demodulationsstellenzähler des rechtsseitigen Datenblocks des R-Puffers 6b "7" ist.
  • Im Gegensatz zu diesem beurteilt die CPU 1 das Syntheseverfahren als ein "2-Teil"-Verfahren, wenn der Demodulationsstellenzähler des linksseitigen Datenblocks des L-Puffers 6a und der Demodulationsstellenzähler des linksseitigen Datenblocks des R-Puffers 6b jeweils "7" sind und die Summe des Demodulationsstellenzählers des rechtsseitigen Datenblocks des L-Puffers 6a und des Demodulationsstellenzählers des rechtsseitigen Datenblocks des R-Puffers 6b und die Summe der Demodulationsstellenzähler des linksseitigen Datenblocks des L-Puffers 6a und des Demodulationsstellenzählers des linksseitigen Datenblocks des R-Puffers 6b "8" oder jeweils mehr sind.
  • Darüber hinaus wird die CPU 1 das Syntheseverfahren als ein "3-1-Teil"-Verfahren beurteilen, wenn die Summe des Demodulationsstellenzählers des linksseitigen Datenblocks des L-Puffers 6a und des Demodulationsstellenzählers des linksseitigen Datenblocks des C-Puffers 6c und die Summe des Demodulationsstellenzählers des rechtsseitigen Datenblocks des C-Puffers 6c und des Demodulationsstellenzählers des rechtsseitigen Datenblocks des R-Puffers 6b "8" oder jeweils mehr sind.
  • Wenn der Demodulationsstellenzähler des linksseitigen Datenblocks des L-Puffers 6a und der Demodulationsstellenzähler des rechtsseitigen Datenblocks des R-Puffers 6b jeweils "7" sind und wenn die Summe des Demodulationsstellenzählers des rechtsseitigen Datenblocks des C-Puffers 6c und des Demodulationsstellenzählers des rechtsseitigen Datenblocks des R-Puffers 6b "8" oder mehr ist, beurteilt die CPU 1 das Syntheseverfahren als ein "3-2-Teil"-Verfahren.
  • Die CPU beurteilt, ob das Beurteilungsergebnis, das im Schritt S03 erhalten worden ist, ein kontinuierliches Leseverfahren ist oder nicht (S04). Zu diesem Zeitpunkt schiebt die CPU 1, wenn das Beurteilungsergebnis ein kontinuierliches Leseverfahren (S04; Y) ist, den Prozess auf Schritt S09, im anderen Fall (S04; N) schiebt die CPU 1 den Prozess zum Schritt S05.
  • Wenn die CPU 1 den Prozess zum Schritt S05 schiebt, beurteilt die CPU 1, ob das Beurteilungsergebnis im Schritt S03 ein Blockleseverfahren ist oder nicht. Zu diesem Zeitpunkt wird, wenn das Beurteilungsergebnis das Blocklese-Verfahren ist (S05; Y), die CPU 1 das Verfahren auf Schritt S08 schieben, andern falls (S05; N) wird die CPU 1 das Beurteilungsergebnis als Teillese-Verfahren verstehen, um den Prozess auf Schritt S06 zu schieben.
  • Wenn die CPU 1 den Prozessor auf Schritt S06 schiebt, führt die CPU 1 eine Unterroutine für die Überprüfung des Überlappungsteils (Flussdiagramm in 4) aus. In 4 spezifiziert die CPU 1 zuerst zwei demodulierte Daten, die gemäß dem Beurteilungsergebnis der Syntheseergebnisse (S001) synthetisiert (verglichen) werden sollen.
  • Zu diesem Zeitpunkt, das Syntheseverfahren ist ein "Zwei-Teil"-Verfahren, spezifiziert die CPU 1 die demodulierten Daten in dem L-Puffer 6a als ein Stück von demodulierten Daten (entsprechend den ersten demodulierten Daten der vorliegenden Erfindung) und spezifiziert die demodulierten Daten in den R-Puffer 6b als die anderen modulierten Daten (entsprechend den zweiten demodulierten Daten der vorliegenden Erfindung). Im Gegensatz dazu spezifiziert die CPU 1, wenn das Syntheseverfahren ein "3-2-Teil"-Verfahren ist, die demodulierten Daten in dem L-Puffer 6a als ein Stück von demodulierten Daten und spezifiziert die demodulierten Daten in dem C-Puffer 6c als das andere Stück der demodulierten Daten.
  • Im Kontrast dazu führt die CPU 1, wenn das Syntheseverfahren ein "3-1-Teil"-Verfahren ist, den nachfolgenden Prozess aus. Im Detail liest die CPU 1 einen Status des Endmarkierungszeichens der vorbestimmten Überprüfung des Überlappungsteils. Zu diesem Zeitpunkt spezifiziert die CPU 1, wenn das Endmarkierungszeichen "0" ist, die demodulierten Daten in den L-Puffer 6a als ein Stück demodulierter Daten und spezifiziert die demodulierten Daten in den C-Puffer 6c als das andere Stück der demodulierten Daten. Im Gegensatz dazu spezifiziert die CPU 1, wenn das Endmarkierungszeichen "1" ist, die demodulierten Daten in dem C-Puffer 6c als ein Stück demodulierter Daten und spezifiziert die demodulierten Daten in dem R-Puffer 6b als das andere Stück der demodulierten Daten.
  • Das Endmarkierungszeichen ist so gestaltet, dass es auf "0" gesetzt wird, wenn die Ausführung der Subroutine beendet ist.
  • Anschließend vergleicht die CPU 1 die zwei Teile der demodulierten Daten, die im Schritt S001 spezifiziert worden sind, um zu beurteilen, ob überlappende Teile (überlappende Stellen (Zeichen)) zwischen den Datenblöcken, die synthetisiert werden sollen (S002), existieren. Zu diesem Zeitpunkt beurteilt die CPU 1, wenn keine überlappenden Teile existieren (S002; N), dass die Überprüfung des Überlappungsteils nicht gut ist (S008) und beendet die Ausführung der Subroutine. Im Gegensatz dazu schiebt die CPU 1, wenn die überlappenden Teile existieren (S002; Y), das Verfahren zum Schritt S003.
  • Wenn die CPU 1 den Prozess auf den Schritt S003 schiebt, beurteilt die CPU 1, ob die überlappenden Teile durch zwei Zeichen gebildet werden oder nicht. Zu diesem Zeitpunkt beurteilt die CPU 1, wenn die überlappenden Teile nicht durch zwei Zeichen gebildet werden (S003; N), dass die Überprüfung des Überlappungsteils nicht gut ist (S008) und beendet die Ausführung der Subroutine R. Im Gegensatz dazu, schiebt die CPU 1 den Prozess auf Schritt S004, wenn die überlappenden Teile durch zwei Zeichen gebildet werden (S003; Y).
  • Wenn die CPU 1 den Prozess auf Schritt S004 schiebt, beurteilt die CPU 1, ob die überlappenden Teile dieselben sind oder nicht. Zu diesem Zeitpunkt beurteilt die CPU 1, wenn die überlappenden Teile nicht dieselben sind (S004; N), dass die Überprüfung des Überlappungsteils nicht gut ist (S008) und beendet die Ausführung der Subroutine R. Im Gegensatz dazu, schiebt die CPU 1 den Ablauf auf S005, wenn die überlappenden Teile dieselben sind (S004; Y).
  • Wenn die CPU 1 den Prozess auf Schritt S005 schiebt, beurteilt die CPU 1, ob die zwei Zeichen, die den überlappenden Teil von einem oder dem anderen Teil der demodulierten Daten bilden, dieselben sind oder nicht. Zu diesem Zeitpunkt schiebt die CPU 1, wenn die zwei Zeichen nicht dieselben sind (S005; N) den Prozess auf Schritt S007. Im Gegensatz dazu schiebt die CPU 1 den Prozess auf Schritt S006, wenn die zwei Zeichen dieselben sind (S006; Y).
  • Wenn die CPU 1 den Prozess auf Schritt S006 schiebt, beurteilt die CPU 1, ob ein Zeichen benachbart zu dem linken des überlappenden Teils von einem Stück der demodulierten Daten, ein Zeichen benachbart zu dem rechten des überlappenden Teils des anderen Stücks der demodulierten Daten und die Zeichen, die die überlappenden Teile von dem einen und dem anderen Stück der demodulierten Daten bilden, alle die gleichen sind oder nicht. Zu diesem Zeitpunkt versteht die CPU 1, wenn die Zeichen alle die gleichen sind (S006; Y), dass die demodulierten Daten fehlerhaft gelesene Daten sind, die durch eine Bitverschiebung erzeugt wurden, beurteilt dass die Überprüfung des Überlappungsteils nicht gut ist (S008) und beendet die Ausführung der Subroutine. Im Gegensatz dazu schiebt die CPU 1 den Prozess auf Schritt S007, wenn die Zeichen nicht alle dieselben sind (S006; N).
  • Wenn die CPU 1 den Prozess auf Schritt S007 schiebt, versteht die CPU 1, dass ein Stück der demodulierten Daten und das andere Stück der demodulierten Daten die Bedingungen für die Synthese (Kopplung) erfüllen, beurteilt, dass die Überprüfung des Überlappungsteils okay ist und schiebt den Prozess auf Schritt S009.
  • Wenn die CPU den Prozess auf Schritt S009 schiebt, beurteilt die CPU 1, ob das Beurteilungsergebnis in Schritt S03 ein "3-1-Teil"-Verfahren ist oder nicht. Zu diesem Zeitpunkt beendet die CPU 1 die Ausführung der Subroutine, wenn das Beurteilungsergebnis nicht das "3-1-Teil"-Verfahren (S009; N) ist. Im Gegensatz dazu, schiebt die CPU 1 den Prozess auf Schritt S010, wenn das Beurteilungsergebnis ein "3-1-Teil"-Verfahren (S009; Y) ist.
  • Wenn die CPU 1 den Prozess auf Schritt S010 schiebt, beurteilt die CPU 1, ob das Endmarkierungszeichen der Überprüfung des Überlappungsteils "1" ist oder nicht. Zu diesem Zeitpunkt versteht die CPU 1, wenn das Endmarkungszeichen "1" (S010; Y) ist, dass die Überprüfung des Überlappungsteils für zwei Bereiche in dem "3-1-Teil"-Verfahren beendet ist und beendet die Ausführung der Subroutine R. Im Gegensatz dazu, setzt die CPU 1 das Endmarkierungszeichen auf "1" (S011) und kehrt dann zum Prozess bei Schritt S001 zurück, wenn das Endmarkierungszeichen nicht "1" ist (sondern "0" ist) (S010; Y).
  • In 5 ist ein Diagramm zur Erklärung eines konkreten Beispiels eines Prozesses, der durch eine Subroutine für die Überprüfung des Überlappungsteils ausgeführt wird. In dem Beispiel, das in 5 gezeigt ist, wird angenommen, dass demodulierte Daten der ersten bis fünften Zeichen "..XAB" des linksseitigen Datenblocks als ein Stück von demodulierten Daten spezifiziert ist und dass demodulierte Daten, die die vierten bis sechsten Zeichen "CDY" des linksseitigen Datenblocks beinhalten, als das andere Stück der demodulierten Daten gemäß dem Prozess von Schritt S01 spezifiziert worden ist.
  • In diesem Fall werden "AB" des einen Stücks von demodulierten Daten und "CD" des anderen Stücks von demodulierten Daten als überlappende Teile (S002; Y) spezifiziert und es wird beurteilt, dass die überlappenden Teile durch zwei Zeichen (S003; Y) gebildet werden. Es wird beurteilt, ob der überlappende Teil "AB" und der überlappende Teil "CD" dieselben sind oder nicht (S004). Zu diesem Zeitpunkt wird beurteilt, wenn "AB" und "CD" dieselben sind (S004; Y), ob die zwei Zeichen, die den überlappenden Teil "AB" bilden, d.h. "A" und "B", dieselben sind oder nicht (S005). Zu diesem Zeitpunkt werden "C" und "D" als dieselben Zeichen verstanden, wenn beurteilt wird, dass "A" und "B" dieselben sind (S005; Y).
  • Danach wird beurteilt, ob ein Zeichen (drittes Zeichen) "X" benachbart zu dem linken des Überlappungsbereichs "AB" und "A" (oder "B") dieselben sind und ein Zeichen (sechstes Zeichen) "Y" benachbart zu dem rechten des Überlappungsbereichs "CD" und "A" (irgendeines von "B", "C", und "D") dieselben sind oder nicht (S006). Zu diesem Zeitpunkt wird im Schritt S008 die Beurteilung so durchgeführt, dass die Überprüfung des Überlappungsteils nicht gut ist, wenn "X" gleich "A" (irgendeines von "B", "C", und "D") gleich "Y" erfüllt ist (S006; Y).
  • Nach Vervollständigung der Subroutine für die Überprüfung des Überlappungsteils schiebt die CPU 1 den Prozess auf Schritt S07 der Hauptroutine (siehe 3). Im Schritt S07 beurteilt die CPU 1, ob das Überprüfungsergebnis des Überlappungsteils okay ist oder nicht in Ordnung ist. Zu diesem Zeitpunkt schiebt die CPU 1 den Prozessor auf Schritt S11, wenn das Überprüfungsergebnis nicht gut ist (S07; NG). Im Gegensatz dazu, schiebt die CPU 1 den Prozess auf Schritt S08, wenn das Überprüfungsergebnis okay ist (S07; okay).
  • Im Schritt S08 führt die CPU 1 den Syntheseprozess (Paarung) der demodulierten Daten, die in den Puffern 6a bis 6c gespeichert sind, aus, um die demodulierten Daten des gesamten Strichcodes zu erzeugen.
  • Nachfolgend führt die CPU 1 die Modulüberprüfung 10 in Bezug auf die gebildeten demodulierten Daten im Schritt S08 aus und beurteilt, ob das Überprüfungsergebnis okay ist oder nicht in Ordnung ist (S09). Zu diesem Zeitpunkt schiebt die CPU 1 den Prozess auf S10, wenn das Überprüfungsergebnis okay ist (S09; okay). Im Gegensatz dazu, schiebt die CPU 1 den Prozess auf S11, wenn das Überprüfungsergebnis nicht gut ist (S09; NG).
  • Wenn der Prozess auf Schritt S10 geschoben wird, versteht die CPU 1, dass das Lesen des Strichcodes 21 okay ist, bringt den Lautsprecher 10 dazu ein Signal zu erzeugen, das die Beendigung des Lesens des Strichcodes 21 darstellt, und zeigt Information, basierend auf dem Demodulationsergebnis des Strichcodes 21 auf der LED 11. Die CPU 1 gibt eine Weisung zur Übertragung des Demodulationsergebnisses des Strichcodes 21 an eine übergeordnete Maschine 201 an die Schnittstellenschaltung 4. Danach beendet die CPU 1 die Prozesse der Hauptroutine.
  • Wenn der Prozess auf Schritt S11 geschoben wird, versteht die CPU 1, dass das Lesen des Barcodes 21 nicht in Ordnung ist, verursacht den Lautsprecher 10 ein Signal zu erzeugen, dass das Lesen des Strichcodes 21 vollständig ist und zeigt auf der LED 11 an, dass die Demodulation des Strichcodes 21 nicht in Ordnung ist (dass das Lesen nicht in Ordnung ist). Danach beendet die CPU 1 die Prozesse der Hauptroutine.
  • <Betrieb des Ausführungsbeispiels>
  • Gemäß dem Strichcodelaser dieses Ausführungsbeispiels werden die demodulierten Daten als fehlerhaft gelesene Daten, die durch eine Bit-Verschiebung erzeugt wurden, gehandhabt, wenn ein Zeichen benachbart dem linken des Überlappungsbereichs des einen Stücks der demodulierten Daten, ein Zeichen benachbart dem rechten des Überlappungsteils des anderen Stücks der demodulierten Daten und die Zeichen, die die Überlappungsbereiche der einen und der anderen demodulierten Daten bilden, in dem Überprüfungsprozess des Überlappungsbereichs alle dieselben sind (siehe 4), und das Lesen des Strichcodes 21 ist nicht in Ordnung.
  • Im Detail werden im Beispiel, das in 8 gezeigt ist, die dritten bis sechsten Zeichen so gehandhabt, dass die Synthesebedingungen für demodulierte Daten nicht erfüllt sind, da alle die dritten bis sechsten Zeichen nach der Synthese "C" sind. Aus diesem Grund wird das Lesen des Strichcodes 21 durch einen Demodulationssyntheseprozess durchgeführt, der eine andere Strichweitendatengruppe verwendet. Entsprechend kann verhindert werden, dass der Strichcode 21 durch eine Bitverschiebung falsch gelesen wird, wenn ein Teillesen durchgeführt wird.

Claims (6)

  1. Strichcodeleser umfassend: eine Strichcodedatenermittlungseinheit (3, 8, 9, 12, 13, 14, 15, 16, 18, 19, 2) zur Abtastung eines Strichcodes (21), der durch eine Vielzahl von Zeichen gebildet ist, und zwar mindestens zweifach, um die Strichcodedaten (LGB, RGB, CB) an dem Abtastort zu ermitteln; einen Demodulationsbereich (1) zum Demodulieren (S01) der jeweiligen Strichcodedaten, die durch den Strichcodedatenermittlungsbereich ermittelt worden sind; einen ersten Beurteilungsbereich (1) zur Ermittlung von Überlappungsteilen zwischen den ersten demodulierten Daten an einem ersten Abtastort und zweiten demodulierten Daten an einem zweiten Abtastort der demodulierten Daten, die durch den Demodulationsbereich demoduliert worden sind, um zu beurteilen, ob die Überlappungsteile durch eine vorbestimmte Anzahl von Zeichen gebildet werden oder nicht (S002, S003); dadurch gekennzeichnet, dass der Strichcodeleser ferner umfasst: einen zweiten Beurteilungsbereich (1) zum Beurteilen, ob die Überlappungsteile zwischen den ersten demodulierten Daten und den zweiten demodulierten Daten dieselben sind oder nicht (S004), wenn durch den ersten Beurteilungsbereich (1) beurteilt wird, dass die Überlappungsteile durch eine vorbestimmte Anzahl von Zeichen gebildet werden; einen dritten Beurteilungsbereich (1) zum Beurteilen, ob die Zeichen, die die Überlappungsteile der ersten oder der zweiten demodulierten Daten bilden, dieselben sind oder nicht (S005), wenn durch den zweiten Beurteilungsbereich (1) beurteilt wird, dass die Überlappungsteile dieselben sind; und einen vierten Beurteilungsbereich (1) zum Beurteilen, ob ein Zeichen genau vor dem Überlappungsteil der ersten demodulierten Daten, ein Zeichen genau nach dem Überlappungsteil der zweiten demodulierten Daten und Zeichen, die die Überlappungsteile bilden, alle dieselben sind oder nicht (S006), wenn durch den dritten Beurteilungsbereich (1) beurteilt wird, dass die Zeichen dieselben sind.
  2. Strichcodeleser nach Anspruch 1, ferner umfassend: einen Synthesebereich (1) zum Synthetisieren der ersten demodulierten Daten und der zweiten demodulierten Daten (S08), wobei der Synthesebereich die ersten demodulierten Daten und die zweiten demodulierten Daten nicht synthetisiert (S008), wenn durch den vierten Beurteilungsbereich beurteilt wird, dass die Zeichen alle dieselben sind.
  3. Strichcodeleser nach Anspruch 1 oder 2, bei welchem der Strichcode ein EAN-13-Code oder ein UPC/A-Code ist.
  4. Strichcodeleser nach irgendeinem der vorhergehenden Ansprüche, bei welchem der erste Beurteilungsbereich beurteilt, dass die Überlappungsteile durch eine vorbestimmte Zahl von Zeichen gebildet werden, wenn die Überlappungsteile durch zwei Zeichen gebildet werden (S003).
  5. Strichcodeleseverfahren umfassend: einen ersten Schritt des Abtastens eines Strichcodes, der durch eine Vielzahl von Zeichen gebildet ist, und zwar zumindest zweimal, um die Strichcodedaten an dem Abtastort zu ermitteln; einen zweiten Schritt der Demodulation der entsprechenden Strichcodedaten, die in dem ersten Schritt (S01) ermittelt wurden; einen dritten Schritt des Vergleichs der ersten demodulierten Daten an einem ersten Abtastort und der zweiten demodu lierten Daten an einem zweiten Abtastort der demodulierten Daten, die in dem zweiten Schritt demoduliert worden sind, und zum Beurteilen, ob die Überlappungsteile durch eine vorbestimmte Anzahl von Zeichen gebildet sind oder nicht (S002, S003), wenn die ersten demodulierten Daten und die zweiten demodulierten Daten überlappende Teile aufweisen; einen vierten Schritt des Beurteilens, ob die überlappenden Teile zwischen den ersten demodulierten Daten und den zweiten demodulierten Daten dieselben sind oder nicht (S004), wenn in dem dritten Schritt beurteilt wird, dass die überlappenden Teile durch eine vorbestimmte Anzahl von Zeichen gebildet werden; einen fünften Schritt des Beurteilens, ob die Zeichen, die durch die überlappenden Teile der ersten oder zweiten demodulierten Daten gebildet werden, dieselben sind oder nicht (S005), wenn in dem vierten Schritt beurteilt wird, dass die überlappenden Teile dieselben sind; und einen sechsten Schritt des Beurteilens, ob ein Zeichen genau vor dem überlappenden Teil der ersten demodulierten Daten, ein Zeichen genau nach dem überlappenden Teil der zweiten demodulierten Daten und die Zeichen, die die Überlappungsteile bilden, alle dieselben sind oder nicht (S006), wenn in dem fünften Schritt beurteilt wird, dass die Zeichen gleich sind.
  6. Strichcodeleseverfahren gemäß Anspruch 5, ferner umfassend einen siebten Schritt (S08) der Synthetisierung der ersten demodulierten Daten und der zweiten demodulierten Daten, wobei der siebte Schritt nicht ausgeführt wird, wenn in dem sechsten Schritt (S008) beurteilt wird, dass die Zeichen alle dieselben sind.
DE69925925T 1998-08-24 1999-02-04 Barcodeleser und barleseverfahren Expired - Lifetime DE69925925T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP23781798 1998-08-24
JP23781798A JP3560477B2 (ja) 1998-08-24 1998-08-24 バーコード読取装置及びバーコード読取方法
PCT/JP1999/000482 WO2000011594A1 (fr) 1998-08-24 1999-02-04 Lecteur de codes a barres et procede de lecture de codes a barres

Publications (2)

Publication Number Publication Date
DE69925925D1 DE69925925D1 (de) 2005-07-28
DE69925925T2 true DE69925925T2 (de) 2005-11-24

Family

ID=17020851

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69925925T Expired - Lifetime DE69925925T2 (de) 1998-08-24 1999-02-04 Barcodeleser und barleseverfahren

Country Status (5)

Country Link
US (1) US6695210B2 (de)
EP (1) EP1117059B1 (de)
JP (1) JP3560477B2 (de)
DE (1) DE69925925T2 (de)
WO (1) WO2000011594A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004017504A1 (de) * 2004-04-08 2005-10-27 Sick Ag Verfahren und Vorrichtung zum Lesen eines Strichcodes
CN103745523A (zh) * 2013-12-26 2014-04-23 北京中科金财科技股份有限公司 一种票据混合隐形防伪信息识别装置及识别方法
CN104182711B (zh) * 2014-08-21 2017-06-06 深圳市兴通物联科技有限公司 防泄密的方法及激光条码扫描平台
US10460141B2 (en) * 2016-05-31 2019-10-29 University Of Rochester Per-channel color barcodes for displays

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6373488A (ja) * 1986-09-17 1988-04-04 Fujitsu Ltd バ−コ−ド読取方式
EP0310921B1 (de) * 1987-09-28 1996-01-10 Sumitomo Electric Industries Limited Kombinieren von gelesenen Strichcode-Daten
JP2725221B2 (ja) 1991-12-12 1998-03-11 松下電器産業株式会社 バーコードリーダ
US5296691A (en) * 1992-09-14 1994-03-22 Lazerdata Corporation Scanning device for reconstructing a complete code from scanned segments
US5493108A (en) * 1992-10-14 1996-02-20 Spectra-Physics Scanning Systems, Inc. Method and apparatus for recognizing and assembling optical code information from partially scanned segments
US5457308A (en) * 1993-09-14 1995-10-10 Symbol Technologies, Inc. Bar code scan stitching
JP3470738B2 (ja) * 1995-09-14 2003-11-25 富士通株式会社 バーコード読取装置及びバーコード読取方法
JPH09179927A (ja) * 1995-12-26 1997-07-11 Fujitsu Ltd バーコード読取装置
JP3576356B2 (ja) * 1997-08-08 2004-10-13 富士通株式会社 バーコード読取装置,バーコード読取方法,及びコンピュータ可読媒体
JPH1166222A (ja) * 1997-08-19 1999-03-09 Fujitsu Ltd バーコード読取装置,バーコード読取方法,及びコンピュータ可読媒体
JP2001076088A (ja) * 1999-09-02 2001-03-23 Nec Eng Ltd バーコード読取装置、方法、読取プログラム記録媒体

Also Published As

Publication number Publication date
US20010006192A1 (en) 2001-07-05
EP1117059A4 (de) 2004-03-31
DE69925925D1 (de) 2005-07-28
EP1117059A1 (de) 2001-07-18
EP1117059B1 (de) 2005-06-22
JP3560477B2 (ja) 2004-09-02
JP2000067154A (ja) 2000-03-03
US6695210B2 (en) 2004-02-24
WO2000011594A1 (fr) 2000-03-02

Similar Documents

Publication Publication Date Title
DE3854885T2 (de) Kombinieren von gelesenen Strichcode-Daten
DE102007028866B4 (de) Vorrichtung zum optischen Lesen eines graphischen Symbols, das aus einer Mehrzahl von optisch erkennbaren Informationseinheitsabschnitten aufgebaut ist
DE3101827C2 (de) Optisches Strichcode-Lesegerät
DE3788264T2 (de) Verfahren und Gerät zur selbsttätigen Unterscheidung von strichkodierten Daten.
DE69027757T2 (de) Verfahren zur Dekodierung von strichkodierten Symbolen aus Teilabtastungen
DE69126811T2 (de) Streifenkodeleser für alle Richtungen
DE68928553T2 (de) X-Abtaster
DE69728485T2 (de) Abtaster für Strichkodes mit Fehlern
DE69332771T2 (de) Verfahren und Vorrichtung zum Dekodieren von strichkodierten Symbolen
DE69020186T2 (de) Strichkodeleser.
DE69728482T2 (de) Zweidimensionaler Codeleser
DE2400334A1 (de) Tragbares lesegeraet
DE4000197C2 (de) Wertmarke mit vorbestimmten optischen Kennzeichen und Wertmarkenvalidierungseinrichtung
DE69124733T2 (de) Lesevorrichtung für Informationen
US6321987B1 (en) Bar code reading apparatus for reading plural code systems
DE69021090T2 (de) Marken-Lesegerät.
DE102015219541A1 (de) Dekodieren von strichcodes
DE2914509A1 (de) Verfahren und vorrichtung zum ablesen eines eine information in form eines balkenkode tragenden informationstraegers
DE2616753B2 (de) Vorrichtung zum Lesen von strichkodierten Informationen
EP0296516B1 (de) Verfahren zur Erkennung von Zeichen und Objekten
DE69233268T2 (de) Gerät und Verfahren zur Streifenkodelesung
DE3718620C2 (de)
DE69831453T2 (de) Strichkodeleser
DE69022533T2 (de) Strichcode-leseverfahren und -vorrichtungen.
DE69925925T2 (de) Barcodeleser und barleseverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE