WO1993003455A1 - Method and apparatus for scanning symbols - Google Patents

Method and apparatus for scanning symbols Download PDF

Info

Publication number
WO1993003455A1
WO1993003455A1 PCT/US1992/006295 US9206295W WO9303455A1 WO 1993003455 A1 WO1993003455 A1 WO 1993003455A1 US 9206295 W US9206295 W US 9206295W WO 9303455 A1 WO9303455 A1 WO 9303455A1
Authority
WO
WIPO (PCT)
Prior art keywords
symbols
representation
symbol
decoded
information
Prior art date
Application number
PCT/US1992/006295
Other languages
French (fr)
Inventor
Walt Moldskred
Jon R. Ramberg
Original Assignee
Intermec Corporation
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 Intermec Corporation filed Critical Intermec Corporation
Publication of WO1993003455A1 publication Critical patent/WO1993003455A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10851Circuits for pulse shaping, amplifying, eliminating noise signals, checking the function of the sensing device

Definitions

  • the present invention relates to a method and apparatus for scanning symbols and, more particularly, to a method and apparatus for processing the information contained in some symbols of a sequence while other symbols in the sequence are still being read.
  • a symbology input device typically uses a sensing beam to read a symbology, such as a bar code, which consists of alternating areas ("bars") having differing characteristics to which the beam is sensitive.
  • the bar code, or other symbology can be used to store information or commands which are addressed to other devices.
  • the input device After sensing the symbology, the input device then receives and interprets the fluctuations in the returning sensing beam that are caused by the symbology.
  • a non-contact scanning device to cause a beam of light to scan across an area containing a bar code.
  • Such input devices typically transform the reflected scanning beam to an electronic form for decoding.
  • Decoding includes both 1) interpreting the received reflected signal as a representation of the alternating characteristics of the symbology and 2) checking the representation and producing the symbol or symbols being represented by the symbology.
  • the decoding function is generally performed by a reader device which can include a microprocessor and associated memory devices.
  • the memory devices are used to store the program under which the microprocessor operates and tables of data which contain the correspondence between representations and the represented symbologies.
  • the scanning device can scan symbols faster than the symbols can be decoded and stored.
  • the efficiency of the operation is materially degraded because the operator often must wait after a scan for the scanning device to catch up, or data is lost.
  • the invention is a method for producing and storing representations of each of a plurality of symbols of varying contrast in. a sequence.
  • the method comprises the steps of (a) sequentially scanning the plurality of symbols to produce a corresponding plurality of symbol signals therefrom, (b) producing a representation of each of the symbols in the plurality of symbols from the corresponding symbol signal, and (c) before completing step (a), storing the representation of at least the first symbol in a first symbol buffer.
  • the invention is an apparatus for producing and storing representations of each of a plurality of symbols of varying contrast in a sequence.
  • the apparatus comprises a scanner adapted to scan the plurality of symbols and produce a plurality of symbol signals corresponding to the plurality of symbols, a circuit adapted to produce a representation of each of the symbols in the plurality of symbols from the corresponding symbol signal, and a circuit adapted to store the representation of at least the first symbol in a first symbol buffer before all of the symbols in the plurality of symbols has been scanned.
  • Figure 1 is a schematic diagram of a symbology-reading system embodying the present invention.
  • Figure 2 is a perspective view of a transaction manager incorporating a scanning laser bar code reader embodying the present inventioiL
  • Figure 3 is a top end view of the transaction manager shown in Figure 2.
  • Figure 4 is a schematic diagram of the electronic circuitry of the motor drive electronics for the transaction manager shown in Figure 2.
  • Figure 5 is a block diagram of the operation of the present invention.
  • Figure 6 is a functional block diagram of the scanning system including the present invention.
  • Figure 7 is a timing diagram describing the operation of the functional block diagram of Figure 6.
  • FIG. 1 is a schematic diagram of a symbology-reading system.
  • An input device 10 such as a handheld wand, produces a sensing beam (not shown) which is directed by the input device across an area 12 containing a symbol 14, such as a bar code.
  • the input device 10 receives reflections of the sensing beam and produces video signals containing sequences of representations of the contrasting areas in the symbol 14.
  • These video signals are typically compatible with transistor-transistor logic (TTL). They comprise analog signals that are composed of segments that are within a "high" band when the corresponding symbol 14 has one of two characteristics, such as being dark, and segments that are within a "low” band when the corresponding symbol 14 has the other of the two characteristics, such as being light.
  • TTL transistor-transistor logic
  • the TTL video signals are transmitted through some means, such as a cable 16 or other transmission means to a reader 18.
  • the transmission means can be a radio channel or any other suitable communications channel.
  • the reader 18 can, for example, be a "wedge" reader which produces data for a personal computer or be built into a handheld scanner.
  • the reader 18 typically includes electronic components, such as a microprocessor 20, which is programmed according to a program stored in a read-only memory (ROM) 22.
  • ROM 22 also contains tables which are used by the reader 18 in interpreting and decoding signals corresponding to the TTL signals received over the cable 16.
  • the tables can represent a number of possible symbologies, thus allowing the system shown in Figure 1 to be useful with several different symbologies.
  • the reader 18 also includes a random access memory (RAM) 24 which contain the program and tables and other data when the reader is in operation.
  • RAM random access memory
  • the TTL signals on the cable 16 are first transformed to series of counts in the reader 18. Each count represents the duration of the corresponding segment of the TTL signal. These series of counts are then compared to acceptable sequences of counts, depending upon the symbology being used. Based on the results of this comparison, the reader can determine which symbology is being read, and according to that symbology, what symbol is represented by the TTL signal. The reader 18 then produces an output signal, such as an ASCH signal, that represents the symbol that has been read by the input device 10.
  • the output signal is transmitted on a line 26 and the external device 28 a external device 28 for use.
  • the line 26 can, among other things, be a cable or a radio channel and the external device a host computer, or the line 26 can be an internal signal line and the external device another microprocessor which further processes, and possibly stores, the symbol.
  • the input device 10 can also be a laser scanner.
  • a laser scanner 10' of the type with which the invention is intended to operate is transaction manager 10' incorporating a part of the invention, shown in Figures 2 and 3.
  • the laser scanner 10' contains electronic circuitry and optical components contained within a case 52. Also included is a keyboard 54 and liquid crystal display (LCD) 56 for the display of bar codes which have been read by the laser scanner 10' as well as for programming a microprocessor contained within the laser scanner Iff.
  • LCD liquid crystal display
  • the laser scanner 10' Upon actuating a pair of opposed triggers 58 (one shown in Figure 2), the laser scanner 10' is activated, as will be described subsequently, to produce a scanning beam 62 of laser light
  • the scanning beam 62 passes through a window 60 placed in the top end of the laser scanner 10', as shown in Figure 3.
  • the scanning occurs in the plane 64 (shown in Figure 3).
  • the light from the scanning beam 62 is projected forwardly of the laser scanner 10'. If it reaches a reflecting surface, some of the impinging energy returns to the window 60. If the reflecting surface happens to contain bar code symbol which the scanning laser beam impinges upon, the returning light will be modulated by the pattern of reflectivities which the bar code symbol contains.
  • the light received by a photodiode (not shown) in the laser scanner 10' is amplified and processed by circuitry in accordance with techniques which are described below.
  • the wavelength of the scanning beam 62 of laser light produced within the laser scanner 10 is determined by the laser light source (not shown) which is positioned within the laser scanner.
  • the laser light source can produce a wavelength beyond the range of human vision ("invisible”) or a wavelength within the range of human vision (“visible”). If an invisible laser beam is used to read the bar code symbology, it will generally be necessary to include an auxiliary light beam to be used by the operator of the laser scanner 10' to assist the operator in placing the scanning beam 62 on the bar code symbol.
  • FIG 4 is a schematic diagram of the electronic circuitry of the motor drive electronics for the transaction manager shown in Figure 2.
  • a stepper motor 78 has, for example, the capability of producing steps which are eighteen degrees wide.
  • the motor 78 includes two windings 80A and 80B.
  • Each of the windings 80A and 80B is center-tapped, dividing the winding into two legs.
  • the center of each of the windings is held at a substantially fixed first voltage, such as the supply voltage for the electronic circuit of the laser scanner 10.
  • the supply voltage is five volts.
  • Each of the legs of the two windings 80A and 80B can be excited separately.
  • each of the legs is capable of being grounded (or held at some other voltage, if appropriate) through a circuit including one of the transistors 82 ⁇ , 822, -23 > and 824.
  • a circuit including one of the transistors 82 ⁇ , 822, -23 > and 824 For example, if an appropriate signal is applied terminals A, the gate of the transistor 82 ⁇ will cause current to pass through the upper leg of the winding 80A. This will cause the motor 78 to rotate slightly. If signals are applied to the terminals A, Abar, B, and Bbar in the correct order, the motor 78, and consequently, an oscillating optical element 36 driven by the motor, can be caused to oscillate. This, in turn, will cause the light beam 62 to be scanned through the window 60.
  • the reflected light received from the direction in which the light beam 62 is being transmitted will also cause the reflected light received from the direction in which the light beam 62 is being transmitted to be focused on the photodiode in the laser scanner 10'. If the signals are applied properly to the terminals A, Abar, B, and Bbar, the light beam 62 will be moved in successive passes within an angular range having two angular extremes. If desired, the motion of the light beam 62 between extremes can be made to have a substantially constant angular velocity.
  • the signals applied to the terminals A, Abar, B, and Bbar can be generated by an electronic logic circuit 84.
  • Logic circuit 84 also receives a pulse train, or other appropriate signal, from an oscillator 86, as well as a motor motion detect signal.
  • the motor motion detect signal can be generated from one of the legs of one of the windings 80A or 80B.
  • a summing amplifier 90 compares an the voltage on the lower leg with a reference voltage.
  • the electromotive force voltage is produced in the lower leg of winding 80A by movement of the motor 78.
  • Coincident with the voltage is a voltage that is induced in the leg by electromagnetic coupling.
  • the induced voltage is produced by the voltage used to power the upper leg of the winding 80A.
  • the resulting voltage in the leg that is being monitored for the presence of electromotive force 5 voltages is easiest to recognize when no signal is applied to the terminal Abar.
  • the result of this comparison is passed on to a thresholding device 92 to produce the motor motion detect signal.
  • the absence of a motor motion detect signal under these conditions means that either the motor 78 is not moving or the wire forming the lower leg of winding 80A is broken. Assuming that the wire is not 0 broken, the presence of a motor motion detect signal gives an indication that the motor 78 is not moving, even though appropriate signals are being applied by logic circuit 84 to the legs of its windings 80A and 80B.
  • Logic circuit 84 may be produced as a gate array. In response to a signal generated when the user simultaneously activates both of the triggers 58 5 (one being shown in Figure 2), the logic circuit 84 generates a number of signals. Among the signals it generates are the signals required to drive the motor 78 at the terminals A, Abar, B, and Bbar, a "Start of Scan” signal, and a "Motion OK" signal.
  • the "Start of Scan” signal is directed to other electronic circuitry in the laser scanner 10' to initialize signal processing which reads the bar code symbol (if o any) as represented by the signal produced by the photodiode. If the "Motion OK" signal indicates that the motor 78 is not working, other circuitry connected to logic circuit 84 within the laser scanner 10' can cause the light source of the laser scanner 10* to be deactivated.
  • FIG. 5 is a block diagram of the operation of the present invention.
  • the signals produced by the counts gathering logic 100 are provided to the next available buffer in a collection of symbol buffers 102.
  • the decode task 104 analyzes the time duration data produced by the counts gathering logic 100 and produces a representation of each of the bar code symbols in the sequence of bar code symbols that have been scanned.
  • the representation is in the form of a sequence of time counts.
  • the first time count represents the amount of time required for the input device 10 to traverse across the first bar in the bar code symbol. This time interval is measured in terms of a number of intervals measured by a clock.
  • the decode task 104 compares the representation of the symbols with the various symbology formats available to determine which symbology is used to encode the information represented by the symbols. After the symbology format has been determined, the representation of • each of the symbols is compared to acceptable symbols within the symbology format, to determine what information is represented by the symbols that have been scanned.
  • the resulting decoded representation of the first symbol is stored in one of a collection of decoded information buffers 106.
  • the buffer 102 is made available for the next representation of a symbol produced by the counts gathering logic 100.
  • the availability of at least two symbol buffers 102 makes it possible to begin decoding the first symbol which was scanned even while the first symbol is being scanned.
  • the data processing task 108 beings to operate. The data processing task 108 produces the information represented by the symbols.
  • This information can take the form of data which can be read by a symbol reader, or commands, which can be transmitted to command devices.
  • the information produced by the data processing task 108 is transmitted to an available buffer 110.
  • the information contained within the buffer 110 is operated on by the data output task 112.
  • Data output task 112 produces the data represented by the original symbols in a form which is readable by an output device. As the data output task 112 completes its operation on a first symbol stored in the buffer 110, that buffer is then made available for the next symbol produced by the data processing task 108.
  • pointer queues are produced to indicate the empty buffers that are available for storage of representations of symbols. These pointer queues are under the control of a buffer management scheme.
  • FIG. 6 is a functional block diagram of the scanning system including the present invention.
  • the input device 10 is connected to counts gathering logic 100 which operates under the control of a microprocessor 120.
  • the microprocessor 120 and the counts gathering logic 100 are both connected to a processor main memory 122, which is a random access memory (RAM).
  • the microprocessor 120 is connected to an external device 124.
  • the electronic circuitry allows for software control of transition polarity to which the circuitry is responsive. It also allows for software control of a clock divide circuit.
  • the latch to be described in the electronic circuitry could be made from multiple latches in a first-in/first-out (FIFO) buffer, which is indefinitely long. This FIFO buffer is useful in circumstances where the data to be represented in symbols which are decoded are too many for the microprocessor 120 to handle • within a useful time frame.
  • FIFO first-in/first-out
  • the input device 10 produces video pulses, corresponding to the variations in contrast, on an output line 130. If the input device 10 is a scanner, it will also produce a Start-of-Scan signal on a scan signal output line 132. If the input device 10 is not a scanning device, no Start-of-Scan signal is produced and no scan signal output line 132 exists.
  • the counts gathering logic 100 includes a transition detector 134, a pulse width counter 136, a latch 138, a direct memory access (DMA) controller 140, a clock divider 142, and a clock 144.
  • the video pulses on the output line 130 are transmitted to both the transition detector 134 and the pulse width counter 136 (for example, a 16-bit counter).
  • the transition detector 134 also receives a transition polarity control signal from the microprocessor 120 on line 146, the transition detector 134 begins to scan the video pulses on the output line 130 for a transition of the proper polarity indicating a change in contrast in the symbol being scanned.
  • the transition detector 134 detects the changes in contrast, it activates the pulse width counter 136 through a line 148.
  • the pulse width counter begins to accximulate counts as it receives them from the clock divider 142 over a divided clock line 150.
  • the pulse- width counter 136 continues to accumulate counts from the clock divider 142 until the transition detector 134 detects the next transition in the video pulses on the output line 130. Upon this occurrence, the accumulated count within the pulse width counter 132 is transferred over a line 152 to the latch 138, which can store one 16-bit word.
  • the pulse width counter 136 sends a signal to the transition detector 134 on a line 154, signifying that the pulse width counter has transferred its accumulated count to the latch 138.
  • the pulse width counter 136 is then reset It begins to accumulate counts until it receives the next signal from the transition detector 134 on the line 148.
  • the microprocessor 120 operates in accordance with a stored program. This program is shown symbolically within the rectangle representing the microprocessor 120 as a series of blocks.
  • a scan storage process 160 in the microprocessor software also receives a signal from the pulse width counter 136, indicating that data has been transferred from the pulse width counter 136 to the latch 138. If the input device 10 is a scanning device, the scan storage process 160 also receives a Start-of-Scan signal on the scan signal output line 132. The scan storage process 160 then activates the DMA controller 140 to transfer the data kept in the latch 138 into an appropriate portion of the microprocessor memory 122. The scan storage process 160 then causes the microprocessor 120 to send a- transition polarity control signal to the transition detector 134 on the line 146.
  • the software within the microprocessor 120 next moves to a label decode task 104 with information regarding which portions of the microprocessor memory 122 contain scan data provided by the scan storage process 160.
  • the label decode task then operates on the sequentially next scanned information contained within the microprocessor memory 122. It determines what symbology is being used and, according to that symbology, decodes the data contained within in the presently scanned memory block.
  • a label decode task 104 then causes the decoded representation of the symbol to be stored in an appropriate portion of the microprocessor memory 122 and passes on to an application processing task 108.
  • the application processing task 108 accesses the memory block which contains a decoded representation of the first data scanned by the input device 10.
  • the application processing task 108 processes the stored representation in accordance with the particular application for which the information is to be used and stores a representation of the information contained in that decoded representation to a further block of the microprocessor memory 122 for further processing by a data output task 112.
  • the oldest representation of information stored in the output memory blocks of the microprocessor memory 122 is read by the data output task 112.
  • the data output task 112 further processes the information to determine whether it is data or a command, and how that data or command is represented.
  • the representation of the data or command is sent by the data output task 112 to the external device 124 on an output line 168.
  • the scan storage process 160 and the label decode task 104 jointly maintain queues of pointers.
  • One queue points to the portions of the microprocessor memory 122 which have been filled with representations of scan data.
  • the other queue is a list of memory blocks which have been processed by the label decode task 104 and are now eligible to contain new representations of scan data.
  • the label decode task 104 and the application processing task 108 maintain two queues of memory block pointers, as do the application processing task 108 and the data output task 112. If the input device 10 is a wand, no "Start-of-Scan" signal exists.
  • a completed scan is not initiated by the receipt of a signal on the scan signal output line 132, but rather a completed wand scan is detected when the pulse width counter 136 overflows after the wand has scanned the last bar of the ⁇ bar code symbol.
  • the width of the pulse width counter 136 is chosen so that it is too long to overflow if a bar code symbol is being read.
  • the program contained within the microprocessor 120 initially begins operation based on the assumption that the input device is a wand and, accordingly, there will be no signal present on the scan signal output line 132. However, if Start-of-Scan transitions are detected on the scan signal output line 132, the program controlling the operation of the microprocessor 120 uses these transitions to define the beginning and end of each scan. This allows the apparatus to accommodate either a wand or a laser scanner as the input device 10 without any modification to the rest of the system.
  • the microprocessor 120 can control the frequency of the pulses provided to the pulse width counter 136 by the clock divider 142 on the divided clock line 150.
  • the microprocessor 120 can send a divide control signal on the divide control line 170, thereby dividing the frequency of the pulses provided by the clock 144 to the clock divider 142 over a line 172.
  • the current design of the electronic circuitry of Figure 6 is intended to have the application processing task 108 be replaceable with other types of processing depending upon the application or type of symbol reader the design is to be used in the application processing task 108 will set the priorities of the other tasks (tasks 160, 104, 112, and 108). Since the Application Processing task 108 has the capability of setting the task priorities, it also has the capability of altering the priorities according to need.
  • the application processing task can dynamically change the priority of the label decode task 104 to be the highest priority task for execution, and this task would execute as long as in puts existed for it to decode.
  • the application processing task 108 can create the number of tasks needed. For example, to have a barcode reader than can simultaneously output to two different output devices, two data output tasks are required, instead of only one.
  • each task can have its buffers customized for its requirements.
  • the buffers that store the representations of the symbols can be larger to accommodate all the raw information coming from the scanner, while the buffers storing the decoded symbols need only be large enough to accommodate the information represented by the symbol. If one task is relatively slow, then it can give the task that feds it more buffers into which to place information so that 5 this earlier task can continue to work with its inputs in turn, without having to wait for the slow task.
  • Figure 7 is a timing diagram describing the operation of the electronic circuitry of Figure 6.
  • the scanner video data on the output line 130 consists of an analog signal representing the sequence of varying contrasts 0 represented by the first symbol to scanned. If the input device 10 is a scanner, the scanner provides a Start-of-Scan signal on the scan signal output line 132. If the input device 10 is a wand, the period between scans will cause the pulse width counter 136 to overflow, producing a pulse on the line 174 from the pulse width counter 136 to the microprocessor 120 when the scan storage process 160 is being 5 performed (see Figure 6).
  • the occurrence of either the scanner Start-of-Scan signal or the wand counter overflow causes the scan storage process 160 to determine the next available pointer in the empty scan memory blocks queue 180.
  • the contents of the pulse width counter 136 are 0 transferred to the latch 138 for subsequent storage to the microprocessor memory 122.
  • the transfer of the data from the latch 138 to the microprocessor memory 122 is accomplished under the control of the DMA controller 140, which is supervised by the microprocessor 120 over a bi-directional line 176 between the 5 microprocessor 120 and the DMA controller 140,.
  • the DMA controller 140 sends a scan save complete signal to the microprocessor 120 on the bi-directional line 176.
  • Completion of the scan storage process 160 with respect to the first scan data signifies the beginning of the label decode task 104 on the representations of o this first scan data stored in the microprocessor memory 122.
  • the application processing task 108 is begun on the decoded representation of the first scan.
  • the data output task 112 Upon completion of the application processing task 108, the data output task 112 operates on the stored information resulting from the application processing task 108.
  • the time required for each of the 5 processes and tasks 160, 104, 108 and 112 can vary, depending upon the symbol being processed and the symbology being used. However, each of these tasks may be performed concurrently by the microprocessor 120 so that, for example, the data output task 112 can be operating on the results from the first scan while the label decode task 104 is operating on the results of the second scan.

Abstract

A method and apparatus for processing the information in a sequence of bar code symbols. The information contained in one symbol can be decoded and processed while the information in the next symbol is being gathered. A pulse width counter, under control of a microprocessor, accumulates counts representing the widths of the elements of a bar code symbol and the accumulated counts are latched into a separate latch buffer which is then transferred into the microprocessor memory by a direct memory access controller. A program in the microprocessor operates on the information stored in the microprocessor memory to decode, process and output the data and/or commands contained within a given symbol as the pulse width counter is accumulating the counts that represent the next symbol to be read. If the input device is an automated scanner, the scanner's Start-of-Scan signal is used by the microprocessor to specify the beginning and end of each scan. If the input device is a wand, the microprocessor interprets an overflow of the pulse width counter as signifying the end of the wand scan.

Description

Description
METHOD AND APPARATUS FOR SCANNING SYMBOLS
Technical Field
The present invention relates to a method and apparatus for scanning symbols and, more particularly, to a method and apparatus for processing the information contained in some symbols of a sequence while other symbols in the sequence are still being read. Background of the Invention
A symbology input device typically uses a sensing beam to read a symbology, such as a bar code, which consists of alternating areas ("bars") having differing characteristics to which the beam is sensitive. The bar code, or other symbology, can be used to store information or commands which are addressed to other devices. After sensing the symbology, the input device then receives and interprets the fluctuations in the returning sensing beam that are caused by the symbology. For example, it is known in the prior art to read symbology by means of a hand-held wand which makes contact with the surface on which the symbology is printed and reads the symbology by means of. a beam of light. It is also known to use a non-contact scanning device to cause a beam of light to scan across an area containing a bar code. Such input devices typically transform the reflected scanning beam to an electronic form for decoding.
Decoding includes both 1) interpreting the received reflected signal as a representation of the alternating characteristics of the symbology and 2) checking the representation and producing the symbol or symbols being represented by the symbology. The decoding function is generally performed by a reader device which can include a microprocessor and associated memory devices. The memory devices are used to store the program under which the microprocessor operates and tables of data which contain the correspondence between representations and the represented symbologies.
In use, the scanning device can scan symbols faster than the symbols can be decoded and stored. In applications where a large number of symbols are read within a short period of time, the efficiency of the operation is materially degraded because the operator often must wait after a scan for the scanning device to catch up, or data is lost. Summary of the Invention
It is an. object of the present invention to provide a method and apparatus for scanning a plurality of symbols, wherein some of the scanned symbols are decoded before all of the plurality of symbols have been scanned. It is another object of the present invention to provide a method and apparatus for commencing decoding of the symbols of varying contrast in a sequence before all of the plurality of symbols have been scanned.
It is still another object of the present invention to provide a method and apparatus for transmitting the data represented by a plurality of symbols of varying contrast to an output device before all of the plurality of symbols have been scanned.
In one aspect, the invention is a method for producing and storing representations of each of a plurality of symbols of varying contrast in. a sequence. The method comprises the steps of (a) sequentially scanning the plurality of symbols to produce a corresponding plurality of symbol signals therefrom, (b) producing a representation of each of the symbols in the plurality of symbols from the corresponding symbol signal, and (c) before completing step (a), storing the representation of at least the first symbol in a first symbol buffer.
In another aspect, the invention is an apparatus for producing and storing representations of each of a plurality of symbols of varying contrast in a sequence. The apparatus comprises a scanner adapted to scan the plurality of symbols and produce a plurality of symbol signals corresponding to the plurality of symbols, a circuit adapted to produce a representation of each of the symbols in the plurality of symbols from the corresponding symbol signal, and a circuit adapted to store the representation of at least the first symbol in a first symbol buffer before all of the symbols in the plurality of symbols has been scanned.
Brief Description of the Drawings
Figure 1 is a schematic diagram of a symbology-reading system embodying the present invention.
Figure 2 is a perspective view of a transaction manager incorporating a scanning laser bar code reader embodying the present inventioiL Figure 3 is a top end view of the transaction manager shown in Figure 2. Figure 4 is a schematic diagram of the electronic circuitry of the motor drive electronics for the transaction manager shown in Figure 2.
Figure 5 is a block diagram of the operation of the present invention. Figure 6 is a functional block diagram of the scanning system including the present invention.
Figure 7 is a timing diagram describing the operation of the functional block diagram of Figure 6.
Detailed Description of the Invention
Figure 1 is a schematic diagram of a symbology-reading system. An input device 10, such as a handheld wand, produces a sensing beam (not shown) which is directed by the input device across an area 12 containing a symbol 14, such as a bar code. The input device 10 receives reflections of the sensing beam and produces video signals containing sequences of representations of the contrasting areas in the symbol 14. These video signals are typically compatible with transistor-transistor logic (TTL). They comprise analog signals that are composed of segments that are within a "high" band when the corresponding symbol 14 has one of two characteristics, such as being dark, and segments that are within a "low" band when the corresponding symbol 14 has the other of the two characteristics, such as being light.
The TTL video signals are transmitted through some means, such as a cable 16 or other transmission means to a reader 18. The transmission means can be a radio channel or any other suitable communications channel. The reader 18 can, for example, be a "wedge" reader which produces data for a personal computer or be built into a handheld scanner. The reader 18 typically includes electronic components, such as a microprocessor 20, which is programmed according to a program stored in a read-only memory (ROM) 22. The ROM 22 also contains tables which are used by the reader 18 in interpreting and decoding signals corresponding to the TTL signals received over the cable 16. The tables can represent a number of possible symbologies, thus allowing the system shown in Figure 1 to be useful with several different symbologies. The reader 18 also includes a random access memory (RAM) 24 which contain the program and tables and other data when the reader is in operation. As will be described in greater detail subsequently, through algorithms contained in the program operating in the microprocessor 20, the TTL signals on the cable 16 are first transformed to series of counts in the reader 18. Each count represents the duration of the corresponding segment of the TTL signal. These series of counts are then compared to acceptable sequences of counts, depending upon the symbology being used. Based on the results of this comparison, the reader can determine which symbology is being read, and according to that symbology, what symbol is represented by the TTL signal. The reader 18 then produces an output signal, such as an ASCH signal, that represents the symbol that has been read by the input device 10. The output signal is transmitted on a line 26 and the external device 28 a external device 28 for use. The line 26 can, among other things, be a cable or a radio channel and the external device a host computer, or the line 26 can be an internal signal line and the external device another microprocessor which further processes, and possibly stores, the symbol.
The input device 10 can also be a laser scanner. One embodiment of a laser scanner 10' of the type with which the invention is intended to operate is transaction manager 10' incorporating a part of the invention, shown in Figures 2 and 3. The laser scanner 10' contains electronic circuitry and optical components contained within a case 52. Also included is a keyboard 54 and liquid crystal display (LCD) 56 for the display of bar codes which have been read by the laser scanner 10' as well as for programming a microprocessor contained within the laser scanner Iff.
Upon actuating a pair of opposed triggers 58 (one shown in Figure 2), the laser scanner 10' is activated, as will be described subsequently, to produce a scanning beam 62 of laser light The scanning beam 62 passes through a window 60 placed in the top end of the laser scanner 10', as shown in Figure 3. The scanning occurs in the plane 64 (shown in Figure 3). The light from the scanning beam 62 is projected forwardly of the laser scanner 10'. If it reaches a reflecting surface, some of the impinging energy returns to the window 60. If the reflecting surface happens to contain bar code symbol which the scanning laser beam impinges upon, the returning light will be modulated by the pattern of reflectivities which the bar code symbol contains. The light received by a photodiode (not shown) in the laser scanner 10', is amplified and processed by circuitry in accordance with techniques which are described below.
The wavelength of the scanning beam 62 of laser light produced within the laser scanner 10 is determined by the laser light source (not shown) which is positioned within the laser scanner. The laser light source can produce a wavelength beyond the range of human vision ("invisible") or a wavelength within the range of human vision ("visible"). If an invisible laser beam is used to read the bar code symbology, it will generally be necessary to include an auxiliary light beam to be used by the operator of the laser scanner 10' to assist the operator in placing the scanning beam 62 on the bar code symbol.
Figure 4 is a schematic diagram of the electronic circuitry of the motor drive electronics for the transaction manager shown in Figure 2. A stepper motor 78 has, for example, the capability of producing steps which are eighteen degrees wide. The motor 78 includes two windings 80A and 80B. Each of the windings 80A and 80B is center-tapped, dividing the winding into two legs. The center of each of the windings is held at a substantially fixed first voltage, such as the supply voltage for the electronic circuit of the laser scanner 10. Typically, the supply voltage is five volts. Each of the legs of the two windings 80A and 80B can be excited separately. To accomplish this, the end of each of the legs is capable of being grounded (or held at some other voltage, if appropriate) through a circuit including one of the transistors 82ι, 822, -23> and 824. For example, if an appropriate signal is applied terminals A, the gate of the transistor 82χ will cause current to pass through the upper leg of the winding 80A. This will cause the motor 78 to rotate slightly. If signals are applied to the terminals A, Abar, B, and Bbar in the correct order, the motor 78, and consequently, an oscillating optical element 36 driven by the motor, can be caused to oscillate. This, in turn, will cause the light beam 62 to be scanned through the window 60. It will also cause the reflected light received from the direction in which the light beam 62 is being transmitted to be focused on the photodiode in the laser scanner 10'. If the signals are applied properly to the terminals A, Abar, B, and Bbar, the light beam 62 will be moved in successive passes within an angular range having two angular extremes. If desired, the motion of the light beam 62 between extremes can be made to have a substantially constant angular velocity.
The signals applied to the terminals A, Abar, B, and Bbar can be generated by an electronic logic circuit 84. Logic circuit 84 also receives a pulse train, or other appropriate signal, from an oscillator 86, as well as a motor motion detect signal.
The motor motion detect signal can be generated from one of the legs of one of the windings 80A or 80B. For example, assuming that the motor motion detect signal is generated from the lower leg of the winding 80A, a summing amplifier 90 compares an the voltage on the lower leg with a reference voltage. The electromotive force voltage is produced in the lower leg of winding 80A by movement of the motor 78. Coincident with the voltage is a voltage that is induced in the leg by electromagnetic coupling. The induced voltage is produced by the voltage used to power the upper leg of the winding 80A. The resulting voltage in the leg that is being monitored for the presence of electromotive force 5 voltages is easiest to recognize when no signal is applied to the terminal Abar. The result of this comparison is passed on to a thresholding device 92 to produce the motor motion detect signal. The absence of a motor motion detect signal under these conditions means that either the motor 78 is not moving or the wire forming the lower leg of winding 80A is broken. Assuming that the wire is not 0 broken, the presence of a motor motion detect signal gives an indication that the motor 78 is not moving, even though appropriate signals are being applied by logic circuit 84 to the legs of its windings 80A and 80B.
Logic circuit 84 may be produced as a gate array. In response to a signal generated when the user simultaneously activates both of the triggers 58 5 (one being shown in Figure 2), the logic circuit 84 generates a number of signals. Among the signals it generates are the signals required to drive the motor 78 at the terminals A, Abar, B, and Bbar, a "Start of Scan" signal, and a "Motion OK" signal. The "Start of Scan" signal is directed to other electronic circuitry in the laser scanner 10' to initialize signal processing which reads the bar code symbol (if o any) as represented by the signal produced by the photodiode. If the "Motion OK" signal indicates that the motor 78 is not working, other circuitry connected to logic circuit 84 within the laser scanner 10' can cause the light source of the laser scanner 10* to be deactivated.
Figure 5 is a block diagram of the operation of the present invention. The signals produced by the counts gathering logic 100 are provided to the next available buffer in a collection of symbol buffers 102. Typically, there will be two buffers available to receive the signals produced by the counts gathering logic. After a buffer in the collection of symbol buffers 102 has been filled with signals, it becomes unavailable to store further signals until the signals it stores are processed by a decode task 104.
The decode task 104 analyzes the time duration data produced by the counts gathering logic 100 and produces a representation of each of the bar code symbols in the sequence of bar code symbols that have been scanned. The representation is in the form of a sequence of time counts. The first time count represents the amount of time required for the input device 10 to traverse across the first bar in the bar code symbol. This time interval is measured in terms of a number of intervals measured by a clock. The decode task 104 compares the representation of the symbols with the various symbology formats available to determine which symbology is used to encode the information represented by the symbols. After the symbology format has been determined, the representation of • each of the symbols is compared to acceptable symbols within the symbology format, to determine what information is represented by the symbols that have been scanned.
After decode task 104 has been completed, the resulting decoded representation of the first symbol is stored in one of a collection of decoded information buffers 106. After the representation has been transferred to the decoded information buffer 106, the buffer 102 is made available for the next representation of a symbol produced by the counts gathering logic 100. The availability of at least two symbol buffers 102 makes it possible to begin decoding the first symbol which was scanned even while the first symbol is being scanned. As soon as the first decoded information buffer 106 has been filled with a decoded representation of the first symbol, the data processing task 108 beings to operate. The data processing task 108 produces the information represented by the symbols. This information can take the form of data which can be read by a symbol reader, or commands, which can be transmitted to command devices. The information produced by the data processing task 108 is transmitted to an available buffer 110. The information contained within the buffer 110 is operated on by the data output task 112. Data output task 112 produces the data represented by the original symbols in a form which is readable by an output device. As the data output task 112 completes its operation on a first symbol stored in the buffer 110, that buffer is then made available for the next symbol produced by the data processing task 108. As is described subsequently, pointer queues are produced to indicate the empty buffers that are available for storage of representations of symbols. These pointer queues are under the control of a buffer management scheme. Figure 6 is a functional block diagram of the scanning system including the present invention. The input device 10 is connected to counts gathering logic 100 which operates under the control of a microprocessor 120. The microprocessor 120 and the counts gathering logic 100 are both connected to a processor main memory 122, which is a random access memory (RAM). Further, the microprocessor 120 is connected to an external device 124. The electronic circuitry allows for software control of transition polarity to which the circuitry is responsive. It also allows for software control of a clock divide circuit. Further, the latch to be described in the electronic circuitry could be made from multiple latches in a first-in/first-out (FIFO) buffer, which is indefinitely long. This FIFO buffer is useful in circumstances where the data to be represented in symbols which are decoded are too many for the microprocessor 120 to handle • within a useful time frame.
The input device 10 produces video pulses, corresponding to the variations in contrast, on an output line 130. If the input device 10 is a scanner, it will also produce a Start-of-Scan signal on a scan signal output line 132. If the input device 10 is not a scanning device, no Start-of-Scan signal is produced and no scan signal output line 132 exists.
The counts gathering logic 100 includes a transition detector 134, a pulse width counter 136, a latch 138, a direct memory access (DMA) controller 140, a clock divider 142, and a clock 144. The video pulses on the output line 130 are transmitted to both the transition detector 134 and the pulse width counter 136 (for example, a 16-bit counter). hen the transition detector 134 also receives a transition polarity control signal from the microprocessor 120 on line 146, the transition detector 134 begins to scan the video pulses on the output line 130 for a transition of the proper polarity indicating a change in contrast in the symbol being scanned. When the transition detector 134 detects the changes in contrast, it activates the pulse width counter 136 through a line 148. The pulse width counter begins to accximulate counts as it receives them from the clock divider 142 over a divided clock line 150. The pulse- width counter 136 continues to accumulate counts from the clock divider 142 until the transition detector 134 detects the next transition in the video pulses on the output line 130. Upon this occurrence, the accumulated count within the pulse width counter 132 is transferred over a line 152 to the latch 138, which can store one 16-bit word. Also, the pulse width counter 136 sends a signal to the transition detector 134 on a line 154, signifying that the pulse width counter has transferred its accumulated count to the latch 138. The pulse width counter 136 is then reset It begins to accumulate counts until it receives the next signal from the transition detector 134 on the line 148.
The microprocessor 120 operates in accordance with a stored program. This program is shown symbolically within the rectangle representing the microprocessor 120 as a series of blocks. A scan storage process 160 in the microprocessor software also receives a signal from the pulse width counter 136, indicating that data has been transferred from the pulse width counter 136 to the latch 138. If the input device 10 is a scanning device, the scan storage process 160 also receives a Start-of-Scan signal on the scan signal output line 132. The scan storage process 160 then activates the DMA controller 140 to transfer the data kept in the latch 138 into an appropriate portion of the microprocessor memory 122. The scan storage process 160 then causes the microprocessor 120 to send a- transition polarity control signal to the transition detector 134 on the line 146.
The software within the microprocessor 120 next moves to a label decode task 104 with information regarding which portions of the microprocessor memory 122 contain scan data provided by the scan storage process 160. The label decode task then operates on the sequentially next scanned information contained within the microprocessor memory 122. It determines what symbology is being used and, according to that symbology, decodes the data contained within in the presently scanned memory block. A label decode task 104 then causes the decoded representation of the symbol to be stored in an appropriate portion of the microprocessor memory 122 and passes on to an application processing task 108.
The application processing task 108 accesses the memory block which contains a decoded representation of the first data scanned by the input device 10. The application processing task 108 processes the stored representation in accordance with the particular application for which the information is to be used and stores a representation of the information contained in that decoded representation to a further block of the microprocessor memory 122 for further processing by a data output task 112.
The oldest representation of information stored in the output memory blocks of the microprocessor memory 122 is read by the data output task 112. The data output task 112 further processes the information to determine whether it is data or a command, and how that data or command is represented. The representation of the data or command is sent by the data output task 112 to the external device 124 on an output line 168.
The scan storage process 160 and the label decode task 104 jointly maintain queues of pointers. One queue points to the portions of the microprocessor memory 122 which have been filled with representations of scan data. The other queue is a list of memory blocks which have been processed by the label decode task 104 and are now eligible to contain new representations of scan data. Similarly, the label decode task 104 and the application processing task 108 maintain two queues of memory block pointers, as do the application processing task 108 and the data output task 112. If the input device 10 is a wand, no "Start-of-Scan" signal exists. Accordingly, a completed scan is not initiated by the receipt of a signal on the scan signal output line 132, but rather a completed wand scan is detected when the pulse width counter 136 overflows after the wand has scanned the last bar of the bar code symbol. The width of the pulse width counter 136 is chosen so that it is too long to overflow if a bar code symbol is being read.
The program contained within the microprocessor 120 initially begins operation based on the assumption that the input device is a wand and, accordingly, there will be no signal present on the scan signal output line 132. However, if Start-of-Scan transitions are detected on the scan signal output line 132, the program controlling the operation of the microprocessor 120 uses these transitions to define the beginning and end of each scan. This allows the apparatus to accommodate either a wand or a laser scanner as the input device 10 without any modification to the rest of the system. The microprocessor 120 can control the frequency of the pulses provided to the pulse width counter 136 by the clock divider 142 on the divided clock line 150. The microprocessor 120 can send a divide control signal on the divide control line 170, thereby dividing the frequency of the pulses provided by the clock 144 to the clock divider 142 over a line 172. The current design of the electronic circuitry of Figure 6 is intended to have the application processing task 108 be replaceable with other types of processing depending upon the application or type of symbol reader the design is to be used in the application processing task 108 will set the priorities of the other tasks (tasks 160, 104, 112, and 108). Since the Application Processing task 108 has the capability of setting the task priorities, it also has the capability of altering the priorities according to need. Thus, for example, if a symbology is selected to be read that is so complex as to require sufficient decoding processing time to bottleneck system throughput then the application processing task can dynamically change the priority of the label decode task 104 to be the highest priority task for execution, and this task would execute as long as in puts existed for it to decode. Further, if one application using this design requires more (or less) tasks than the current application, then the application processing task 108 can create the number of tasks needed. For example, to have a barcode reader than can simultaneously output to two different output devices, two data output tasks are required, instead of only one.
In addition, each task can have its buffers customized for its requirements. The buffers that store the representations of the symbols can be larger to accommodate all the raw information coming from the scanner, while the buffers storing the decoded symbols need only be large enough to accommodate the information represented by the symbol. If one task is relatively slow, then it can give the task that feds it more buffers into which to place information so that 5 this earlier task can continue to work with its inputs in turn, without having to wait for the slow task.
Figure 7 is a timing diagram describing the operation of the electronic circuitry of Figure 6. The scanner video data on the output line 130 consists of an analog signal representing the sequence of varying contrasts 0 represented by the first symbol to scanned. If the input device 10 is a scanner, the scanner provides a Start-of-Scan signal on the scan signal output line 132. If the input device 10 is a wand, the period between scans will cause the pulse width counter 136 to overflow, producing a pulse on the line 174 from the pulse width counter 136 to the microprocessor 120 when the scan storage process 160 is being 5 performed (see Figure 6). The occurrence of either the scanner Start-of-Scan signal or the wand counter overflow causes the scan storage process 160 to determine the next available pointer in the empty scan memory blocks queue 180. At the end of each transition in the scanner video data, indicating the duration the video pulse just completed, the contents of the pulse width counter 136 are 0 transferred to the latch 138 for subsequent storage to the microprocessor memory 122.
The transfer of the data from the latch 138 to the microprocessor memory 122 is accomplished under the control of the DMA controller 140, which is supervised by the microprocessor 120 over a bi-directional line 176 between the 5 microprocessor 120 and the DMA controller 140,. After the data have been transferred under control of the DMA controller 140, the DMA controller 140 sends a scan save complete signal to the microprocessor 120 on the bi-directional line 176. Completion of the scan storage process 160 with respect to the first scan data signifies the beginning of the label decode task 104 on the representations of o this first scan data stored in the microprocessor memory 122. When the decode task is completed, the application processing task 108 is begun on the decoded representation of the first scan. Upon completion of the application processing task 108, the data output task 112 operates on the stored information resulting from the application processing task 108. The time required for each of the 5 processes and tasks 160, 104, 108 and 112 can vary, depending upon the symbol being processed and the symbology being used. However, each of these tasks may be performed concurrently by the microprocessor 120 so that, for example, the data output task 112 can be operating on the results from the first scan while the label decode task 104 is operating on the results of the second scan.
It is advantageous to have a method and apparatus to begin to - decode some symbols in a sequence of symbols before all of the symbols have been scanned. It is also advantageous to have a method and apparatus to decode a symbol before scanning of the same symbol is complete.. What is described in the foregoing description is a method for treating representations of each of a plurality of symbols of varying contrast in a sequence. These treatments can indude producing and decoding each of a plurality of symbols and storing the decoded representation, producing the information represented by a plurality of symbols, and transmitting the data represented by a a plurality of symbols of varying contrast to an output device.
While the foregoing has been a discussion of a specific embodiment of the present invention, those skilled in the art will appreciate that numerous modifications to the disclosed embodiment can be made without departing from the spirit and scope of the invention. Accordingly, the invention is to be limited only by the following daims.

Claims

Claims
1. A method for decoding each of a plurality of symbols of varying contrast in a sequence, comprising the steps of:
(a) sequentially scanning the plurality of symbols to produce a corresponding plurality of symbol signals therefrom;
(b) producing a representation of each of the symbols in the plurality of symbols from said corresponding symbol signal;
(c) storing said representation of each of the symbols in a corresponding symbol buffer;
(d) decoding said stored representation of each of the symbols to provide a decoded representation, said decoding of said stored representation for one or more of the symbols being commenced while said step of sequentially scanning is being performed; and
(e) storing said decoded representation of each of the symbols in a corresponding decoded information buffer.
2. A method for decoding each of a plurality of symbols of varying contrast in a sequence, comprising the steps of:
(a) sequentially scanning the plurality of symbols to produce a corresponding plurality of symbol signals therefrom;
(b) producing a representation of each of the symbols in the plurality of symbols from said corresponding symbol signal;
(c) storing said representation of each of the symbols in a corresponding symbol buffer;
(d) decoding said stored representation of each of the symbols to provide a decoded representation; and
(e) storing said decoded representation of each of the symbols in a corresponding decoded information buffer, said storage of said decoded representation for one or more of the symbols being commenced while said step of sequentially scanning is being performed.
3. A method for decoding each of a plurality of symbols of varying contrast in a sequence, comprising the steps of:
(a) sequentially scanning the plurality of symbols to produce a corresponding plurality of symbol signals therefrom; (b) producing a representation of each of the symbols in the plurality of symbols from said corresponding symbol signal;
(c) storing said representation of each of the symbols in a corresponding symbol buffer;
(d) decoding said stored representation of each of the symbols to provide a decoded representation; and
(e) storing said decoded representation of each of the symbols in a corresponding decoded information buffer, said decoding of said stored representation and said storage of said decoded representation for one or more of the symbols being commenced while said step of sequentially scanning is being performed.
4. A method for decoding each of a plurality of symbols of varying contrast in a sequence, comprising the steps of:
(a) sequentially scanning the plurality of symbols to produce a corresponding plurality of symbol signals therefrom;
(b) producing a representation of each of the symbols in the plurality of symbols from said corresponding symbol signal;
(c) storing said representation of each of the symbols in a corresponding symbol buffer;
(d) decoding said stored representation of each of the symbols to provide a decoded representation of information;
(e) storing said decoded representation of each of the symbols in a corresponding decoded information buffer; and
(f) reading said stored decoded representation of each of the symbols from said decoded information buffer and producing said information represented by said stored decoded representation, said reading of said stored decoded representation for one or more of the symbols being commenced while said step of sequentially scanning is being performed.
5. The method of claim 4, wherein said information produced by step (f) is data information in a form suitable for reading by a symbol reader.
6. The method of claim 5, further comprising the step of (g) storing said information represented by the first symbol in an information storage buffer.
7. The method of daim 4, wherein said information produced by step (f) is command information which can be executed by a symbol reader.
8. The method of claim 7, further comprising the step of (g) causing said symbol reader to execute said command information.
9. A method for transmitting the data represented by a plurality of symbols of varying contrast to an output device, comprising the steps of:
(a) sequentially scanning the plurality of symbols to produce a corresponding plurality of symbol signals therefrom;
(b) produdng a representation of each of the symbols in the plurality of symbols from said corresponding symbol signal;
(c) storing said representation of each of the symbols in respective symbol buffers;
(d) decoding said stored representations;
(e) storing said decoded representation of each of the symbols in respective decoded information buffers;
(f) reading said decoded representation of each of the symbols from said decoded information buffers and producing data represented by each of the symbols;
(g) storing said data represented by each of the symbols in respective decoded data buffers; and
(h) before completing step (a), reading and transmitting said data represented by the first symbol to the output device.
10. Apparatus for producing and storing representations of each of a plurality of symbols of varying contrast in a sequence, comprising: a scanner adapted to scan the plurality of symbols and produce a plurality of symbol signals corresponding to the plurality of symbols; a microprocessor; a memory; a circuit connected to the microprocessor and adapted to produce a representation of each of the symbols in the plurality of symbols from the corresponding symbol signal; and a drcuit adapted to store the representation of at least the first symbol in a first symbol buffer in the memory through a direct memory access operation.
11. Apparatus for decoding each of a plurality of symbols of varying contrast in a sequence, comprising: a scanner adapted to sequentially scan the plurality of symbols and produce a corresponding plurality of symbol signals; a circuit adapted to produce a representation of each of the symbols in the plurality of symbols from said corresponding symbol signal; a symbol buffer corresponding to each representation of each of the symbols in the plurality of symbols and adapted to store said representation of each of the symbols; a circuit adapted to decode said stored representation of each of the symbols and provide a decoded representation, said decoding of said stored representation for one or more of the symbols being commenced while said scanner is the plurality of symbols; and a decoded information buffer adapted to store said decoded representation of each of the symbols in a corresponding decoded information buffer.
PCT/US1992/006295 1991-08-02 1992-07-30 Method and apparatus for scanning symbols WO1993003455A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US73962291A 1991-08-02 1991-08-02
US739,622 1991-08-02

Publications (1)

Publication Number Publication Date
WO1993003455A1 true WO1993003455A1 (en) 1993-02-18

Family

ID=24973118

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1992/006295 WO1993003455A1 (en) 1991-08-02 1992-07-30 Method and apparatus for scanning symbols

Country Status (2)

Country Link
US (1) US5548108A (en)
WO (1) WO1993003455A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7387253B1 (en) 1996-09-03 2008-06-17 Hand Held Products, Inc. Optical reader system comprising local host processor and optical reader
US5942741A (en) * 1994-03-04 1999-08-24 Welch Allyn, Inc. Apparatus for optimizing throughput in decoded-output scanners and method of using same
US5852286A (en) * 1996-03-20 1998-12-22 Psc, Inc. Method and apparatus for reducing bandwidth limited noise in bar code scanner
AU3497497A (en) 1996-06-21 1998-01-07 Norand Corporation Too long code reader performing coded image decoding
US7148923B2 (en) * 2000-09-30 2006-12-12 Hand Held Products, Inc. Methods and apparatus for automatic exposure control
US7274418B2 (en) * 2003-10-21 2007-09-25 Symbol Technologies, Inc. Method and system for improving the contrast of LCDs using circular polarization

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0067414A2 (en) * 1981-06-11 1982-12-22 Nippondenso Co., Ltd. Method and apparatus for reading a bar code
EP0074485A2 (en) * 1981-09-14 1983-03-23 Maria Grazia Riaviz Improvement in the optical wand scanner
DE3306088A1 (en) * 1982-04-21 1983-10-27 Burr-Brown Research Corp., 85734 Tucson, Ariz. METHOD AND DEVICE FOR READING A BAR CODE
US4450349A (en) * 1981-03-11 1984-05-22 International Standard Electric Corporation Bar code with optical reading device
US4567361A (en) * 1983-05-23 1986-01-28 Gca Corporation Reticle bar code and method and apparatus for reading same
EP0176933A2 (en) * 1984-09-27 1986-04-09 Tokyo Electric Co., Ltd. Bar code reading apparatus
EP0265148A2 (en) * 1986-10-14 1988-04-27 Hewlett-Packard Company Control of a device using bar codes
EP0328773A2 (en) * 1988-02-19 1989-08-23 GRUNDIG E.M.V. Elektro-Mechanische Versuchsanstalt Max Grundig holländ. Stiftung & Co. KG. Remotely controlled transmitter with a bar code reader

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4344152A (en) * 1979-11-29 1982-08-10 International Business Machines Corp. Buffer memory control circuit for label scanning system
US4308455A (en) * 1980-06-26 1981-12-29 E. I. Du Pont De Nemours And Company Method for decoding bar-coded labels
US4831610A (en) * 1986-03-04 1989-05-16 Pioneer Electronic Corporation Method and apparatus for interactive control of a data recording medium playback apparatus using bar code access
JP2604358B2 (en) * 1986-07-10 1997-04-30 富士通株式会社 Barcode demodulator
US4879456A (en) * 1987-06-18 1989-11-07 Spectra-Physics, Inc. Method of decoding a binary scan signal
JPH01263637A (en) * 1988-04-15 1989-10-20 Fuji Photo Film Co Ltd Information reader of photographic film position
US4855581A (en) * 1988-06-17 1989-08-08 Microscan Systems Incorporated Decoding of barcodes by preprocessing scan data
JPH07101427B2 (en) * 1989-03-29 1995-11-01 富士通株式会社 Bar code reading method and apparatus
US5189289A (en) * 1989-05-17 1993-02-23 Fujitsu Limited Distinguishing bar code types by comparing bar block sizes
JP2738098B2 (en) * 1990-01-08 1998-04-08 株式会社デンソー Optical scanning device
US5144118A (en) * 1990-03-05 1992-09-01 Spectra-Physics, Inc. Bar code scanning system with multiple decoding microprocessors
US5258605A (en) * 1990-03-13 1993-11-02 Symbol Technologies, Inc. Scan generators for bar code reader using linear array of lasers

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4450349A (en) * 1981-03-11 1984-05-22 International Standard Electric Corporation Bar code with optical reading device
EP0067414A2 (en) * 1981-06-11 1982-12-22 Nippondenso Co., Ltd. Method and apparatus for reading a bar code
EP0074485A2 (en) * 1981-09-14 1983-03-23 Maria Grazia Riaviz Improvement in the optical wand scanner
DE3306088A1 (en) * 1982-04-21 1983-10-27 Burr-Brown Research Corp., 85734 Tucson, Ariz. METHOD AND DEVICE FOR READING A BAR CODE
US4567361A (en) * 1983-05-23 1986-01-28 Gca Corporation Reticle bar code and method and apparatus for reading same
EP0176933A2 (en) * 1984-09-27 1986-04-09 Tokyo Electric Co., Ltd. Bar code reading apparatus
EP0265148A2 (en) * 1986-10-14 1988-04-27 Hewlett-Packard Company Control of a device using bar codes
EP0328773A2 (en) * 1988-02-19 1989-08-23 GRUNDIG E.M.V. Elektro-Mechanische Versuchsanstalt Max Grundig holländ. Stiftung & Co. KG. Remotely controlled transmitter with a bar code reader

Also Published As

Publication number Publication date
US5548108A (en) 1996-08-20

Similar Documents

Publication Publication Date Title
EP0262924B1 (en) Method and apparatus for bar code data autodiscrimination
US7275694B2 (en) Portable bar code reading device generating first and second electronic representations of a substrate
EP0709797B1 (en) Laser scanning system and scanning method for reading bar codes
US5825006A (en) Optical reader having improved autodiscrimination features
US5900613A (en) Optical reader having improved reprogramming features
US5932862A (en) Optical reader having improved scanning-decoding features
USRE37635E1 (en) System for enabling decoding of bar code and other symbols with a digital microcomputer connected via the input/output port thereof to the scanner
US5705800A (en) Laser scanner system for controlling the optical scanning of bar codes
US5789728A (en) Two-dimensional bar code scanner interface
US20040206821A1 (en) Autodiscriminating bar code reading apparatus having solid state image sensor
CA2303301C (en) Bar code symbol reading system
US5548108A (en) Method and apparatus for scanning symbols
US6742709B2 (en) Bar code symbol reading system employing electronically-controlled raster-type laser scanner for reading bar code symbols during hands-on and hands-free modes of operation
JP3711775B2 (en) Bar code reader and program recording medium thereof
JP3639968B2 (en) Bar code reader
JPH02135581A (en) Signal processor for bar code reader

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IT LU MC NL SE

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA