U.S. patent application number 10/752458 was filed with the patent office on 2004-07-22 for method and system for contention resolution in radio frequency identification systems.
This patent application is currently assigned to Honeywell International Inc.. Invention is credited to Voegele, Kevin D..
Application Number | 20040142655 10/752458 |
Document ID | / |
Family ID | 24572129 |
Filed Date | 2004-07-22 |
United States Patent
Application |
20040142655 |
Kind Code |
A1 |
Voegele, Kevin D. |
July 22, 2004 |
Method and system for contention resolution in radio frequency
identification systems
Abstract
A method and system for resolving contentions among passive
identification tags. A reader may divide a possible range of tag
values into a number of smaller ranges. For each smaller range, the
reader may then poll the tags to determine which tags have tag
values that fall within the smaller range. If more than one tag
responds simultaneously, then the reader may further divide the
smaller range into even smaller ranges and poll the tags with
respect to those even smaller ranges. Once the range partition gets
small enough, the reader may then opt to poll the tags for a match
of each possible value in the range, rather than partitioning
further. This arrangement enables the reader to efficiently
identify tags, by quickly eliminating from analysis any range of
tag values to which no tags match or only one tag matches.
Inventors: |
Voegele, Kevin D.;
(Shakopee, MN) |
Correspondence
Address: |
HONEYWELL INTERNATIONAL INC.
101 COLUMBIA ROAD
P O BOX 2245
MORRISTOWN
NJ
07962-2245
US
|
Assignee: |
Honeywell International
Inc.
|
Family ID: |
24572129 |
Appl. No.: |
10/752458 |
Filed: |
January 5, 2004 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10752458 |
Jan 5, 2004 |
|
|
|
09641384 |
Aug 17, 2000 |
|
|
|
6725014 |
|
|
|
|
Current U.S.
Class: |
455/1 |
Current CPC
Class: |
G06K 7/0008 20130101;
G06K 7/10019 20130101 |
Class at
Publication: |
455/001 |
International
Class: |
H04K 003/00 |
Claims
I claim:
1. A method for identifying a plurality of passive identification
tags in a field of view, each tag having a respective
identification value, and each tag having a register value within a
predetermined range, the method comprising the following steps: (a)
splitting the predetermined range into a plurality of first
sub-ranges; (b) for each first sub-range, requesting each tag whose
register value falls within the first sub-range to communicate the
tag's identification value; and (c) in response to a determination
that more than one tag has a register value within a given first
sub-range, (i) splitting the given first sub-range into a plurality
of second sub-ranges and (ii) for each second sub-range, requesting
each tag whose register value falls within the second sub-range to
communicate the tag's identification value.
2. The method of claim 1, wherein each tag has a plurality of
respective register values, and each tag's identification value is
defined as a combination of the tag's respective register
values.
3. The method of claim 1, wherein each passive identification tag
is a radio frequency identification tag.
4. The method of claim 1, further comprising: (d) in response to a
determination that more than one tag has a register value within a
given second sub-range, applying a partial read method to identify
all tags whose register values fall within the given second
sub-range.
5. The method of claim 1, wherein the predetermined range has a
predetermined size, and wherein each of the plurality of first
sub-ranges has a first size that is half the predetermined
size.
6. The method of claim 5, wherein the predetermined size is 4096
values.
7. The method of claim 5, wherein each of the plurality of second
sub-ranges has a second size that is half the first size.
8. The method of claim 1, further comprising: (d) in response to a
determination that more than one tag has a register value within a
given second sub-range, (i) splitting the given second sub-range
into a plurality of third sub-ranges and (ii) for each third
sub-range, requesting each tag whose register value falls within
the third sub-range to communicate the tag's identification
value.
9. The method of claim 8, wherein the predetermined range has a
predetermined size, and wherein each of the plurality of third
sub-ranges has a third size that is one eighth the predetermined
size.
10. A reader programmed to perform the method steps of claim 1.
11. A method for identifying a plurality of passive identification
tags in a field of view, each tag having a respective
identification value, and each tag having a register value within a
predetermined range, the method comprising: splitting the
predetermined range into a plurality of first sub-ranges; a reader
sending a first signal to the plurality of tags, the first signal
containing a first preset value defining a given first sub-range of
the plurality of first sub-ranges; each tag of the plurality of
tags receiving the first signal, responsively applying logic to
determine whether the tag's register value falls within the given
first sub-range, and sending a response signal if the tag's
register value falls within the given first sub-range; the receiver
detecting a contention among responses from multiple tags, and the
receiver thereafter responsively (i) splitting the given first
sub-range into a plurality of second sub-ranges and (ii) sending a
second signal to the plurality of tags, the second signal
containing a second preset value defining a given second sub-range
of the plurality of second sub-ranges; and each tag of the
plurality of tags receiving the second signal, responsively
applying logic to determine whether the tag's register value falls
within the given second sub-range, and sending a response signal if
the tag's register value falls within the given second
sub-range.
12. The method of claim 11, wherein the first preset value
indicates an upper bound of the given first sub-range and a lower
bound of the given first sub-range.
13. The method of claim 12, wherein the preset value indicates four
most significant bits defining an upper bound of the first given
sub-range and four most significant bits defining a lower bound of
the first given sub-range.
14. The method of claim 11, wherein the response signal of the tag
whose register value falls within the given first sub-range
comprises an identification value of the tag.
15. The method of claim 14, wherein the response signal further
comprises a checksum of the identification value.
16. The method of claim 11, wherein the response signal of the tag
whose register value falls within the given second sub-range
comprises an identification value of the tag.
17. The method of claim 16, wherein the response signal further
comprises a checksum of the identification value.
18. A passive identification system comprising, in combination: a
reader; a plurality of passive identification tags, each tag having
a respective identification value, and each tag having a register
value within a predetermined range; the reader being arranged to
send a first range-instruction to the tags, the first
range-instruction defining a preset value indicative of a first
range of register values; each tag being arranged to receive the
first range-instruction, to determine whether the tag's register
value falls within the first range, and, in response to a
determination that the tag's register value falls within the first
range, to emit a signal defining the tag's respective
identification value; the reader being further arranged to detect a
contention and to responsively split the first range into a
plurality of second ranges and to send a plurality of second
range-instructions to the tags, each second range-instruction
defining a preset value indicative of a respective second range of
the plurality of second ranges; and each tag being Further arranged
to receive each second range-instruction, to determine whether the
tag's register value falls within the second range defined by the
preset value of the second range-instruction, and, in response to a
determination that the tag's register value falls within the second
range defined by the preset value of the second range-instruction,
to emit a signal defining the tag's respective identification
value.
19. The system of claim 18, wherein each tag has a plurality of
respective register values, and each tag's identification value is
defined as a combination of the tag's respective register
values.
20. The method of claim 18, wherein each passive identification tag
is a radio frequency identification tag.
21. The method of claim 18, wherein the reader is further arranged
to detect a contention with respect to the second range and to
responsively apply a partial read method to resolve the
contention.
22. The method of claim 18, wherein the signal defining the tag's
respective identification value further defines a checksum
associated with the respective identification value.
Description
FIELD OF THE INVENTION
[0001] The present invention relates to a field of radio frequency
tag identification. More specifically, the present invention
relates to a method for resolving contention in identification of a
plurality of radio frequency tags.
BACKGROUND OF THE INVENTION
[0002] The object of any Radio Frequency Identifications ("RF ID")
system is to carry data in suitable transponders, generally known
as tags, and to retrieve data, by machine-readable means, at a
suitable time and place to satisfy particular application needs.
The word "transponder", derived from TRANSmitter/resPONDER, reveals
the function of a tag, which usually responds to a transmitted
request or a communicated request for data it carries. The data in
the tag may provide identification information for an item, a
location, an identity of a vehicle, an animal, a person or other
information.
[0003] Radio frequency identification systems are typically
categorized as either "active" or "passive". In an active RF ID
system, tags are powered by an internal battery, and data written
into active tags may be rewritten and modified. In a passive RF ID
system, tags operate without an internal power source and are
usually programmed with a unique set of data that cannot be
modified. A typical passive RF ID system comprises two components:
an interrogator (reader) and a plurality of passive tags. The main
component of every passive RF ID system is a plurality of
information carrying tags that respond to a coded RF signals that
are typically sent from the reader.
[0004] A passive tag typically includes an antenna and a
semiconductor chip comprising radio frequency ("RF") circuitry,
logic and a non-volatile memory unit. Further, a time-varying
electromagnetic RF signal (carrier signal) that is typically
transmitted by a reader located at a base station energizes the
passive tag. The reader usually comprises a microcontroller-based
unit with a wound output coil and detector hardware. In a typical
configuration, in addition to the reader, the base station
comprises an antenna, an RF transmitter and an RF receiver. The
reader may issue commands to the RF transmitter and receive
commands from the RF receiver. The commands may serve to identify a
plurality of tags present in a reader's field of view. The size of
the reader's field of view depends primarily on a power level of
the RF signal transmitted from the reader.
[0005] The RF transmitter at the base station may, for instance,
encode a command from the reader, modulate the command to a radio
frequency signal and, then, pass it to the antenna located at the
base station. The RF receiver at the base station may receive,
demodulate and pass to the reader return signals from the plurality
of RF tags in the reader's field of view.
[0006] As known in the art, a passive tag is not a transmitter, yet
a bi-directional communication is taking place in passive RF ID
systems. The passive tag may employ a process called a backscatter
modulation to send data to a reader. In a typical system, the
reader continuously generates an RF carrier sine wave and senses
for occurrences of a modulation, which would indicate a presence of
a tag in a reader's field of view. When a tag enters the reader's
field of view and, further, receives sufficient energy to operate,
the tag typically divides down the RF carrier sine wave and,
subsequently, starts clocking out identification data from a
non-volatile memory unit, such as programmable registers.
[0007] The tag may clock out the identification data to an output
transistor, which is typically connected to the tag's input coils.
Consequently, the tag's output transistor may sequentially shunt
the coil correspondingly to data that is clocked out from the
non-volatile memory unit. Shunting the coil causes a momentary
fluctuation of the carrier wave, which results in a slight change
in an amplitude of the carrier wave and, thus, the reader may
peak-detect the amplitude-modulated data and process the resulting
bitstream according to encoding and modulation methods used in a
particular RF ID system. This amplitude-modulation loading of the
reader's transmitted field provides a communication path back to
the reader.
[0008] In a modern business, maintaining an accurate inventory of
merchandise is crucial. For instance, in a rental video store, a
tag could be attached to each video tape in the video store, and
one or more readers could then be used to maintain an inventory of
video tapes. Further, it is often crucial to quickly determine what
tags are in a given area.
[0009] There are many procedures that readers in RF ID systems may
use to verify identification of a plurality of tags in readers'
fields of view. In this regard, each tag in a reader's field of
view may have an associated identification value that is stored
cooperatively in a number of identification registers on the tag.
Typically, for example, a tag may have a 36-bit identification
value that is stored in three 12-bit identification registers.
Further, each tag may have a corresponding set of counters (i.e.,
typically, three 12-bit counters) that can be controlled by carrier
signals sent from a reader. A reader may send RF instruction
signals to the tags in its field of view, which may cause actions
to be taken with respect to the tags' counters and identification
registers, so as to, in turn, modify the RF carrier and indicate
the presence of the tags. One such instruction, for instance, may
be an initialize instruction, which causes a recipient-tag to
initialize a specified counter or counters. Another such
instruction, for instance, may be an increment instruction, which
causes a recipient-tag to increment a specified counter or
counters.
[0010] According to one of the commonly used procedures for tag
identification, a reader may first send an initialization
instruction signal out to any tags in its field of view, directing
the tags to initialize their first counters to zero. The reader may
then sequentially transmit increment instructions to the tags,
causing the tags to sequentially increment their first counters.
Given 12 bits per register, in a typical arrangement, the reader
may thus send out 4095 increment instructions.
[0011] When a count on the first counter of a tag matches a coded
identification value on the tag's associated first identification
register, the tag may then be arranged to respond to the reader by
shifting out its complete identification value from all of its
identification registers, thereby modifying the RF carrier to
indicate the presence of the tag. Further, the tag may also shift
out additional bits, such as a checksum (e.g., an 8-bit checksum),
for instance. In this manner, if only one tag responds to the
reader, the reader may properly detect that tag's identification
and conclude that the tag is present.
[0012] However, this approach can suffer from a problem known as a
contention. Contention occurs when more than one tag selects the
same time slot for transmission of an identification coded value.
This can occur in the process described above, for instance, if
more than one tag's first counter matches the coded value in its
first identification register. As a result, more than one tag will
responsively send their full identification values and checksums to
the reader. When contention occurs, the reader is simultaneously
bombarded with more than one tag's identification code and checksum
in the same time slots. From the reader's perspective, a single
identification code and checksum arrives, but the checksum will not
be correct. Consequently, the reader will not be able to correctly
detect the identification of each responding tag.
[0013] If contention occurs in the process above, according to
common practice (known as the "partial read" method), the reader
may keep the first counters of the tags in the field of view at the
contending count (i.e., by not further incrementing the first
counters) and may initiate counting on the second counters of the
tags in the reader's field of view. In turn, when (i) the first
contending count matches the tag's first identification register
and (ii) a count on the tag's second counter matches the tag's
second identification register, the tag may be arranged to respond
to the reader by shifting out its complete identification value
from all of its identification registers. If a contention then
occurs with respect to the second counters, the reader may then
similarly use the remaining counter(s) of the tags to resolve the
contention. In this manner, the reader may detect identification
data of all tags in the reader's field of view.
SUMMARY
[0014] While the partial read method provides a mechanism for
resolving a contention that occurs between a plurality of tags in a
reader's field of view, the method is not particularly efficient.
For example, the method can take a long time to gather all
identification information of the tags in the reader's field of
view. In particular, for instance, if two tags in the field of view
have the respective identification codes 4095:4095:4094 and
4095:4095:4095 (encoded in their respective three 12-bit
registers), the reader may be forced to increment entirely through
all three counters resolving the contention. That would mean that
the tags would have to increment 2.sup.12+2.sup.12+2.sup.12 counts
on three counters associated with the registers. For applications
that require quick reading of tag identification values, this
amount of work is undesirable.
[0015] An exemplary embodiment of the present invention provides a
more efficient method of contention resolution, employing a sort of
tree-splitting algorithm. Generally speaking, for each counter for
instance, the reader may first check to see whether the tags in its
field of view have identification codes falling within a given
range of values. If only one does, or if none do, then the reader
is done with respect to that counter.
[0016] If more than one does, then the reader may repeatedly divide
and test the specified range until there is no contention or until
the range reaches a predetermined limit (e.g., if it gets too
small). In particular, for instance, the reader may split the range
in half (or in some other number of range segments) and, with
respect to each half, may check to see whether the tags in its
field of view have identification codes that match that half. With
respect to each half in which the reader discovers a contention,
the reader may in turn split the half in two again and repeat the
process. In this way, the reader can quickly eliminate large
sections of the counter if no tags exist in those sections.
[0017] For example, a reader may send to a plurality of tags a
range-instruction signal that indicates a specified range of values
of the first identification register. The instruction signal may
instruct the tags to respond (i.e., to clock out their full
identification values onto the RF carrier) if the value in their
first identification register falls within the specified range.
Each tag may thus have logic arranged to determine whether a value
on a given identification register is within a specified range and,
if so, to responsively transmit its identification code and a
checksum.
[0018] If the reader detects an identification code and a correct
checksum, the reader may conclude that only one tag has an
identification value falling within the specified range. Similarly,
if the reader receives no response, the reader may conclude that no
tag has an identification value falling within the specified range.
In either case, the reader may then proceed to perform the same
process with respect to the other identification registers as
well.
[0019] If a contention occurs, however, the reader may split the
specified range in half, so as to produce two range segments, a
lower segment and a higher segment. With respect to each range
segment, the reader may then send a new range-instruction signal,
indicating the range segment as the specified range. If the reader
receives no response for a given range segment, the reader may
efficiently eliminate that entire range segment from further
consideration, focusing instead on the other range segment(s).
[0020] Each register or group of registers can be analyzed in up to
any number of sub-segments. In the exemplary embodiment, for
instance, each 12-bit register can be analyzed in 8 range segments
each of 512 counts. With this arrangement, the reader may first
check two range segments [0 to 2047] and [2048 to 4095]. In
response to a contention in the range segment [0 to 2047], the
reader may check the two range segments [0 to 1023] and [1024 to
2047]; and, in response to a contention in the range [2048 to 4095]
the reader may then check the two range segments [2048 to 3071] and
[3072 to 4095]. Continuing in this way, the reader may ultimately
check the following eight range segments: [0 to 511], [512 to
1023], [1024 to 1535], [1536 to 2047], [2048 to 2559], [2560 to
3071], [3072 to 3583], and [3584 to 4095].
[0021] If the reader still has a contention in a given range
segment, the reader may more readily perform the partial read
method described above within the minimum sized range segment, for
instance, in an effort to identify the tags in the range segment.
In turn, if the reader still has a contention, the reader may then
move on to analyze to the next identification register.
[0022] Thus, in one respect, an exemplary embodiment of the
invention may take the form of a method for identifying a plurality
of passive identification tags in a field of view, where each tag
has a respective identification value, and each tag has a register
value within a predetermined range. The method may involve first
splitting the predetermined range into multiple first sub-ranges
and then, for each first sub-range, requesting each tag whose
register value falls within the first sub-range to communicate the
tag's identification value. In response to a determination that
more than one tag has a register value within a given first
sub-range, the method may then involve splitting the given first
sub-range into multiple second sub-ranges and, for each second
sub-range, requesting each tag whose register value falls within
the second sub-range to communicate the tag's identification
value.
[0023] Still further, in response to a determination that more than
one tag has a register value within a given second sub-range, the
method may involve applying the partial read method to identify all
tags whose register values fall within the given second sub-range.
And yet further, in response to a determination that more than one
tag has a register value within a given second sub-range, the
method may involve splitting the given second sub-range into a
plurality of third sub-ranges and, for each third sub-range,
requesting each tag whose register value falls within the third
sub-range to communicate the tag's identification value.
[0024] Each tag may be a radio frequency identification tag, for
instance. Further, each tag may, for instance, have several
registers with a unique value permanently encoded in each register,
and each tag's identification value may then be defined as a
combination of the tag's respective register values.
[0025] In addition, the predetermined range may have a
predetermined size, such as 4096 possible values (e.g., from 0 to
4095) for instance. Further, each of the multiple first sub-ranges
may have a first size that is half of the predetermined size. Still
further, each of the multiple second sub-ranges may have a second
size that is half the first size, and each of the multiple third
sub-ranges may have a third size that is half of the second size.
Of course, other sizes are possible as well.
[0026] In another respect, an exemplary embodiment may take the.
form of a reader that is programmed to perform a method such as
that described above. Alternatively, an exemplary embodiment may
take the form of a passive identification system that includes a
reader and a plurality of passive identification tags. Each tag may
have a respective identification value, and each tag may have a
register value within a predetermined range. The reader may be
arranged to send a number of range-instructions to the tags, each
indicating a search range. And each tag may be arranged to receive
each range-instruction and to responsively determine whether the
tag's register value falls within the specified search range. With
this arrangement, the reader may apply a recursive partitioning and
searching method such as that described above.
[0027] These as well as other aspects and advantages of the present
invention will become apparent to those of ordinary skill of art by
reading the following detailed description, with reference where
appropriate to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0028] An exemplary embodiment of the present invention is
described below with reference to the drawings, in which:
[0029] FIG. 1 is a block diagram illustrating a radio frequency
identification system employing an exemplary embodiment of the
present invention;
[0030] FIG. 2 is a circuit block diagram of an exemplary tag;
[0031] FIG. 3 is a block diagram illustrating how a register may be
divided and how search ranges may be defined in accordance with an
exemplary embodiment;
[0032] FIG. 4 is a schematic of a range identifying logic that may
be used to search for tags having certain register values in
accordance with an exemplary embodiment;
[0033] FIG. 5 is a flow chart depicting functional blocks that may
be employed in accordance with an exemplary embodiment; and
[0034] FIG. 6 is a flow chart depicting functional blocks that may
be employed in accordance with another exemplary embodiment.
DETAILED DESCRIPTION OF AN EXEMPLARY EMBODIMENT
[0035] 1. System Architecture
[0036] Referring to the drawings, FIG. 1 is a block diagram
illustrating an RF-ID system arranged to employ exemplary
embodiments of the present invention. As shown in FIG. 1, a base
station 10 communicates with three passive RF tags 22, 24 and 26
via a wireless network across the space of an air interface 12.
FIG. 1 illustrates only three tags. However, a typical RF-ID system
may comprise up to a large number of RF tags. Exemplary base
station 10 comprises a reader 14, a reader's antenna 16 and an RF
station 42. RF station 42, in turn, comprises an RF transmitter and
an RF receiver (not shown) that may transmit/receive RF signals via
reader's antenna 16 to/from passive RF tags 22, 24 and 26.
[0037] Reader 14 includes a memory unit 18 and a logic unit 20.
Memory unit 18 may store application data and identification
information (e.g., tag identification numbers) of RF tags in a
reader's field of view 52 (RF signal range) of reader 14. Memory
unit 18 may also store data comprising sets of instructions for
reader 14 to communicate with RF tags 22, 24 and 26. Reader 14 may
retrieve the instructions from memory unit 18 and send the
instructions to the RF tags in reader's field of view 52.
[0038] Logic unit 20 may comprise, for instance, a digital
processor (e.g., processor programmed with a set of machine
language instructions to carry out the various functions described
herein) and counter/clock registers. Logic unit 20 may, for
instance, control commands that are sent from reader 14 to the tags
in reader's field of view 52, control sending and receiving of RF
signals via RF station 42 and reader's antenna 16, and determine if
a contention has occurred, for instance. Logic unit 20 may perform
other functions as well or instead.
[0039] Reader 14 may comprise a plurality of additional components.
Typically, readers differ quite considerably in complexity,
depending upon a type of tags in readers' fields of view and
functions to be fulfilled in radio frequency systems. However, an
overall function of any reader may be to provide a communicating
functionality and to facilitate data transfer between the reader
and the tags. Additionally, tasks performed by readers may include
sophisticated signal conditioning, parity checking and correction
schemes, for instance.
[0040] Reader 14 may also be connected to a computer (not shown) or
other entity. The computer may be co-located with the reader 14
(commonly for a stationary reader, for instance) or the computer
may be physically separate from reader 14 (commonly for a portable
reader, for instance). A connection between reader 14 and the
computer may be a hard-wired and/or wireless connection. In an
RF-ID system comprising a computer, the computer may perform high
level processing functions that are not performed by reader 14, the
computer may control some or all of the operation of reader 14, or
the computer may perform other functions. For instance, the
computer may compile lists of identification information received
from the tags in reader's field of view 52, or it may direct
handling of contentions.
[0041] Once reader 14 is turned on, reader 14 preferably starts
continuously generating an RF signal that defines a field of view
52. A range of reader's field of view 52 typically depends on a
power level of the RF signal generated by reader 14. Typically, the
RF signal that is delivered from reader's antenna 16 extends into a
space and diminishes in strength over a distance from reader 14.
Thus, a design of antenna 16 may determine a shape and orientation
of reader's field of view 52 and consequent wave paths.
[0042] As mentioned above, reader 14 communicates with tags 22, 24
and 26 through reader's antenna 16 and via air interface 12.
According to the exemplary embodiment, tags 22, 24 and 26 could be
fabricated as low power integrated circuits, or they could employ
aspects of a well-known "coil-on-chip" technology for a data
transfer and a power generation. FIG. 2 shows an exemplary block
diagram of each RFID tag in field of view 52 according to the
exemplary embodiment of the present invention. The exemplary block
diagram is described only by a way of an example, and more, fewer
or other functional elements could also be employed without
departing from the scope of the invention.
[0043] As shown in FIG. 2, each RF-ID tag includes at least one
antenna 54, a power converter 56, a demodulator 58, a modulator 60,
a clock/data recovery circuit 62, an instruction
interpreter/control unit 64, a time slot counter 66, a timer slot
register 68, a wafer data counter 70, a wafer data register 72, a
manufacture information counter 74, a manufacture information
register 76, a checksum 78 and a load-shift ("LD/S") output logic
80. In the exemplary embodiment, antenna 54 may be an
omnidirectional antenna, with its impedance matched to a
transmission frequency of reader 14.
[0044] In the exemplary embodiment, prior to any other functional
operation, reader 14 transmits a charging signal that serves to
establish power for each tag in reader's field of view 52. The
charging signal could be a 915.+-.13 MHz carrier frequency signal,
for instance. However, different carrier signals could also be
used. When a tag in the reader's field of view 52 receive the
charging signal, the tag's power converter 56 may convert the
received signal to a 2.5 V DC supply rail capable of a 5 .mu.A
continuous power, for instance.
[0045] In addition, demodulator 58 may also receive the 915.+-.13
MHz carrier frequency signal from antenna 54. In the exemplary
embodiment, the reader may modulate onto the carrier signal one or
more instruction signals that may be associated with a tag
identification process, as will be further described below.
Therefore, the demodulator 58 may receive the modulated carrier
bearing those instructions.
[0046] Instruction interpreter/control unit 64 receives
instructions from demodulator 58 via clock/data recovery unit 62,
which may derive a 65 kHz clock signal for tags from the carrier
frequency signals received from reader 14. When instruction
interpreter 64 receives a valid command instruction from reader 14,
it may provide control signals to one or more counters, each of
which may have a corresponding register.
[0047] In the exemplary embodiment, as shown in FIG. 2, three
counters are provided and are designated, respectively, as time
slot counter 66, wafer data counter 70 and/or manufacture
information counter 74. Each of these counters in turn is
associated with a corresponding register, designated respectively
as time slot register 68, wafer data register 72, and manufacture
information register 76. Each counter is preferably the same size
as its corresponding register, to facilitate comparison between
counter values and register values. In the exemplary embodiment,
each counter is 12 bits long, and each corresponding register is
therefore also 12-bits long. Therefore, each register and counter
can represent a total of 4096 numbers, from 0 to 4095. However, the
counters and/or registers can be other (larger or smaller) sizes
instead.
[0048] Each register may be a laser programmable register, for
instance, or may take other forms. At the time of manufacture, each
register may be permanently programmed with an identification code,
which may be used to help identify the tag. These identification
codes might be randomly or serially assigned or may serve a more
specific purpose. For example, wafer data register 72 might serve
to identify a wafer lot number and wafer segment, and manufacture
information register 76 might serve to identify a date and location
of manufacture of the tag. Other examples are possible as well.
[0049] In the exemplary embodiment, checksum 78 may be an 8-bit
checksum, and it may be computed by adding data contained in fuse
link codes. (Fuse links, as known in the art, are wires that
connect an input of a register to a logic "1" or "0". A fuse link
is initially "fused open" so that it may be later programmed with a
"1" or "0".) However, checksum 78 may be computed in another manner
instead. Further, it may be of another size (i.e., more or fewer
bits).
[0050] When a tag in field of view 52 transmits identification data
back to reader 14, according to the exemplary embodiment, the tag
may transmit a 36-bit identification code and an 8-bit checksum.
The 36-bit identification code is preferably the combination of the
three 12-bit codes stored respectively in registers 68, 72 and 76,
and the 8-bit check sum is preferably checksum 78. According to the
exemplary embodiment, LD/S output logic 80 is used to monitor
outputs of programmable registers 68, 72, 76 and of checksum 78.
LD/S output logic 80 could control the function of the counters to
either set them up as counters or shift-registers. In the exemplary
embodiment, once a match for a range search is found, LD/S output
logic 80 may load the tag's identification to the registers and
shift out the identification value to reader 14.
[0051] Once reader 14 is turned on, reader 14 may continuously
generate an RF signal that creates field of view 52. Reader 14 may
then retrieve from memory unit 18 a set of identification
instructions to initiate tags' actions. According to the exemplary
embodiment, one such instruction may be a range-instruction. The
range-instruction may carry an instruction identifier (indicating
that it is a range-instruction with respect to a particular
register, for instance) and then a "preset" value, which may be one
or more parameters specifying a particular range of values on a
particular register.
[0052] In an exemplary embodiment, to start, the range-instruction
may be directed to an analysis of time slot register 68, for
instance. For this purpose, the range-instruction identifier may be
101010, for example, which the reader and each tag may be
programmed to associate with a range search with respect to
register 68. The instruction identifier may, however, take other
forms instead.
[0053] Further, by way of example, the preset value may comprise
two 4-bit numbers, one of which indicates the four most significant
bits (MSB) for an upper bound and the other of which indicates the
four MSB for a lower bound. Thus, for a given 12-bit register, the
preset may indicate bits UUUU for the upper bound and bits LLLL for
the lower bound. The range of possible values may therefore extend
from the value "LLLL xxxx xxxx" up to "UUUU xxxx xxxx", where "xxxx
xxxx" represent the least significant 8 bits of the register. In
this manner, each of the least significant 8 bits of the register
may correspond with a respective 512 count range as noted above.
However, the preset range parameter(s) may take any other form as
well. For instance, more or fewer most significant bits could be
specified depending on the number of bits associated with the coded
value in a given register, or the parameters may take another form
altogether.
[0054] To facilitate a determination of whether a register value
falls within the specified range defined in the range-instruction,
the tag may include a set of range identifying logic. This range
identifying logic may be provided separately in conjunction with
each counter/register. Alternatively, the instruction
interpreter/control logic 64 may include the range identifying
logic. In such an embodiment, when the range identifying logic
determines that a register value is in a specified range, an output
of the range identifying logic is provided to the each register to
cause the registers to shift out their identification values to
reader 14 via LD/S output logic 80. Additionally, checksum 78 is
also preferably shifted out to logic 80. Other arrangements are
possible as well.
[0055] FIG. 3 illustrates an exemplary schematic of a set of range
identifying logic 81. Logic 81 assumes by way of example that
reader 14 sends a range-instruction that provides an 8-bit preset
value defining 4 MSB of an upper bound and 4 MSB of a lower bound
as described above.
[0056] As shown in FIG. 3, range identifying logic 81 comprises
"compare" logic 88, two logic "AND" gates 90, 92 and one logic "OR"
gate 94. Compare logic 88 could be a digital comparator comprising
59 logic gates, for instance, and can be readily prepared to carry
out the functions described herein.
[0057] For instance, the preset value carried by the
range-instruction may provide as range parameters an upper bound
value 82 and a lower bound value 84, both of which become inputs to
compare logic 88. Further, compare logic 88 has as another input a
value 86, which is the four most significant bits of the register
at issue. Thus, in operation, logic 88 may serve to determine
whether value 86 falls within the range from value 82 to value
84.
[0058] In particular, for instance, logic 88 may determine whether
input 82 is greater than or equal to input 86 and whether input 84
is less than input 86. If these conditions are met, then logic 81
will provide a true output 96. In the exemplary embodiment, this
would therefore result in a test of whether the register bits fall
within the specified range up to but not including the upper bound
value. In addition, exemplary logic 81 may also test separately for
the condition that the most significant bits of the register at
issue are "1111" and the upper bound is also "1111", since this
condition would not otherwise be tested in the exemplary
embodiment. If this additional condition is met, logic 81 also
preferably provides a true output 96.
[0059] In response to a true output 96, instruction
interpreter/control unit 64 may cause time slot register 68, wafer
information register 72, manufacture information register 76 and
checksum 78 to shift their values to LD/S output logic 80. In the
exemplary embodiment, the true output 96 may set up a load
operation of the LD/S output logic 80, and a tag may receive a
command from reader 14 to shift out its identification value. Thus,
LD/S output receives (i) three 12-bit identification values,
cooperatively defining a 36-bit identification code for the tag and
(ii) an 8-bit checksum for that 36-bit identification code.
[0060] When LD/S output logic 80 receives the 36-bit identification
code from the registers 68, 72, 76 and 8-bit checksum from checksum
78, LD/S output logic 80 may shift a 44-bit coded value to
modulator 60 for transmission to reader 14. Modulator 60 may use
modulated RF signals to transmit the 44-bit coded value to reader
14 via antenna 54. In an exemplary embodiment, a modulated RF
signal comprising the 44-bit coded value could be transmitted to
reader 14 at about 65 kHz. Further, because clock/data recovery
unit 62 derives the clock for tags from signals that it receives
from reader 14, any type of data sent from tags, such as 44-bit
identification value, may be clock-synchronized with reader 14.
Thus, according to the exemplary embodiment, additional
clock-synchronization is not necessarily required.
[0061] 2. Contention Resolution
[0062] According to an exemplary embodiment, the radio frequency
identification system as shown in FIG. 1 uses a partition/scratch
and count subset, ("PSCS") method to efficiently and effectively
resolve contention occurrences and, thus, to quickly gather
identification information of all tags in reader's field of view
52. To apply the PSCS method in RF system, registers 66, 70 and 74
of tags are divided into a number of segments, such that several
smaller segments may be combined to form a fixed size larger
segment, for instance. According to an exemplary embodiment, each
12-bit register is partitioned into 8 fixed-size segments, and each
segment covers 512 counts (i.e., register values). These segments
may thus be combined to form a larger segments such as segments
having 1024 counts and 2028 counts, for instance. However, the
present invention is not limited to partitioning each register of
the tags in reader's field of view 52 into 8 segments, and more or
fewer segments could be used instead, and the segments could vary
in size among each other.
[0063] FIG. 4 shows how a 12-bit counter/register could be divided
into 8 segments having 512 counts each, designated by reference
numerals 110, 112, 114, 116, 118, 120, 122 and 124. Further, FIG. 4
shows how these segments could be combined to form larger segments,
designated by reference numerals 108, 106, 104, 102, 100 and
98.
[0064] Table 1 below shows four most significant bits ("MSB")
corresponding to an upper bound search and four most significant
bits corresponding to a lower bound search associated with each
segment shown in FIG. 4. In Table 1, the segment numbers listed in
the first column correspond respectively to the segment reference
numerals used in FIG. 4. It should be understood that the values
listed in Table 1 are provided for purposes of example only, and
that other range bounds and segment sizes may be used in addition
or instead.
1TABLE 1 Segment MSB Upper MSB Lower Number Bound Search Bound
Search 98 1111 1000 100 1000 0000 102 1111 1100 104 1100 1000 106
1000 0100 108 0100 0000 110 1111 1110 112 1110 1100 114 1100 1010
116 1010 1000 118 1000 0110 120 0110 0100 122 0010 0001 124 0001
0000
[0065] When reader 14 performs an identification process using the
exemplary method, reader 14 may send a sequence of commands to tags
in reader's field of view 52. According to the exemplary
embodiment, each command could be a 14-bit command, for instance.
However, commands with more or fewer bits could also be used. For
instance, 5-bit commands or 7-bit commands could be sent from
reader 14. FIGS. 5 and 6 provide flow charts illustrating
functional blocks that may be carried out in the exemplary
embodiment.
[0066] As shown in the Figures, at block 126, reader 14 may first
send to the tags in its field of view 52 a 14-bit command to enable
(e.g., clear or otherwise initialize) one of the counters, such as
time slot counter 66, for instance. Each tag's instruction
interpreter/control unit 64 may be arranged to respond to this
command by clearing the specified counter.
[0067] At block 128, reader 14 may then send a 14-bit
range-instruction that includes four bits corresponding to an upper
bound range of a specific segment of the time slot register 68,
four bits corresponding to a lower bound range of the specific
segment of time slot register 68 and six remaining bits serving as
an instruction identifier. According to the exemplary embodiment,
the six-bit instruction identifier could instruct the tags in
reader's field of view 52 to determine whether an identification
information value coded, for instance, in time slot register 68 is
in the specified range and to reply if that coded value is in the
specified range. Logic in the tag may the respond accordingly. In
particular, when a tag receives the 14-bit command, the tag's range
identifying logic 81 may operate to determine whether an
identification value coded in time slot register 68 falls within
the specified range.
[0068] In an exemplary embodiment, the upper bound and lower bound
values provided by the first such range-instruction may define the
entire set of possible time slot register values. Thus, for
instance, the upper bound may be "1111" and the lower bound may be
"0000", thereby defining the range "0000 0000 0000" through "1111
1111 1111". This first range-instruction thus serves to seek a
response from any tags in the field of view, effectively
facilitating a determination of whether any tags at all are present
in the field of view.
[0069] At block 130, upon a receipt of the range-instruction, tags
having their identification information values on time slot
register 68 within the specified range would respond to reader 14.
Thus, with the exemplary first range-instruction, tags having time
slot register values between zero and 4095 (i.e., any tags) would
respond to reader 14. Each such tag would therefore shift out its
44-bit identification information code (identification code and
checksum) for transmission on the carrier frequency to reader
14.
[0070] At block 132, reader 14 may then determine if (i) no tags
have responded, (ii) only one tag responded, or (iii) multiple tags
responded concurrently. If no tags have responded, then, at block
134, reader 14 may conclude that the identification process is
complete. If only one tag has responded, then, at block 136, reader
14 may also conclude that the identification process is complete.
However, if multiple tags have responded concurrently, then reader
14 will have encountered a contention (indicated by an incorrect
checksum, for instance). Consequently, reader 14 may proceed to
block 138, in an effort to resolve the contention. Note that in an
alternative embodiment, the reader can assume that some tags exist
in its field of view and therefore that a contention would exist on
analysis of the entire range of register values. Therefore, the
reader can instead begin its identification analysis at block 138,
rather than at block 126.
[0071] At block 138, the reader 14 may divide in half the number of
possible count values within register 68 and proceed to test each
half separately. In particular, with respect to each half segment,
reader 14 may repeat the process beginning at block 126, but this
time defining the range segment to be the respective half segment
at issue. Referring to FIG. 4 and Table 1, if the time slot
register 68 is a 12-bit register, for instance, the upper half
range segment 98 (from "1000 0000 0000" through "1111 1111 1111",
i.e., greater than 2048) could be specified by the upper bound
value "1111" and the lower bound value "1000", and the lower half
range segment 100 (from "0000 0000 0000" up to "1000 0000 0000",
i.e., zero up to 2048) could be specified by the upper bound value
"1000" and the lower bound value "0000". Other examples are
possible as well.
[0072] Thus, reader 14 could next send a range-instruction seeking
response from any and all tags that have time slot register values
in the upper half range segment 98. Upon a receipt of this
exemplary instruction, each tag that has its identification
information values on time slot register 68 greater than or equal
to 2048 would respond to reader 14. In particular, for any given
tag in the field of view, if the identification value coded in the
tag's time slot register 68 meets the criteria specified by this
first request, the tag would shift out its 44-bit identification
information code (identification code and checksum) for
transmission on the carrier frequency to reader 14.
[0073] If reader 14 finds that no tags have responded to the
range-instruction directed to the upper half range segment, the
reader may properly conclude that no tags have identification codes
within that upper half range, thereby conveniently eliminating the
necessity to search any further in that range. If reader 14 finds
that only one tag has responded to the range-instruction directed
to the upper half range segment, the reader may conclude that the
tag is the only one in that segment and, again, need not search
further in the segment.
[0074] In turn, the reader may then send a range-instruction
seeking response from any and all tags that have time slot register
values in the lower half range segment 100. Upon a receipt of this
exemplary instruction, tags having their identification information
values on time slot register 68 within the range from zero up to
2048 would respond to reader 14. In particular, for any given tag
in the field of view, if the identification value coded in the
tag's time slot register 68 meets the criteria specified by this
first request, the tag would shift out its 44-bit identification
information code (identification code and checksum) for
transmission on the carrier frequency to reader 14.
[0075] If reader 14 finds that no tags have responded to the
range-instruction directed to the lower half range segment, the
reader may properly conclude that no tags have identification codes
within that upper half range, thereby conveniently eliminating the
necessity to search any further in that range. If reader 14 finds
that only one tag has responded to the range-instruction directed
to the lower half range segment, the reader may conclude that the
tag is the only one in that segment and, again, need not search
further in the segment.
[0076] For any range segment as to which the reader detects a
contention, the reader may then repeat this process recursively,
splitting the segment into smaller segments and then performing the
functions beginning with block 126, but for the new, smaller range
segment values.
[0077] For instance, to resolve a contention associated with the
lower half range segment 100, by way of example, reader 14 may
first send a range-instruction seeking response from any and all
tags that have time slot register values in the lower-most quarter
108 of the register's possible values. Continuing with the example
above, this request would serve to test the range from "0000 0000
0000" up to "0100 0000 0000", for instance. Consequently, tags
having their identification information values on time slot
register 68 within the range 0 up to 1024 would respond to reader
14.
[0078] In turn, the reader may send a range-instruction seeking
response from any and all tags that have time slot register values
in the second lowest quarter 106 of the register's possible values.
In the example above, this request would serve to test the range
from "0100 0000 0000" up to "1000 0000 0000". Therefore, tags
having their identification information values on time slot
register 68 within the range 1024 up to 2048 would respond to
reader 14.
[0079] Although FIG. 4 and Table 1 depict partitions down to 512
bit ranges, a reader in the exemplary embodiment could partition
segments even further, and the segments could be any. desired size
or sizes, whether equal in size or not. (For instance, rather than
splitting a segment into a 1/2 segment and another 1/2 segment, the
reader could split a given segment into a 1/4 segment and a 3/4
segment if desired, and then analyze those unequal-sized segments
respectively.)
[0080] As illustrated by FIG. 5, the reader can continue to apply
the above process recursively to cover all possible values (i.e.,
down to one or more segments consisting of only one value each).
Thus, at block 140, the reader may determine whether any additional
segments remain to analyze. (E.g., if the reader has analyzed one
of two half segments, the reader would determine that the other
half segment still exists to be analyzed.) If no additional
segments exist to be analyzed, then, at block 142 in FIG. 5, the
reader may conclude that its tag identification process is
complete. If an additional segment exists to be analyzed, then, at
block 144 in FIG. 5, the reader may recursively return to block 126
for analysis of that segment.
[0081] Alternatively, and preferably, the reader may be programmed
to partition only down to a particular sized segment, such as a 512
count segment for instance (or to a segment smaller than some
threshold size). In each branch of the tree analysis, once the
reader reaches that sized segment, if the reader still detects a
contention in that segment, the reader may be programmed to resolve
the contention by applying the partial read method (i.e., the
incremental counting method) described above. Doing so may be
particularly advantageous in a situation where many tags exist in
the reader's field of view, because, in such a situation, many
contentions might exist in almost any sized segment, and
partitioning down to singleton segments (segments having only one
value) would be laborious and inefficient.
[0082] This preferred combination of methods is illustrated in FIG.
6. Referring to FIG. 6, at block 146, when the reader has detected
a contention with respect to a given segment, the reader determines
whether the segment should be partitioned further. In the exemplary
embodiment, if the segment is a 512-count segment, then the reader
may conclude that it should not be further partitioned.
Alternatively, if the segment is larger than 512 counts, then the
reader may conclude that it may be further partitioned. Other bases
for this determination are possible as well.
[0083] If the reader determines that further partitioning is
appropriate with respect to the given segment, then the reader may
proceed to block 138 and may proceed as described above. On the
other hand, if the reader determines that further processing is not
appropriate with respect to the given segment, then the reader may
proceed to block 148. At block 148, the reader may then apply the
partial read method in an effort to resolve the contention in the
segment. After applying the partial read method, the reader may
then proceed to block 140 as described above.
[0084] To apply the partial read process for a given segment, the
reader may first send an enable instruction to the tags in its
field of view, to initialize the counter associated with a
particular register. The reader may then send to the tags in its
field of view a value-instruction that causes the tags to set that
counter to the minimum possible value in the segment at issue. For
instance, if the segment at issue is segment 124 as shown in Table
1, the instruction may cause the tags to set their time slot
counter 66 to 0000 0000 0000. In response to a value-instruction
such as this, the instruction interpreter/control logic unit 64 of
the tag may receive and compare the tag's time slot counter value
with the tag's time slot register value. If a match exists, the
instruction interpreter/control logic unit 64 may direct the LD/S
out logic unit 80 to output the tag's full identification code and
checksum.
[0085] In turn, the reader may then send a sequence of
increment-instructions to the tags in its field of view. In
response to each increment-instruction, the instruction
interpreter/control logic unit 64 of each tag may cause the tag's
time slot counter to increment by one, and the interpreter/control
logic unit may then again compare the time slot counter value with
the time slot register value. In each instance, if a match exists,
the interpreter/control logic unit may direct the LD/S out logic
unit 80 to output the tag's full identification code and
checksum.
[0086] Thus, for each possible value in the range segment at issue,
the reader may effectively poll the tags in its field of view to
see if any tags have that value in the register at issue. If no
tags respond, such as after a predetermined time period for
instance, the reader may proceed to check for the next value. If
only one tag responds, then the reader may conclude that the one
tag is present in its field of view.
[0087] If more than one tag responds concurrently, then a
contention exists, and the reader may then resolve the contention,
for instance, by repeating the PSCS and/or partial read process in
connection with another one of the registers (such as the wafer
data register or manufacture information register) in the tags. In
particular, for instance, the reader may store each count value as
to which it received a contention with respect to a given, and the
reader may seek to resolve that contention later through analysis
of another one or more registers.
[0088] Beneficially, application of the exemplary PSCS method,
whether alone or in combination with other methods (such as the
partial read method for instance), can render the process of
contention resolution and tag identification far more efficient. By
searching in segments at a time, and narrowing the searching down
in those segments where a contention occurs, the reader can quickly
eliminate large sections of a register, without having to sequence
through the possible values one by one. In a given segment, if no
tags respond or if no contention occurs, the reader need not search
any further. Thus, the reader may successfully identify the tags in
its field of view by sending far fewer instructions than it might
otherwise have had to send.
[0089] Other arrangements are possible as well. For instance, the
reader may apply the partial read method with respect to a first
register of the tags in its field of view and may then apply the
PSCS method, alone or in combination with the partial read method,
with respect to the other registers of the tags. As another
example, if the reader applies the PSCS method and detects many
contentions in the smallest range segments, the reader may instead
just use the partial read method the next time it seeks to identify
tags in its field of view. Similarly, if the reader applies the
partial read method and finds that there are large groups of values
as to which no tags respond, the reader may instead use the PSCS
method the next time its seeks to identify tags in its field of
view.
[0090] An exemplary embodiment of the present invention has been
described. It will be understood, however, that changes and
modifications may be made to the described embodiment without
deviating from the spirit and scope of the invention, as defined by
the following claims.
* * * * *