Source: https://patents.google.com/patent/US10049246B2/en
Timestamp: 2019-04-22 15:03:49+00:00

Document:
2015-12-16 Assigned to HAND HELD PRODUCTS, INC. reassignment HAND HELD PRODUCTS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BREMER, EDWARD C.
A miniature barcode reading module for an electronic device minimizes the size of the memory of the processor die allowing the module to be used in small form factor electronic devices. The module may include an image sensor package operative to scan a barcode and a processor die coupled to the image sensor package. The processor die may include a processor, a memory, a flash memory, a plurality of barcode scanning algorithms loaded into the flash memory, and an image capture port operatively connected to the image sensor package. Barcode scanning firmware can determine if a barcode decoding algorithm is loaded in the memory, determine if the loaded barcode decoding algorithm is a correct barcode decoding algorithm or an incorrect barcode decoding algorithm, unload an incorrect barcode decoding algorithm from the memory, and load a correct barcode decoding algorithm into the memory.
The present application claims the benefit of U.S. Provisional Patent Application No. 62/095,881 for MINI-BARCODE READING MODULE WITH FLASH MEMORY MANAGEMENT filed Dec. 23, 2014. The foregoing patent application is hereby incorporated by reference in its entirety.
Embodiments of the present invention generally relate to the field of barcode reading devices and, more specifically, to a reduced size barcode reading module with flash memory management that may be used in small form factor electronic devices.
Indicia readers, such as barcode scanners, are typically configured to acquire information from indicia and then decode that information for use in data systems. Traditional indicia-reading systems embrace various kinds of devices used to read indicia, including handheld barcode scanners. As used herein, the terms barcode, indicia, and code-symbol are intended in their broadest sense to include linear barcodes (e.g., a linear barcode or 1D barcode), matrix barcodes (e.g., 2D barcodes, QR Code, Aztec Code, Data Matrix), and Optical Character Recognition (OCR) enabled labels.
Handheld indicia-reading devices, such as handheld barcode scanners and mobile computers, are currently used in numerous environments for various applications (e.g., warehouses, delivery vehicles, hospitals, etc.). In this regard, a large percentage of retailers, notably grocery stores and general consumer merchandisers, currently rely on barcode technology to improve the efficiency and reliability of the checkout process. Traditionally, a user interacts with a handheld indicia-reading device via a trigger or a touchscreen display.
Imager barcode readers, such as two-dimensional code readers, need to be efficient as to size and cost in order to promote usage in mobile computing applications. In this regard, the industry seeks to achieve smaller form factors and reduced power usage for the barcode reading modules in order to facilitate inclusion in increasingly smaller form factor devices, such as smart phones, personal digital assistants (PDAs), and portable-data terminals (PDTs) where space and battery power pose limitations.
Therefore, a need exists for more efficient indicia-reading devices, including but not limited to a reduced size barcode reading module with flash memory management that may be used in small form factor electronic devices.
The present disclosure relates to an exemplary miniature barcode reading module for an electronic device and a related method of use. The exemplary device minimizes the size of the memory on the processor die and includes firmware optimized to load and unload barcode decoding algorithms on demand. Thus, the exemplary device allows the module to be used in small form factor electronic devices.
The exemplary module may include an image sensor package operative to scan a barcode, and a processor die coupled to the image sensor package. The processor die has a processor, a memory, a flash memory, a plurality of barcode scanning algorithms loaded into the flash memory, and an image capture port operatively connected to the image sensor package. The processor may further include barcode scanning firmware that operates: (i) to determine if a barcode decoding algorithm is loaded in the memory; (ii) to determine if the loaded barcode decoding algorithm is a correct barcode decoding algorithm or an incorrect barcode decoding algorithm; (iii) to unload an incorrect barcode decoding algorithm from the memory; and (iv) to load a correct barcode decoding algorithm into the memory.
The exemplary embodiment of the method and module described herein allows for size reduction and cost reduction by integrating the optical system into a small module and by integrating the electrical system into a small package. Further, the memory management of the device loads and unloads barcode decode algorithms based on a selection to keep the memory footprint small and still achieve fast decode times by running the most critical decode algorithms in faster memory, such as static random-access memory (SRAM), while storing unused barcode decoding algorithms in slower memory, such as flash memory.
FIG. 1 is a block diagram of an exemplary barcode reading module with flash memory management.
FIG. 2 is a flowchart of an exemplary method of reading a barcode.
FIG. 3 is a flowchart of another exemplary method of reading a barcode.
Referring now to the drawings (FIGS. 1-3), an exemplary embodiment of a miniature indicia reading module is illustrated and will hereinafter be more fully described. Generally, the exemplary module may include an image sensor package operative to scan indicia (e.g., a barcode), and a processor die coupled to the image sensor package. The processor die may include a processor, a memory, a flash memory, a plurality of barcode scanning algorithms loaded into the flash memory, and an image capture port operatively connected to the image sensor package. The processor may further include barcode scanning firmware that operates: (i) to determine if a barcode decoding algorithm is loaded in the memory; (ii) to determine if the loaded barcode decoding algorithm is a correct barcode decoding algorithm or an incorrect barcode decoding algorithm; (iii) to unload an incorrect barcode decoding algorithm from the memory; and (iv) to load a correct barcode decoding algorithm into the memory.
Referring to FIG. 1, an exemplary miniature barcode reading module with flash memory management is shown at reference numeral 100. Compared to a typical reading module, size reduction and cost reduction is achieved in the exemplary module by integrating the optical system (i.e., the image sensor package) into a small module and by integrating the electrical system into the processor die.
The image sensor package includes a low-cost, small, integrated-imager that combines a module holder, sensor die, and optical filters (such as IR-cut filter or Tri-band-pass filter) in a hermetically sealed package (i.e., to seal the package from the outside environment). A lens module in an optical housing is focused and attached to the hermitically sealed package.
The sensor die includes a chip on board (COB) image sensor package with a customized wire bonding arrangement (i.e., to make electrical connections for the sensor die electronics) to achieve the lowest module height possible. The image sensor package may alternatively be mounted via socket or flex connections with extra cost and larger dimensions.
The image sensor package may further include an optional illuminator and an aimer (e.g., an LED or bank of LEDs). The illuminator is configured to illuminate a barcode to be scanned to enhance the image quality. The aimer aids the user in accurately aiming the image sensor at the barcode to be scanned.
The processor die may include a low-cost, small, processor with an on-chip switching power regulation control processor (Power Reg) (e.g., to maintain stable power supply), image capture port, SRAM, serial flash, and a communication interface (e.g., USB, Bluetooth, Near Field communication, or RFID interface port). The processor can receive a barcode image from the image sensor package, decode the barcode, and output the decoded barcode to the electronic device for further processing. To provide additional memory for running code and storing data, an external serial FLASH IC may be used.
To keep the processor die size small, the size of the SRAM memory may be limited to provide storage for a minimal set of image frames of a scanned barcode (e.g., 3 to 6 image frames) and to run a small number of barcode decoding algorithms. The image frame size can be in the range of 0.3 Megabyte (MB) to 1.2 MB so that the total SRAM memory size may be limited to a range of 1.0 MB to 10 MB. A limited size range limits the footprint of the memory on the processor die, further reducing the size of the module 100. About 5 MB of memory is needed to run only a small number of barcode decoding algorithms such as PDF417, UPC/EAN, C128 on the processor at one time. If other decoding algorithms are needed, then they are selected either by user choice, or automatically determined by an application running on the processor.
Referring to FIG. 2, the firmware of the miniature barcode reading module is optimized to load and unload the barcode decoding algorithms on demand. Specifically, the firmware determines if a barcode decoding algorithm is loaded in the memory, which may be done before or after the capture of the image of the barcode. If a barcode decoding algorithm is loaded in the memory, the firmware determines if the loaded barcode decoding algorithm is a correct barcode decoding algorithm, or if it is an incorrect barcode decoding algorithm based on the type of barcode the user desires to decode.
If an incorrect barcode decoding algorithm is currently loaded in the memory, the firmware unloads the incorrect barcode decoding algorithm from the memory. The firmware then loads the correct barcode decoding algorithm from flash memory into the memory. This process may be manually instituted by the user or automatically by the firmware. Once the correct decoding algorithm is loaded in memory, the barcode is decoded and outputted for further processing by the electronic device.
Referring to FIG. 3, another exemplary embodiment of the method of reading a barcode is shown, which differs in that the image of the barcode is captured after the correct barcode decoding algorithm is selected and loaded into memory.
In summary, it can be appreciated from the foregoing description and illustrations that the disclosed module and method of managing flash memory in an electronic device uniquely allows the size of the memory on the processor die to be significantly reduced, thus allowing the module to be used in small form factor electronic devices. By loading and unloading barcode decoding algorithms on demand, the size of the memory can be reduced, thus allowing the module to have reduced manufacturing cost and reduced size, which in turn allows the module to be included in small form factor electronic devices, such as smartphones, handheld PDAs, PDTs, and computers.
loading, via the firmware, a correct barcode decoding algorithm from a flash memory disposed on the processor die into the static memory, the flash memory having a plurality of barcode scanning algorithms.
2. The method of claim 1, wherein the barcode decoding algorithm is operative to decode PDF417 formatted barcodes.
3. The method of claim 1, wherein the barcode decoding algorithm is operative to decode UPC/EAN formatted barcodes.
4. The method of claim 1, wherein the barcode decoding algorithm is operative to decode C128 formatted barcodes.
5. The method of claim 1, wherein the static memory holds three to six images and a barcode decoding algorithm.
6. The method of claim 1, wherein a scanned barcode image size is limited to about 0.3 MB to about 1.2 MB.
7. The method of claim 1, wherein the static memory is about 1.0 MB to about 10 MB.
load a correct barcode decoding algorithm selected from the plurality of barcode scanning algorithms loaded into the flash memory disposed on the processor die into the static memory.
9. The module of claim 8, comprising an illuminator integrated with the image sensor package.
10. The module of claim 8, comprising an aimer integrated with the image sensor package.
11. The module of claim 8, comprising an interface operatively connected to the processor and configured to transmit decoded barcodes.
12. The module of claim 8, comprising an integrated power regulation control configured and arranged to provide power to the processor.
13. The module of claim 8, wherein the correct barcode decoding algorithm is automatically selected for loading by the processor.
14. The module of claim 8, wherein the correct barcode decoding algorithm is manually selected for loading by a user.
15. The module of claim 8, wherein one of the plurality barcode decoding algorithms is operative to decode PDF417 formatted barcodes.
16. The module of claim 8, wherein one of the plurality of barcode decoding algorithms is operative to decode UPC/EAN formatted barcodes.
17. The module of claim 8, wherein one of the plurality of barcode decoding algorithms is operative to decode C128 formatted barcodes.
18. The module of claim 8, wherein the static memory holds three to six images and a barcode decoding algorithm.
19. The module of claim 8, wherein a scanned barcode image size is limited to about 0.3 MB to about 1.2 MB.
20. The module of claim 8, wherein the static memory is about 1.0 MB to about 10 MB.
Chinese Notice of Reexamination in related CN Application No. 201521145481.1, dated May 3, 2017, 3 pages.
Chinese Office Action in related CN Application 2015211454811, dated May 11, 2016; 6 pages, English Machine Translation provided.
Chinese Rejection in related CN Application No. 2015211454811, dated Aug. 1, 2016, 5 pages (machine translation provided).
English-translation of Chinese Notice of Reexamination in related CN Application No. 201521145481.1, dated May 3, 2017, 6 pages.
European Extended Search Report in related EP Application 15200876.9, dated Apr. 25, 2016, 6 pages.
Extended Search Report in related European Application No. 17159738.8 dated Jun. 23, 2017, pp. 1-5.
Search Report and Written Opinion in commonly owned European Application No. 15156203.0 dated Jul. 8, 2015, pp. 1-7.

References: Application No. 62
 Application No. 201521145481
 Application No. 2015211454811
 Application No. 201521145481
 Application No. 17159738
 Application No. 15156203