Optimizing an interrogation of a tag population
Embodiments of the present invention provide a method and system for optimizing an interrogation of a tag population that includes a plurality of tags. The method includes defining a number of time slots allocated to a first read cycle, and selecting a different number of time slots allocated to a second read cycle based on a duration of the first read cycle.
Latest Symbol Technologies, Inc. Patents:
- SYSTEM FOR AND METHOD OF STITCHING BARCODE FRAGMENTS OF A BARCODE SYMBOL TO BE READ IN AN IMAGING-BASED PRESENTATION WORKSTATION
- Context aware multiple-input and multiple-output antenna systems and methods
- APPARATUS AND METHOD FOR MANAGING DEVICE OPERATION USING NEAR FIELD COMMUNICATION
- METHOD AND APPARATUS FOR PERFORMING POWER MANAGEMENT FUNCTIONS
- POINT-OF-TRANSACTION WORKSTATION FOR, AND METHOD OF, IMAGING SHEET-LIKE TARGETS
This application is a continuation of U.S. patent application Ser. No. 10/403,019 to Arneson et al., entitled “Method and System for Optimizing an Interrogation of a Tag Population, filed Apr. 1, 2003, now allowed, which application claims priority to U.S. Provisional Application No. 60/368,526, titled “Method and System for Optimizing an Interrogation of a Tag Population,” filed Apr. 1, 2002, now abandoned, the disclosure of each application is incorporated by reference in its entirety.BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to electronic inventory systems, and more particularly to the use of radio frequency identification (RFID) tags using anti-clash protocols to perform data applications.
2. Description of the Related Art
In modern business, maintaining an accurate inventory of merchandise is crucial. In the past, taking an inventory was an entirely manual process, and therefore slow and expensive. Modern automated inventory systems have improved the accuracy and speed of this process while reducing its cost. With the development of modern manufacturing methods, such as Just-In-Time Delivery, even faster and more accurate inventory methods are required. In some businesses, inventories must be taken almost instantaneously.
One approach to electronic inventory systems is the use of RFID tags. In such systems, an RFID tag is attached to each item to be inventoried. Each tag includes a microprocessor and RF circuitry capable of responding to signals sent from a tag reader. In an ideal inventory system, each tag is assigned a unique tag identification number (Tag ID).
In one such system, the reader transmits a series of clock pulses to the tags. Each clock pulse defines a time slot. Each tag selects a particular time slot using a random number generator and then counts the received time slots. When a given tag's time slot is reached, the tag transmits its Tag ID to the reader. The reader records the received Tag IDs to create an inventory of the tags read.
This approach can suffer from a problem known as “time slot contention.” Time slot contention occurs when more than one tag selects the same time slot for Tag ID transmission. When this occurs, the reader is bombarded by more than one tag transmission simultaneously. Because the tag signals interfere with each other, the reader cannot identify the tags.SUMMARY OF THE INVENTION
The present invention is directed to a method and system for optimizing an interrogation of a tag population that includes a plurality of tags.
In accordance with an embodiment of the present invention there is provided a method for optimizing an interrogation of a tag population that includes a plurality of tags. The method includes defining a number of time slots allocated to a first read cycle, and selecting a different number of time slots allocated to a second read cycle based on a duration of the first read cycle.
In accordance with another embodiment of the present invention there is provided a system for optimizing an interrogation of a tag population that includes a plurality of tags. The system includes means for defining a number of time slots allocated to a first read cycle, and means for selecting a different number of time slots allocated to a second read cycle based on a duration of the first read cycle.
The present invention advantageously enables tag interrogation applications, such as automatic real time inventory control, to be performed quickly as well as more frequently.BRIEF DESCRIPTION OF THE FIGURES
The present invention will be described with reference to the accompanying drawings.
The present invention is a system and method for electronic inventory using radio frequency identification (RFID) tags and an anti-clash protocol. The anti-clash protocol solves the above-mentioned problem of time slot contention. The present invention is particularly suited for use in conducting electronic inventories. In particular, the present invention is ideally suited to use for automated real-time inventory control for industries such as distribution and retailing. For example, the present invention enables taking rapid inventories of retail and warehouse items, as well as tracking the location of these items.
The present invention involves the use of an RFID tag that is inexpensive, disposable, and ideally suited to mass production. The RFID tag can be inventoried nearly instantaneously using an unobtrusive, low power radio signal.
In one embodiment, the tag is assigned a single Tag ID. This Tag ID can be divided into segments, wherein each segment can be used by a tag reader as described below during interrogation (particularly during a contention resolution process). In an another embodiment, each tag can also be assigned a manufacturer number, representing the identity of the manufacturer of the tag, and a lot number, representing the manufacturing lot of the tag. Thus, the tag is permanently assigned three separate numbers, a Tag ID, a manufacture number and a lot number. Having three separate numbers is obviously the same as concatenating the three numbers together to form a single number. In yet another embodiment, overlapping sections of the Tag ID can be used by the reader during contention resolution (e.g., bits 0-2 during a first read and bits 1-3 during a second read). Again, the size of these number (i.e., the number of bits) is dependent on the specific application and/or inventory.
In a preferred embodiment, this assignment takes place at the time of tag manufacture. For example, the lot number may specify the date and time of manufacture, the wafer number of the integrated circuit on the tag, etc. In a preferred embodiment, the Tag ID, manufacturer number and lot number are laser-programmed into the tag at the time of tag manufacturer. Therefore, these values are permanently fixed at the time of manufacture and cannot subsequently be changed. The manufacturer number and lot number can be encrypted.
As described above, time slot contention occurs when multiple tags transmit to the reader in the same time slot. The tag reader can detect this contention in many ways that are well known in the art. For example, each tag could error-code its transmission, for example by using a checksum. When the tag reader receives a tag transmission, it computes a checksum. If two tags transmit simultaneously, the computed checksum will not match the transmitted checksum. When tag reader 104 determines that these checksums do not match, then time slot contention has been detected. Other methods of detecting time slot contention may be employed with the present invention, as would be apparent to one skilled in the art.
If during the first tag read contention was detected, as shown by the “yes” branch from step 204, then a second tag read is performed, as shown in a step 206. While the first tag read was based on Tag IDs, the second tag read is based on a separate value that was permanently programmed into the tag at the time of tag manufacture. In a preferred embodiment, that second value is the manufacturer number of the tag.
During the second read, each contended tag ID is resolved separately. For each contended Tag ID, only those tags that contended for that Tag ID are polled. In the second read cycle, tag manufacturer numbers are used to select the time slot during which the tag will transmit. If no contention is detected in the second read, as shown by the “no” branch from step 208, then the Tag IDs of the tags that contended in the first read have been recorded by the tag reader, and the inventory is complete. However, if time slot contention is detected during the second read, as shown by the “yes” branch from step 208, then a third tag read is performed, as shown in a step 210.
In the third read, each contended manufacturer number is resolved separately. For each contended manufacturer number, only those tags that contended for that manufacturer number are polled. In the third read cycle, a third permanent tag identifier is used to break the contention of the second read. These third identifiers are programmed into each tag at the time of manufacture. In a preferred embodiment, this third value is the lot number of the tag.
In the unlikely event that the third tag read does not resolve all time slot contentions, further similar read operations may be performed without departing from the spirit and scope of the present invention. For example, further tag reads could be based on identification numbers, such as company names or numbers, bar code numbers associated with the item attached to each tag 102, and product identifiers that identify the types of items attached to each tag 102.
Now the architecture of the tag is described.
In the depicted embodiment, system power for each tag is provided by a charging signal transmitted by the reader prior to the tag reading operation. Power converter 304 is used to convert the received charging signal to system power. Such power converter circuits are well known in the art. In a preferred embodiment, the charging signal need only be present for a short time to fully charge the tags. In an alternative embodiment, power converter 304 is replaced by a battery. In that embodiment, the tag reader 104 is not required to transmit a charging signal.
In an alternate embodiment, power controller 304 is augmented by a storage capacitor. In this embodiment, storage capacitor provides a tag with operating power when it is too far away from the reader to be charged by the charging signal. Also, in an alternate embodiment, power converter can be an energy harvester. Energy harvesting involves capturing RF energy in any portion of the RF spectrum and converting the energy into electrical power signals as opposed to information signals. Energy harvesting is well known to persons skilled in the relevant arts. For a tag 102, energy harvesting properties are determined by the characteristics of antenna 302. A fractal antenna is well suited to both energy harvesting and tag 102 operation, and is well known to persons skilled in the relevant arts.
Demodulator 306 receives signals from tag reader 104 via antenna 302. In a preferred embodiment, the received signals comprise a charging signal and one or more instructions. These instructions are described in detail below. One such instruction includes a count instruction that instructs the tags to increment their counter/shift registers 312. In one embodiment, the count instruction causes counter/shift registers 312 to increment by one; in alternative embodiments, the instruction causes counter/shift registers 312 to increment by other values.
In a preferred embodiment, the instructions are transmitted by tag reader 104 using an amplitude-modulated RF signal using a several hundred kilohertz baud rate and a 900 megahertz carrier frequency. Tag reader 104 may vary the bit rate of these transmissions. For example, tag reader 104 may reduce the bit rate if it senses the existence of a noisy RF environment. The instructions are sent by the reader with a “return to center” data format; this format is well-known in the art. The instructions are decoded by the tag to generate digital input for instruction interpreter 310 and a system clock. The system clock is recovered by clock recovery circuit 308.
Waveform detector 340 receives an RF signal from antenna 302 and converts this signal into a baseband signal 348. In addition, waveform detector 340 monitors the ambient RF environment. If waveform detector detects spurious RF above an interference threshold, it will wait before outputting a baseband signal 348. Waveform detector 340 can be implemented through RF receiver designs well known to persons skilled in the relevant arts.
Baseband signal 348 comprises a series of pulses, wherein a short pulse represents a logical “0” and an extended pulse represents a logical “1”. According to a preferred embodiment, each pulse indicates the transition from a presence of RF energy to an absence of energy in the RF signal received by waveform detector 340. However, in alternate embodiments, the pulses in baseband signal 348 may represent other occurrences in the RF signal.
According to this implementation, a clock signal is generated from a rising edge of each pulse. Baseband signal 348 is input to first detector 342 and second detector 344.
First detector 342 generates a first output signal 350. First output signal 350 comprises an extended pulse for each pulse, whether short or extended, in baseband signal 348. In essence, first detector 342 generates a periodic clock signal comprising a series of extended pulses. Thus, the circuit illustrated in
Second detector 344 generates a second output signal 352. Second output signal 352 comprises an extended pulse for each extended pulse in baseband signal 348.
According to the present invention, each pulse in second output signal 352 indicates a logical “1” received from reader 104. In contrast, each pulse in third output signal 354 indicates a logical “0” received from reader 104. Third output signal 354 is generated by inputting first output signal 350 and an inverted second output signal 352 into logic gate 346. In a preferred embodiment, logic gate 346 is an AND gate. Second output signal 352 is inverted according to techniques well known to persons skilled in the relevant arts.
Instruction interpreter 310 receives instructions from demodulator 306, and provides control signals and data to counter/shift register 312 and multiplexer 318. Laser programmable taps 314a-314c are permanently programmed with predetermined values at the time of tag manufacture. In a preferred embodiment, taps 314a-314c are programmed by laser-cutting or linking specific output taps of a collection of inverters. As would be apparent to one skilled in the relevant arts, other technologies can be used to permanently program these values without departing from the scope of the present invention. In a preferred embodiment, taps 314a are programmed with the Tag ID, taps 314b are programmed with the tag manufacturer number and taps 314c are programmed with the tag lot number.
Decoder logic circuits 316a-316c are used to monitor the outputs of programmable taps 314a-314c. For example, when the value in counter/shift register 312 is the same as the value programmed into Tag ID taps 314a, Tag ID logic 316a decodes a Tag ID enable signal, which is provided to multiplexer 318.
Control line 322 is used by instruction interpreter 310 to indicate to multiplexer 318 which read cycle is being executed (that is, which permanently-programmed tag value is being tested). For example, during the second read cycle, the manufacturer number is being tested. When the counter/shift register 312 reaches the manufacturer number programmed into manufacturer taps 314b, manufacturer number logic 316b provides an enable signal to multiplexer 318. This enable signal is selected by control line 322 to cause shift register 312 to shift its contents (the Tag ID) to modulator 320 for transmission to tag reader 104.
As will be described below, the second read cycle is initiated by providing a second read instruction to instruction interpreter 310. In response to that instruction, instruction interpreter indicates to multiplexer 318 that the manufacturer number is being tested. In response, multiplexer 318 gates only the manufacturer number enable signal to counter/shift register 312. This enable signal causes counter/shift register 312 to shift the count, which is equivalent to the manufacturer number, to modulator 320 for transmission to the reader. In this way, the manufacturer number of a tag is transmitted to tag reader 104 when the count reaches the manufacturer number. Thus, the time at which the tag transmits during the second read cycle is controlled by the tag manufacturer number. As further described below, this mechanism is used to solve time slot contention problems.
Modulator 320 transmits the data provided by counter/shift register 312 to tag reader 104 via antenna 302 using amplitude-modulated (AM) RF back scatter signals. In a preferred embodiment a several hundred kilohertz baud rate is used with a 900 megahertz carrier frequency. Because the tag system clock is derived from the signal provided by the tag reader, the data sent by the tag to the reader is clock-synchronized with the reader.
In one embodiment, tag 102 also contains one or more sensors 324. Data collected by sensors 324 is routed to counter/shift register 312 each time tag 102 transmits. The sensor data is appended to the tag transmission and recorded by tag reader 104. In one embodiment, sensor 324 is a gas sensor that detects the presence of chemicals associated with drugs or precursor chemicals of explosives, such as methane. A tag equipped with such a sensor is a powerful mechanism for quickly locating items containing contraband or explosives. In another embodiment, sensor 324 is a temperature detector that generates information indicating the ambient temperature of tag 102. In a further embodiment, sensor 324 is an accelerometer that generates information indicating movement and vibration of tag 102. Such sensors are well known to persons skilled in the relevant arts.
An optical sensor is another example of sensor 324. Optical sensors detect the presence (or absence) of light. Certain optical sensors can detect light of certain colors. Color detection enables a tag 102 to perform functions such as monitoring whether a traffic light at a traffic intersection is red, yellow, or green.
Sensor 324 may also be a pressure sensor. Pressure sensors can detect fluid pressure, atmospheric pressure, or any pressure acting on tag 102. Other examples of sensor 324 include an electrical field sensor, a magnetic field sensor, a radiation sensor, and a biochemical sensor. Sensor 324 may be implemented as a microsensor that is produced using integrated circuit fabrication technologies and/or micromachining. Micromachining is a set of processes which produces three-dimensional microstructures using the same photographic techniques and batch processing as for integrated circuits. Micromachining involves producing three-dimensional microstructures using photographic techniques and batch processing methods similar to those used in the production of integrated circuits.
The architecture of tag reader 104 is now described.
Application-specific tag reader circuitry is represented by PCMCIA (Personal Computer Memory Card International Association) card 420. In a preferred embodiment, details regarding specific tags, applications, encryption scheme, sensor configuration and data, and modes of operation to be used can be embodied in PCMCIA card 420. In this embodiment, a generic tag reader 104 can be used for multiple inventory applications by merely using different PCMCIA cards.
The remaining circuitry in
In a preferred embodiment, tag contention is not addressed immediately after it occurs, but rather is resolved in a further read cycle. When a tag contention is detected, tag reader 104 stores the contended time slot number in memory 424. In a further read cycle, tag reader 104 retrieves each contended time slot number from memory 424 for resolution. To keep track of the time slots, tag reader 104 employs a clock/counter 406. Clock/counter 406 responds to the count instructions transmitted by tag reader 104 to tags 102. In this way, the contents of clock/counter 406 are the same as the contents of counter/shift register 312 in each tag 102. Thus, when tag reader 104 detects time slot contention, it can record the contended time slot number by storing the contents of clock/counter 406.
Command controller 404 generates data and instructions under the control of computer 402. These data and instructions are transmitted via modulator 408 and antenna 410 to tags 102. Tag transmissions are received via antenna 410 and demodulator 412 by digital processor 416, which communicates with computer 402 via command controller 404. In one embodiment, a system clock may be derived by clock recovery circuit 414 for use in analyzing tag transmissions. The PCMCIA card 420 is coupled to tag reader 104 via a PCMCIA decoder 418. A manual interface 422 provides the operator with control over the tag reader 104.2.0 Modes of Operation
2.1 Timed Broadcast Read
As described above, the present invention provides at least three modes of operation: timed broadcast read, immediate read, and specific tag read. Timed broadcast read allows an ensemble of tags (from a few to several thousand) to be read within a time frame of a few seconds.
2.1.1 First Read Cycle
In an alternative embodiment, the tag does not transmit its Tag ID, but instead transmits a simple response signal, when a tags counter/shift register 312 output matches the Tag ID programmed into Tag ID taps 314a. The response signal need not convey any information describing the identity of the tag. Indeed, the response signal need not convey any information at all. The response signal need only indicate that a tag is present. In this embodiment, tag reader 104 keeps track of the count in the tag counter/shift register 312 by using an internal counter/clock 406. Counter/clock 406 is initialized in step 504, and is incremented in step 508 in response to the transmitted clock instruction. When tag reader 104 receives a response signal, tag reader 104 records the count in counter/clock 406. Because the tag transmitted the response signal when the count in its counter/shift register 312 equaled its Tag ID, and because the counter/clock 406 also contains that count, the presence of the particular tag that transmitted the response signal is recorded by recording the count in counter/clock 406. In a preferred embodiment, the response signal contains sufficient information for tag reader 104 to detect response signal contention when it occurs.
If more than one tag transmits in the same time slot, tag reader 104 detects time slot contention. If time slot contention is detected, as shown by the “yes” branch from step 514, tag reader 104 stores the Tag ID, as shown in a step 516. Tag reader 104 keeps track of the Tag ID using counter/clock 406. Tag reader 104 will use the Tag IDs to resolve the time slot contention for those Tag IDs in a second read cycle, which is described below and corresponds to step 206 in
2.1.2 Second Read Cycle
In a preferred embodiment, the present invention employs a second read cycle to solve time slot contentions that occurred during the first read cycle.
Tag reader 104 then transmits the first in a series of increment instructions, as shown in a step 608. In response, the contending tags increment their counter/shift registers 312, as shown in a step 610. When the output of a tag's counter/shift register 312 matches the tag manufacturer number permanently programmed into manufacturer number taps 314b, as indicated by the “yes” branch from step 612, the tag transmits its manufacturer number, as shown in a step 614. Alternatively, the reader could send out the count number, which the tag(s) used to compare to its programmed time slot.
In an alternative embodiment, the tag transmits a simple response signal as described above. Tag reader 104 then records the tag's manufacturer number by storing the count in its counter/clock 406, as described above for the Tag ID.
If more than one tag transmits its manufacturer number simultaneously, tag reader 104 detects the contention, as indicated by the “yes” branch from step 616, and tag reader 104 stores the contended manufacturer number for future contention resolution in a third read cycle, as shown in a step 618. Alternatively, the reader could resolve the contention immediately.
Tag reader 104 steps tags 102 through a predetermined range of possible manufacturer numbers. When the last count is reached, as indicated by the “yes” branch from step 620, the process of steps 604 through 618 is repeated for the next contended Tag ID. When the last contended Tag ID has been examined, as indicated by the “yes” branch from step 622, the second read cycle is complete.
2.1.3 Third Read Cycle
In one embodiment, the present invention employs a third read cycle to resolve any time slot contentions that occurred during the second read cycle.
For each contended manufacturer number, tag reader 104 causes tags 102 to count in unison. When a tag's count matches its lot number, the tag transmits that lot number. In this way, the tag's lot number controls the time slot during which the tag transmits. Because it is highly unlikely that more than one tag will have the same Tag ID, manufacturer number, and lot number, it is extremely unlikely that two tags will transmit in the same time slot during the third read. Therefore, tag manufacturer number contention is resolved by the third read. In the unlikely event that multiple tags have the same Tag ID, manufacturer number, and lot number, contention can be resolved using a further read cycle based on other tag identification data, as would be apparent to one skilled in the relevant art using the above description.
Tag reader 104 then transmits the first in a series of increment instructions, as shown in a step 708. In response, the contending tags increment their counter/shift registers 312, as shown in a step 710. When the output of a tag's counter/shift register 312 matches the tag lot number permanently programmed into lot number taps 314c, as indicated by the “yes” branch from step 712, the tag transmits its manufacturer number, as shown in a step 714. Alternatively, the reader could send out the count number, which the tag(s) uses to compare to its programmed time slot number.
In an alternative embodiment, the tag transmits a simple response signal as described above. Tag reader 104 then records the tag's lot number by storing the count in its counter/clock 406, as described above for the Tag ID.
If more than one tag transmits its lot number simultaneously, tag reader 104 detects the contention, as indicated by the “yes” branch from step 716, and tag reader 104 stores the contended manufacturer number for future contention resolution in a further read cycle, as shown in a step 718.
Tag reader 104 steps tags 102 through a predetermined range of possible lot numbers. When the last count is reached, as indicated by the “yes” branch from step 720, the process of steps 704 through 718 is repeated for the next contended manufacturer number. When the last contended manufacturer number has been examined, as indicated by the “yes” branch from step 722, the third read cycle is complete.
2.2 Immediate Read
Immediate read mode is used to read individual tags one at a time. In this mode, tag reader 104 transmits an instruction to a tag 102 that causes the tag to bypass the time slot counting operation and to immediately transmit its Tag ID number. This mode is useful for rapid Tag identification (on the order of milliseconds) when the individual tag rapidly passes through the reader zone. An example application is the reading of tags affixed to automobiles passing through an automatic toll booth.
2.3 Specific Tag Read
Specific tag read is used to determine whether one particular tag is present in an ensemble of tags. Tag reader 104 accomplishes this by transmitting the particular Tag ID, manufacturer number, and lot number of the tag 102 that is sought. Because a complete set of Tag identification parameters is transmitted, only the tag being sought should respond. This approach is useful for retrieving a specific tagged item from an ensemble of items, for example for locating a particular inventory item in a warehouse or retail store.3.0 Tag Manufacture
In order to be commercially viable, the RFID tags of the present invention must be inexpensive to manufacture. The present invention encompasses a unique method of manufacture to achieve this goal.
In one embodiment, tag 102a incorporates multiple tamper-resistant features. Tag 102a can be fixed to a first item by wrapping the tag about a portion of the item and joining tag portions 914a and 914b. In one embodiment, one area of 914 includes ASIC 904 so that attempting to separate areas 914a and 914b after joining destroys the ASIC and renders the tag inoperable. In another embodiment, tag 102a includes one or more perforated tear lines 912. Perforated tear lines 912 tear easily, so that any tampering with tag 102a causes the tag to separate at a tear line 912. This tearing provides an immediate visual indication of tampering. Tear lines 912 can be placed across critical portions of the tag circuitry, such as antenna 302a, such that tag separation along tear line 912 renders the tag inoperative.
As described above, tag 102 is powered by a power source, such as a battery, in one embodiment. In this embodiment, the battery may be formed by placing an anode 910a in one joining area 914a of the tag and placing a cathode 910c in the other joining area of the tag 914b. At least one of anode 910a and cathode 910c is coated with a electrolytic material and covered by a release liner. In another embodiment, tag 102 is powered by a capacitor. In that embodiment, at least one of anode 910a and cathode 910c is coated with a dielectric material and covered by a release liner. Other power sources may be used with tag 102 without departing from the spirit and scope of the present invention, as would be apparent to one skilled in the relevant art.
The two joining areas 914a,b of tag 102 are joined by removing the release liner and joining cathode 910c to anode 910a, thereby forming the power source of the tag. Any attempt to separate areas 914a,b after joining will destroy the power source formed by anode 910a and cathode 910c, thereby rendering the tag inoperative. In another embodiment, separating areas 914a,b after joining also gives a visual indication of tampering. For example, separating areas 914a,b could reveal a large “VOID” sign or some other image or break pattern.
Now the manufacture of tag 102 according to a preferred embodiment is described with reference to
Antenna 302 and bonding pads 908 are printed onto a flexible substrate using a conductive ink or material, as shown in a step 808. Such substrates are readily available from a variety of vendors. Such conductive inks are widely available. Finally, the ASIC is flip-chip bonded to bonding pads 908 using a conductive adhesive, as shown in a step 810. One such conductive adhesive is a “z-axis” adhesive, which is well-known in the relevant art and is commercially available. The use of such an adhesive is advantageous in that adhesive conducts only in the z-axis. Therefore, even if the adhesive is applied so as to inadvertently join two bonding pads, the two pads do not short together. In one embodiment the ASIC is also hermetically sealed. In a preferred embodiment, ASIC 904 is manufactured using silicon-on-insulator technology.
As mentioned above, a key consideration in the manufacture of tags 102 is cost. A large component of the cost of manufacture of such items is the cost of testing the ASICs to ensure operability. In a preferred embodiment of the present invention, operability testing is deferred until tag manufacture is complete, as shown in a step 812. Also in the preferred embodiment, tags 102 are manufactured in bulk on a long continuous strip of substrate. The strips can be rolled for easy packaging, delivery, and dispensing. Before packaging, the strip is passed through a testing apparatus, where each tag in the strip is tested for operability. However, rather than attempting to discard inoperable tags, inoperable tags are merely marked as inoperable and are retained on the strip. Then, when a person encounters a tag marked inoperable in a roll of tags, the person merely discards the inoperative tag. This process saves considerable cost, and allows the tags of the present invention to be manufactured very inexpensively.4.0 Example Applications
The present invention is ideally suited to use in real time inventory control and electronic article surveillance. In a retail clothing store, for example, a tag can be attached to each article of clothing on display. One or more tag readers can then be used to maintain an inventory of the clothing articles. For example, a tag reader can be placed on each rack or display of clothing. Periodic reads of the rack or display can disclose exactly when an item is removed.
Tag readers placed at the exits to the store can prevent shoplifting. In this example, each item bears a tag. Because the tags are extremely small, they can be placed within an article so as to prevent removal or even discovery. For example, a tag could be placed within a label, button or seam of a garment, the plastic center of a compact disk, or the case of a videocassette, to facilitate both overt and covert operation.
The store maintains an inventory database of all the articles within the store. Each entry in the database represents a garment and contains the Tag ID of the tag embedded in the article. The entry also indicates whether the item has been purchased. When a tag of an unpurchased article is detected by a door reader, an alarm is sounded, indicating that the article is being shoplifted.
When an item is purchased, its tag ID is removed from the inventory database. Therefore, when a tag attached to a purchased article moves past the door reader, no alarm is sounded. Used alone or with security cameras, the present invention provides an effective tool to combat shoplifting.
In another embodiment, the present invention could be used to implement an “unattended store,” i.e. one with no salespersons or clerks. A customer could enter the store, select items and go to a purchasing area. In the purchasing area, a tag reader would identify the customer's selections. The customer would then be presented with a bill. The customer could pay the bill with a credit card, whereupon the unattended store would remove the purchased item from its inventory database. The customer could then leave the store with the purchases. Alternatively, instead of presenting the customer with a bill, an account like a credit card account, store account, or debit account could be automatically charged, debited, or authenticated.5.0 Example Instruction Set
Now an instruction set is described that can be used with the present invention. As would be apparent to one skilled in the relevant art, other instructions can be employed with the present invention without departing from its spirit and scope. In a preferred embodiment, the reader sends an instruction stream to the tag instruction register that is Nir bits long, where Nir is the number of stages in the instruction register. The instructions have the following data field format and symbolic binary values:
Np: Preamble: alerts the tags that the reader is starting communication. This data field is useful to prevent spurious noise from “spoofing” the tags and to initialize and synchronize the tag clock. The preamble starts with a long stream of “0” pulses from the reader, which starts the tag clock and initializes the tag instruction register. The 0's are followed by Np bits of a series of “1's”, which alerts the tag that a reader instruction is following. Between instruction words, the reader sends out 0's for tag clock generation. When the preamble is present, the symbolic binary for this field is “1”. A “0” represents the absence of the preamble.
Nw: Last instruction/in process/wake up: This data field is useful for dynamic read environments, where tags are moving into and out of the read zone, and prevents tags entering the read zone during a read cycle from erroneous communication. These tags will be “woken up” at the next read cycle to properly be identified. The “last instruction” sub-field notifies the tag to shut down. The symbolic binary form for this field is:
Nt; Timed read cycle: Second read/first read: This field instructs the tag to go into the specified timed read cycle (first, second or third), with the following symbolic binary form:
Ni; Immediate read: When the symbolic binary form is “1”, this field instructs the tag to immediately send out its ID number.
Nr; Specific tag read: When the symbolic binary form is “1”, this field instructs the tag to go into the specific tag read mode as designated by Nt, above. The reader will cycle through three instructions to set the tag to the proper state. The first is with Nt=001 and sets the Tag ID counter for the targeted tag. The second is with Nt=010 and sets up the second counter with the targeted manufacturer number. The third is with Nt=100 and sets up the third counter with the targeted lot number. Then the reader sends out clock with Nt=111 to read only the targeted tag at every clock instruction.
Nm; Clock/Count: This field sets the counter shift registers (SR's) into either the clocked mode to increment the counter by the next clock signal, or into the SR mode, awaiting the following time slot, wafer/lot number, or date instruction stream. It has the symbolic binary form:
Ns; Clock signal/time slot. This data field contains either specific counter instruction data, or a stream of zeroes if the tag is being instructed into the count mode. The symbolic binary form is “1” when there is a specific counter instruction, and “0” for the count mode. When Nm=01 and Ns=0, a clock instruction counter, Nc, is enabled.
Nc: Clock instruction signal to increment counter/shift registers 312. The symbolic binary form is:
The clock instruction counter, Nc, allows the reader to “short cycle” the tag through the count sequence, bypassing the Nir instruction sequence, which can be as long as 32, 48, or 64 bits. Nc, on the other hand, could theoretically be as short as 2 bits, although 4 bits is implemented here. Once the clock instruction is sent out, the reader waits for a tag response. If none comes within a specified time frame, it sends out another clock instruction. When a tag responds with its ID number, the reader waits until the ID number transmission is completed before sending out the next clock instruction. If only a few tens to a few hundreds of tags are in the ensemble, this “short cycle” clocking can accelerate tag read time by as much as a factor of 10. On completing the clock read cycle, the full instruction register will be re-enabled for the next sequence of instructions from the reader, such as for any required contention resolution, or for tag shut down.
When the reader is “short cycling” the tags by simply sending out clock instructions, spurious RF could cause a tag to lose its count. This will be detected by the reader when the tag responds with its full ID because the count will not match the received ID. If there is no contention when this occurs, the reader will successfully read this tag. If such contention occurs due to one or more tags losing their count, the reader could resolve this contention by sending out the time slot number and working backwards in time slots until this contention problem is resolved.
The n-bit instruction stream is organized as follows: Nir=Nc/Ns/Nm/Nr/Ni/Nt/Nw/Np, with each field comprised of sub-fields in the format described above. This provides the generalized symbolic binary form of Nir=xx/x/xx/x/x/xxx/xxx/x where the x's represent either 1's or 0's.
As described above, this instruction stream comprises 21 states. However, according to the present invention, other states can exist. As is apparent to persons skilled in the relevant arts, these 21 states can be described by 5 bits. The bits necessary to hold the contents of a specific read count preferably requires 12 bits. Therefore, according to this instruction set, a 17 bit instruction stream is required. However, an embodiment of the present invention comprises error correction coding that would increase the required size of the instruction stream.
Also, as described above, the instruction stream is interpreted by each tag's instruction interpreter 310. Instruction interpreter 310 can be implemented with a bit register. Using the 21 state example instruction set described above, a 17 bit register is required. However, instruction interpreter may employ other size bit registers. In addition, instruction interpreter 310 can be implemented with a comparator, software, a hardwired state machine, or any combination thereof.
An example instruction stream is shown below for each operational mode of the tag. The 1's represent a resulting action or state directed by an instruction sub-field while 0's represent the off state of an instruction sub-field.
The Timed Broadcast Mode of operation described herein is an example of contention resolution through multiple read cycles. The present invention provides a technique for defining a plurality of read cycles so that the aggregate number of counts through the cycles is minimized. This minimization shortens the time required to perform contention resolution. Thus, the present invention advantageously enables tag interrogation applications, such as automatic real time inventory control, to be performed quickly as well as more frequently.
For interrogations that provide unique identification, each tag has a distinct tag address. For multiple read cycle interrogations, these addresses are decomposed into a plurality of sub-addresses, such as tag ID, manufacturing number, and lot number. Each sub-address corresponds to a particular read cycle of a multiple read cycle interrogation according to protocols, such as the timed broadcast mode. Using the timed broadcast mode description above as an example, a tag ID sub-address is allocated to a first read cycle, a manufacturing number sub-address is allocated to a second read cycle, and a lot number sub-address is allocated to a third read cycle.
A read cycle is defined by its sequential order with respect to other read cycles and by its number of time slots. Thus, in the example provided above, the three read cycles occur in a predetermined order, and each of these cycles has a number of time slots that correspond to a portion of an address space. This address space provides for the unique identification of a tag population through the use of a predetermined number of available Tag IDs, a predetermined number of available manufacturing numbers, and a predetermined number of available lot numbers. (Again, the Tag ID, manufacturing number and lot number can be considered a single, unique address, which has three sub-addresses.)
A challenge to interrogation protocols involves the ability to quickly interrogate a tag population. An address space can accommodate a large number of tags 102. For example, an address space that provides 10,000 time slots for each of three read cycles can support a tag population having as many as a trillion tags 102. Often, only a portion of an address space is occupied by a tag population. For instance, if a tag population of one thousand tags is interrogated by an RFID system that uses such an address space, only a billionth of the one trillion available addresses would be occupied.
The present invention provides techniques that flexibly define an address space to optimize multiple read cycle interrogations. This involves decomposing an address space into a plurality of read cycles that each have a distinct number of time slots. The number of time slots for each read cycle is designed to provide optimal interrogation efficiency for a particular tag population. In addition, the number of time slots allocated to each read cycle can be adaptively changed based on measured efficiency.
These techniques are described with reference to a tag population having a number of tags, m. Interrogation of this population is performed through N read cycles to provide contention resolution. Each read cycle has a number of time slots, ni, where i is an index that designates a particular read cycle. For each read cycle, i, the number of time slots, ni, is set to optimize the interrogation process.
6.1 Address Spaces
According to the present invention, one or more dimensions of a multidimensional address space are altered to match the tag population that is being interrogated. Thus, for each altered dimension (i.e., read cycle), the corresponding number of time slots is reduced to eliminate unnecessary iterations or counts through empty addresses.
6.2 Interrogation Efficiency
The present invention advantageously provides enhanced interrogation efficiency. Interrogation efficiency is a performance metric determined by comparing the actual time it takes to perform an interrogation against a minimum possible interrogation time. Minimum possible interrogation time is the time required to perform an interrogation when no contention occurs. Thus, for a tag population having m tags, minimum interrogation time is achieved when the identity of all m tags are resolved in the first read cycle. Interrogation efficiency is calculated according to the following equation:
- E is interrogation efficiency;
- Tactual is the actual time it takes to perform an interrogation of a tag population; and
- Tmin is the minimum possible time required to interrogate the same tag population.
Interrogation efficiency can be calculated from probability models that, the expected number of contention errors in a particular read cycle, i, is expressed by the term nC
Actual interrogation time is calculated from Ci according to the following relationship:
- Tactual is actual interrogation time;
- TS is the interrogation time per time slot;
- ni is the number of time slots for read cycle i; and
jis the expected number of contentions for read cycle j.
The above relationship is based on probability models that are apparent to persons skilled in the relevant art(s).
Assuming a random tag distribution, the vendor can calculate the probable number of tags from:
The present invention advantageously allows for the creation of various efficiency profiles. However, each of these various efficiency profiles provides optimal interrogation efficiency for different size tag populations. One technique of providing optimal interrogation efficiency involves adjusting the number of time slots allocated to the first read cycle.
6.3 Static Optimization
In a step 1502, an expected tag population is estimated for a given application. This step comprises estimating a normal value of m.
Next, in a step 1504, an efficiency profile is selected that matches the estimate performed in step 1502. Large number statistics used here show that n1=1.21 sqrt(m) is an optimal selection, with n2=0.5n1, and n3=2, and subsequent read cycles set at 2 time slots each. This is one example of an optimization scheme. Other statistical assumptions would yield different optimization results.
After step 1504, a step 1506 is performed. In this step, interrogation read cycles are defined according to efficiency profile selected in step 1504. This step comprises the steps of setting the number of time slots allocated to one or more read cycles. These values may be pre-coded into a reader for particular application.
6.4 Dynamic Optimization
In a step 1002, an unknown tag population is dynamically evaluated. This step comprises setting a first guess for n1=n1
Next, in a step 1004, an efficiency profile is selected that matches the evaluation performed in step 1002. As with the use for static optimization, setting n2=0.5n1, and ni=2 for I=3 to N yields maximum efficiency (greater than 80%). Alternatively, a fixed number of time slots for n1 can be queried with varying “step” sizes. For example, if n1 comprised of 1024 time slots, the reader could interrogate the first cycle in 8 steps each comprising 128 time slots. It would then calculate m for the resulting contention value, nC
After step 1004, a step 1006 is performed. In this step, interrogation read cycles are defined according to efficiency profile selected in step 1004. This step comprises the steps of setting the number of time slots allocated to one or more read cycles.
A step 1008 follows step 1006. In step 1008, interrogation efficiency is measured. This measurement is performed over a measurement epoch. A measurement epoch is one interrogation (i.e., one iteration through one or more read cycles to identify each tag in a tag population). However, an interrogation epoch can be a plurality of interrogations.
After step 1008, a step 1010 is performed. In step 1010, reader 104 determines whether the interrogation efficiency measured in step 1008 is acceptable. This step comprises determining whether the measured interrogation efficiency is greater than a predetemnined threshold. If the measured interrogation efficiency is acceptable (e.g, greater than a predetermined threshold), then operation proceeds to step 1008, where interrogation efficiency will be measured in future interrogation epochs. Otherwise, if the measured interrogation efficiency is not acceptable, then operation proceeds to step 1002, where the measured efficiency is used to perform tag population evaluation.
6.5 Exemplary Address Space
In an embodiment, each tag in a tag population is uniquely marked with a set of sub-addresses that are associated with a various aspects of a tag or product manufacturing process. This approach enables sub-addresses to repeat in a predictable way within a manufacturing process. An example of such an addressing convention is provided below in Table 3. In addition to encoding manufacturing information, this addressing convention includes a sub-address that corresponds to product type. For a tag, product type indicates the object that the tag is to be attached. An exemplary scheme used for product type encoding is Universal Product Codes (UPCs). This convention accommodates approximately 1000 million different unique tag addresses.
The addressing convention above provides a scheme that enables manufacturing and product information to be determined from a tag address. However, this convention does not preclude utilization of the address space optimization techniques described herein.
The specific scheme of Table 3 is by way of example only. An alternative scheme could simply be the UPC code plus a serial number that gives uniqueness to all products within that particular UPC code. This and other schemes will be evident by those skilled in the art and would be included in the spirit and scope of the invention. An alternative scheme could simply be the UPC code plus a serial number that gives uniqueness to all products within that particular UPC code. This and other schemes will be evident by those skilled in the art and would be included in the spirit and scope of the invention.
Best efficiency in particular applications may be obtained through a hashing type code introduced into the first portions of the tag ID. The hashing code can be computed from the remainder of the tag address The use of a hashing code results in a near even distribution of tags in the first read cycles given any sparsely populated address space. One such example would be the use of a cyclic redundancy code (CRC). This is a preferable choice as it can also be used to fairly accurately detect transmission errors as well. Other hashing mechanisms for particular applications will be obvious to those skilled in the art and would be included in the spirit and scope of the invention.7.0 CONCLUSION
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to persons skilled in the relevant arts that various changes in form and detail can be made therein without departing from the spirit and scope of the invention. Thus the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
1. A method of optimizing an interrogation of a tag population that includes a plurality of tags, comprising:
- defining a number of time slots allocated to a first read cycle; and
- selecting a different number of time slots allocated to a second read cycle based on a duration of the first read cycle.
2. The method of claim 1, further comprising:
- computing a number of tags in the tag population based on the number of time slots allocated to the first read cycle.
3. The method of claim 1, further comprising:
- defining a step size for the first read cycle, wherein the step size comprises at least one time slot.
4. The method of claim 3, further comprising:
- selecting a different step size for the second read cycle based on the duration of the first read cycle.
5. The method of claim 1, further comprising:
- measuring interrogation efficiency during a measurement epoch;
- determining whether the measured interrogation efficiency is acceptable; and
- repeating the defining and selecting steps if the measured interrogation efficiency is not acceptable.
6. The method of claim 5, wherein the determining step comprises the step of determining whether the measured interrogation efficiency is greater than a predetermined threshold.
7. The method of claim 5, wherein the measuring step comprises the step of calculating: E=Tmin/Tactual, wherein:
- E is the interrogation efficiency;
- Tactual is the actual time it takes to perform an interrogation of a tag population; and
- Tmin is the minimum possible time required to interrogate the same tag population.
8. A system for optimizing an interrogation of a tag population that includes a plurality of tags, comprising:
- means for defining a number of time slots allocated to a first read cycle; and
- means for selecting a different number of time slots allocated to a second read cycle based on a duration of the first read cycle.
9. The system of claim 8, further comprising:
- means for computing a number of tags in the tag population based on the number of time slots allocated to the first read cycle.
10. The system of claim 8, further comprising:
- means for defining a step size for the first read cycle, wherein the step size comprises at least one time slot.
11. The system of claim 10, further comprising:
- means for selecting a different step size for the second read cycle based on the duration of the first read cycle.
12. The system of claim 8, further comprising:
- means for measuring interrogation efficiency during a measurement epoch;
- means for determining whether the measured interrogation efficiency is acceptable; and
- means for repeating the defining and selecting means if the measured interrogation efficiency is not acceptable.
13. The system of claim 12, wherein the means for determining comprises means for determining whether the measured interrogation efficiency is greater than a predetermined threshold.
14. The system of claim 12, wherein the means for measuring comprises means for calculating: E=Tmin/Tactual, wherein:
- E is the interrogation efficiency;
- Tactual is the actual time it takes to perform an interrogation of a tag population; and
- Tmin is the minimum possible time required to interrogate the same tag population.
International Classification: H04Q 5/22 (20060101); H04L 12/26 (20060101);