Bar code reader
Abstract
A self-contained two-dimensional bar code reader of the type having a light source (16) for illuminating a two-dimensional bar code symbol (400, 500, etc.) having data encoded therein, a photodetector (17) for producing signals in response to light returning from the symbol (400, 500, etc.), and a decoder (40, 64) coupled to receive said signals of said photodetector (17), said decoder (40, 64) having an output signal carrying decoded data of said symbol, wherein the improvement comprises: said decoder (40, 64) comprising a microcomputer (40) having a memory (42, 45) that includes a first portion (45) having an executable program (Listing No. 1) resident therein for decoding a two-dimensional bar code symbol, and a second portion (42) for holding data.

Term
Term ended
Projected expiry passed 4 January 2016, 10.7 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
19 claims: 2 independent, 17 dependent
- 1A self-contained two-dimensional bar code reader of the type having a light source (16) for illuminating a two-dimensional bar code symbol (400, 500, etc.) having data encoded therein, a photodetector (17) for producing signals in response to light returning from the symbol (400, 500, etc.), and a decoder (40, 64) coupled to receive said signals of said photodetector (17), said decoder (40, 64) having an output signal carrying decoded data of said symbol, wherein the improvement comprises:said decoder (40, 64) comprising a microcomputer (40) having a memory (42, 45) that includes a first portion (45) having an executable program (Listing No. 1) resident therein for decoding a two-dimensional bar code symbol, and a second portion (42) for holding data.
- 11A portable, hand-held two-dimensional bar code reader of the type including a light source (16) for illuminating a two-dimensional bar code symbol (400, 500, etc) having data encoded therein; a photodetector (17) for producing signals in response to light returning from the symbol; a decoder (40, 64) coupled to said signals of said photodetector (17), said decoder having an output signal carrying decoded data of said symbol; wherein the improvement comprises:a microcomputer (40) having a first memory (45) for storing an executable program (Listing No. 1) for decoding a two-dimensional bar code symbol and a second memory (42) for storing data, said microcomputer (40) having an address space not exceeding 64 K bytes, said first memory (45) having a capacity not exceeding 32 K bytes, and said data memory (42) having a capacity not exceeding 8 K bytes;and a direct memory access channel (48) of said microcomputer (40) for controlling the storage of said signals of said photodetector in said second memory (42).
Independent claims2
49 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
1. Field of the Invention.
This invention relates to two-dimensional bar code readers. More particularly this invention relates to a self-contained bar code reader that is fully capable of reading and decoding both one-dimensional bar codes and two-dimensional bar code symbologies such as PDF417.
2. Description of the Prior Art.
Self contained bar code readers are now well known in the art. A modern example is the ST3000 model produced by the assignee hereof. Such readers often have microcomputers that are capable of scanning or reading linear bar code symbologies such as the UPC codes or code 39 that are widely used in supermarkets and similar retail establishments. These codes are herein termed "linear bar codes". As used herein, the term "scanning" means detecting the presence of a bar code symbol and acquiring an electrical representation of the optical pattern of the symbol. The term "reading" means scanning the symbol, and then decoding the electrical representation to yield information in a standardized format. ASCII is an example of a standardized format that could be output by a decoder. "Self-contained", as used herein does not exclude an external power supply for the bar code reader, nor a communication line to an external host.
More recently it has been proposed to increase the information content of machine readable graphic images such as bar code symbols by encoding the data into a two-dimensional bar code symbol in which the data are arranged in rows and columns. These codes are sometimes arranged as fixed-width patterns in a matrix.
Code One is a two-dimensional matrix symbology that can encode the full ASCII 256 character set in addition to four function characters and a pad character. This symbology has ten different versions defined, with 27 - 50% of the symbol characters allocated to error detection and correction. Some versions use Reed-Solomon error control.
Another two-dimensional bar code symbology is PDF417. PDF417 is explained in Wang, U.S. Patent No. 5,243,655, which is incorporated herein by reference.
Briefly summarized, PDF417 is a two dimensional (17,4) symbology, a specialization of the (n,k) family of bar codes. In PDF417 a code word comprises 17 bits comprising 4 runs of bars and 4 runs of spaces in differing combinations, which produces a large number of legal patterns. Each space and each bar can vary in width from 1 to 6 arbitrary units, so long as the total number of units in the code word is 17. Three mutually exclusive subsets or clusters of the set of legal patterns are used in PDF417, each cluster containing 929 code words. Each of the 929 code words can be ordered in a t-sequence, and the patterns in the t-sequences can be mapped to a desired alphabet by suitable translation tables.
Each row of a PDF symbol comprises code words selected from one of the three clusters, and there is a periodic rowwise usage of the three subsets. It is possible to identify the particular cluster to which a code word belongs by computing a discriminator function:<maths id="math0001"><math display="block"><mrow><mtext mathvariant="italic">f</mtext><mtext>(</mtext><mtext mathvariant="italic">X</mtext><mtext>)=(</mtext><msub><mrow><mtext mathvariant="italic">x</mtext></mrow><mrow><mtext>1</mtext></mrow></msub><mtext>- </mtext><msub><mrow><mtext mathvariant="italic">x</mtext></mrow><mrow><mtext>3</mtext></mrow></msub><mtext>+ </mtext><msub><mrow><mtext mathvariant="italic">x</mtext></mrow><mrow><mtext>5</mtext></mrow></msub><mtext>- </mtext><msub><mrow><mtext mathvariant="italic">x</mtext></mrow><mrow><mtext>7</mtext></mrow></msub><mtext>) mod 9</mtext></mrow></math><img file="EP0722148A2_D0001.tif" /></maths> where X is the mark pattern of the code word; x<sub>1,</sub> x<sub>3</sub>, x<sub>5</sub>, and x<sub>7</sub> represent the width of bars in the pattern; and x<sub>2</sub>, x<sub>4</sub>, x<sub>6</sub>, and x<sub>8</sub> represent the widths of spaces. While 9 clusters are possible, only three are actually used in PDF417, clusters 0, 3, and 6.
In each row of a PDF symbol there is a start pattern, a left row indicator code word, data code words, a right row indicator code word, and a stop pattern. Error correction information may be included in the data code words. The row indicator code words contain information about the organization of the symbol, specifically the row number, the number of rows in the symbol, number of data columns and the security level. Not all of this information is contained in every row indicator code word; instead the information is distributed in a pattern which repeats every three rows.
During a scanning operation the scanner can identify the cluster of a particular code word, and hence its row identifier modulo 3. This local row identification is particularly useful when the scanning axis is not perfectly aligned with the rows of the symbol, and a transition between two rows occurs during a scanning operation. Detection of row crossing permits "scan stitching" -- a mapping of partial row scans into a matrix or memory. Missing pieces in the partially completed matrix can be filled in by other scanned data, possibly from entirely different rows, either because the data is redundantly expressed in the symbol, or with the use of error correction algorithms such as Reed-Solomon codes. A typical scan stitching method is disclosed in Pavlidis et al., U.S. Patent No. 5,241,164.
In some prior art devices, relative motion between the scanner and the two-dimensional symbol is necessary to collect data from most of the entire area of the symbol and thereby effect a reading.
Reading a PDF417 code can be conducted in a known manner on a character-by-character basis in accordance with a two step process. In the first step a code word is scanned and its discriminator function computed. The first step is completed by identifying the cluster of a code word and determining the value of the t-sequence for the identified cluster. In a second step, or high level decoding, error detection and correction is carried out, and then the member of the alphabet that was encoded in the symbol is derived from the value of the t-sequence, using look-up tables or similar.
It is a present problem in the art that the computational resources required to read a PDF417 bar code symbol in an acceptable time are rather large, requiring extensive memory and processing power. The relatively sophisticated computers generally used for PDF417 decoding have at least 16-bit processors, largely due to the computational effort involved in error detection and correction on a large number of characters (up to 928 characters per symbol), and the fact that the character set is larger than a convenient eight bit representation. A further difficulty concerns the large size of the encoded message (up to 2710 digits) and the limited amounts of computer random access memory available to handle this information. 16-bit processors are presently much more expensive than the 8-bit microprocessors currently found in commercial portable bar code readers, such as the above mentioned ST3000. Furthermore the 16 bit processors require large amounts of memory to decode PDF417 symbols, and they consume too much power to be practical in inexpensive portable bar code readers. As a result it has been necessary to offload undecoded data from a bar code scanner to a remote decoder, such as a desk-top computer, RISC, or a digital signal processor to accomplish the decoding. This necessitates further communication links between the decoder and the bar code scanner for purposes of error detection and correction. As a result, the installation of a portable two-dimensional bar code reader in conjunction with a cash register or point-of-sale terminal is rendered complex and expensive. Many retail installations tolerate neither the additional space required by the remote decoder nor the costs associated with the additional hardware.
SUMMARY OF THE INVENTION
It is therefore a primary object of the present invention to provide a self contained bar code reader that is capable of rapidly reading two-dimensional bar code symbols such as PDF417.
It is another object of the invention to provide a fully self-contained portable, hand-held bar code reader that contains electronic and computational structural features adapted to the scanning and decoding of two-dimensional bar code symbols.
It is yet another object of the invention to efficiently accomplish the scanning and decoding of two-dimensional bar code symbols utilizing a small, inexpensive microprocessor with minimal memory and power consumption.
These and other objects of the present invention are attained by a portable, hand-held, self-contained two-dimensional bar code reader adapted to the PDF417 symbology, including a light source, a photodetector, and a decoder. The decoder comprises an 8 bit microcomputer, having an address space of 64 Kbytes, but actually using an 8 KByte SRAM for data storage, and 32 KByte programmable erasable read only memory (PEROM) for program instructions. Performance is enhanced by a novel program resident in the PEROM, and by the use of a direct memory access to load signals derived from the photodetector into memory. The unit's housing is approximately 7½ x 3½ x 2 inches. It weighs 7½ oz., and during a reading operation, its power draw is 1.4 watts average during scanning, and 0.83 watts during decoding with the illumination off.
In one aspect of the invention the light source illuminates a narrow strip on the bar code symbol, and the photodetector's field of view corresponds to the strip.
In another aspect of the invention the photodetector is a CCD matrix that acquires an image of the entire bar code symbol.
In yet another aspect of the invention, the photodetector is a photodiode, and the light source is a rasterizing laser that scans the symbol in a row wise fashion.
BRIEF DESCRIPTION OF THE DRAWING
For a better understanding of these and other objects of the present invention, reference is made to the detailed description of the invention which is to be read in conjunction with the following drawings, wherein: <ul id="ul0001" list-style="none" compact="compact"><li>FIG. 1 is a block diagram of a bar code reader suitable for practicing the invention;</li><li>FIG. 2 is an enlarged view of a portion of FIG. 1;</li><li>FIG. 3 is a block diagram illustrating the organization of a program for a computer in the bar code reader shown in FIG. 1;</li><li>FIGS. 4 - 6 are standard PDF417 bar code symbols having various amounts of information and different levels of error correction encoded therein;</li><li>FIG. 7 is a schematic of a second embodiment of the invention; and</li><li>FIG. 8 is a schematic illustrating a third embodiment of the invention.</li></ul>
DESCRIPTION OF THE PREFERRED EMBODIMENTS
First embodiment:
Turning now to the Drawing, and initially to FIG. 1, a bar code reader 10 is shown. Suitable hardware comprising the reader is commercially available as model ST3000-22 from Welch Allyn, Skaneateles Falls, New York, and the invention can be practiced therewith provided that certain modifications disclosed herein are made. The bar code reader 10 is a portable self-contained hand-held unit that is capable of scanning and decoding bar code symbologies. The unit could be as large as 10 x 4 x 3 inches and weigh as much as 10 oz, but lt preferably has dimensions of about 7½ x 3½ x 2 inches, and draws 1.4 watts average during scanning, and 0.83 watts during decoding with the illumination off. It preferably weighs 7.5 oz. The unit can resolve bar code elements that are 5 mils in width.
The bar code reader 10 has conventional optics 15 and a plurality of 660 nm light emitting diodes 16 that illuminate a narrow strip of a bar code symbol 18, which corresponds to the region of sensitivity of the unit's photodetector. A lens system of the optics 15 is described in U.S. Patent No. 5,291,008, which is assigned to the assignee of the present invention, and incorporated herein by reference. Light returning from the bar code symbol along a receive path 14 through suitable focusing lenses 19 strikes a photodetector which is realized as a charge coupled device (CCD) array 17. The CCD array 17 develops analog signals that are representative of an optical pattern of a complete scan line across the bar code symbol. The analog signals are passed through signal processing electronics 20 which provide signal conditioning and analog-to-digital conversion, and digitization. Digitization is accomplished using an analog reconstruction circuit which is disclosed in U.S. Patent No. 5,294,783, of common assignee herewith, and also incorporated herein by reference. The resulting signal, a binary representation of the bar code symbol being read, is submitted to a microcomputer 30.
The microcomputer 30 performs various tasks necessary to the operation of the system. It includes a microcontroller 40, realized as a Motorola MC68HC11D0CFN3, and has an address space of 64 Kbytes. The MC68HC11D0CFN3 is also provided with serial and parallel I/O, interrupt logic, an oscillator, and clock logic. As employed in the microcomputer 10, the microcontroller 40 is provided access to an 8 KByte static RAM 42 and a 32 KByte PEROM 45. The capabilities of the microprocessor 40 are enhanced by a multifunctional ASIC 35. As shown in FIG. 2 the ASIC 35 has four principal functional blocks. A CCD clock control 43 facilitates switching the scan rate of the CCD array between 50, 100, and 200 scans/second and provides further control of the CCD array (indicated by line 36) as may be desired for optimized scanning operation. A memory management unit 46 (MMU) provides limited memory management capability. The timer/DMA channel 48, coupled to the signal processing electronics 20 (indicated by line 38), automates the input signal capture for subsequent decoding. This allows dedication of the microcontroller 40 to pattern analysis for decoding of the bar code symbol. Finally a general interface unit 44 permits a flexible communications interface for the bar code reader 10, indicated by line 37. The entire ASIC 35 is controlled by the microcontroller 40 through an internal bus 39.
The internal clock logic of the microcontroller 40 is controlled via the ASIC 35 by an oscillator having a crystal 49. To increase the performance of the system, and to handle the high computational load imposed by the decoding of PDF417 symbols, a crystal having a frequency of 14.7456 MHz, has been substituted for the 7.3728 MHz crystal which is furnished in the unmodified ST3000-22 model. Other modifications to the basic ST3000-22 model are as follows: SRAM 42 is a 70ns 8K x 8 CMOS RAM (SONY part number CXK5864BM-70L).
Microprocessor 40 is a Motorola MC68HC11D0CFN3.
PEROM 45 is a 90ns model (ATMEL AT29C256-9).
Regarding the above mentioned part substitutions, the doubling of the crystal frequency is the most important contributor to performance, while the substituted SRAM, microprocessor, and PEROM insure component reliability at the increased clock frequency.
Firmware resident in the PEROM 45 contains the executable instructions for the microcontroller 40. Portions of the program realized in the PEROM 45 are conventional, and allow the bar code reader 10 to function as a conventional autodiscriminating reader for linear bar code symbologies, as well as to decode PDF417 symbols.
Broadly, the firmware 60 consists of 4 main blocks, as shown in FIG. 3. A variety of system supervisory functions, indicated by reference numeral 62 include the initialization of volatile hardware and memory regions, controlling and sequencing the scanning and decoding operations, and monitoring and maintaining I/O between the bar code reader, the operator, and external equipment.
Decoding functions, indicated by reference numeral 64, are accomplished in several stages. First a preliminary evaluation for the presence of a bar code symbol of interest is made. When such a bar code symbol is detected a detailed character-by-character decoding operation is performed in areas of interest. Error checking of the decoded character string is then accomplished, and finally the decoded characters are interpreted to determine their corresponding data message. In the case of linear symbologies, the decoding result from a scan is a message ready for transmission. In two-dimensional symbologies, such as PDF417, a decoding result is partial information which is stored in the static random access memory (SRAM) array 42 (FIG. 1), and later combined with the results of subsequent decoding operations, until the full data message is eventually compiled for transmission.
The menu functions, indicated by reference numeral 66, are routines called in response to decoding special bar code symbols, so-called bar code "menus" that set non-volatile bits or values within a designated configuration region of the PEROM 45, thus governing various operating characteristics of the bar code reader 10, such as scan rate, beeper volume, mode of operation (manual or auto-trigger), enablement of decoding of particular bar code symbologies, etc.
Communications functions 68 service the hardware and include protocols needed to deliver scanned data to an attached device. The bar code reader 10 can support a number of communications protocols and interfaces, including laser output, OCIA, OCR, RS-232, various commercial terminals and keyboard wedges, of which only the RS-232 interface is currently programmed.
What makes it possible for a device such as bar code reader 10 to effectively decode PDF417 bar code symbols is an extensive modification of the decoding firmware 60 resident in the PEROM 45. The object code of the firmware is exhaustively disclosed in Listing No. 1. Listing 1 is given in a well known Intel Hex format: :NNAAAATTPPPPPPPPPPPPPPPPPPPPCC wherein NN is the number of program bytes on the line; AAAA is the address of the first program byte; TT is the type of data; PP are the program bytes; and CC is the checksum for the entire line.
The installation of Listing No. 1 into the PEROM 45 is accomplished with the use of a loading program, which is shown in Listing No. 2. Listing No. 2 is executed in accordance with well known techniques specified by Motorola. The ST3000-22 is first connected to COM1 of an IBM PC (trademark) or compatible personal computer running DOS, having Listing No. 2 loaded into the BASIC interpreter, and having Listing No. 1 available in a file. The ST3000-22 is powered up in bootstrap mode. Then, with the trigger of the ST3000-22 depressed, Listing No. 2 is executed in the personal computer. Pressing any key of the personal computer will initiate the installation of a download program into the internal RAM (not shown) of the MC68HC11D0CFN3. The user then responds to a prompt by entering the name of the file containing Listing No. 1. Listing No. 1 is then downloaded directly into the PEROM 45.
The firmware 60 in accordance with the invention operates on PDF417 symbols using a two-step process. The First step executed by the microcomputer 30 in accordance with the instructions in Listing No. 1 is row decoding. This step is similar to linear bar code reading, and comprises the location of sequences of PDF417 symbol characters adjoining a start or stop character. What makes PDF417 scanning more computationally intensive than scanning linear bar codes, for example code 39 and UPC, is the allowance for "scan stitching", wherein decoding must be able to follow scans that move between different rows. Furthermore the large 17-module characters within the large PDF417 character set preclude normal look-up procedures because the PEROM 45 is limited in size. In scan stitching the difficulty presented is that whenever a scan path slides from one row to the next, one or more invalid character patterns may be seen. Such patterns may not even have a proper number of elements. Yet it is still necessary to pick up the decoding process with subsequent valid characters once the transition between rows is made. The decoding process takes advantage of the fact that all characters start with a space-to-bar transition that is aligned across rows, so that even as a scan transitions between rows, there is a recognizable start to each character position.
The second step is message or array decoding, wherein the decoded PDF417 characters are placed into appropriate positions of a row and column matrix that is representative of the symbol. Then the rows, considered as one concatenated string, are error checked, error corrected, and finally interpreted into the encoded message. All of this is accomplished within the limitations of the 8K SRAM 42. The decoded information is output through a conventional communication interface 55. User interfaces 50 provide audiovisual indicators to the operator of the progress of the scan, and the results thereof. Such an interface is disclosed in copending Application Ser. No. 08/137,640, of common assignee herewith.
The bar code reader 10 is autodiscriminating and capable of reading several well known linear bar code symbologies, including, for example, UPC.
The device is used by placing the reader 10 in contact or near contact with the symbol 18, which can be a PDF417 symbol. The reader is preferably approximately aligned with the rows of the symbol. Reading is then initiated by depressing a manual trigger, or in the alternative, the reader 10 can sense the presence of the bar code symbol 18 and self-actuate. The operator is informed of a valid read by an audible annunciator.
<b>Example 1:</b> Using the embodiment described above, standard PDF symbols (shown representatively at reference numerals 400, 500, 600 in FIGS. 4 - 6) were read repeatedly for 30 seconds. As previously explained, a "read" is a full operation, including scanning of the bar code information, decoding, and output of the decoded information. In this example the read head of the hand-held bar code reader was maintained in contact with the data carrier and in alignment with the row axes of the bar code symbol. There was no tilt with respect to the plane of the data carrier. Ambient room lighting conditions were present. The decoded information is shown as character sequences 410, 510, 610. The results are shown in table 1. <tables id="tabl0001" num="0001"><table frame="all"><title>Table 1</title><tgroup cols="10" colsep="1" rowsep="1"><colspec colnum="1" colname="col1" colwidth="15.75mm" /><colspec colnum="2" colname="col2" colwidth="15.75mm" /><colspec colnum="3" colname="col3" colwidth="15.75mm" /><colspec colnum="4" colname="col4" colwidth="15.75mm" /><colspec colnum="5" colname="col5" colwidth="15.75mm" /><colspec colnum="6" colname="col6" colwidth="15.75mm" /><colspec colnum="7" colname="col7" colwidth="15.75mm" /><colspec colnum="8" colname="col8" colwidth="15.75mm" /><colspec colnum="9" colname="col9" colwidth="15.75mm" /><colspec colnum="10" colname="col10" colwidth="15.75mm" /><thead valign="top"><row><entry namest="col1" nameend="col10" align="center">Number of reads in 30 Seconds - According to Invention</entry></row><row><entry namest="col1" nameend="col1" rowsep="0" align="center">Text Chars</entry><entry namest="col2" nameend="col10" align="center">Error Correction Level</entry></row><row><entry namest="col1" nameend="col1" /><entry namest="col2" nameend="col2" align="right">0</entry><entry namest="col3" nameend="col3" align="right">1</entry><entry namest="col4" nameend="col4" align="right">2</entry><entry namest="col5" nameend="col5" align="right">3</entry><entry namest="col6" nameend="col6" align="right">4</entry><entry namest="col7" nameend="col7" align="right">5</entry><entry namest="col8" nameend="col8" align="right">6</entry><entry namest="col9" nameend="col9" align="right">7</entry><entry namest="col10" nameend="col10" align="right">8</entry></row></thead><tbody valign="top"><row><entry namest="col1" nameend="col1" align="right">100</entry><entry namest="col2" nameend="col2" align="right">54</entry><entry namest="col3" nameend="col3" align="right">61</entry><entry namest="col4" nameend="col4" align="right">69</entry><entry namest="col5" nameend="col5" align="right">75</entry><entry namest="col6" nameend="col6" align="right">76</entry><entry namest="col7" nameend="col7" align="right">75</entry><entry namest="col8" nameend="col8" align="right">50</entry><entry namest="col9" nameend="col9" align="right">27</entry><entry namest="col10" nameend="col10" align="right">15</entry></row><row><entry namest="col1" nameend="col1" align="right">200</entry><entry namest="col2" nameend="col2" align="right">31</entry><entry namest="col3" nameend="col3" align="right">43</entry><entry namest="col4" nameend="col4" align="right">48</entry><entry namest="col5" nameend="col5" align="right">59</entry><entry namest="col6" nameend="col6" align="right">57</entry><entry namest="col7" nameend="col7" align="right">53</entry><entry namest="col8" nameend="col8" align="right">39</entry><entry namest="col9" nameend="col9" align="right">24</entry><entry namest="col10" nameend="col10" align="right">14</entry></row><row><entry namest="col1" nameend="col1" align="right">400</entry><entry namest="col2" nameend="col2" align="right">22</entry><entry namest="col3" nameend="col3" align="right">28</entry><entry namest="col4" nameend="col4" align="right">24</entry><entry namest="col5" nameend="col5" align="right">25</entry><entry namest="col6" nameend="col6" align="right">28</entry><entry namest="col7" nameend="col7" align="right">25</entry><entry namest="col8" nameend="col8" align="right">23</entry><entry namest="col9" nameend="col9" align="right">18</entry><entry namest="col10" nameend="col10" align="right">13</entry></row><row><entry namest="col1" nameend="col1" align="right">800</entry><entry namest="col2" nameend="col2" align="right">11</entry><entry namest="col3" nameend="col3" align="right">14</entry><entry namest="col4" nameend="col4" align="right">13</entry><entry namest="col5" nameend="col5" align="right">16</entry><entry namest="col6" nameend="col6" align="right">15</entry><entry namest="col7" nameend="col7" align="right">16</entry><entry namest="col8" nameend="col8" align="right">13</entry><entry namest="col9" nameend="col9" align="right">12</entry><entry namest="col10" nameend="col10" align="right">8</entry></row><row><entry namest="col1" nameend="col1" align="right">1200</entry><entry namest="col2" nameend="col2" align="right">8</entry><entry namest="col3" nameend="col3" align="right">9</entry><entry namest="col4" nameend="col4" align="right">9</entry><entry namest="col5" nameend="col5" align="right">10</entry><entry namest="col6" nameend="col6" align="right">10</entry><entry namest="col7" nameend="col7" align="right">9</entry><entry namest="col8" nameend="col8" align="right">7</entry><entry namest="col9" nameend="col9" align="right">--</entry><entry namest="col10" nameend="col10" align="right">--</entry></row><row rowsep="1"><entry namest="col1" nameend="col1" align="right">1600</entry><entry namest="col2" nameend="col2" align="right">5</entry><entry namest="col3" nameend="col3" align="right">6</entry><entry namest="col4" nameend="col4" align="right">6</entry><entry namest="col5" nameend="col5" align="right">7</entry><entry namest="col6" nameend="col6" align="right">7</entry><entry namest="col7" nameend="col7" align="right">7</entry><entry namest="col8" nameend="col8" align="right">--</entry><entry namest="col9" nameend="col9" align="right">--</entry><entry namest="col10" nameend="col10" align="right">--</entry></row></tbody></tgroup></table></tables>
By way of comparison, this experiment was repeated using a currently available state-of-the-art two dimensional hand-held bar code reader connected to a remote decoder. This state-of-the-art system utilized a more powerful microprocessor than the 68HC11. The results are shown in table 2. <tables id="tabl0002" num="0002"><table frame="all"><title>Table 2</title><tgroup cols="10" colsep="1" rowsep="1"><colspec colnum="1" colname="col1" colwidth="15.75mm" /><colspec colnum="2" colname="col2" colwidth="15.75mm" /><colspec colnum="3" colname="col3" colwidth="15.75mm" /><colspec colnum="4" colname="col4" colwidth="15.75mm" /><colspec colnum="5" colname="col5" colwidth="15.75mm" /><colspec colnum="6" colname="col6" colwidth="15.75mm" /><colspec colnum="7" colname="col7" colwidth="15.75mm" /><colspec colnum="8" colname="col8" colwidth="15.75mm" /><colspec colnum="9" colname="col9" colwidth="15.75mm" /><colspec colnum="10" colname="col10" colwidth="15.75mm" /><thead valign="top"><row><entry namest="col1" nameend="col10" align="center">Number of reads in 30 Seconds - Conventional Bar Code Reader</entry></row><row><entry namest="col1" nameend="col1" rowsep="0" align="center">Text Chars</entry><entry namest="col2" nameend="col10" align="center">Error Correction Level</entry></row><row><entry namest="col1" nameend="col1" /><entry namest="col2" nameend="col2" align="right">0</entry><entry namest="col3" nameend="col3" align="right">1</entry><entry namest="col4" nameend="col4" align="right">2</entry><entry namest="col5" nameend="col5" align="right">3</entry><entry namest="col6" nameend="col6" align="right">4</entry><entry namest="col7" nameend="col7" align="right">5</entry><entry namest="col8" nameend="col8" align="right">6</entry><entry namest="col9" nameend="col9" align="right">7</entry><entry namest="col10" nameend="col10" align="right">8</entry></row></thead><tbody valign="top"><row><entry namest="col1" nameend="col1" align="right">100</entry><entry namest="col2" nameend="col2" align="right">58</entry><entry namest="col3" nameend="col3" align="right">65</entry><entry namest="col4" nameend="col4" align="right">73</entry><entry namest="col5" nameend="col5" align="right">77</entry><entry namest="col6" nameend="col6" align="right">80</entry><entry namest="col7" nameend="col7" align="right">77</entry><entry namest="col8" nameend="col8" align="right">71</entry><entry namest="col9" nameend="col9" align="right">41</entry><entry namest="col10" nameend="col10" align="right">15</entry></row><row><entry namest="col1" nameend="col1" align="right">200</entry><entry namest="col2" nameend="col2" align="right">45</entry><entry namest="col3" nameend="col3" align="right">50</entry><entry namest="col4" nameend="col4" align="right">58</entry><entry namest="col5" nameend="col5" align="right">58</entry><entry namest="col6" nameend="col6" align="right">60</entry><entry namest="col7" nameend="col7" align="right">60</entry><entry namest="col8" nameend="col8" align="right">59</entry><entry namest="col9" nameend="col9" align="right">35</entry><entry namest="col10" nameend="col10" align="right">12</entry></row><row><entry namest="col1" nameend="col1" align="right">400</entry><entry namest="col2" nameend="col2" align="right">32</entry><entry namest="col3" nameend="col3" align="right">35</entry><entry namest="col4" nameend="col4" align="right">37</entry><entry namest="col5" nameend="col5" align="right">39</entry><entry namest="col6" nameend="col6" align="right">47</entry><entry namest="col7" nameend="col7" align="right">45</entry><entry namest="col8" nameend="col8" align="right">43</entry><entry namest="col9" nameend="col9" align="right">29</entry><entry namest="col10" nameend="col10" align="right">13</entry></row><row><entry namest="col1" nameend="col1" align="right">800</entry><entry namest="col2" nameend="col2" align="right">16</entry><entry namest="col3" nameend="col3" align="right">22</entry><entry namest="col4" nameend="col4" align="right">24</entry><entry namest="col5" nameend="col5" align="right">26</entry><entry namest="col6" nameend="col6" align="right">26</entry><entry namest="col7" nameend="col7" align="right">26</entry><entry namest="col8" nameend="col8" align="right">24</entry><entry namest="col9" nameend="col9" align="right">18</entry><entry namest="col10" nameend="col10" align="right">10</entry></row><row><entry namest="col1" nameend="col1" align="right">1200</entry><entry namest="col2" nameend="col2" align="right">12</entry><entry namest="col3" nameend="col3" align="right">13</entry><entry namest="col4" nameend="col4" align="right">15</entry><entry namest="col5" nameend="col5" align="right">16</entry><entry namest="col6" nameend="col6" align="right">17</entry><entry namest="col7" nameend="col7" align="right">17</entry><entry namest="col8" nameend="col8" align="right">17</entry><entry namest="col9" nameend="col9" align="right">13</entry><entry namest="col10" nameend="col10" align="right">--</entry></row><row rowsep="1"><entry namest="col1" nameend="col1" align="right">1600</entry><entry namest="col2" nameend="col2" align="right">9</entry><entry namest="col3" nameend="col3" align="right">0</entry><entry namest="col4" nameend="col4" align="right">11</entry><entry namest="col5" nameend="col5" align="right">12</entry><entry namest="col6" nameend="col6" align="right">13</entry><entry namest="col7" nameend="col7" align="right">13</entry><entry namest="col8" nameend="col8" align="right">--</entry><entry namest="col9" nameend="col9" align="right">--</entry><entry namest="col10" nameend="col10" align="right">--</entry></row></tbody></tgroup></table></tables>
The results in accordance with the present invention are only slightly less impressive than the conventional bar code reader in performance, but are accomplished with apparatus that is clearly simpler, smaller, and cheaper than the conventional device.
Second Embodiment:
Turning now to FIG. 7, there is shown a schematic of a portion of a second embodiment of the invention, wherein similar parts have the same reference numbers as in FIGS. 1 and 2. This embodiment has the same general construction as the first embodiment, except now the photodetector is realized as a two dimensional CCD matrix 117 comprised of elements such as 120-120, instead of a linear CCD array. During a scanning operation the CCD array simultaneously acquires an image of the entire two dimensional bar code symbol 18. The signals developed by the CCD matrix 117 are multiplexed in row-wise fashion through MUX 125, and then coupled to the signal processing circuitry 20. With the use of the multiplexer, the two dimensional array 117 in a single scanning operation thus emulates multiple scans executed by the linear array 17 of the first embodiment, and the signal format is entirely acceptable to the signal processing circuitry 20, and the microprocessor 30, both of which see the same signals as would be produced by a linear CCD array.
Third embodiment:
A third embodiment of the invention is explained with reference to FIG. 8. This embodiment has the same general construction as the first embodiment, except that the light source 116 is a rasterizing laser, realized as a laser light source 116, and a beam deflector 140, which can be a rotating or vibrating mirror, or a bimorph. Rasterizing lasers are well known in the art. A laser beam deflecting apparatus is disclosed, for example, in Swartz et al., U.S. Patent No. 4,251,798. The rasterizing laser is operated in conjunction with one or more photodiodes 217, so that the bar code symbol is illuminated and scanned in row wise fashion, as the beam deflector causes the laser beam 122 to oscillate in a horizontal direction, and in a vertical direction, as indicated by the arrows in box 115. According to the above noted U.S. Patent No. 5,241,164, misalignment of the scanning line can be tolerated when scan stitching is employed.
While this invention has been explained with reference to the structure disclosed herein, it is not confined to the details set forth and this application is intended to cover any modifications and changes as may come within the scope of the following claims: <ul id="ul0002" list-style="none"><li>1. A self-contained two-dimensional bar code reader of the type having a housing, a light source for illuminating a two-dimensional bar code symbol having information encoded therein, a photodetector disposed in said housing for producing signals in response to light returning from the symbol, and a decoder disposed in said housing coupled to said signals of said photodetector, said decoder having an output signal carrying decoded information of said symbol, wherein the improvement comprises: said decoder comprising a microcomputer having a memory; wherein said memory has a first portion having an executable program resident therein for decoding a two-dimensional bar code symbol, and said memory has a second portion for holding data.</li><li>2. The bar code reader according to claim 1, wherein said microcomputer has an address space not exceeding 64 Kbytes.</li><li>3. The bar code reader according to claim 2, wherein said first portion of said memory comprises a read only memory having a capacity not exceeding 32 Kbytes.</li><li>4. The bar code reader according to claim 2, wherein said second portion of said memory comprises a second memory having a capacity not exceeding 8 Kbytes for storage of data.</li><li>5. The bar code reader according to claim 4, wherein said second memory comprises an SRAM.</li><li>6. The bar code reader according to claim 2, wherein said executable program comprises Listing No. 1, and the two-dimensional bar code symbol is a PDF417 symbol.</li><li>7. The bar code reader according to claim 1, wherein said microcomputer further comprises a direct memory access channel coupled to said memory and to said signals of said photodetector.</li><li>8. The bar code reader according to claim 1, wherein said housing has a length dimension not exceeding 10 inches, a width dimension not exceeding 4 inches, and a height dimension not exceeding 3 inches.</li><li>9. The bar code reader according to claim 1, wherein said housing has a length dimension not exceeding 7½ inches, a width dimension not exceeding 3½ inches, and a height dimension not exceeding 2 inches.</li><li>10. The bar code reader according to claim 1, further comprising a source of power, wherein said reader draws power therefrom not exceeding an average of 1.4 watts during a reading operation when the light source is enabled.</li><li>11. The bar code reader according to claim 1, further comprising a source of power, wherein said reader draws power therefrom not exceeding an average of 0.83 watts during a reading operation when the light source is disabled.</li><li>12. The bar code reader according to claim 1, wherein said light source comprises a rasterizing laser.</li><li>13. The bar code reader according to claim 1, wherein said photodetector comprises a linear CCD array.</li><li>14. The bar code reader according to claim 1, wherein said photodetector comprises a two dimensional CCD matrix.</li><li>15. The bar code reader according to claim 1, wherein the reader has a weight not exceeding 10 oz.</li><li>16. The bar code reader according to claim 1, wherein the reader has a weight not exceeding 7.5 oz.</li><li>17. The bar code reader according to claim 1, wherein said housing is portable and hand-held.</li><li>18. A portable, hand-held two-dimensional bar code reader comprising: a housing having a length dimension not exceeding 7½ inches, a width dimension not exceeding 3½ inches, and a height dimension not exceeding 2 inches; a light source disposed in said housing for illuminating a two-dimensional bar code symbol having information encoded therein; a photodetector disposed in said housing for producing signals in response to light returning from the symbol; a decoder disposed in said housing coupled to said signals of said photodetector, said decoder having an output signal carrying decoded information of said symbol; a microcomputer of said decoder having an executable program resident in a first memory thereof for decoding a two-dimensional bar code symbol, said first memory having a capacity not exceeding 32 Kbytes, and said microcomputer having an address space not exceeding 64 Kbytes; a second memory of said microcomputer for storage of data, said second memory having a capacity not exceeding 8 Kbytes; and a direct memory access channel of said microcomputer for memorizing said signals of said photodetector in said second memory; wherein a power draw of the bar code reader does not exceed an average of 1.4 watts during a reading operation, and a weight of the bar code reader does not exceed 7.5 oz.</li><li>19. The bar code reader according to claim 18, wherein the two-dimensional bar code symbol is a PDF417 symbol, and said executable program comprises Listing No. 1.</li><li>20. The bar code reader according to claim 18, wherein the decoder further comprises an autodiscrimination program for discriminating between a linear bar code symbol and a PDF417 symbol.</li><li>21. The bar code reader according to claim 18, wherein said light source illuminates a strip of the two dimensional bar code symbol, and a field of view of said photodetector corresponds to the illuminated strip.</li><li>22. The bar code reader according to claim 18, wherein said light source comprises a plurality of light emitting diodes.</li><li>23. The bar code reader according to claim 18, wherein said light source comprises a rasterizing laser.</li><li>24. The bar code reader according to claim 18, wherein said photodetector comprises a linear CCD array.</li><li>25. The bar code reader according to claim 18, wherein said photodetector comprises a two dimensional CCD matrix.</li><li>26. A method of reading two-dimensional bar code symbols, comprising the steps of: disposing a microcomputer in a portable hand-held bar code scanner, wherein said microcomputer has a memory having a first portion for holding executable instructions and a second portion for holding data; installing an executable program in said first portion of said memory for decoding a two-dimensional bar code symbol; scanning a bar code symbol with said bar code reader and memorizing a representation of the symbol in said second portion of said memory; executing said program in said microcomputer to decode said memorized representation.</li><li>27. The method according to claim 26, wherein the two-dimensional bar code symbol is a PDF417 symbol, and said executable program comprises Listing No. 1.</li><li>28. The bar code reader according to claim 26, wherein said housing has a length dimension not exceeding 10 inches, a width dimension not exceeding 4 inches, and a height dimension not exceeding 3 inches.</li><li>29. The method according to claim 26, wherein said scanner has a length dimension not exceeding 7½ inches, a width dimension not exceeding 3½ inches, and a height dimension not exceeding 2 inches.</li><li>30. The method according to claim 26, wherein said scanner and said microcomputer have a power draw not exceeding an average of 1.4 watts during a reading operation when the light source is enabled.</li><li>31. The method according to claim 26, wherein said scanner and said microcomputer have a power draw not exceeding an average of 0.83 watts during a reading operation when the light source is disabled.</li><li>32. The bar code reader according to claim 26, wherein the said scanner and said microcomputer have a combined weight not exceeding 10 oz.</li><li>33. The method according to claim 26, wherein said scanner and said microcomputer have a combined weight not exceeding 7.5 oz.</li><li>34. The method according to claim 26, wherein said microcomputer has an address space not exceeding 64 Kbytes.</li><li>35. The method according to claim 26, wherein said first portion of said memory has a capacity not exceeding 32 Kbytes.</li><li>36. The method according to claim 26, wherein said second portion of said memory has a capacity not exceeding 8 Kbytes for storage of data.</li><li>37. The method according to claim 26, wherein said step of memorizing said representation is performed with a direct memory access channel.</li></ul><img file="EP0722148A2_D0002.tif" /><img file="EP0722148A2_D0003.tif" /><img file="EP0722148A2_D0004.tif" /><img file="EP0722148A2_D0005.tif" /><img file="EP0722148A2_D0006.tif" /><img file="EP0722148A2_D0007.tif" /><img file="EP0722148A2_D0008.tif" /><img file="EP0722148A2_D0009.tif" /><img file="EP0722148A2_D0010.tif" /><img file="EP0722148A2_D0011.tif" /><img file="EP0722148A2_D0012.tif" /><img file="EP0722148A2_D0013.tif" /><img file="EP0722148A2_D0014.tif" /><img file="EP0722148A2_D0015.tif" /><img file="EP0722148A2_D0016.tif" /><img file="EP0722148A2_D0017.tif" /><img file="EP0722148A2_D0018.tif" /><img file="EP0722148A2_D0019.tif" /><img file="EP0722148A2_D0020.tif" /><img file="EP0722148A2_D0021.tif" /><img file="EP0722148A2_D0022.tif" /><img file="EP0722148A2_D0023.tif" /><img file="EP0722148A2_D0024.tif" /><img file="EP0722148A2_D0025.tif" /><img file="EP0722148A2_D0026.tif" /><img file="EP0722148A2_D0027.tif" /><img file="EP0722148A2_D0028.tif" /><img file="EP0722148A2_D0029.tif" /><img file="EP0722148A2_D0030.tif" /><img file="EP0722148A2_D0031.tif" /><img file="EP0722148A2_D0032.tif" /><img file="EP0722148A2_D0033.tif" /><img file="EP0722148A2_D0034.tif" /><img file="EP0722148A2_D0035.tif" /><img file="EP0722148A2_D0036.tif" /><img file="EP0722148A2_D0037.tif" /><img file="EP0722148A2_D0038.tif" /><img file="EP0722148A2_D0039.tif" /><img file="EP0722148A2_D0040.tif" /><img file="EP0722148A2_D0041.tif" /><img file="EP0722148A2_D0042.tif" />
Contents4
48 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37 Sheet 38 Sheet 39 Sheet 40 Sheet 41 Sheet 42 Sheet 43 Sheet 44 Sheet 45 Sheet 46 Sheet 47 Sheet 48
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| CN109388985A | Cited by | China | Search report |
64 members in 5 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 371037 | United States of America | – | |
| 37103795 | United States of America | A | |
| 37103795 | United States of America | A | |
| 371037 | – | – | – |
| US19950371037 | – | – | – |
Members64
| Document | Office | Kind | |
|---|---|---|---|
| US5463214A | United States of America | A | |
| EP0722148A2This record | European Patent Office (EPO) | A2 | |
| JPH08235298A | Japan | A | |
| US5591956A | United States of America | A | |
| EP0757325A2 | European Patent Office (EPO) | A2 | |
| JPH0934982A | Japan | A | |
| US5723853A | United States of America | A | |
| US5773806A | United States of America | A | |
| US5825006A | United States of America | A | |
| US5900613A | United States of America | A | |
| US5929418A | United States of America | A | |
| US5932862A | United States of America | A | |
| US5942741A | United States of America | A | |
| US5965863A | United States of America | A | |
| WO0115982A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO0116867A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU6943400A | Australia | A | |
| AU7700800A | Australia | A | |
| US6277422B1 | United States of America | B1 | |
| WO0116867B1 | World Intellectual Property Organization (WIPO) | B1 | |
| US2001042729A1 | United States of America | A1 | |
| EP1224126A1 | European Patent Office (EPO) | A1 | |
| EP1224608A1 | European Patent Office (EPO) | A1 | |
| WO0116867A9 | World Intellectual Property Organization (WIPO) | A9 | |
| US6491223B1 | United States of America | B1 | |
| US2003042311A1 | United States of America | A1 | |
| US2003085282A1 | United States of America | A1 | |
| US6578766B1 | United States of America | B1 | |
| US2003146283A1 | United States of America | A1 | |
| US2003218067A1 | United States of America | A1 | |
| US2004004128A1 | United States of America | A1 | |
| US6698656B2 | United States of America | B2 | |
| US2004094627A1 | United States of America | A1 | |
| US2004206821A1 | United States of America | A1 | |
| US2004256464A1 | United States of America | A1 | |
| US2004256465A1 | United States of America | A1 | |
| US2004262392A1 | United States of America | A1 | |
| US2004262394A1 | United States of America | A1 | |
| US2004262395A1 | United States of America | A1 | |
| US2004262396A1 | United States of America | A1 | |
| US2004262399A1 | United States of America | A1 | |
| US2005161511A1 | United States of America | A1 | |
| US7059525B2 | United States of America | B2 | |
| US7077317B2 | United States of America | B2 | |
| US7077321B2 | United States of America | B2 | |
| US7080786B2 | United States of America | B2 | |
| US2006175413A1 | United States of America | A1 | |
| US7104456B2 | United States of America | B2 | |
| US7124948B2 | United States of America | B2 | |
| US2006255150A1 | United States of America | A1 | |
| US7147159B2 | United States of America | B2 | |
| US2006278709A1 | United States of America | A1 | |
| US2007164114A1 | United States of America | A1 | |
| US7275694B2 | United States of America | B2 | |
| US7383998B2 | United States of America | B2 | |
| US7387253B1 | United States of America | B1 | |
| US7398929B2 | United States of America | B2 | |
| US7398930B2 | United States of America | B2 | |
| US2009039163A1 | United States of America | A1 | |
| US7546954B2 | United States of America | B2 | |
| US2009308927A1 | United States of America | A1 | |
| US8397992B2 | United States of America | B2 | |
| US2013313324A1 | United States of America | A1 | |
| US8602309B2 | United States of America | B2 |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Application withdrawnWithdrawn18W | 18W | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE APPLICATION HAS BEEN WITHDRAWNSTAA | STAA | |
| Designated contracting statesAK | AK | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI |
Numbers
- Publication
- 0722148
- Publication, DOCDB
- 0722148
- Publication, EPODOC
- EP0722148
- Application
- 96420003
- Application, DOCDB
- 96420003
- Application, EPODOC
- EP19960420003
Titles3
- German
- Streifencodeleser
- English
- Bar code reader
- French
- Lecteur de codes à barres
Classification
- CPC, 6
- G06K7/10851
- G06K7/14
- G06K7/1417
- G06K7/1473
- G06K17/0022
- G06K19/06037
- IPC, 5
- G06K7 00
- G06K7 10
- G06K7 14
- G06K17 00
- G06K19 06
Designated states1
- Contracting states, 1
- Italy