DE69834053T2 - Ccd-basierter bar-kode-scanner - Google Patents

Ccd-basierter bar-kode-scanner Download PDF

Info

Publication number
DE69834053T2
DE69834053T2 DE69834053T DE69834053T DE69834053T2 DE 69834053 T2 DE69834053 T2 DE 69834053T2 DE 69834053 T DE69834053 T DE 69834053T DE 69834053 T DE69834053 T DE 69834053T DE 69834053 T2 DE69834053 T2 DE 69834053T2
Authority
DE
Germany
Prior art keywords
bar code
light
conveyor belt
unit
window
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
DE69834053T
Other languages
English (en)
Other versions
DE69834053D1 (de
Inventor
R. Benny Doylestown TAFOYA
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.)
Sick Inc
Original Assignee
Sick Inc
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 Sick Inc filed Critical Sick Inc
Application granted granted Critical
Publication of DE69834053D1 publication Critical patent/DE69834053D1/de
Publication of DE69834053T2 publication Critical patent/DE69834053T2/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/10712Fixed beam scanning
    • G06K7/10722Photodetector array or CCD scanning

Landscapes

  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)

Description

  • ALLGEMEINER STAND DER TECHNIK
  • 1. Erfindungsgebiet
  • Die vorliegende Erfindung betrifft ein CCD-basiertes Strichcode-Lesesystem gemäß dem Oberbegriff von Anspruch 1.
  • 2. Beschreibung des verwandten Stands der Technik
  • Strichcodes werden in einer großen Vielzahl von Anwendungen zum Abrufen von Informationen wie etwa dem Preis von Objekten verwendet. In dieser Hinsicht werden Strichcodes gerne weit verbreitet in Lebensmittelgeschäften und Kaufhäusern sowohl zur Lagerkontrolle als auch für POS-(point of sale)-Transaktionen eingesetzt.
  • Ein Strichcode enthält normalerweise mehrere Strichcodezeichen. Ein Strichcodezeichen ist eine Gruppe von Linien (Strichen) und Zwischenräumen, die eine einzelne Zahl oder einen einzelnen Buchstaben darstellen. Ein Strichcodesymbol ist eine Sammlung mehrerer Strichcodezeichen, die eine Identifikation eines bestimmten Objekts darstellen. Die Linien des Strichcodes können beispielsweise in einem Bereich von etwa 1/8'' bis 1'' Höhe und von etwa 1 bis etwa 50 Milli-Inch Dicke variieren. Die Zwischenräume zwischen den Linien des Strichcodesymbols können unterschiedliche Breiten aufweisen, wobei die Variation bei dem Zwischenraum eine Anzeige der Art von Strichcodezeichen ist, die das Strichcodesymbol bilden.
  • Strichcodes werden in der Regel von einem Strichcodescanner gelesen, indem die Striche und Zwischenräume auf sequenzielle Weise beleuchtet werden, wobei die Striche Licht absorbieren und die Hintergrund zwischenräume Licht reflektieren. Dies führt zu einem Muster von Reflexionen und Nichtreflexionen, das von einer sich in dem Strichcodescanner befindlichen Lichtdetektierungsschaltung erfasst wird. Die Lichtdetektierungsschaltung liefert ein Eingangssignal an einen digitalen Prozessor, der diese Eingabe in ein digitales Wort umsetzt.
  • Ein Strichcode-Etikett kann von einem Scanner gelesen werden, der reflektiertes und/oder gebrochenes Licht von den Strichen und Zwischenräumen detektiert, die die Strichcodezeichen umfassen. Ein herkömmliches Verfahren zum Beleuchten des Strichcode-Etiketts ist durch die Verwendung eines lesenden Laserstrahls, wobei ein Lichtstrahl über das Strichcode-Etikett streicht und ein optischer Detektor (wie etwa ein Fotodiodendetektor) das reflektierte Licht detektiert. Der Detektor erzeugt ein elektrisches Signal mit einer Amplitude, die von der Intensität des gesammelten Lichts bestimmt wird.
  • Ein weiteres herkömmliches Verfahren zum Sammeln von Rücklicht von dem Strichcode-Etikett ist durch den Einsatz eines Arrays (üblicherweise als ladungsgekoppeltes Bauelement oder CCD bekannt) aus optischen Detektoren, die mit einem analogen Schieberegister verbunden sind. Bei einem derartigen Verfahren wird wie bei einem lesenden Laser ein elektrisches Signal mit einer Amplitude erzeugt, die von der Intensität des gesammelten Lichts bestimmt wird. Entweder bei dem lesenden Laserverfahren oder dem CCD-Verfahren weist die Amplitude des elektrischen Signals einen Pegel für dunkle Striche und einen anderen Pegel für helle Räume auf. Wenn das Strichcode-Etikett gelesen wird, kommt es zu positiv gehenden und negativ gehenden Übergängen in dem elektrischen Signal, die Übergänge zwischen Strichen und Räumen bezeichnen. Es sind Techniken bekannt zum Detektieren von Rändern von Strichen und Räumen durch Detektieren der Übergänge des elektrischen Signals. Eine solche Technik wird in dem an PSC Inc. abgetretenen, Edward Bremer erteilten US-Patent Nr. 5,382,783 beschrieben, das in seiner Gänze durch Bezugnahme hier aufgenommen ist. Eine weitere derartige Technik wird in dem an Spectra-Physics Scanning Systems (jetzt PSC Scanning Inc.) abgetretenen und an Randy Elliott et al. erteilten US-Patent Nr. 5,298,728 beschrieben, das in seiner Gänze hier durch Bezugnahme aufgenommen ist. Bekannt sind auch Techniken zum Bestimmen der Breite von Strichen und Räumen auf der Basis des relativen Orts der detektierten Ränder und Decodieren der durch den Strichcode repräsentierten Informationen.
  • Um einen Strichcode zu lesen können die strichcodierten Gegenstände manuell vor den Scanner oder automatisch auf einem sich bewegenden Förderband bewegt werden. Alternativ kann der Scanner von einem Bediener gehalten und auf den Strichcode ausgerichtet werden. Einige Strichcode-Etiketten sind möglicherweise "abgeschnitten" (das heißt, sie weisen relativ zur Länge des Etiketts kurze Striche auf). Herkömmliche Leseeinrichtungen erfordern sorgfältigen Betrieb, damit man eine hohe Wahrscheinlichkeit für eine erfolgreiche Ablesung erreicht, und sind schwierig mit abgeschnittenen Etiketten zu verwendenen aufgrund der Schwierigkeit, eine ordnungsgemäße Orientierung des Strichcode-Etiketts bezüglich des Scanners zu erreichen. Zufällig orientierte Gegenstände auf einem Förderband müssen relativ zur Länge des Codes sehr lange Striche aufweisen, damit sie mit hoher Wahrscheinlichkeit gelesen werden.
  • Handgehaltene einzeilige Scanner, entweder auf Laser- oder CCD-Basis, erfordern, dass ein Bediener den Scanner relativ zum Strichcode ausrichtet und orientiert, so dass die Leselinie im Wesentlichen senkrecht zu den Strichcoderändern verläuft. Eine derartige Operation erfordert eine gewisse Sorgfalt auf Seiten des Bedieners und reduziert die Produktivität. Zudem sind diese Einrichtungen gegenüber Etikettendefekten empfindlich, da die Detektion von Strich- und Raumrändern in der Regel entlang einer einzelnen schmalen Leselinie erfolgt. Um die Produktivität des Bedieners zu maximieren, Beanspruchungen aufgrund sich wiederholender Bewegungen des Körpers des Bedieners zu minimieren und die Empfindlichkeit gegenüber Etikettendefekten zu minimieren, ist es deshalb wünschenswert, Strichcodes zu lesen, die unter einer beliebigen Orientierung relativ zu der Leseeinrichtung positioniert sein können.
  • Herkömmliche POS-Lesesysteme erfordern in der Regel, dass ein Bediener jeden Gegenstand handhabt (oder einen tragbaren Scanner handhabt), um den Gegenstand auf den Scanner zum Lesen zu orientieren. Ein Förderbandsystem kann verwendet werden, um das erforderliche Ausmaß an Aufwand zu reduzieren. Gegenwärtige Förderbandsysteme haben jedoch Schwierigkeiten, Gegenstände zu lesen, die Strichcode-Etiketten auf der Unterseite von Objekten auf dem Förderband aufweisen. Folglich muss der Bediener den Gegenstand so positionieren, dass das Strichcode-Etikett der Oberseite des Förderbands nicht zugewandt ist, oder muss jeden Gegenstand von einem Zuführungsförderband wegnehmen, ihn ablesen und ihn auf ein Mitnahmeförderband platzieren. Herkömmliche Systeme gestatten im Allgemeinen nicht das Lesen aller Oberflächen der Pakete, was erfordert, dass der Bediener die Pakete so positioniert, dass sich der Strichcode auf den Oberflächen befindet, die gelesen werden sollen.
  • Um das Problem des Lesens vom Strichcode auf der Unterseite zu überwinden, offenbart US 5,252,814 ein Strichcode-Lesesystem gemäß dem Oberbegriff von Anspruch 1 mit einem ersten und einem zweiten Förderband, einem Lichtsender, der in eine Lücke unter einer Oberseite des ersten und zweiten Förderbands positioniert ist, einen Lichtempfänger, der zum Empfangen von Licht von der Unterseite von Objekten konfiguriert ist, und einer Platte, die ganz innerhalb der Lücke zwischen den Förderbändern angeordnet ist.
  • Verschiedene Verfahren sind eingesetzt worden, um zu versuchen, ein Strichcode-Etikett in beliebiger Orientierung zu dem Scanner in einem Minimum von Durchläufen zu lesen. Somit existieren mehrzeilige Laserscanner oder solche für komplexe Muster, die Strichcodes über einen Bereich von Orientierungen hinweg lesen können. Diese Einrichtungen verwenden allgemein Muster formende Spiegel oder holografische Strahlablenkelemente und sind somit größer als andere Scanner und erfordern mehr Komponenten, da die Lesemusterkomplexität zunimmt. Diese Scanner erfordern in der Regel einen Komplexmechanismus zum Führen des Laserstrahls in einem vorbestimmten Muster und erfordern deshalb zusätzliche und teure mechanische Teile, was die Anfälligkeit gegenüber Verschleiß erhöht.
  • Bei einer anderen Art herkömmlichen Scanners wird ein zweidimensionales Array von CCD-Elementen verwendet, um jeweils ein ganzes Bild des Strichcodes zu erhalten. Der Nachteil dieser Einrichtung besteht jedoch darin, dass große Speichermengen benötigt werden, um das zu verarbeitende Bild zu speichern, und große Berechnungsmengen benötigt werden, um die Randortdaten aus dem gespeicherten Bild zu extrahieren. Zudem sind komplizierte Algorithmen erforderlich, um die Orientierung und Charakteristiken des Strichcode-Etiketts zu bestimmen.
  • Aus dem an Spectra-Physics Corporation (nun PSC Scanning, Inc.) abgetretenen und an Gerald Cherry et al. erteilten US-Patent Nr. 5,446.271 ist eine Technik bekannt zum Erzeugen mehrerer virtueller Leselinien auf der Basis gespeicherter Bilddaten von einer zweidimensionalen oder eindimensionalen CCD-Kamera. Bei diesem System weist ein optischer Sensor ein planares Bild gebungsgebiet auf, das einem Bildgebungsgebiet einer zweidimensionalen CCD-Kamera entsprechen kann oder einer eindimensionalen CCD-Kamera, bei der die zweite Dimension durch Rastereingabe aufgrund einer Relativbewegung des optischen Sensors bezüglich eines Strichcode-Etiketts erzeugt wird.
  • Ein beispielhafter Strichcode, der von dem System wie aus US-Paten Nr. 5,446,271 bekannt gelesen werden kann, ist in 1 gezeigt, wo das Strichcode-Etikett 11 aus einem oder mehreren kleinen Stücken 21 bestehen kann, die die Mindestgröße aufweisen, die für das Decodieren erforderlich ist (das heißt kleinste decodierbare Stücke). Ein kleinstes decodierbares Stück 21 eines Strichcode-Etiketts 11 weist eine Höhe HL und eine Breite WL auf. Beim Lesen ist das Strichcode-Etikett 11 möglicherweise nicht unter einem perfekt flachen Winkel zum optischen Sensor ausgerichtet, sondern kann unter einem Winkel AL bezüglich des optischen Sensors geneigt sein, wie in 2 gezeigt. Das Ergebnis kann darin bestehen, dass die Projektion des Bildes des Strichcode-Etiketts 11 (oder eines kleinsten decodierbaren Stücks 21 davon) verzerrt wird, wenn es das Bildgebungsgebiet 13 trifft. Die Projektion 20 des Etiketts oder des Bilds des Stücks weist eine Höhe H (die "scheinbare Höhe") und eine Breite W (die "scheinbare Breite") auf. Wenn die relativen Abmessungen HL und WL des kleinsten decodierbaren Stücks bekannt sind und auch der Neigungswinkel AL bekannt ist, kann die Größe der Projektion 20 auf das Bildgebungsgebiet 13 bestimmt werden. US-Patent Nr. 5,446,271 beschreibt im Detail den Weg zum Bestimmen der Größe der Projektion 20. Beispielsweise sind UPC-Codes (universal product codes) "over-square"-Codes, bei denen die Höhe der Striche in jedem Stück des Codes größer ist als die Breite des Stücks und des Codes.
  • Das Strichcode-Etikett 11 weist auch eine Mindestelementbreite WE der das Etikett 11 ausmachenden Strich- und Raumelemente auf. Die kleinste scheinbare Strichcodeelementbreite WMIN, die die bevorzugten Charakteristiken des Bildgebungsgebiets 13 beeinflusst, kann aus der Mindeststrichcodeelementbreite WE abgeleitet werden, wie im US-Patent Nr. 5,446,271 beschrieben. Das Cherry-Patent stellt fest, dass "zehn oder mehr Pixel pro Element bei einem UPC-Code-Lesegerät wünschenswert wären". Wenn bei dem im US-Patent Nr. 5,446,271 beschriebenen System ein CCD-basiertes Lesegerät ein bestimmtes Gebiet liest, das es abdeckt, werden nur Werte von bestimmten Elemneten in dem CCD-Array in einem Speicher zur späteren Verarbeitung gespeichert, um zu bestimmen, ob Reflexionen von einem Strichcode empfangen worden sind. Beispielsweise zeigt 3A, wie horizontale Leselinien erzeugt werden, wobei nur die "*"-Pixel in einem Speicher gespeichert werden, und 3B zeigt, wie diagonale Leselinien erzeugt werden, wobei nur die "*"-Pixel im Speicher gespeichert werden. Durch dieses System können mehrere verschiedene Leselinien erzeugt und im Speicher gespeichert werden (siehe 4), wobei (hoffentlich) eine dieser Leselinie ordnungsgemäß orientiert ist, so dass ein Strichcode gelesen wird, der möglicherweise in einer beliebigen bestimmten Orientierung bezüglich der Laserleseeinrichtung und dem CCD-basierten Lesegerät positioniert ist. Cherry offenbart auch eine Bilderfassungseinheit, die so positioniert ist, dass sie Rücklicht von einem Objekt auf einem Förderband empfängt, während sich das Objekt über eine Lücke zwischen einem ersten Band und einem zweiten Band hinweg bewegt. Die Bilderfassungseinheit ist in der Lücke unter den Bändern positioniert.
  • Während sich das oben beschriebene Cherry-Patent sehr gut eignet zum Detektieren von Strichcodes unter einem beliebigen jeweiligen Winkel, gibt es immer noch Probleme bezüglich Speichergröße und Größe des CCD-basierten Arrays, die verbessert werden könnten, sowie der Orientierung des CCD-basierten Lesegeräts selbst bezüglich eines gelesenen Strichcodes.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Eine Aufgabe der vorliegenden Erfindung besteht in der Bereitstellung eines Strichcode-Lesegeräts, das in der Lage ist, Strichcodes in einer beliebigen jeweiligen Orientierung bezüglich der Strichcodes selbst in einer Position unter den Strichcodes zu lesen, wie etwa, wenn das Lesegerät in einer von einer Patte bedeckten Lücke zwischen zwei separaten Förderbändern auf einem Förderbandsystem positioniert ist, wobei die Platte gestattet, dass Licht im Wesentlichen dort hindurch tritt.
  • Noch eine weitere Aufgabe der Erfindung besteht in der Bereitstellung eines Systems, das eine CCD-basierte Kamera zusammen mit einer Optik verwendet, um die Anzahl der Kameras zu verringern, die erforderlich sind, um ein bestimmtes Gebiet mit einem bestimmten gewünschten Niveau an Strich-Raum-Auflösung zu lesen.
  • Diese und weitere Aufgaben der Erfindung können durch ein Strichcode-Lesesystem bewerkstelligt werden, welches Folgendes enthält: ein erstes Förderband, um Gegenstände von einem ersten Ort zu einem zweiten Ort zu befördern, und ein zweites Förderband zur Aufnahme von Objekten von dem ersten Förderband und zur Bewegung der Objekte zu einem dritten Ort. Das System enthält weiterhin einen Lichtsender, der in eine Lücke unterhalb einer Oberseite des ersten und zweiten Förderbandes platziert ist, der zum Beleuchten der Strichcode-Etiketten auf der Unterseite der Objekte konfiguriert ist, wenn die Objekte von dem ersten Förderband zu dem zweiten Förderband bewegt werden. Das System enthält außerdem einen Lichtempfänger, der in der Lücke platziert ist und der zum Empfangen von reflektiertem Licht von der Unterseite der Objekte aufgrund der durch den Lichtsender beleuchteten Objekte konfiguriert ist. Das System enthält noch weiter eine fensterartige Einheit, die vollständig innerhalb der Lücke angeordnet ist, wobei die Oberseite der fensterartigen Einheit eine Oberseite aufweist, die entlang einer selben Ebene wie die Oberseiten des ersten und zweiten Förderbandes gelegen ist. Die Oberseite der fensterartigen Einheit stellt eine mit den Oberseiten des ersten und zweiten Förderbandes kontinuierliche Oberseite bereit, wenn die Objekte von dem ersten Ort zu dem dritten Ort bewegt werden, wobei die fensterartige Einheit eine Vergrößerung für das Ausgangslicht des Lichtsenders bereitstellt und die Vergrößerung eine Kompensation in der Art bereitstellt, dass der Lichtempfänger Licht empfangen kann von mehreren Bereichen der Oberseite der fensterartigen Einheit als ohne die Vergrößerung.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die oben erwähnten Aufgaben und Vorteile der Erfindung werden aufgrund der folgenden ausführlichen Beschreibung in Verbindung mit den beiliegenden Zeichnungen umfassender deutlich, wobei durchweg gleiche Bezugszahlen entsprechende Teile bezeichnen. Es zeigen:
  • 1 ein typisches Strichcode-Etikett;
  • 2 ein Diagramm eines bezüglich eines Bildgebungsgebiets positionierten optischen Sensors;
  • 3A wie eine virtuelle horizontale Rasterlinie aus gespeicherten Bilddaten in einer herkömmlichen Strichcode-Leseeinrichtung erzeugt werden kann;
  • 3B wie eine virtuelle diagonale Rasterlinie aus gespeicherten Bilddaten in einer herkömmlichen Strichcode-Leseeinrichtung erzeugt werden kann;
  • 4 mehrere virtuelle Leselinien, die aus gespeicherten Bilddaten erzeugt werden können, in einer herkömmlichen Strichcode-Leseeinrichtung;
  • 5 in Blockdiagrammform eine Strichcode-Leseeinrichtung gemäß einer ersten Ausführungsform der Erfindung;
  • 6 eine Seitenansicht der Strichcode-Leseeinrichtung gemäß der ersten Ausführungsform, mit einem Förderbandsystem verwendet;
  • 7 eine Ansicht der Strichcode-Leseeinrichtung gemäß der ersten Ausführungsform in einer Breitenrichtung, von der Oberseite eines mit der Strichcode-Leseeinrichtung verwendeten Förderbandsystems herunterschauend;
  • 8 einen alternativen Aufbau der Strichcode-Leseeinrichtung gemäß der ersten Ausführungsform, wobei eine Optik verwendet wird;
  • 9 in Blockdiagrammform die Details eines in der ersten Ausführungsform verwendeten Konvertierungsmoduls;
  • 10 die Zeitsteuersequenz, wie Daten in einen Speicher in dem in der ersten Ausführungsform verwendeten Konvertierungsmodul geschrieben werden;
  • 11 eine alternative Konfiguration des in der ersten Ausführungsform verwendeten Konvertierungsmoduls;
  • 12 in Blockdiagrammform eine in der ersten Ausführungsform verwendete Rasterkonvertierungsimplementierung, die in der Lage ist, gleichzeitig Ausgangssignale von vier Zeilenscankameras zu verarbeiten;
  • 13 in Blockdiagrammform eine Strichcode-Leseeinrichtung bei Betrachtung von oberhalb eines Förderbands;
  • 14 die Laserlichtquelle und die CCD-basierte Kamera, in einer der beiden Positionen positioniert, bei Betrachtung direkt vor oder hinter einem Förderband;
  • 15 in Blockdiagrammform eine Strichcode-Leseeinrichtung;
  • 16 eine Konfiguration eines Speicherabschnitts der üblichen Logikeinheit und
  • 17 ein Flussdiagramm der für die Strichcode-Leseeinrichtung durchgeführten Schritte.
  • Ausführliche Beschreibung der bevorzugten Ausführungsformen
  • Bevorzugte Ausführungsformen der Erfindung werden unten unter Bezugnahme auf 5 bis 17 ausführlich beschrieben. 5 zeigt im Blockdiagrammform eine erste Ausführungsform der Erfindung, in der zum Empfangen von Rücklicht von einem nicht gezeigten Strichcode-Etikett mehrere CCD-basierte Kameras 510A510C verwendet werden, wobei das Rücklicht zurückzuführen ist auf Licht, das von entsprechenden Laserlichtquellen 520A520C auf das Strichcode-Etikett gerichtet wird. Jeder Kamera 510A510C ist wie in 5 gezeigt ein Objektiv assoziiert. Jede Kamera 510A510C ist mit einem assoziierten Konvertierungsmodul 530A530C verbunden, das die von seiner assoziierten Kamera ausgegebenen Bilddaten empfängt und nur einen bestimmten Teil der gespeicherten Daten an eine Decodierereinheit 540 aussendet. Die Decodierereinheit 540 führt eine Decodierung der empfangenen Daten durch, um zu bestimmen, ob ein Strichcode-Etikett gelesen worden ist oder nicht. Ein derartiges System kann mit einem Förderbandsystem verwendet werden (wobei Kisten mit Strichcode-Etiketten an dem System vorbeilaufen) oder ohne ein Förderbandsystem, je nach den Bedürfnissen eines Benutzers des Systems. Zur leichteren Erläuterung wird die erste Ausführungsform der Erfindung nachfolgend unter Bezugnahme auf ein Förderbandsystem beschrieben.
  • In 6 sind ein erstes Förderband 610 und ein zweites Förderband 620 gezeigt mit einer Lücke 630 zwischen einem Ende des ersten Förderbands 610 und einem benachbarten Ende des zweiten Förderbands 620. Bei der ersten Ausführungsform ist eine Komponente 635 in die Lücke 630 montiert, so dass zwischen einem Ende des ersten Förderbands 610 und dem benachbarten Ende des zweiten Förderbands 620 eine im Wesentlichen kontinuierliche Oberfläche bereitgestellt wird. Die Komponente 635 hat einen Aufbau derart, dass sie den Durchtritt von Licht gestattet, wie etwa eine klare Kunststoff- oder Glasplatte. Alternativ kann die Lücke 630 mit einer ausreichend kleinen Größe konfiguriert sein (z. B. 1/2 Inch (1.27 cm) Breite), ohne dass irgendeine Komponente innerhalb der Lücke 630 angeordnet ist. Aufgrund der geringen Breite der Lücke 630 würden entlang der Oberseite der Förderbänder 610 und 620 passierende Gegenstände nicht in die Lücke 630 fallen. Somit können sogar sehr kleine Gegenstände vom ersten Förderband 610 über die Lücke 630 und auf das zweite Förderband 620 passieren.
  • Bei herkömmlichen Strichcode-Lesesystemen unter Verwendung von Förderbändern können Scanner entlang fünf separater Richtungen angeordnet sein – i) vor den Förderbändern, ii) hinter den Förderbändern, iii) auf einer Seite der Förderbänder, iv) auf der anderen Seite der Förderbänder und v) über den Förderbändern. Diese als fünfseitige Lesesysteme bekannten Systeme detektieren und decodieren Strichcode-Etiketten gut, die möglicherweise angeordnet sein können: i) an der Vorderseite einer Kiste auf dem Förderband, ii) an der Rückseite einer Kiste auf dem Förderband, iii) auf einer Seite der Kiste auf dem Förderband, iv) auf der anderen Seite der Kiste auf dem Förderband oder v) auf der Oberseite der Kiste auf dem Förderband. Wenn jedoch ein Strichcode-Etikett auf der Unterseite der Kiste auf dem Förderband angeordnet ist, muss sie von einem Bediener vor dem Lesen des Etiketts von Hand neu positioniert werden, so dass einer der fünf Scanner in der Lage sein kann, das Strichcode-Etikett zu detektieren.
  • In der ersten Ausführungsform jedoch ist diese manuelle Bewegung durch einen Bediener nicht erforderlich, da ein innerhalb der Lücke 630 (oder unter der Glasplatte oder dem Kunststoff in der Lücke 630) angeordneter Scanner die Strichcode-Etiketten entlang einer sechsten Seite detektieren kann. Somit entspricht die erste Ausführungsform einem sechsseitigen Lesesystem.
  • Unter der Annahme, dass die Förderbänder 610 und 620 eine Breite von etwa 30 Inch (76,2 cm) aufweisen, und unter der Annahme, dass die Strichcode-Etiketten Striche und Räume mit einer Mindestbreite von 15 Milli-Inch (0,38 mm) aufweisen, ist es wichtig, die Anzahl der CCD-basierten Kameras zu bestimmen, die innerhalb der Lücke 630 angeordnet sein müssen, damit ein Etikett auf dem Boden einer Kiste gelesen werden kann, die irgendwo auf der Lücke 630 (d. h. irgendwo auf einer Längsrichtung auf der Lücke 630) zwischen den Förderbändern 610 und 620 positioniert ist.
  • Angenommen, eine CCD-basierte Kamera weist 2048 = 211 Pixel auf, und angenommen, dass gewünscht wird, mindestens drei Pixel pro Mindestbreite/-raum zu haben, dann kann diese eine Kamera Rücklicht über 2048·15 Milli-Inch/3 = 10,24 Inch (26 cm) detektieren. Somit werden drei separate CCD-basierte Kameras benötigt, die zueinander wie in 7 gezeigt koaxial beabstandet sind, um die ganze Breite der Förderbänder 610 und 620 von 30 Inch abzudecken. Bei dieser Konfiguration wird eine Laserlichtquelle 520A520C für jede der CCD-basierten Kameras 510A510C bereitgestellt. Jede der Laserlichtquellen 520A520C ist fest in der Lücke 630 unter dem ersten und zweiten Förderband 610, 620 positioniert. Jede der Laserlichtquellen 520A520C ist positioniert zum Ausgeben von Laserlicht durch die Lücke 630 und auf ein bestimmtes Gebiet mit einer Breite von etwa 10'' auf der Lücke 630 des 30 Inch breiten Förderbandsystems. Das Licht von den Laserlichtquellen 520A520C wird von einem Objekt zurückreflektiert und wird von einer entsprechenden der CCD-basierten Kameras 510A510C empfangen.
  • Bei dem obigen Beispiel wird angenommen, dass jedes Pixel einer CCD-basierten Kamera Licht aus einem 5 Milli-Inch (0,127 mm) breiten Gebiet empfangen kann. Je nach der Art von CCD-basierter Kamera und dem Abstand, in dem die Kamera bezüglich des Bildgebungsgebiets positiniert ist, ist dies jedoch möglicherweise nicht immer der Fall. In diesen Situationen ist eine Optik 860 zwischen dem Bildgebungsgebiet (d. h. der Oberseite der Glasplatte oder des Kunststoffs, die oder der in der Lücke 630 angeordnet ist) und den Kameras vorgesehen, wie in 8 zu sehen. Diese Optik 860 weist einen Vergrößerungsgrad auf, der ausreicht, um die gewünschte regionale Abdeckung für die Pixel der Kameras bereitzustellen. Bei einer alternativen Konfiguration kann die Optik 860 sowohl als eine vergrößernde und/oder fokussierende Einrichtung dienen sowie als eine Abdeckplatte für das Lückengebiet 630 (d. h. Element 635 kann die Optik umfassen). Bevorzugt weist die Oberseite der Glasplatte oder des Kunststoffs, die oder der in der Lücke 630 angeordnet ist, eine harte Beschichtung wie etwa eine Rubinbeschichtung oder eine andere Art von kratzfester Beschichtung auf, um dem Verkratzen durch Objekte zu widerstehen, wenn sie sich über die Glasplatte oder den Kunststoff von dem ersten Förderband 610 zum zweiten Förderband 620 bewegen.
  • Wenn beispielsweise eine Kamera 1024 Pixel aufweist, wobei jedes Pixel Licht aus einem 2,5 Milli-Inch (0,0635 mm) breiten Gebiet empfangen kann, wenn die Kamera 1 Inch (2,54 cm) von dem Bildgebungsgebiet weg positioniert ist, dann muss die Optik 860 eine "mal 2" (x2) Vergrößerung bereitstellen, damit man eine Breite von 5 Milli-Inch (0,127 mm) für jedes Pixel erhält. Diese Breite von 5 Milli-Inch entspricht der Anforderung von drei Pixeln pro kleinstem Strich/Raum, die als Anforderung für das System aufgestellt wurde. In diesem Fall ist eine Kamera mit der Optik 860 in der Lage, ein Gebiet auf dem Förderband von 7024 Pixel·2,5 Milli-Inch/Pixel (ohne Optikvergrößerung)·2 (Optikvergrößerung) = 5,1 Inch (13 cm) bereitzustellen. Somit werden sechs CCD-Kameras erforderlich sein, um die ganze Breite des Förderbandes von 30 Inch abzudecken. Analog zu der mit den CCD-Kameras verwendeten Optik kann gegebenenfalls mit der Laserlichtquelle eine zusätzliche Optik verwendet werden.
  • Bei der ersten Ausführungsform wird eine Anforderung von drei Pixeln pro kleinster Breite Strich/Raum verwendet, doch erkennt der Durchschnittsfachmann, dass eine beliebige Anzahl von Pixeln pro kleinster Breite Strich/Raum verwendet werden kann und man gleichzeitig innerhalb des Schutzbereichs der Erfindung bleibt, solange zumindest ein Pixel pro kleinster Breite Strich/Raum erfüllt ist. Je mehr Pixel man pro kleinster Breite Strich/Raum hat, umso besser sind natürlich die Informationen, die zu dem Decodierer gesendet werden, damit man eine bessere Wahrscheinlichkeit erhält, ein Strichcode-Etikett korrekt zu decodieren. Mehr als ein Pixel pro kleinster Breite Strich/Raum zu haben, ist auch nützlich für das ordnungsgemäße Decodieren von Strichcode-Etiketten, auf denen sich Druckfehler befinden.
  • Bei der Ausführungsform von 5 ist die Decodierereinheit 540 nur in der Lage, X-Scanmuster von einer oder mehreren Sammlereinheiten zu empfangen, und so müssen die Konvertierungsmodule 530A530C die zweidimensionalen Daten von jeder der Kameras 510A510C rekonfigurieren, damit die X-Scanmuster an die Decodierereinheit 540 geliefert werden. Ein Weg, um diese Scankonvertierung zu erzielen, würde darin liegen, ein System einzusetzen, das dem in US-Patent Nr. 5,446,271 offenbarten ähnlich ist. Bei der vorliegenden Erfindung jedoch werden alle Pixeldaten in einen Speicher innerhalb jedes der Konvertierungsmodule 530A530C gelesen, doch werden nur Daten von den vorbestimmten Gebieten des Speichers zu dem Decodierermodul 540 ausgegeben. Da das X-Scanmuster zwei entgegengesetzt orientierten diagonalen 45-Grad-Linien entspricht, würde eine diagonale Linie des X-Scanmusters dem ersten Element in der ersten Spalte eines n-mal-n-Speichers entsprechen (d. h. ein Speicher, der n2 Datenbits speichern kann), dem zweiten Element in der zweiten Spalte des Speichers, ..., dem n-ten Element in der n-ten Spalte des Speichers. Analog würde die andere diagonale Linie des X-Scanmusters dem n-ten Element der ersten Spalte entsprechen, dem (n – 1)-ten Element der zweiten Spalte, ..., dem ersten Element der n-ten Spalte. Ein entsprechender Abschnitt des X-Musters wird von jedem Konvertierungsmodul an die Decodierereinheit 540 geliefert.
  • Ein Blockdiagramm eines Konvertierungsmoduls, wie etwa 510A, ist in 9 gezeigt. Eine Kameraschnittstelleneinheit 905 ist an die assoziierte Kamera (entweder 510A, 510B oder 510C) gekoppelt. Ein Controller für direkten Speicherzugriff (DMA) 910 stellt die Steuerung bereit für das Senden der Pixelbilddaten von der Kameraschnittstelleneinheit 905 an einen Speicher 920. Der Speicher 920 ist als ein n × n-Speicher mit n2 Speicherstellen konfiguriert (z. B. 10 × 10 = 100 Speicherstellen). In der ersten Ausführungsform ist der Speicher 920 ein Direktzugriffsspeicher und ist als ein 2048-Wort-mal-2048-Wort-Speicher konfiguriert, der einen symmetrischen Block entsprechend 10,24'' quadrat bereitstellt. Die Daten, die den beiden diagonalen Linien entsprechen, die das X-Scanmuster bilden, werden von einem digitalen Signalprozessor (DSP) 930 gelesen, der mit dem Speicher 920 verbunden ist. Der DSP 930 liest die entsprechenden X-Scanmusterdaten aus vorbestimmten Speicherstellen in den Speicher 920 unter Verwendung eines von einem EEPROM 940 abgerufenen Programms. Der DSP 930 sorgt für die Koordination zwischen den Kameradaten und den Downloads zu der Decodierereinheit 540. Das im EEPROM 940 gespeicherte Programm sorgt für das Mittel, durch das der DSP 930 die richtigen Speicherstellen aus dem Speicher 920 abruft, um an die Decodierereinheit 540 X-Scanmusterdaten auszugeben (siehe 5).
  • Die Grundfunktion des Systems gemäß der ersten Ausführungsform besteht in der Konvertierung der sequenziellen Rasterablesungen von der Kamera in ein X-Musterformat ähnlich der Decodierereinheit 540. Das Array in dem Speicher 920 modelliert ein Bild dessen, was für eine endliche Zeitperiode an der Kamera vorbeigelaufen ist. Es ist auch zyklisch, wodurch bewirkt wird, dass der abgebildete Strichcode die diagonalen Ableseelemente in dem Array durchquert. Im Grunde beinhaltet der Prozess das Schreiben in den Speicher 920 in einer Sequenz, was die Kamera abbildet, und dann das Lesen der Diagonalen des Arrays in vordefinierten Perioden. Der ganze Prozess beinhaltet somit die richtige Zeitsteuerung beim Lesen und Schreiben in den/aus dem Speicher 920.
  • Das Schreiben in den Speicher 920 (Kameradaten) beginnt mit einem Anfangspunkt (0) und wird fortgesetzt bis zum Ende des Arrays, 224 – 1 Wörter. Bei diesem Punkt wird das Schreiben wieder bei dem Anfangspunkt von Neuem gestartet. Jede Zeile umfasst 2048 Wörter zusammen mit einem Zeilenzeiger, der nach Beendigung jeder Zeile aktualisiert wird. Der Zeilenzeiger wird effektiv das Ende des Speicherarrays. Der Zeilenzeiger fungiert auch als ein Element zum Erzeugen des X-Musters, da er die Speicheradressierung effektiv um die untere und obere Grenze faltet.
  • Das Lesen der diagonalen Elemente simuliert das X-Muster für einen omnidirektionalen Scanner, links oben nach rechts unten, gefolgt von rechts oben nach links unten. Erreicht wird dies durch Subtraktion und Addition einer Speicheradresse sowohl zu dem Spalten- als auch dem Zeilenelement. Beispielsweise wird das erste diagonale Element erzeugt durch Addieren von 2048 + 1 zu der letzten Speicheradresse beginnend bei dem Zeilenzeiger. Dies wird für jedes diagonale Element 2048 mal wiederholt. Die andere Diagonale wird durch 2048 – 1 erzeugt.
  • Es werden eine Schreibrate von 125 Mikrosekunden pro Zeile (2048 Wörter) und 1 Millisekunde für jedes X-Muster (4096 Wörter) angenommen, dann beträgt das Verhältnis für die Eingabedatenrate zur Ausgabedatenrate 4:1. Deshalb gibt es für jeweils vier Schreibvorgänge in das Array einen Lesevorgang zu der Decodierereinheit 540.
  • Bei der eigentlichen Leistung wird das Schreiben der Zeilendaten in erster Linie von der Förderbandgeschwindigkeit gesteuert, wobei die Geschwindigkeit des Förderbands von einem Drehzahlmesser bestimmt wird. Die Ableitung der Geschwindigkeit liefert die erforderliche Rahmentaktung für eine Auflösung von 5 Milli-Inch.
  • Bei dem DSP 930 kann es sich um ein Modell TMS320C3x oder einen beliebigen anderen Typ von digitalem Signalprozessor handeln. Modell TMS320C3x ist ein 32-Bit-Prozessor mit der Fähigkeit zum Adressieren von 16 M Wörtern. Sollte das Rohkameravideomaterial für acht Bit digitalisiert werden, kann der TMS320C3x vier Kameras gleichzeitig handhaben.
  • Bei der ersten Ausführungsform werden Laser als die Lichtsender 520A520C bereitgestellt, da eine Weißlichtquelle (oder Weißlichtquellen) in der Regel nicht ausreichen würde(n), um ein Strichcode-Etikett zu be leuchten, das bezüglich einer Lichtsender- und Lichtempfängereinheit oben positioniert wäre. Eine Laserquelle kann zweckmäßigerweise innerhalb des schmalen Lückengebiets zwischen Förderbändern verwendet werden und weist ein besseres Signal-Rausch-Verhältnis als eine Weißlichtquelle (wie etwa eine Lampe) auf.
  • Wie oben erläutert konvertiert jede Konvertierungsmoduleinheit 530A530C das von ihrer assoziierten CCD-Kamera 510A510C abgelesene sequenzielle Raster in ein diagonales Format, das der Decodierereinheit 540 vertraut ist. Bei der ersten Ausführungsform ist die Decodierereinheit 540 ein vom LazerData (jetzt Teil von PSC Inc.) hergestellter 990-E-Kasten. Das Speicherarray 920 speichert einen Schnappschuss dessen, was an den CCD-Kameras 510A510C für eine endliche Zeitperiode vorbeigelaufen ist. Das Speicherarray 920 wird zyklisch aktualisiert. Der abgebildete Strichcode durchquert im Wesentlichen die diagonalen Leseelemente in dem Speicherarray 920.
  • Bei der in 10 gezeigten ersten Ausführungsform werden Pixelelemente von der CCD-Kamera 510A510C zu einem ersten Abtastzeitpunkt t1 von dem DMA 910 in ein (als eine erste Spalte gezeigtes) erstes Gebiet des Speichers 920 geschrieben. In der nachfolgend angeführten Erörterung wird angenommen, dass jedes CCD-Element einem Pixel entspricht, wobei jedem Pixel ein Bit zugeordnet ist. Natürlich erkennt der Durchschnittsfachmann, dass das System gemäß der Erfindung mit einem System betrieben werden kann, das mehr als ein Pixel pro CCD-Element und/oder mehr als ein für jedes Pixel zugewiesenes Bit verwendet.
  • Für eine eindimensionale CCD-Kamera wird zu einem bestimmten Abtastzeitpunkt eine ganze Spalte des Speichers 920 beschrieben. Zu einem zweiten Abtastzeitpunkt t2 = t1 + Δt wird eine (unmittelbar rechts von der zuvor eingeschriebenen Spalte von 10 angeordnete) nächste Spalte von dem DMA 910 beschrieben. Diese Prozedur wird fortgesetzt, bis die n-te (letzte) Spalte des Speichers 920 von dem DMA 910 beim n-ten Abtastzeitpunkt tn = t1 + n·Δt beschrieben worden ist. Wenn die n-te Spalte beschrieben worden ist, dann wird der DSP 930 benachrichtigt und er führt sein Lesen bestimmter Speicherorte innerhalb des Speichers 920 durch, um zu erreichen, dass das X-Scanmuster zu der Decodierereinheit 540 geschickt wird.
  • Der Speicher 920 kann dann zu diesem Zeitpunkt durch ein Signal von dem DSP 930 zurückgesetzt werden, das anzeigt, dass er die im Speicher 920 gespeicherten Informationen nicht länger benötigt. Nach dem Zurücksetzen ist der Speicher 920 bereit, die Daten von dem (n + 1)-ten Zeitpunkt tn+1 = t1 + (n + 1)·Δt zu empfangen, die von dem DMA 910 in die erste Spalte des Speichers 920 geschrieben werden sollen. Als Alternative braucht der Speicher 920 nicht zurückgesetzt zu werden, und so werden die dem (n + 1)-ten Zeitpunkt tn+1 entsprechenden Pixeldaten über die Daten von dem ersten Zeitpunkt t1 geschrieben, wobei die Pixeldaten entsprechend dem (n + 2)-ten Zeitpunkt tn+2 über die Daten von dem zweiten Zeitpunkt t2 geschrieben werden usw. wenn der 2n-te Zeitpunkt t2n eintritt (wo die Daten von dem 2n-ten Zeitpunkt t2n über die Daten von dem n-ten Zeitpunkt tn geschrieben werden), kann der DSP 930 dann die Daten von den bestimmten Orten in dem Speicher 920 auf eine Weise wieder abrufen, die der ähnlich sind, was er nach dem n-ten Zeitpunkt tn tat.
  • Ein weiteres wichtiges Merkmal der vorliegenden Erfindung besteht darin, dass sie ein Speichersystem aufweist, das schnell genug ist, um eine bestimmte Systemanforderung wie etwa eine Förderbandgeschwindigkeit bereitzustellen. Als Beispiel sei angenommen, dass das System das Lesen von 15 Milli-Inch-(0,38 mm)-Strichcodes erfordert, die sich auf einem Förderband mit 150 Fuß (45,7 m) bewegen. Um einen Sicherheitsspielraum zu haben, wird eine CCD-Kamera so ausgelegt, dass sie eine Auflösung von 5 Milli-Inch (0,127 mm) bei 200 fpm (61 Meter pro Minute) aufweist. Man beachte, dass eine 5 Milli-Inch-Auflösungsfähigkeit an der CCD-Kamera wegen der Nyquist-Kriterien (d. h. deren Notwendigkeit, mit einer Rate von mindestens dem Doppelten der höchsten Frequenzkomponente der Eingangswellenform abzutasten) nur ein Minimum von 10-Milli-Inch-(0,25 mm)-Strichen zeigen wird. Die in dem System zu verwendenden CCD-Kameras sind für eine maximale Taktrate von 20 MHz ausgelegt und weisen ein lineares Array von 2048 Pixel auf.
  • Für eine Förderbandgeschwindigkeit von 200 ft/min. = 40 Inch (102 m/s) Sekunde und für eine Scanauflösung von 5 Milli-Inch erhalten wir:
    40 Inch/s/5 Milli-Inch = 8000 Scans/Sekunde, was einer Scanrate von 125 Mikrosekunden/Scan entspricht.
  • 2048/125 Mikrosekunden = 16,4 MHz für die an den CCD-Kameras erforderliche Taktrate.
  • Die obigen Werte gelten sowohl für die vertikale als auch die horizontale Achse. Dies definiert auch die Speicherarraygröße 2048 × 2048 Bytes oder insgesamt 4,2 Mbytes. Indem man den Kehrwert der Taktrate (60 ns) nimmt, erhalten wir die Speichergeschwindigkeitsanforderung.
  • Das Ausgangssignal des Moduls muss den Anforderungen der Decodierereinheit entsprechen, die, so sei angenommen, eine Scanrate von 1 ms pro Kanal aufweist. Da die Diagonalen des Speicherarrays ausgelesen werden, gibt es insgesamt folgende Bytes:
    2 × (2048 Bytes × 1,414) = 5792 Bytes, die jede Millisekunde zu lesen sind (1,414 gleich der Quadratwurzel aus zwei). Dies entspricht einer Taktrate von 5,8 MHz oder einer kleinsten zeitlichen Auflösung von 170 ns.
  • Wenngleich der Speicher 920 in den 9 und 10 als ein einzelner Speicher dargestellt ist, kann er alternativ mehreren Speichern 1010, 1020, 1030 entsprechen, wie in 11 gezeigt, wobei Speicher 1010 Pixelbilddaten von der ersten Kamera 510A, Speicher 1020 Pixelbilddaten von der zweiten Kamera 510B und Speicher 1030 Pixelbilddaten von der dritten Kamera 510C empfängt (wobei drei Kameras benötigt werden, um eine ganze Breite eines Förderbands abzudecken, als Beispiel). Jeder Speicher entspricht einem bestimmten Gebiet eines Gesamtspeichers 920, der der Kombination der Speicher 1010, 1020 und 1030 entspricht, wie in 10 gezeigt. In den Speicher 1010 würden die oberen Abschnitte der "X-Scans" gelesen werden, in den Speicher 1020 würden die mittleren Abschnitte der "X-Scans" gelesen werden, und in den Speicher 1030 würden die unteren Abschnitte der "X-Scans" gelesen werden. Jeder Speicher 1010, 1020 und 1030 weist seinen eigenen assoziierten DMA und DSP auf eine in 11 gezeigte Weise auf, um die Parallelverarbeitung der Bilddaten von den CCD-Kameras 510A510C zu gestatten, die an die Decodierereinheit 540 auf schnellere Weise ausgegeben werden, als wenn sich die drei Kameras 510A510C nur einen Speicher teilen würden.
  • Bei der ersten Ausführungsform wird die Anzahl der Kameras, die erforderlich sind, um ein bestimmtes Bildgebiet abzudecken, bevorzugt auf der Basis eines 5%-Überlappungsgebiets zwischen Kameras bestimmt, doch kann jeder bestimmte Wert verwendet werden, und dennoch innerhalb des Schutzbereichs der Erfindung wie hier beschrieben bleiben.
  • 12 ist ein Blockdiagramm einer Rasterkonvertierungsimplementierung, die in der ersten Ausführungsform verwendet werden kann. In 12 empfängt der DSP 930 ein Interruptsignal von der Logikschaltung 810, wobei das Interruptsignal auf einem von der Logikschaltung 810 empfangenen Rahmentaktsignal basiert. Der DSP 930 empfängt außerdem einen schnellen Takt, der einem 60-MHz-Takt in 12 entspricht. Der DSP 930 gibt Adressen an einen ersten und einen zweiten dynamischen RAM (DRAM) 820A, 820B auf dem Adressbus 830 aus auf der Basis eines X-Musters, das über den Datenbus 840 aus DRAMs 820A, 820B ausgelesen werden soll. Das Ausgangssignal der CCD-Kamera wird anfänglich in einem FIFO 850 für geradzahlige Rahmen und einem FIFO 860 für ungeradzahlige Rahmen gespeichert auf der Basis dessen, welcher Rahmen gegenwärtig von der Kamera ausgegeben wird. Die Kameradaten werden über einen Bus 865 an DRAMs 820A, 820B ausgegeben. Der DRAM 820A empfängt die geradzahligen Rahmen von dem FIFO 850 für geradzahlige Rahmen, und ein zweiter DRAM 820B empfängt die ungeradzahligen Rahmen von dem FIFO 860 für ungeradzahlige Rahmen. In die DRAMs 820A und 820B wird mit einer Rate geschrieben, die vom Rahmentakt bestimmt wird. Die Ausgangssignale des ersten und zweiten DRAMs 820A, 820B werden zu den FIFOs 870A870D geschickt, und jeder FIFO ist in der Lage, eine separate Zeilenlesekamera zu unterstützen. Bei einer beispielhaften Konfiguration ist jeder FIFO mit einer Rate von 2,048 MHz getaktet, und jeder FIFO liefert ein Interruptsignal an den DSP 930. Die FIFOs 870A870D liefern ein X-Muster von Strichcodedaten an die Decodierereinheit 540 (in 12 nicht gezeigt).
  • Unter Bezugnahme auf die 13 und 14 wird nun ein Beispiel erläutert. In 13 sind an Stelle der Laserlichtquellen und CCD-basierten Kameras, die in eine Lücke unter den Förderbändern 610, 620 positioniert sind, Laserlichtquelle 520A' und eine CCD-basierte Kamera 510A' über einem Förderband 650 positioniert. In dem Beispiel ist die Laserlichtquelle 520A' so positioniert, dass sie Licht in Richtung einer Oberseite des Förderbands 650 ausgibt. Bevor irgendein sich auf dem Förderband 650 bewegendes Objekt durch ein Gebiet hindurch läuft, das von der Laserlichtquelle 520A' abgedeckt wird, läuft es zuerst durch eine Höhenmesseinheit 680 hindurch, die eine Höhe des Objekts bestimmt. Die Höhenmesseinrichtung kann als ein Lichtvorhangarray oder eine andere Art von Höhenmesseinrichtung konstruiert sein. Ein Lichtvorhangarray, das in dem System gemäß der zweiten Ausführungsform verwendet werden kann, ist aus der am 26. Juli 1995 Mark Woodworth erteilten und an PSC Inc. abgetretenen US-A-5,699,161 bekannt.
  • Die Höhenmesseinheit 680 gibt auf Leitung 513 ein Signal an eine Verarbeitungseinheit 685 aus, wobei das Signal 513 die Höhe eines an der Höhenmesseinheit 680 vorbeilaufenden Objekts angibt. Auf der Basis des von der Höhenmesseinheit 680 empfangenen Signals 513 gibt die Verarbeitungseinheit 685 ein erstes Signal 515 zum Positionieren der Optik 688 und ein zweites Signal 517 zum Positionieren der Laserlichtquelle 520A' aus. Wie dem Durchschnittsfachmann bekannt ist, ist die Laserlichtquelle 520A' mit einer nicht gezeigten Zylinderlinse versehen, um einen von dem Laser ausgegebenen "Lichtpunkt" in eine "Linie" aus Laserlicht umzuändern. Auf der Basis des zweiten Signals 517 wird die Laserlichtquelle 520A' in eine derartige Position gedreht, dass sie die Oberseite des Objekts auf dem Förderband optimal beleuchtet. Auf der Basis des ersten Signals 515 bewegt sich die für die CCD-basierte Kamera 510A' vorgesehene Optik 688 entweder nach oben oder nach unten, um das Rücklicht richtig aus einer bestimmten Entfernung zu fokussieren, wobei diese bestimmte Entfernung der Oberseite des unter der CCD-basierten Kamera 510A' hindurch laufenden Objekts entspricht.
  • Wie in 13 gezeigt sind sowohl die CCD-basierte Kamera 510A' als auch die Laserlichtquelle 520A' an einem Gehäuse 681 positioniert, das sich in Form einer U-Gestalt auf dem Förderband 650 befindet. Die Optik 688 ist gleitend an einer Struktur 511 angebracht, wobei sich die Optik 688 je nach dem von der Verarbeitungseinheit 685 ausgegebenen Signal 515 entweder an der Struktur 511 nach oben oder unten bewegt. Die Laserlichtquelle 520A' wird auf der Basis des von der Verarbeitungseinheit 685 ausgegebenen Signals 517 drehbar positioniert. Andere Arten von Konfigurationen, um der Optik bezüglich einer stationären CCD-basierten Kamera eine Bewegung zu verleihen, können eingesetzt werden und dennoch innerhalb des Schutzbereichs der Erfindung wie hier beschrieben bleiben. Beispielsweise kann die Optik 688 in einem Objektivabschnitt der CCD-basierten Kamera 510A' enthalten sein, die entweder im Uhrzeigersinn oder entgegen dem Uhrzeigersinn gedreht wird, um auf eine bestimmte Entfernung von der CCD-basierten Kamera 510A' fokussiert zu werden.
  • 14 zeigt eine erste Linie 692, die einem Objekt mit einer ersten Höhe entspricht, und eine zweite Linie 693, die einem Objekt mit einer zweiten Höhe entspricht, die kleiner ist als die erste Höhe. Wenn ein Objekt mit der ersten Höhe an der Höhenmesseinheit 680 vorbeiläuft, wird ein Signal 513 von der Höhenmesseinheit 680 an die Verarbeitungseinheit 685 ausgegeben, das die erste Höhe anzeigt. Auf der Basis der aktuellen Geschwindigkeit des Förderbands und der Entfernung, in der sich die Höhenmesseinheit 680 von dem Bereich befindet, wo die Laserlichtquelle 520A' und die CCD-basierte Kamera 510A' angeordnet sind (beide der Verarbeitungseinheit 685 bekannt), kann die Verarbeitungseinheit 685 ohne Weiteres einen Zeitpunkt bestimmen, wann das Objekt mit der ersten Höhe sich unter der Laserlichtquelle 520A' und der CCD-basierten Kamera 510A' vorbeibewegen wird. Vor diesem Zeitpunkt gibt die Verarbeitungseinheit 685 das erste und zweite Signal 515, 517 aus, damit die Laserlichtquelle 520A' und die Optik 688, zwischen der CCD-basierten Kamera 510A' und dem Förderband 650 vorgesehen, korrekt positioniert werden. Die Position der Laserlichtquelle 520A' und die Position der Optik 688 für ein Objekt mit einer der Linie 692 entsprechenden Höhe werden von den Standardlinien in 14 gezeigt. Bei dieser Positionierung ist das System gemäß dem Beispiel bereit, ein Strichcode-Etikett oder andere Informationen auf der Oberseite des Objekts unter ihm zu lesen, wobei diese Oberseite der ersten Linie 692 entspricht. Eine Drehbewegung der Laserlichtquelle 520A' ist von dem doppelseitigen Pfeil 503 in 13 gezeigt, und eine Linearbewegung der Optik 688 ist durch den doppelseitigen Pfeil 506 in 13 gezeigt.
  • Nachdem das erste Objekt sich unter dem System gemäß dem Beispiel vorbeibewegt, kann das System dann für ein anderes Objekt neu positioniert werden, wie etwa ein zweites Objekt, das eine zweite Höhe aufweist, wie durch die zweite Linie 693 gegeben. Die Höhe der zweiten Linie 693 wird von der Höhenmesseinheit 680 bestimmt, und diese Information wird an die Verarbeitungseinheit 685 geschickt. In diesem Fall wird die Laserlichtquelle 520A' nach unten (in eine in 13 in Umrissen gezeigte Position) gedreht, so dass sie ein Gebiet um die zweite Linie 693 herum beleuchtet, und die Optik 688 wird nach oben (in eine in 14 in Umrissen gezeigte Position) bewegt, um den Brennpunkt des Lichtsammelsystems so einzustellen, dass es sich bei oder um die zweite Linie 693 herum befindet.
  • Bei dem Beispiel behält das System somit die gleiche Auflösung für Objekte bei, die unterschiedliche Höhen aufweisen und sich somit in unterschiedlichen Abständen vom System weg befinden. Wenngleich die Beschreibung für ein direkt über einem Förderband angeordnetes System erfolgte, kann das System gemäß dem Beispiel auch für andere Positionen um das Förderband herum verwendet werden, wie etwa auf einer Seite eines Förderbands. In diesem Fall kann der Abstand, in dem sich das Objekt bezüglich der Seite des Förderbands befindet, bestimmt werden, bevor das Objekt an dem Lesesystem vorbeiläuft, wie etwa auf eine aus US-A-5,699,161 bekannte Weise. Das System gemäß dem Beispiel stellt eine Autofokussierung für Objekte bereit, während sie sich vorbeibewegen, auf der Basis einer Drehbewegung von Laserlichtquellen und Linearbewegung einer für CCD-basierte Kameras bereitgestellten Optik. Eine andere Art von Autofokussierungssystem ist in dem an Benny Tafoya erteilten und an PSC Inc. abgetretenen US-Patent 5,317,166 beschrieben, das durch Bezugnahme hier in seiner Gänze aufgenommen ist. In dem System vom US-Patent 5,317,166 gibt es jedoch keine Verwendung von CCD-basierten Kameras wie in der vorliegenden Erfindung. Obwohl das Beispiel in den Figuren bezüglich der Verwendung einer Laserlichtquelle und einer CCD-basierten Kamera beschrieben und gezeigt ist, kann das System auch mit mehreren Laserlichtquellen und CCD-basierten Kameras konfiguriert sein, wobei jedes Paar einen bestimmten Bereich auf dem Förderband in Breitenrichtung abdeckt. Mit dieser Konfiguration können Etiketten auf der Oberseite sowie an den Seiten eines unter den Laserlichtquellen und den CCD-basierten Kameras hindurch laufenden Objekts gelesen und decodiert werden.
  • Ein weiteres Beispiel wird nun unter Bezugnahme auf die 1517 beschrieben. In 15 werden Untermengen der Pixeldaten von einer CCD-Kamera 1110 über eine gewöhnliche Logikeinheit 1170 an Achsencontroller 1120-1 bis 1120-n geliefert. Die Pixeldaten, die vorübergehend in der gewöhnlichen Logikeinheit 1170 gespeichert werden, sind das Ergebnis von Rücklicht von einem bestimmten, von der CCD-Kamera 1110 abgedeckten Gebiet. Wie in 15 gezeigt befindet sich ein Objekt 1101 innerhalb des bestimmten, von der CCD-Kamera 1110 abgedeckten Bereichs.
  • Die CCD-Kamera 1110 kann ein Matrixarray von Daten zu periodischen Zeitpunkten ausgeben und entspricht damit einer zweidimensionalen CCD-Kamera. Das Array kann ein n × n-Array oder ein m × n-Array von Pixelelementen sein, wobei m und n ganze Zahlen sind. Die gewöhnliche Logikeinheit 1170 liefert die Logik für das vorübergehende Speichern von Daten von dem CCD-Kamerakopf 1110 und kann als mehrere Puffer 1400-1 bis 1400-n konfiguriert sein, die von einem Taktsignal 1420 getaktet werden, um Daten von dem CCD-Kamerakopf 1110 zu empfangen, wie in 16.
  • In dem vorausgegangenen Beispiel enthält die gewöhnliche Logikeinheit 1170 ein 1028-Bit-x-1028-Bit-Speicherarray, das Pixeldaten von der CCD-Kamera 1110 zu periodischen Zeitpunkten speichert. Das Speicherarray kann als mehrere Puffer konfiguriert sein, wie in 16 gezeigt, oder es kann als ein Direktzugriffsspeicher konfiguriert sein, der zu periodischen Zeitpunkten aktualisiert wird, oder über eine beliebige andere temporäre Speicherungseinrichtung, wie dem Durchschnittsfachmann bekannt ist.
  • Eine Master-CPU 1130 initialisiert jeden der Achsencontroller 1120-1 bis 1120-n, so dass jeder Achsencontroller "relevante Daten" der von den CCD-Kameras bei jedem Scan gelesenen Pixeldaten extrahiert und die relevanten Daten an einem richtigen Ort in einem entsprechenden Achsenspeicher 1150-1 bis 1150-n speichert. Wie in 15 gezeigt weist jede Achse 1255-1 bis 1255-n einen assoziierten Achsencontroller, einen assoziierten Achsenspeicher, eine assoziierte Bitlogikeinheit und einen assoziierten Slave-Prozessor auf. Jede Achse 1255-1 bis 1255-n kann als eine separate Achsenkarte konfiguriert sein, wie durch die gestrichelten Linien in 15 gezeigt.
  • Die Master-CPU 1130 lädt jeden Achsencontroller mit einem Wiederladewert, der verursacht, dass eine Auslösung von einem nicht gezeigten Zähler innerhalb jedes Achsencontrollers mit der richtigen Rate für jeden Scan auf dieser Achse erzeugt wird. Jeder Zähler wird anfänglich mit einem Zählwert geladen, der die richtige Verzögerung für die erste Detektion sicherstellt. Beispielsweise löst ein 45-Grad-Achsencontroller bei dem ersten Datenbit auf der ersten linearen Leselinie aus, das zweite Datenbit auf der zweiten linearen Leselinie, das dritte lineare Datenbit auf der dritten linearen Leselinie usw. Da sich Teile vieler 45-Grad-Scans auf der Leselinie finden, stellt der Zähler sicher, dass sie in regelmäßigen Intervallen nach dem ersten Scan gefunden werden.
  • Als nächstes wird der Wiederholzählwert für jeden Achsencontroller von der Master-CPU 1130 initialisiert. Bei bestimmten Leselinien wie etwa horizontalen Leselinien müssen sequenzielle Punkte auf der selben Linie geschrieben werden. Dazu weisen einige der Achsencontroller 1120-11120-n einen Zähler auf, der verursacht, dass nach einem Auslösen sequenzielle Schreibvorgänge eintreten. Diese Funktion wird vor einem Scan initialisiert.
  • Als nächstes wird der assoziierte Scanzähler jeder Achse initialisiert. Der erste Auslösepunkt, den eine gegebene Achse auf einer beliebigen gegebenen Linie findet, ist möglicherweise nicht der nullte Scan für diese Achse. Beispielsweise wird der erste Datenpunkt bei dem ersten Scan von dem 45-Grad-Achsencontroller verwendet, ist aber möglicherweise nicht notwendigerweise der erste 45-Grad-Scan. Er kann jedoch zum mittleren Scan werden, wenn die Erzeugung abgeschlossen ist. Aus diesem Grund muss die Zahl des ersten Scans vor der Initiierung der Leseoperation geladen werden.
  • Wenn ein Scan initiiert wird, wird ein 1028-mal-1028-Array von Pixeldaten von dem Lesekopf der CCD-Kamera 1110 empfangen. Wenn die Daten von dem Lesekopf der CCD-Kamera 1110 zurückgeschickt werden, wird auch ein Positionstakt zurückgeschickt. Dieser Positionstakt wird dazu verwendet, den Zähler jeder der Achsen controller vor zu bewegen. Der Positionstakt wird dazu verwendet zu bestimmen, welchem Scan die gegenwärtig in der gewöhnlichen Logikeinheit 1170 gespeicherten Daten entsprechen.
  • Wenn ein Zähler für einen beliebigen der Achsencontroller 1120-11120-n ausgelöst wird, kommt es zu den folgenden Schritten, wie in 17 gezeigt. In einem ersten Schritt S1 adressiert der Zähler für jeden Achsencontroller sequenziell die temporär gespeicherten Daten in der gewöhnlichen Logikeinheit 1170 über die Auswahlleitung 1140, wie in 16 gezeigt. Ein Zähler für das Lesen von Daten in den entsprechenden Achsenspeicher wird bei einer Leseoperation, die auf den Scan folgt, auf Null initialisiert. Bei einem zweiten Schritt S2 wird ein mit dem Achsencontroller assoziierter Achsenspeicher 1150-11150-n von dem Achsencontroller adressiert, um zu bestimmen, welcher Scan gerade geschrieben wird, und um zu bestimmen, wohin das Bit in dem Scan gehört.
  • Bei einem dritten Schritt S3 werden nun von dem Lesekopf der CCD-Kamera 1110 zurückgeschickte Daten von vorbestimmten Speicherorten (oder Puffern) sequenziell in den Achsenspeicher geschrieben.
  • Bei einem vierten Schritt S4 wird der Inhalt der gewöhnlichen Logikeinheit 1170 um Eins inkrementiert und neu geschrieben. Falls kein Achsencontroller erforderlich ist, um mehrere sequenzielle Orte von einer selben Leselinie zu schreiben, wird der mit dem Achsencontroller assoziierte Scanzähler inkrementiert. Er adressiert nun die nächste Stelle in dem Scanspeicher und ist bereit für die nächste Auslösung. Fall ein Mehrfachschreibvorgang erforderlich ist, wird der Schreibvorgang bei jeder Taktperiode wiederholt, bis die erforderliche Anzahl von Schreibvorgängen stattfindet. Der Scanzähler wird dann aktualisiert.
  • Bei einem fünften Schritt S5 initiiert die Master-CPU 1130 einen Lesezyklus. Bei der zweiten Ausführungsform wird kein Speicherauffrischzyklus benötigt, da die Daten nur einmal gelesen werden, und dies findet innerhalb der maximalen Wiederauffrischperiode für den Speicher statt.
  • Während des Lesezyklus, der während des fünften Schritts S5 stattfindet, liest eine Bitlogikeinheit 1180-1 bis 1180-n für jede Achse schnell alle sequenziellen Speicherorte innerhalb ihres assoziierten Achsenspeichers. Während jeder Ort gelesen wird, wird ein Zählwert erzeugt von der Zeit seit dem letzten Datenübergang. Jedes Mal, wenn ein Datenübergang detektiert wird, wird der Zählwert seit dem letzten Übergang an einen assoziierten Slave-Prozessor 1160-1 bis 1160-n weitergegeben.
  • Jeder Slave-Prozessor 1160-1 bis 1160-n verwendet die von seiner entsprechenden Bitlogikeinheit 1180-1 bis 1180-n abgerufenen Informationen, um zu bestimmen, ob möglicherweise ein potentiell gültiger Strichcode gelesen worden ist. Diese Bestimmung basiert auf bekannten Charakteristiken von Strichcode-Etiketten, wie etwa Ruhezonengröße, Mindestbreite und Maximalbreiten-Strichcodegrößen usw. Wenn die aus der entsprechenden Bitlogikeinheit abgerufenen Informationen derart sind, dass die Daten nicht einem wahren Strichcode entsprechen können, dann werden die Daten nicht zum Decodieren an die Master-CPU 1130 geschickt. Wenn es sich jedoch bei den Daten möglicherweise um einen wahren Strichcode handeln kann, dann werden die Daten zum Decodieren an die Master-CPU 1130 geschickt.
  • Jeder Slave-Prozessor 1160-11160-n wird periodisch von der Master-CPU 1130 abgefragt, und wenn ein potentieller Strichcode gefunden worden ist, wird er zum Decodieren an die Master-CPU 1130 weitergegeben. Jeder Slave-Prozessor ist mit seiner entsprechenden Bitlogikeinheit 1180-11180-n verbunden, die wiederum selbst mit ihrem entsprechenden Achsenspeicher 1150-11150-n verbunden ist. Bei diesem Beispiel entspricht jede Bitlogikeinheit 1180-11180-n einem FIFO-Puffer (first-in, first-out – Durchlaufpuffer), wobei Strichbreiten und Strichräume als 8-Bit breite Elemente in dem 9-Bit-x-256-Bit-FIFO gespeichert werden. Das heißt, aufeinander folgende Einsen entsprechen einer bestimmten Strichbreite, und aufeinander folgende Nullen entsprechen einer bestimmten Raumbreite. Das neunte Bit für jeden Speicherort in der Bitlogikeinheit entspricht einem Ruhezonenbit. Das Ruhezonenbit gibt an, ob eine Ruhezone gelesen worden ist oder nicht. Der Durchschnittsfachmann kann sich andere Konfigurationen der Bitlogikeinheit vorstellen und dennoch innerhalb des Schutzbereichs der Erfindung wie hier beschrieben bleiben.
  • Während Intervallen, in denen keine Strichcodes detektiert werden, versetzt die Master-CPU 1130 alle Achsencontroller in einen "horizontalen"-Modus und kann Übungsscans mit künstlichen Daten initiieren, falls erwünscht. Die Slave-Prozessoren 1160-1 bis 1160-n verifizieren, dass alle Daten korrekt sind, und meldet dies an die Master-CPU 1130. Sowohl die Slave-Prozessoren 1160-1 bis 1160-n als auch die Master-CPU 1130 können eine interne Diagnose durchführen, wenn die Lesedaten nicht aktiv gelesen werden.
  • Wie in 15 gezeigt weisen sowohl die Slave-Prozessoren 1160-1 bis 1160-n als auch die Master-CPU 1130 einen entsprechenden parallelen Eingangs-/Ausgangsport (PIO) zum Übertragen und Empfangen von Daten zwischen der Master-CPU und dem Slave-Prozessor auf. Die Master-CPU 1130 sendet Steuersignale über einen anderen PIO-Port an die gewöhnliche Logikeinheit 1170 und kommuniziert mit einer nicht gezeigten Host-CPU und einem nicht gezeigten Hilfsport über einen seriellen Eingangs-/Ausgangsport (SIO).
  • Nunmehr unter Bezugnahme auf 16 wird jeder Puffer der gewöhnlichen Logikeinheit 1170 auf der Basis eines Auswahlsignals und eines Taktsignals abgetastet. Beispielsweise wird für eine 45-Grad-Leselinie der ganz links liegende Puffer 1400-1 auf der obersten Zeile zu einem Zeitpunkt t0 abgetastet und an den Achsencontroller für die 45-Grad-Achse ausgegeben, der dem ganz links liegenden Puffer nächste Puffer 1400-(m+2) auf der zweiten Zeile wird zu einem Zeitpunkt tm+2 abgetastet und an den Achsencontroller für die 45-Grad-Achse ausgegeben, usw. Das Abtasten jedes der Puffer wird mit einer Rate durchgeführt, die schnell genug ist, so dass alle Puffer vor einem nächsten Scan (und deshalb Wiederladen) der Daten in die gewöhnliche Logikeinheit 1170 abgetastet werden. Bei einer horizontalen Leselinie werden alle Puffer in der obersten Zeile nacheinander abgetastet, wobei die abgetasteten Daten zum Achsenspeicher der horizontalen Achse weitergeschickt werden. Natürlich können auch andere horizontale Leselinien zur gleichen Zeit erzeugt werden, indem Daten von jedem der Puffer in jeder zweiten Zeile der gewöhnlichen Logikeinheit 1170 genommen werden. Für die 45-Grad-Leselinie bewirkt der Zählwert von "1" somit, dass das Ausgangssignal des Puffers 1400-1 an den Achsencontroller für die 45-Grad-Leselinie geschickt wird, der Zählwert von "m+2" bewirkt, dass das Ausgangssignal des Puffers 1400-(m+2) zum Achsencontroller für die 45-Grad-Leselinie geschickt wird, usw. Jeder Puffer kann auf der Basis eines gegenwärtigen Zustands der Mehrbit-Auswahlleitung 1410 separat adressiert werden, und jeder Puffer wird getaktet, um neue Daten von der CCD-basierten Kamera 1110 auf der Basis der Taktsignalleitung 1420 zu empfangen.
  • Der "Zählwert" für jede Achse ist verschieden auf der Basis der für diese Achse zu erzeugenden Leselinie. Der Zählwert schreitet von links nach rechts fort, wobei er mit der obersten Zeile der Puffer in der gewöhnlichen Logikeinheit 1170 beginnt, und läuft hinunter bis zum ganz rechts liegenden Puffer in der letzten Zeile der gewöhnlichen Logikeinheit 1170. Die Zählung wird beendet (zum Beispiel hat die Auswahlleitung 1410 einen Übergang von 0 bis n in Einheiten von 1), bevor Daten von einem nächsten Scan in die Puffer geschrieben werden. Daten werden in die Puffer zu einem Zeitpunkt geschrieben, der einem nächsten Taktimpuls auf der Taktleitung 1420 entspricht. Die Taktrate ist somit langsamer als die Auswahlrate und ist in der dritten Ausführungsform mindestens 1/n so langsam.
  • Dieses Beispiel ist mit n Achsen beschrieben, wobei n ein ganzzahliger Wert ist, der der Anzahl gleichzeitiger verschiedener Leselinien entspricht, die aus den von der CCD-basierten Kamera 1110 ausgegebenen Daten erzeugt werden. Der Wert n kann auf einen Wert wie etwa 16 im Voraus eingestellt werden, oder er kann auf der Basis eines bestimmten Strichcodes, der detektiert und decodiert werden soll, auf einen Wert eingestellt werden. Beispielsweise kann die Anzahl verschiedener Leselinien auf der Basis der Mindesthöhe eines Strichs eines Strichcode-Etiketts eingestellt werden, wobei mehr Leselinien für ein Strichcode-Etikett mit kleinerer Mindesthöhe verwendet werden. Bei diesem Beispiel kann ein Strichcode-Etikett unabhängig von der Orientierung des Strichcode-Etiketts bezüglich der CCD-basierten Kamera 1110 decodiert werden, da mehrere verschiedene virtuelle Leselinien aus dem von der CCD-basierten Kamera 1110 ausgegebenen zweidimensionalen Array von Pixeldaten erzeugt werden.
  • Wenngleich eine Ausführungsform hier beschrieben worden ist, kann sich eine Modifikation der beschriebenen Ausführungsform dem Durchschnittsfachmann gemäß den Lehren der Erfindung ergeben, ohne jedoch von dem Schutzbereich der Erfindung abzuweichen, wie in den beigefügten Ansprüchen dargelegt. Das Beispiel kann mit einer "Rematch"-Technik zum Bestimmen von Strichcodes auf der Basis von Teilscans eines Strichcode-Etiketts verwendet werden, wie in dem an Benny R. Tafoya erteilten, an PSC Inc. abgetretenen US-Patent Nr. 5,481,097 beschrieben.
  • Bei der Rematch-Technik werden zwei separate Leselinien verwendet, um ein Strichcode-Etikett zu decodieren, wobei Daten von einer Leselinie verwendet werden, um einen ersten Abschnitt des Etiketts zu decodieren, und wobei Daten von der anderen Leselinie dazu verwendet werden, um einen verbleibenden zweiten Abschnitt des Etiketts zu decodieren.

Claims (7)

  1. Strichcode Lesesystem, umfassend: ein erstes Förderband (610), um Gegenstände von einem ersten Ort zu einem zweiten Ort zu befördern; ein zweites Förderband (620) zur Aufnahme von Objekten dem ersten Förderband und zur Bewegung der Objekte zu einem dritten Ort; einen Lichtsender (520A520C), der in einer Lücke (630) unterhalb einer Oberseite des ersten und zweiten Förderbandes (610 und 620) platziert ist, der zum Beleuchten der Strichcode-Etiketten auf der Unterseite der Objekte konfiguriert ist, wenn der Unterseite von dem ersten Förderband (610) zu dem zweiten Förderband (620) bewegt werden; einen Lichtempfänger (510A510C), der in der Lücke (630) platziert ist und der zum Empfangen von reflektiertem Licht von der Unterseite der Objekte aufgrund der durch den Lichtsender (520A520C) beleuchteten Objekte konfiguriert ist; und eine fensterartige Einheit (635) vollständig innerhalb der Lücke (630) angeordnet ist, wobei die Oberseite der fensterartigen Einheit (635) eine im Wesentlichen mit den Oberseiten des ersten und zweiten Förderbandes (610 und 620) kontinuierliche Oberseite bereitstellt, wenn die Objekte von dem ersten Ort zu dem dritten Ort bewegt werden, dadurch gekennzeichnet, dass die fensterartige Einheit (635) eine Oberseite aufweist, die entlang einer selben Ebene wie die Oberseiten des ersten und zweiten Förderbandes (610 und 620) gelegen ist und dass die fensterartige Einheit (635) eine Vergrößerung für das Ausgangslicht des Lichtsenders (520A520C) bereitstellt und die Vergrößerung eine Kompensation in der Art bereitstellt, dass der Lichtempfänger (510A510C) Licht empfangen kann von mehreren Bereichen der Oberseite der fensterartigen Einheit (635) als ohne die Vergrößerung.
  2. Strichcode Lesesystem nach Anspruch 1, wobei der Lichtempfänger (510A510C) wenigstens eine CCD Kamera (510510C) aufweist, die eine Vielzahl von Pixelelementen hat und jedes Pixelelement Licht von einem bestimmten Bereich der Oberseite der fensterartigen Einheit (635) empfängt.
  3. Strichcode Lesesystem nach einem der vorhergehenden Ansprüche, wobei die fensterartige Einheit (635) Glas oder Kunststoff umfasst.
  4. Strichcode Lesesystem nach einem der vorhergehenden Ansprüche, wobei eine Breite der Oberseite der fensterartigen Einheit (635) eine derartige Größe hat, dass wenigstens die eine Kamera selbst nicht in der Lage ist, direkt Licht von allen Bereichen der Oberseite der fensterähnlichen Einheit (635) zu empfangen, und wobei die Vergrößerung eine Kompensation in der Art bereitstellt, dass wenigstens die eine CCD Kamera in der Lage ist, Licht zu empfangen von allen Bereichen der Oberseite der fensterartigen Einheit (635).
  5. Strichcode Lesesystem nach einem der vorhergehenden Ansprüche, weiter umfassend: ein erstes Lichtsendeeinheits- und Lichtempfängereinheitspaar, angeordnet zum Detektieren eines Strichcode-Etiketts an einer Vorderseite des Objekts bei einer Objektbewegung entlang eines ersten und zweiten Förderbandes, die Frontseite ist bezüglich einer Bewegungsrichtung der Objekte ausgerichtet; ein zweites Lichtsendeeinheits- und Lichtempfängereinheitspaar, angeordnet zum Detektieren eines Strichcode-Etiketts an einer Rückseite des Objekts bei einer Objektbewegung entlang eines ersten und zweiten Förderbandes, die Rückseite ist bezüglich einer Bewegungsrichtung der Objekte ausgerichtet; ein drittes Lichtsendeeinheits- und Lichtempfängereinheitspaar, angeordnet zum Erkennen eines Strichcode-Etiketts an einer Seite des Objekts während der Objektbewegung entlang des ersten und zweiten Förderbands, die eine Seite ist im Wesentlichen senkrecht bezüglich der Oberseite des ersten und zweiten Förderbandes ausgerichtet; ein viertes Lichtsendeeinheits- und Lichtempfängereinheitspaar, angeordnet zum Erkennen eines Strichcode-Etiketts auf einer anderen Seite des Objekts während der Objektbewegung entlang des ersten und zweiten Förderbands, die andere Seite ist im Wesentlichen senkrecht bezüglich der Oberseite des ersten und zweiten Förderbandes ausgerichtet; ein fünftes Lichtsendeeinheits- und Lichtempfängereinheitspaar, angeordnet zum Erkennen eines Strichcode-Etiketts auf einer Oberseite des Objekts entlang der Objektbewegung des ersten und zweiten Förderbands, wobei die Lichtsendeeinheit und Lichtempfangseinheit zusammen ein sechstes Lichtsendeeinheits- und Lichtempfängereinheitspaar bilden.
  6. Strichcode Lesesystem nach Anspruch 5, wobei das Strichcode Lesesystem geeignet ist zum Erkennen eines irgendwo am Objekt angeordneten Strichcode-Etiketts während der Objektbewegung von dem ersten Ort zu dem dritten Ort.
  7. Strichcode Lesesystem nach einem der vorhergehenden Ansprüche, wobei eines der ersten und zweiten Förderbänder (610 und 620) einem Mitnahmeförderband entspricht und das andere von dem ersten und zweiten Förderband (610 und 620) einem Zuführungsförderband entspricht.
DE69834053T 1997-10-29 1998-10-29 Ccd-basierter bar-kode-scanner Expired - Lifetime DE69834053T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US959680 1997-10-29
US08/959,680 US5984186A (en) 1997-10-29 1997-10-29 CCD-base bar code scanner
PCT/US1998/022638 WO1999022335A1 (en) 1997-10-29 1998-10-29 Ccd-based bar code scanner

Publications (2)

Publication Number Publication Date
DE69834053D1 DE69834053D1 (de) 2006-05-18
DE69834053T2 true DE69834053T2 (de) 2007-05-10

Family

ID=25502283

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69834053T Expired - Lifetime DE69834053T2 (de) 1997-10-29 1998-10-29 Ccd-basierter bar-kode-scanner

Country Status (4)

Country Link
US (2) US5984186A (de)
EP (1) EP1025532B1 (de)
DE (1) DE69834053T2 (de)
WO (1) WO1999022335A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108906660A (zh) * 2018-06-27 2018-11-30 大族激光科技产业集团股份有限公司 一种激光打标产品的自动检测分拣装置

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631842B1 (en) 2000-06-07 2003-10-14 Metrologic Instruments, Inc. Method of and system for producing images of objects using planar laser illumination beams and image detection arrays
US7387253B1 (en) 1996-09-03 2008-06-17 Hand Held Products, Inc. Optical reader system comprising local host processor and optical reader
US6385645B1 (en) * 1995-08-04 2002-05-07 Belle Gate Investments B.V. Data exchange system comprising portable data processing units
US6360947B1 (en) 1995-12-18 2002-03-26 Metrologic Instruments, Inc. Automated holographic-based tunnel-type laser scanning system for omni-directional scanning of bar code symbols on package surfaces facing any direction or orientation within a three-dimensional scanning volume disposed above a conveyor belt
US6457642B1 (en) 1995-12-18 2002-10-01 Metrologic Instruments, Inc. Automated system and method for identifying and measuring packages transported through a laser scanning tunnel
US6619550B1 (en) 1995-12-18 2003-09-16 Metrologic Instruments, Inc. Automated tunnel-type laser scanning system employing corner-projected orthogonal laser scanning patterns for enhanced reading of ladder and picket fence oriented bar codes on packages moving therethrough
US6554189B1 (en) 1996-10-07 2003-04-29 Metrologic Instruments, Inc. Automated system and method for identifying and measuring packages transported through a laser scanning tunnel
US6517004B2 (en) 1995-12-18 2003-02-11 Metrologic Instruments, Inc. Automated system for identifying and dimensioning packages transported through a laser scanning tunnel using laser scanning beam indexing techniques
US20020014533A1 (en) 1995-12-18 2002-02-07 Xiaxun Zhu Automated object dimensioning system employing contour tracing, vertice detection, and forner point detection and reduction methods on 2-d range data maps
US6382515B1 (en) 1995-12-18 2002-05-07 Metrologic Instruments, Inc. Automated system and method for identifying and measuring packages transported through a laser scanning tunnel
US7028899B2 (en) 1999-06-07 2006-04-18 Metrologic Instruments, Inc. Method of speckle-noise pattern reduction and apparatus therefore based on reducing the temporal-coherence of the planar laser illumination beam before it illuminates the target object by applying temporal phase modulation techniques during the transmission of the plib towards the target
US7581681B2 (en) 1998-03-24 2009-09-01 Metrologic Instruments, Inc. Tunnel-type digital imaging system for use within retail shopping environments such as supermarkets
AU9367098A (en) * 1998-09-29 2000-04-17 Sun Microsystems, Inc. Superposition of data over voice
ATE475139T1 (de) 1999-06-10 2010-08-15 Belle Gate Invest B V Vorrichtung zum speichern unterschiedlicher versionen von datensätzen in getrennten datenbereichen und verfahren zur aktualisierung eines datensatzes in einem speicher
US6431450B1 (en) * 1999-09-13 2002-08-13 Advanced Technology & Research Corp. Barcode scanning system for reading labels at the bottom of packages on a conveyor
US6296187B1 (en) * 1999-11-12 2001-10-02 Psc Inc. CCD-based bar code scanner
AU1586500A (en) * 1999-12-06 2001-06-12 Sun Microsystems, Inc. Computer arrangement using non-refreshed dram
KR100699236B1 (ko) * 1999-12-07 2007-03-27 선 마이크로시스템즈 인코포레이티드 안전 사진을 포함한 식별 장치, 이러한 식별 장치를인증하기 위한 수단 및 그 장치의 인증 방법
CN1327356C (zh) 1999-12-07 2007-07-18 太阳微系统公司 具有控制读取之微处理器的计算机可读介质和与该介质通信的计算机
US6726094B1 (en) * 2000-01-19 2004-04-27 Ncr Corporation Method and apparatus for multiple format image capture for use in retail transactions
US7100832B2 (en) * 2000-04-18 2006-09-05 Metrologic Instruments, Inc. Bioptical laser scanning system providing 360° of omnidirectional bar code symbol scanning coverage at point of sale station
WO2002009046A1 (en) 2000-07-20 2002-01-31 Belle Gate Investment B.V. Method and system of communicating devices, and devices therefor, with protected data transfer
US6739513B1 (en) * 2000-09-05 2004-05-25 Rjs Systems International Box detector in barcode environment
US7954719B2 (en) 2000-11-24 2011-06-07 Metrologic Instruments, Inc. Tunnel-type digital imaging-based self-checkout system for use in retail point-of-sale environments
US6749120B2 (en) * 2000-12-11 2004-06-15 Cpo Technologies Corp. Method and apparatus for scanning electronic barcodes
US6637658B2 (en) 2001-01-22 2003-10-28 Welch Allyn, Inc. Optical reader having partial frame operating mode
ATE335246T1 (de) 2001-01-22 2006-08-15 Hand Held Prod Inc Optischer leser mit teilbild-ausschnitt-funktion
US7268924B2 (en) * 2001-01-22 2007-09-11 Hand Held Products, Inc. Optical reader having reduced parameter determination delay
US7331523B2 (en) 2001-07-13 2008-02-19 Hand Held Products, Inc. Adaptive optical image reader
US8239271B2 (en) * 2001-09-04 2012-08-07 Ncr Corporation Methods and apparatus for managing sequencing of data received from devices in a retail point of sale system
SE520682C2 (sv) * 2001-12-06 2003-08-12 Anoto Ab Rekonstruering av ett virtuellt raster
US6805449B2 (en) * 2002-03-22 2004-10-19 Accu-Sort Systems, Inc. Presentation imaging system
US6637893B2 (en) 2002-03-22 2003-10-28 Accu-Sort Systems, Inc. Presentation imaging system
TWM306698U (en) * 2006-03-01 2007-02-21 Riotec Co Ltd Optical structure improvement of bar code reader
US7852519B2 (en) 2007-02-05 2010-12-14 Hand Held Products, Inc. Dual-tasking decoder for improved symbol reading
US7726575B2 (en) * 2007-08-10 2010-06-01 Hand Held Products, Inc. Indicia reading terminal having spatial measurement functionality
US9412124B2 (en) * 2007-09-23 2016-08-09 Sunrise R&D Holdings, Llc Multi-item scanning systems and methods of items for purchase in a retail environment
EP2248069B1 (de) 2008-02-12 2013-08-28 Datalogic ADC, Inc. Systeme und verfahren zur herstellung eines zusammengesetzten bildes mit mehreren teilen eines objekts aus mehreren perspektiven
US8678287B2 (en) 2008-02-12 2014-03-25 Datalogic ADC, Inc. Two-plane optical code reader for acquisition of multiple views of an object
US8608076B2 (en) * 2008-02-12 2013-12-17 Datalogic ADC, Inc. Monolithic mirror structure for use in a multi-perspective optical code reader
US8353457B2 (en) * 2008-02-12 2013-01-15 Datalogic ADC, Inc. Systems and methods for forming a composite image of multiple portions of an object from multiple perspectives
US8628015B2 (en) 2008-10-31 2014-01-14 Hand Held Products, Inc. Indicia reading terminal including frame quality evaluation processing
US8261990B2 (en) * 2008-12-26 2012-09-11 Datalogic ADC, Inc. Data reader having compact arrangement for acquisition of multiple views of an object
US8322621B2 (en) 2008-12-26 2012-12-04 Datalogic ADC, Inc. Image-based code reader for acquisition of multiple views of an object and methods for employing same
US8643717B2 (en) * 2009-03-04 2014-02-04 Hand Held Products, Inc. System and method for measuring irregular objects with a single camera
DE102009037124A1 (de) * 2009-08-11 2011-02-17 Wincor Nixdorf International Gmbh Vorrichtung und Verfahren zum optischen Abtasten einer maschinenlesbaren Markierung
US8587595B2 (en) 2009-10-01 2013-11-19 Hand Held Products, Inc. Low power multi-core decoder system and method
US20120187195A1 (en) * 2011-01-24 2012-07-26 Datalogic ADC, Inc. Systems and methods for reading encoded data through gaps between conveyors in an automated checkout system
WO2012103067A2 (en) 2011-01-24 2012-08-02 Datalogic ADC, Inc. Modular scanner component mounting system for checkstand
US8523076B2 (en) 2012-01-10 2013-09-03 Metrologic Instruments, Inc. Omnidirectional laser scanning bar code symbol reader generating a laser scanning pattern with a highly non-uniform scan density with respect to line orientation
US9552507B2 (en) * 2012-05-07 2017-01-24 Datalogic Usa, Inc. System and method for reading optical codes on bottom surface of items
US8997972B2 (en) 2012-07-27 2015-04-07 Datalogic ADC, Inc. Systems and methods for transferring items over transition gap between conveyor sections of automated checkout system
US10154177B2 (en) * 2012-10-04 2018-12-11 Cognex Corporation Symbology reader with multi-core processor
CN103837539B (zh) * 2012-11-22 2016-08-03 景硕科技股份有限公司 终端检验系统
CN103839119B (zh) * 2012-11-22 2016-12-21 景硕科技股份有限公司 终端缺陷检验的方法
US8783438B2 (en) 2012-11-30 2014-07-22 Heb Grocery Company, L.P. Diverter arm for retail checkstand and retail checkstands and methods incorporating same
CN111871832A (zh) * 2020-07-14 2020-11-03 深圳路辉物流设备有限公司 用于分拣流水线的包裹分拣装置、方法及存储介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3774014A (en) * 1972-03-20 1973-11-20 Pitney Bowes Alpex Printed code scanning system
US4282425A (en) * 1979-07-25 1981-08-04 Norand Corporation Instant portable bar code reader
DE3043985A1 (de) * 1980-11-21 1982-06-03 Hermann 7742 St Georgen Stockburger Verfahren und vorrichtung zur kennzeichnung und/oder identifizierung eines datentraegers
US4457585A (en) * 1981-08-31 1984-07-03 Ducorday Gerard M Magnifier reader
US5308966A (en) * 1986-08-08 1994-05-03 Norand Corporation Hand-held instant bar code reader having automatic focus control for operation over a range of distances
US4877949A (en) * 1986-08-08 1989-10-31 Norand Corporation Hand-held instant bar code reader system with automated focus based on distance measurements
US4939355A (en) * 1988-01-22 1990-07-03 Spectra-Physics, Inc. Automatic package label scanner
US5569901A (en) * 1988-10-21 1996-10-29 Symbol Technologies, Inc. Symbol scanning system and method having adaptive pattern generation
US5019714A (en) * 1989-02-06 1991-05-28 Metrologic Instruments, Inc. Scanning system with array of laser scanner modules to produce complex scan pattern
US5319181A (en) * 1992-03-16 1994-06-07 Symbol Technologies, Inc. Method and apparatus for decoding two-dimensional bar code using CCD/CMD camera
CA1329263C (en) * 1989-03-01 1994-05-03 Mark Krichever Bar code scanner
CA1334218C (en) * 1989-03-01 1995-01-31 Jerome Swartz Hand-held laser scanning for reading two dimensional bar codes
US5495097A (en) * 1993-09-14 1996-02-27 Symbol Technologies, Inc. Plurality of scan units with scan stitching
US5256864A (en) * 1991-09-24 1993-10-26 Spectra-Physics Scanning system for preferentially aligning a package in an optimal scanning plane for decoding a bar code label
US5298728A (en) * 1991-11-01 1994-03-29 Spectra-Physics Scanning System, Inc. Signal processing apparatus and method
JP2727037B2 (ja) * 1992-04-20 1998-03-11 富士通株式会社 バーコード読取り装置
JP3154809B2 (ja) * 1992-05-26 2001-04-09 オリンパス光学工業株式会社 バーコードリーダ装置
US5252814A (en) * 1992-08-17 1993-10-12 Ncr Corporation Multi-scanner checkout counter using digitizer panel to determine X-Y location of scanned items
US5268580A (en) * 1992-09-02 1993-12-07 Ncr Corporation Bar code enhancement system and method for vision scanners
US5296691A (en) * 1992-09-14 1994-03-22 Lazerdata Corporation Scanning device for reconstructing a complete code from scanned segments
US5481097A (en) * 1993-01-25 1996-01-02 Psc Inc. Apparatus and method for decoding bar codes
US5399852A (en) * 1993-02-19 1995-03-21 United Parcel Service Of America, Inc. Method and apparatus for illumination and imaging of a surface employing cross polarization
US5317166A (en) * 1993-02-23 1994-05-31 Psc Inc. A system for decoding bar coded labels upon different size containers
US5382783A (en) * 1993-05-10 1995-01-17 Psc Inc. False bar code inhibitor circuit
US5446271A (en) * 1993-08-06 1995-08-29 Spectra-Physics Scanning Systems, Inc. Omnidirectional scanning method and apparatus
US5463214A (en) * 1994-03-04 1995-10-31 Welch Allyn, Inc. Apparatus for optimizing throughput in decoded-output scanners and method of using same
US5521366A (en) * 1994-07-26 1996-05-28 Metanetics Corporation Dataform readers having controlled and overlapped exposure integration periods
US5600121A (en) * 1995-03-20 1997-02-04 Symbol Technologies, Inc. Optical reader with independent triggering and graphical user interface
US5585616A (en) * 1995-05-05 1996-12-17 Rockwell International Corporation Camera for capturing and decoding machine-readable matrix symbol images applied to reflective surfaces

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108906660A (zh) * 2018-06-27 2018-11-30 大族激光科技产业集团股份有限公司 一种激光打标产品的自动检测分拣装置

Also Published As

Publication number Publication date
US6257490B1 (en) 2001-07-10
WO1999022335A9 (en) 1999-07-01
US5984186A (en) 1999-11-16
EP1025532B1 (de) 2006-03-29
EP1025532A4 (de) 2002-07-31
DE69834053D1 (de) 2006-05-18
WO1999022335A1 (en) 1999-05-06
EP1025532A1 (de) 2000-08-09

Similar Documents

Publication Publication Date Title
DE69834053T2 (de) Ccd-basierter bar-kode-scanner
DE69838714T2 (de) Optische abtastvorrichtung und bildleser zum bildlesen und dekodieren optischer informationen mit ein- und zweidimensionalen symbolen bei veränderlicher tiefenschärfe
DE69533491T2 (de) Automatische elektrische Kamera für Etikettenbildaufnahme
US6296187B1 (en) CCD-based bar code scanner
DE3685934T2 (de) Einrichtung zum abtasten optischer information.
AT412028B (de) Einrichtung zur aufnahme eines objektraumes
DE3785440T2 (de) Optische abtastvorrichtung mit ortungsfuehlern.
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
DE68928443T2 (de) Laserabtaster zum Lesen von zweidimensionalen Strichkoden
DE69109406T2 (de) Anzeigeanordnung.
DE69127968T2 (de) Dreidimensionales echtzeit-sensorsystem
DE68920617T2 (de) Artikel, Verfahren und System zur hexagonalen Datenkodierung.
DE69625583T2 (de) Datenformleser
DE69629235T2 (de) Gerät zur automatischen Detektion der Anwesenheit, der Breite und der Phasenverschiebung eines Dokumentes innerhalb eines Dokumentenabtasters
DE3783974T2 (de) Optischer buchstabenleser.
EP0833270B1 (de) Verfahren und Vorrichtung zur Erfassung von auf potentiell grossflächigen Gegenständen aufgebrachten, optisch erfassbaren Informationen
DE102007060557A1 (de) Modulare Kamera
DE602004011145T2 (de) Vorrichtung und Verfahren zum Lesen von optischen Informationen
DE102005039197B4 (de) Vorrichtung zum Lesen optischer Information
CH670752A5 (de)
EP3663963A1 (de) Lesen von optischen codes
DE102005028410A1 (de) Vorrichtung zum optischen Lesen von Informationen
DE2557535A1 (de) Fernerkennungsanordnung fuer objekte
DE102004060957A1 (de) Verfahren und Vorrichtung zum optischen Lesen von an einem Ziel angebrachter Information

Legal Events

Date Code Title Description
8364 No opposition during term of opposition