RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Application No. 60/562,095, filed on Apr. 13, 2004, entitled “RFID Tag Systems, RFID Tags and RFID Processes With Reverse Link Burst Mode”, listing Scott Cooper, Kurt Sundstrom and Chris Diorio as inventors, which is hereby incorporated herein by reference.
TECHNICAL FIELD This disclosure describes processes, apparatus and techniques applicable to RFID (radio frequency identification) tag technology. More particularly, this disclosure describes processes and apparatus for facilitating rapid communications between an interrogator and a population of RFID tags.
BACKGROUND RFID tagging systems have been developed to facilitate tracking of objects attached to tags, which, in turn, can be polled by an interrogator. Such systems are useful for inventory management and for location of tagged objects within a population of objects being monitored. RF tagging systems have been used to manage an ensemble of railroad cars distributed over a wide geographic range, to manage livestock, to track inventory in retail and shipping and for toll collections on toll roads, among other things.
However, conventional RFID tag systems employ signaling and communication algorithms having limited efficiency, in part because such protocols typically employ a transactional mode for communications from the RFID tag to the interrogation unit. These transactional modes use a serial exchange of brief messages, each including very few data bits or symbols, between the interrogator and one or more of the RFID tags. In other words, conventional communications protocols are such that every symbol transmitted from a RFID tag requires an accompanying symbol transmission by the interrogator. Additionally, passive RFID tag systems rely on energy derived from an incoming signal, and because the RFID tags have limited energy storage capacity, a premium is placed on efficiency of signaling protocols. Further, communication range is compromised.
Typically, an interrogation unit or reader identifies a specific RF tag in a population of tags by “singulation” of the specific tag. In such processes, the interrogation unit traverses a population of tags by engaging in a series of signal exchanges with progressively smaller portions of the tag population to identify or singulate one RFID tag in the population. The interrogation unit then verifies singulation of the specific RFID tag using an identification code unique to that RFID tag, such as a serial number, to provide acknowledgement of singulation. Data communications between the interrogation unit and only the identified RFID tag then are possible.
When RF tags are deployed to track a large population of items, the length of the identification code contributes to inefficiency in singulation. Additionally, overall economic concerns associated with system deployment and operation place a premium on reliability and efficiency of each RFID tag.
Accordingly, improved apparatus, processes and techniques are needed for efficiently singulating a population of RFID tags and effectuating data communications between one or more RFID tags and an associated tag interrogation unit.
SUMMARY Architectures and methodologies for organizing data exchanges between a reader and multiple tags are disclosed. In one aspect, a process for exchanging data between one or more RFID tags and an interrogation unit comprising transmitting a burst of data from the one or more RFID tags is disclosed.
BRIEF DESCRIPTION OF THE CONTENTSFIG. 1 is an exemplary block diagram of a system including an RFID tag population and an interrogation unit.
FIG. 2 is a schematic diagram showing an hierarchy of RFID tags, organized into a binary tree structure according to an exemplary seven bit serial number.
FIG. 3A is a flowchart describing a process for transmitting re-entry node information to a population of RFID tags.
FIG. 3B is a table describing a process for determining re-entry node information in an RFID tag system.
FIG. 3C is a table describing a process for determining re-entry node information in an RFID tag system.
FIG. 4 is a flowchart describing a process for traversing a population of RFID tags.
FIG. 5 is a flowchart describing a process for determining common bit sequences in a population of RFID tags and for setting entry nodes in a binary tree mapping the RFID tag population.
FIG. 6 represents a portion of a binary tree.
FIG. 7 is a graph of power versus frequency illustrating four subcarrier frequencies.
FIG. 8 is a block diagram of an exemplary RFID tag communications system that may be contained in each of the RFID tags ofFIG. 1 and that is useful in the context of the subcarrier signaling arrangement ofFIGS. 6 and 7.
FIG. 9 is a flowchart describing an interrogation unit process for traversing a population of RFID tags that is useful in the context of the N-FSK signaling protocol described with reference toFIGS. 6, 7 and8.
FIG. 10 is a flowchart illustrating an interrogation unit process for singulation and verification of a leaf node when the interrogation unit does not have knowledge of ID code length.
FIG. 11 is a flowchart illustrating an RFID tag process for singulation and verification of a leaf node when the interrogation unit does not have knowledge of ID code length.
FIG. 12 is a flowchart illustrating an interrogation unit process for singulation and verification of a leaf node when the interrogation unit does not have knowledge of ID code length.
FIG. 13 is a flowchart illustrating an RFID tag process for singulation and verification of a leaf node when the interrogation unit does not have knowledge of ID code length.
FIG. 14 is a flowchart illustrating an interrogation unit process for singulation and verification of a leaf node when the interrogation unit does not have knowledge of ID code length.
FIG. 15 is a flowchart illustrating an RFID tag process for singulation and verification of a leaf node when the interrogation unit does not have knowledge of ID code length.
FIG. 16 is a block diagram representing a portion of a signal exchange between one or more RFID tags and an interrogation unit.
FIG. 17 is a flowchart describing a singulation process.
FIG. 18 is a flowchart of a process describing a map mode for determination of collision-free portions of identification code sequences for a population of RFID tags.
FIG. 19 is a flowchart of a singulation process employing burst mode communications.
FIG. 20 is a flowchart of a singulation process employing burst mode communications.
FIGS. 21 and 22 are timing charts providing examples of signal exchanges, such as between an interrogation unit110 (FIG. 1) and one ormore RFID tags115 within a population oftags105.
DETAILED DESCRIPTION The following disclosure describes improved apparatus, techniques and processes for singulating an RFID tag within a population of RFID tags and effectuating efficient data communications between an interrogation station and one or more RFID tags.
Overview of an RFID System
Prior to describing various embodiments, the following section, includingFIGS. 1 and 2, addresses an overview of an architecture for realization of improved data communications in RFID tagging systems. The improved data communications, in turn, promote efficiency in execution of system functions, such as inventorying, programming of, and extraction of information from, individual RFID tags and the like. Within this context, improved RFID systems, RFID tags and communications processes are developed in subsequent sections that facilitate, for example, efficient polling of the RFID tag population.
FIG. 1 is an exemplary block diagram of anRFID tag system100 including anRFID tag population105 and aninterrogation unit110. Only oneinterrogation unit110 is shown inFIG. 1 for ease of understanding and simplicity of explanation, however, it will be understood thatmultiple interrogation units110 may be associated with thesystem100 and in data communication with one another as well as with one or more processors or computers (not shown inFIG. 1), via thedata path112. Thedata path112 may include any conventional data path, e.g., a radio frequency link, an infrared or other optical link, an acoustic link, serial or parallel bus, telephonic or wideband data link, removable memory devices, and may include intranet, internet, X10 or other communications or information-bearing media.
TheRFID tag population105 includes a plurality ofRFID tags115, e.g., T1, T2, T3, each coupled to a taggeditem120. Systems such as theRFID tag system100 are desirable for a variety of purposes, such as inventory monitoring and location determination for individual taggeditems120.
In operation ofsystems100, theinterrogation unit110 transmits aforward signal125 to one or more of the population ofRFID tags105 via a forward link. Eachindividual RFID tag115 includes one ormore antennae130. Eachantenna130 intercepts a portion of theforward signal125. Theforward signal125 may convey commands or instructions to the population of RFID tags105. In someRFID tag systems100, theforward signal125 is also employed to supply electrical power to the individual RFID tags115, to reduce dependence of the individual RFID tags115 on depletable power sources such as batteries and thus to decrease service requirements (e.g., battery replacement) and to increase mean time to failure of the individual RFID tags115. The RFID tags115 then may transmit areverse signal135 to theinterrogation unit110 via a reverse link.
All passive RFID tag signaling protocols used inRFID tag systems100 employ “backscattered” signals for communication between the individual RFID tags115 and theinterrogation unit110. Modulation of an impedance coupled to theantenna130 causes a portion of energy associated with theforward signal125 to give rise to a reverse,re-radiated signal135 that is able to convey information from theRFID tag115 back to theinterrogation unit110 via the reverse link. Use of backscattered signaling protocols reduces power requirements for eachindividual RFID tag115 because all of the energy in thereverse signal135 comes from theforward signal125.
Techniques are needed for addressingspecific RFID tags115 within the population of RFID tags105. Initially, theRFID tag system100 may need to determine which RFID tags115 are within data communications range of theinterrogation unit110. However, when all of the RFID tags115 in a population ofRFID tags105 concurrently or simultaneously provideresponse signals135 having very similar spectral characteristics, the response signals135 “collide” in a receiver portion of theinterrogation unit110. In conventional RFID tag systems, this results in a situation where theinterrogation unit110 is unable to discriminate between response signals135 fromdifferent RFID tags115 in the population of RFID tags105. With some types of signaling systems and processes, as disclosed herein, theinterrogation unit110 is, however, able to determine those portions of the response signals135 that are collision-free and to discriminate between the collision-free portions and response signal portions that have collided, as is discussed below in more detail.
In one embodiment, theinterrogation unit110 includes one or more processors orCPUs150, thedata path112 andmemory155 coupled to the one ormore processors150. Thememory155 is configured to store identification code information, status information relative to thepopulation105 and program modules including operating instructions.
Theinterrogation unit110 also may include afirst receiver RX1160 having afirst antenna165 coupled thereto, asecond receiver RX2170 coupled to the one ormore processors150 and having asecond antenna165 coupled thereto, athird receiver RX3175 having athird antenna165 coupled thereto, afourth receiver RX4180 having afourth antenna165 coupled thereto, an N−1THreceiver185 having an N−1THantenna165 coupled thereto, anNTH receiver190 having anNTH antenna165 coupled thereto. Theinterrogation unit110 also includes atransmitter TX195 coupled to the one ormore processors150 and having atransmitter antenna197 coupled thereto.
Thefirst receiver RX1160 operates at a first frequency f1and thesecond receiver RX2170 operates at a second frequency f2that is offset from the first frequency f1, with the other receivers having analogous but differently-offset frequencies. The number of receivers RX need not be a multiple of two. It will be appreciated that theantennae165 may be separate antennae or may comprise acommon antenna165. The RFID tags115 transmit first symbols, such as a “1”, using the first frequency f1, and transmit second symbols, such as a “0”, using the second frequency f2. Similarly, multiple bits may be communicated via a single symbol transmission by designating bit combinations to correspond to each frequency, e.g., f1corresponds to “00”, f2corresponds to “01”, f3corresponds to “10” and so forth. Frequency diversity in thereceivers160,175,175 . . .190 associated with theinterrogation unit110 is favored because relativelyfew interrogation units110 are typically required and because multiple subcarrier frequencies can be implemented within stringent power budget and physical constraints associated with the RFID tags115. Theinterrogation unit110 does not have the power budget and other physical constraints imposed on the RFID tags115 and thus is able to support relatively robust receivers in comparison to those deployed in the RFID tags115.
When the one ormore processors150 determine that two or more of thereceivers160,175,175 . . .190 are receiving symbols at the same time, a collision between transmissions from two or more RFID tags115 has occurred. Collisions result in reduction or loss of intelligibility in conventional interrogation processes.
Techniques for selectively enabling data communications between individual RFID tags115 and theinterrogation unit110 typically involve sending signals from theinterrogation unit110 to the population ofRFID tags105 that cause selected portions of the population ofRFID tags105 to enter a “mute” state, that is, to abstain from providing modulated response signals135 until a later time or a command resets them. By sequentially transmitting a series of commands, each selecting and sequestering together different portions of the population ofRFID tags105 by causing these portions to enter a mute state and thus to refrain from providing modulated response signals135, theinterrogation unit110 is able to winnow or narrow the population ofRFID tags105 in the traverse state until only one selected RFID tag115 (or a selected subset of RFID tags115) is in data communication with theinterrogation unit110. This process is called “singulation” of the selectedRFID tag115.
Typically, singulation relies on singulation confirmation by transmission of a signal to theinterrogation unit110 that includes data unique to theRFID tag115 being singulated, such as a serial number that is associated only with thesingulated RFID tag115. When that transmission is acknowledged by theinterrogation unit110, theRFID tag115 associated with the unique data has been singulated. TheRFID tag115 and theinterrogation unit110 then can exchange data or commands with some assurance that one-to-one data communications have been established.
Various prior art systems and methods have been employed to address RFID tag polling and data communications functions, and different types of algorithms have been developed for singulation of individual RFID tags115. An example of a binary tree traversal protocol is described below with reference toFIG. 2.
FIG. 2 is a schematic diagram showing ahierarchy200 of the RFID tags115 ofFIG. 1, organized into a binary tree structure according to an exemplary seven bit identification number. It will be appreciated thattypical RFID tag115 identification codes may be extremely lengthy, because they may include information identifying a manufacturer for theRFID tag115, a serial number for theRFID tag115 and the like. RFID tags115 may have identification codes of several hundreds of bits in length.
Anode205 is designated as the root, and corresponds, for example, to a most significant bit in the identification code (e.g., node level0). Branches, such as210, correspond to additional bits of the identification or serial number in sequence, as denoted in the node levels placed on the levels of the corresponding nodes. Thebranches210 each are associated with a legend “1” or “0”, according to the bit value represented by that branch. Thebranches210 lead to nodes, such asbranch nodes215,217,220,225 and235, andleaf nodes240. A branch node is a node such as235 having more than one path extending below it that is populated.Leaf nodes240 correspond to specific RFID tags115 (FIG. 1), such as, for example, theleaf node240 with the identification or serial number 1010111 (far left ofFIG. 2). The binary tree ofFIG. 2 is shown as being divided into two groups of leaves, denoted α and β, for purposes of illustration, as will become evident from the examples given below with respect to subsequent Figs. The example ofFIG. 2 does not show in detail all of theleaf nodes240 corresponding to a seven bit serial number or pseudo identification code for simplicity of illustration and ease of understanding.
Pseudo identification codes may be employed in some systems in order to provide eachRFID tag115 in apopulation105 with a unique identification code without having to employ an ID code that is longer than is necessary. For example, when it is known that fewer than 1024RFID tags115 are needed in a given system application, a pseudo identification code that is only ten bits in length is sufficient to permit each of the RFID tags115 in thepopulation105 to be associated with a unique pseudo identification code. The term “ID code” will be employed hereinafter for simplicity of explanation and ease of comprehension, with the understanding that, unless otherwise indicated, such may include the meaning of or be interchangeable with the terms “ID code”, “serial number”, “unique ID” and “pseudo ID code” or “pseudo identification code” within its meaning as intended herein.
Algorithms known as “binary tree traversal” algorithms offer ability to parse apopulation105 ofRFID tags115 in order to identifyRFID tags115 within thepopulation105 and to permit data exchange between one ormore RFID tags115 in thepopulation105 and theinterrogation unit110. Examples of such systems are described in U.S. Patent Application Serial No. U.S. 2002/0149481 A1, published on Oct. 17, 2002, entitled “Method, System, And Apparatus For Binary Tree Traversal Of A Tag Population”, naming Shanks et al. as inventors, U.S. Patent Application Serial No. U.S. 2002/0167405 A1, published on Nov. 14, 2002, entitled “Radio Frequency Identification Structure”, naming Shanks et al. as inventors and U.S. Pat. No. 6,535,109, entitled “System And Method For Communicating With Multiple Transponders”, naming Mahdavi as inventor, which are all hereby incorporated herein by reference.
Briefly, such algorithms involve a series of short transactions between theinterrogation unit110 and theRFID tag population105. Each transaction involves an exchange of signals between theRFID tag population105 and theinterrogation unit110, such as asignal125 transmitted from theinterrogation unit110 followed by aresponse signal135 from one or more of the RFID tags105, or, in some cases, a lack of such aresponse signal135.
Binary tree algorithms operate by having theinterrogation unit110 initially transmit theforward signal125 configure to include a command to the population ofRFID tags105 to cause the RFID tags115 to enter a “traverse” state. In the traverse state, the RFID tags115 respond to theforward signal125 by sending back thereverse signal135 which may be configured to include information such as data corresponding to a predetermined bit of an ID code for each of the RFID tags115 in thepopulation105.
When theinterrogation unit110 is able to employ information in thereverse signal135 to determine that bothbranches210 extending immediately below theroot node205 are populated, i.e., are coupled via one ormore branches210 to aleaf node240 corresponding to anRFID tag115, theinterrogation unit110 may transmit a signal configured to cause a subset of the population ofRFID tags105, such as allRFID tags115 on onebranch210 extending from the root205 (e.g., the subset having a first bit of their serial number equal to “0”), to leave the traverse state and enter a mute state (become dormant). These RFID tags115 then do not respond to furtherforward signals125 while in the mute state.
The signal from theinterrogation unit110 is also configured to cause another subset (e.g., the subset having a first bit of their serial number equal to “1”) to remain in the traverse state and thus to continue to be able to provide a response signal.
Theinterrogation unit100 then transmits another command configured to cause a further subset of thepopulation105 to become dormant (e.g., the subset having a second bit of their serial number equal to “1”) and to cause another subset (e.g., the subset having the second bit of their serial number equal to “0”) to provide a response signal. RFID tags115 corresponding toleaf nodes240 that are below a given branch node and that are coupled to that branch node via one ormore branches210 that do not extend above the branch node are “associated” with that branch node.
Theinterrogation unit110 continues to send such commands until only asingle RFID tag115 is active or singulated. Theinterrogation unit110 and thesingulated RFID tag115 then can exchange information and/or commands as appropriate, while affording confidence that the exchange is between a specific one of the RFID tags115 and theinterrogation unit110. Conventional binary tree traversal algorithms have some disadvantages, in part because they parse the binary tree by only a single node level per transaction.
Conventional binary tree traversal algorithms have some inefficiency. First, the time to singulation each RFID tag is made longer by the limitation of parsing the binary tree at a single node per transaction. Second, time to singulate a group of RFID tags is adversely impacted by returning to theroot205 following singulation of aleaf node240 and any subsequent communication between a givenRFID tag115 and theinterrogation unit110.
For example, the types of systems described in the above-noted documents return to theroot205 following singulation of aleaf node240 and any subsequent communication between thesingulated RFID tag115 and theinterrogation unit110. The binary tree must then be traversed again, beginning from theroot205, in order to singulate asecond RFID tag115, resulting in inefficiency and delay, particularly when the tree is densely populated. Further, in a largeRFID tag population105, many or all of the RFID tags115 will include common bit sequences (such as manufacturer identification) as a portion of the bit sequence employed to verify singulation of aspecific RFID tag115 within thepopulation105.
As a result, repeated transmission of the common bit sequences in conventional transactional signaling protocols contribute to the amount of time required to poll thepopulation105 of RFID tags115.
Exemplary Branch Node Indexing Processes
FIG. 3A is a flowchart describing aprocess300 for transmitting re-entry node information to apopulation105 of RFID tags115. Theprocess300 begins by designation of re-entry node information, such as a predetermined number N or a list designating a subset ofbranch nodes215,217,225,235 in the binary tree as “re-entry” nodes in ablock305. The designation ofblock305 may be adopted during operation of theRFID tag system100 ofFIG. 1 or may be preset.
When the designation ofblock305 is adopted during system operation, theinterrogation unit110 transmits re-entry node identification information, or a list of re-entry nodes, to the population oftags105 in ablock310. Each of the RFID tags115 then stores the re-entry node identification information in a memory (not shown inFIG. 1), which may be volatile or non-volatile, in theRFID tag115 in ablock315. Theprocess300 then ends.
Non-Tracking and Tracking Tag Re-Entry Processes
FIGS. 3B and 3C show tables describing processes for determining re-entry node information in an RFID tag system.FIG. 3B describes non-tracking tag re-entry processes.FIG. 3C describes tracking tag re-entry processes.
In one embodiment, the process illustrated inFIG. 3B relies on tracking of nodes by theinterrogation unit110 but not by the RFID tags115 in traversing thehierarchy200 ofFIG. 2. Initially (i.e., corresponding to the top lines of the chart ofFIG. 3B), the RFID tags115 are all dormant. A command transmitted from theinterrogation unit110 places the RFID tags115 in a traverse mode.
The traversal process comprises transmission of a forward symbol from theinterrogation unit110 to the RFID tags115, followed by a reverse symbol transmitted from the RFID tags115 back to theinterrogation unit110. In this example, atnode #1, theinterrogation unit110 transmits a ONE, and each of RFID tags115 A, B and C transmits a reverse symbol corresponding to a first bit of each of their individual identification codes, which in this example is also a ONE for each of these RFID tags115. Thus, there is no “collision”, that is, the same bit value is transmitted by each of the RFID tags115.
Theinterrogation unit110 then transmits a second bit, corresponding tonode #2, and the RFID tags115 transmit a second bit of each of their identification codes in return via the reverse path. However, atnode4, RFID tags115 A and B each transmit a ONE, while RFID tag115 C transmits a ZERO via the reverse link, in other words, a “collision” signals to theinterrogation unit110 thatnode4 is a branch node.
Theinterrogation unit110 then “asks for the ones”, that is, transmits a ONE, and the RFID tag115 C is muted by this. In this example, the RFID tags A and B return a ONE and a ZERO, respectively, indicating thatnode5 is also a branch node.
Theinterrogation unit110 then again “asks for the ones”, which places RFID tag115 B into the mute state, in addition to RFID tag115 C and, in this example, results in the RFID tag115 A transmitting back a ZERO as the least significant bit in the identification code forRFID tag115 A. RFID tag A is now singulated and theinterrogation unit110 has identifiednodes4 and5 as branch nodes. Theinterrogation unit110 has determined that the RFID tag115 A is present in the interrogation arena defined by the area within which theinterrogation unit110 and the RFID tags115 are able to maintain communications.
Theinterrogation unit110 then transmits a command to reset the RFID tags115 tonode #4. The RFID tag115 A has been singulated and so remains in a mute state, and the RFID tags115 B and C transmit a ONE and a ZERO, respectively, representing another collision. In this example, theinterrogation unit110 then “asks for the zeroes”, which places RFID tag115 B in a mute state and causes RFID tag115 C to provide a ZERO fornode5, i.e., to singulate the group β ofFIG. 2. Theinterrogation unit110 then traversesnode6, obtaining a return signal from RFID tag115 C of a ZERO and thus singulating RFID tag115 C.
Theinterrogation unit110 then again sends a command to the RFID tags115 to restart fromnode #4. In this example, RFID tags A and C are now dormant, having been singulated, and so the interrogation unit is able to singulate RFID tag115 B via a similar series of transactions. It will be appreciated that, in this mode of operation, the order in which RFID tags115 B and115 C are singulated is determined by theinterrogation unit110, and, in either instance, in this example, theinterrogation unit110 will cause the RFID tags115 to restart from a predetermined node, such asnode #4 in this example, via a command.
In one embodiment, the process shown inFIG. 3C relies on tracking of nodes by theinterrogation unit110 and by the RFID tags115 in traversing thehierarchy200 ofFIG. 2. Initially (i.e., corresponding to the top lines of the chart ofFIG. 3B), the RFID tags115 are all dormant. A command transmitted from theinterrogation unit110 places the RFID tags115 in a traverse mode.
As noted above with reference toFIG. 3B, theinterrogation unit110 and the RFID tags115, A, B and C traverse tonode #4, where a first collision is noted by theinterrogation unit110. Similarly, a second collision is subsequently noted atnode #5. However, in contrast to the process illustrated inFIG. 3B, the point for restarting is adjustable, and, in the embodiment described byFIG. 3C, a command to restart at node #5 (i.e.,node225 inFIG. 2) facilitates more rapid singulation of RFID tag115 B after singulation of RFID tag A by not having to restart from the last node corresponding to all responding RFID tags, or, in this example,node #4.
RFID tag115 C then may be efficiently singulated by resetting the process tonode #4, however, since RFID tags A and B have been singulated and thus are mute. So, by having the RFID tags115 incorporate a memory function, which may be a volatile memory function, the RFID tags115 promote increased efficiency in parsing of thebinary tree200 ofFIG. 2. In this example, such is effectuated by parsing the group of leaves denoted α inFIG. 2 and then parsing the group of leaves β, however, it will be appreciated that other patterns may be employed and may be desirable under other circumstances and/or criteria. The scenario depicted inFIG. 3C permits theinterrogation unit110 ofFIG. 1 to transmit fewer bits in traversing a population ofRFID tags115, as represented by thebinary tree200 ofFIG. 2. In systems where the identification code for the RFID tags115 comprises many bits, such as 128 or 256 bits or more, efficiency may be at a premium.
FIG. 4 is a flowchart describing aprocess400 for repeatedleaf node240 singulation. Theprocess400 begins in ablock405.
In theblock405, a command from theinterrogation unit110 sends a command to place all or some of the RFID tags115 in a traverse mode. In one embodiment, the command also designates either theroot node205 or one of the re-entry nodes as a starting node, withRFID tags115 not associated with the starting node being placed in a mute state.
In ablock410, theprocess400 traverses to and singulates aleaf node240. The singulation of theleaf node240 may follow a conventional protocol or anotherleaf node240 singulation protocol.
Some types of signaling protocols implicitly provide information regardingleaf node240 population during traversal of branch nodes. For example, when FSK systems are used, the signals from the RFID tags115 associated with theserial numbers 1010111 and 1010110 (left side ofFIG. 2) will inform theinterrogation unit110 that both associatedleaf nodes240 are populated when the last bits of each serial number are transmitted back to the interrogation unit. In other types of signaling protocols, this information may not be available, and in such systems, the acts described with respect to aquery task420 and blocks425 and430 may be desirable.
In thequery task420, theprocess400 determines when a response signal from anRFID tag115 corresponding to thesingulated leaf node240 is received. Typically, an identification code corresponding to thesingulated leaf node240 is used to verify singulation. Transmission of a signal from aspecific RFID tag115 corresponding to thesingulated leaf node240 back to theinterrogation unit110 is an affirmative indication of presence of thespecific RFID tag115 in thepopulation105 of RFID tags115.
When thequery task420 determines that a response signal is received, and thus that theRFID tag115 is in the population ofRFID tags105, data communications may be initiated between theRFID tag115 corresponding to thesingulated leaf node240 and theinterrogation unit110 in theblock425. The data communication may be employed to store information in theRFID tag115 for later retrieval, to provide additional programming or instruction modules to theRFID tag115, to establish mutual calibration (e.g., set a current date/time) or to extract information from theRFID tag115.
Information from theRFID tag115 may include operational information regarding theRFID tag115 itself (e.g., indication of malfunction), status information (e.g., interval since last polled), stored information (such as addressing or ownership information relative to the tagged item), special handling information (e.g., temperature or time sensitive material, chemical hazard) or environmental information such as temperature, temperature history, acceleration, positional data (geographic or orientational), optical, moisture or chemical information and the like. When the data communication is finished, control passes to ablock435.
When thequery task420 determines that no response signal is received, or when signals received during traversal of branch nodes identify that aleaf node240 is not populated, control passes to theblock430. Thesystem100 may store information that noRFID tag115 corresponds to the identifiedleaf node240 in theblock430 when no return verification signal is received by theinterrogation unit110 in response toleaf node240 singulation. Control then passes to theblock435.
In theblock435, the RFID tags115 go to a re-entry node. In one embodiment, theinterrogation unit110 transmits a command to set the RFID tags115 to a specific entry node.
In one embodiment, the RFID tags115 return to a re-entry node that is closest to thesingulated leaf node240. For example, if thenodes225 and225′ ofFIG. 2 were designated as re-entry nodes during theprocess300, and theblock410 singulated theRFID tag115 associated with the serial number “1010111” (far left ofFIG. 2), all of theother RFID tags115 would be in the “mute” state.
Theblock435 then would result in the RFID tags115 returning to thebranch node225. The RFID tags115 associated with the serial numbers “1010111”, “1010110” and “1010101” would leave the mute state while theRFID tag115 not associated with the re-entry node225 (associated with serial number “1010000”) would remain in the mute state.
In aquery task440, theprocess400 determines when all of the RFID tags115 associated with that re-entry node have been accounted for, that is, either interrogated or found to be absent from thepopulation105. When thequery task440 determines that not all of the RFID tags115 associated with that re-entry node have been accounted for, control passes back to theblock410. This permits the remaining RFID tags115 corresponding toleaf nodes240 associated with there-entry node225 to be successively singulated.
When thequery task440 determines that all of the RFID tags115 associated with that re-entry node have been accounted for, control passes to aquery task445.
In thequery task445, theprocess400 determines when all desiredleaf nodes240 have been singulated. When thequery task445 determines that not all desiredleaf nodes240 have been singulated, control passes to ablock450.
In theblock450, theinterrogation unit110 selects another re-entry node. Control then passes back to theblock410 and theprocess400 iterates. Theprocess400 may re-initiate traversal of the tree from theroot node205 or another designated node, but proceeds to and then through the next selected re-entry node. The RFID tags115 associated with the next selected re-entry node automatically return to that re-entry node and leave the mute state following indication of termination of data exchange between theRFID tag115 associated with thesingulated leaf node240 because the re-entry node was among those designated during theprocess300.
Continuing with the example, theblock450 selects there-entry node225′. Theprocess400 then results in singulation of theRFID tag115 associated with the serial number “1010000” (far right ofFIG. 2).
When thequery task445 determines that all desiredleaf nodes240 have been singulated, theprocess400 ends. The example facilitates efficient traversal of thebinary tree200 because node levels “0” through “4” need only be traversed twice in singulation of the four RFID tags115.
In one embodiment, in theblock450, theinterrogation unit110 sends a command to reset the population oftags105 to a designatedre-entry node215,217,225,235. In one embodiment, onlyRFID tags115 associated with or emanating from the designatedre-entry node215,217,225,235 respond in further RFID tag singulation until adifferent re-entry node215,217,225,235 is designated, a command to switch to another mode of operation is transmitted or a master reset (e.g., “return to root205”) command is transmitted.Other RFID tags115 in thepopulation105 remain in a mute or dormant state until reset. Control then returns to block410 and theprocess400 iterates.
Designated Re-Entry Node Mode
TheRFID tag system100 can also transmit a designation of a re-entry node based on knowledge of how RFID tags115 are distributed in the tree or knowledge of common bit sequences for the tag population105 (an example of which is discussed below with reference toFIG. 5). For example, assume that thepopulation105 of tags comprises the fourleaf nodes240 shown inFIG. 2 as having identification numbers associated with them.
Initially, theRFID tag system100 may singulate theleaf node240 corresponding to theidentification number 1010111. Following singulation of theleaf node240 corresponding to identification number 1010111 (block410), theinterrogation unit110 transmits a command such that thenode235 becomes the branch node, because theRIFD tag system100 has knowledge that theleaf node240 corresponding toidentification number 1010111 has a neighboringleaf node240 that is populated, e.g., theleaf node240 corresponding toidentification number 1010110. Following singulation of both of theleaf nodes240 corresponding toidentification numbers 1010111 and 1010110 (block410), theinterrogation unit110 transmits a command such that thenode225 becomes the branch node.
When, however, theRFID tag system100 begins identification of individual RFID tags115 by singulation of theleaf node240 corresponding to theidentification number 1010000, theinterrogation unit110 transmits a command such that thebranch node220 atnode level4 becomes the new re-entry node.
Tracked List Mode
In one embodiment, a mode of operation is adopted where both theinterrogation unit110 and the RFID tags115 maintain information regarding thepopulation105 in the binary tree. In this mode, theblock450 comprises a return to a re-entry node corresponding to the nearest or “neighboring”branch node215,217,225,235 associated withleaf nodes240 that have not yet been singulated. The RFID tags115 automatically return to the neighboring re-entry node following indication of singulation of aleaf node240.
RFID tags115 not associated with the re-entry node remain in a mute or dormant state. RFID tags115 associated with the re-entry node are in a traverse state and respond to traverse commands from theinterrogation unit110.
In one embodiment, theinterrogation unit110 is able to monitor for collisions, and thus determine which nodes are or are not branch nodes, by determining when more than one of the receivers RX1160-RXN190 is active and can then transmit such information to the RFID tags115. A counter or stack in each of the RFID tags115 allows the RFID tags115 to track the traversal process.
One way for theinterrogation unit110 to keep track of appropriate re-entry nodes is to push a “0” onto a memory or stack when a node level is traversed that is not a branch node and to push a “1” onto the stack when a node level is traversed that is a branch node. At eachbranch node215,225,235, theinterrogation unit110 sends “push” commands to thetag population105.
In response, the RFID tags115 “push” a “1”, indicating a branch node such asnode225, or a “0”, indicating a non-branch node such asnode215, onto a stack. Individual RFID tags115 then can determine when they are permitted to respond to traversal commands from theinterrogation unit110 and when they are to remain in a mute or dormant state. When aleaf node240 has been singulated, the RFID tags115 and theinterrogation unit110 can then jump together to the nearest branch node and employ that branch node as a re-entry node.
When one ormore RFID tags115 become “lost”, i.e., the associated counters or stacks lose synchronization with theinterrogation unit110 orother RFID tags115, theinterrogation unit110 will detect multiple return signals135 frommultiple RFID tags115 and can provide appropriate commands to restore synchronization. For example, theinterrogation unit110 can provide a command to return to theroot node205 or to another designatedre-entry node215,225,235. Alternatively, theinterrogation unit110 may periodically cause a return to theroot node205.
N-Bit Neighbor Node Mode
In an N-bit neighbor mode of operation, the new re-entry branch node is chosen to be a number N of bits away from thesingulated leaf node240 or the previousre-entry branch node215,225,235, such as two bits, three bits, four bits or the like, corresponding to a respective branch node innode level5,4,3 or the like. The number N may be fixed or may be changed by a command from theinterrogation unit110. The number N may be a relatively large number, such as 20. Theprocess300 ofFIG. 3 may be employed to communicate the number N to the individual RFID tags115 in theblock310, or the RFID tags115 may be pre-programmed with the information setting the number N.
Designated Branch Node Mode
In one embodiment, theinterrogation unit110 pushes a “0” onto a stack to designate non-branch nodes and pushes a “1” onto the stack to designate branch nodes. Following singulation of aleaf node240, theinterrogation unit110 “pops” values off of the stack until it reaches a “1” and keeps track of the number of values that have been popped off of the stack, and theinterrogation unit110 then transmits information corresponding to that node or to the number of nodes separating that node from thesingulated leaf node240 to theindividual RFID tags115 to cause them to reset to the new re-entry node.
Single Step Mode
In one embodiment, theinterrogation unit110 sends a single level command to cause theindividual RFID tags115 to step back one node level from the lastsingulated leaf node240. The single level command may comprise a single bit transmitted by theinterrogation unit110. More than one such command may be employed to cause theindividual RFID tags115 to step back more than one node level.
Multiple Step Mode
In one embodiment, theinterrogation unit110 sends a multi node level command to cause theindividual RFID tags115 to step back M many node levels from the lastsingulated leaf node240 to a new re-entry node. The multi node level command may comprise an M-bit command transmitted by theinterrogation unit110.
Tracked Branch Node Mode
In one embodiment, theinterrogation unit110 transmits a command while traversing a branch node that will be employed as a new re-entry node. The individual RFID tags115 store this information and also keep track of a present node.
Following singulation of aparticular leaf node240, theinterrogation unit110 transmits a command to cause all of the RFID tags115 to return to the new re-entry node. This embodiment requires that eachRFID tag115 have a stack or counter for tracking of the new re-entry node.
Theprocess400 obviates need for a return to theroot205 for eachRFID tag115 singulation. Accordingly, speed of traversal of thepopulation105 is increased, repetitive broadcasts of bit sequences common to subsets of thepopulation105 are decreased and bandwidth efficiency is improved.
FIG. 5 is a flowchart describing aprocess500 for determining common bit sequences in apopulation105 ofRFID tags115 and for setting entry nodes in a binary tree mapping of theRFID tag population105. Theprocess500 begins in ablock505.
In theblock505, theinterrogation unit110 sends a command to cause all of the RFID tags115 in thepopulation105 to transmit their identification codes contemporaneously, that is, in relatively close synchrony.
In one embodiment, the command causes the RFID tags115 to transmit the identification codes in a burst mode, which may include the entire identification code or a portion of the identification code. In one embodiment employing backscatter for the reverse link, theinterrogation unit110 then transmits a carrier. In ablock510, theinterrogation unit110 monitors the identification codes transmitted back from the RFID tags115.
In ablock515, theinterrogation unit110 determines collision-free portions of the identification codes. This requires that the RFID tags115 transmit such that at least a portion of each bit position from each of the RFID tags115 overlap the same bit position in the sequence from the other RFID tags115. In one embodiment, theinterrogation unit110 detects collisions by determining those bit positions where transmitted or backscattered energy is present at more than one of thereceivers RX1160 throughRXN190.
In ablock520, theinterrogation unit110 sets entry nodes based on the collision-free portions of the identification codes. For example, thepopulation105 of fourRFID tags115 shown inFIG. 2 could employ thebranch node215 ofnode level4 or thebranch nodes215 and235 ofnode level5 as re-entry nodes, to avoid repeatedly traversingnode levels0,1,2 and3 in serially singulating thepopulation105 of RFID tags115. Other techniques could be employed for determining when collisions occur. Theprocess500 then ends.
Exemplary NFSK Multi-Node Branch Indexing
FIG. 6 represents aportion600 of a binary tree. Theportion600 includes three node levels, denoted N-2, N-1 and N, and illustrates four leaf nodes, analogous to theleaf nodes240 ofFIG. 2. The four leaf nodes are denoted Tag A (00), Tag B (01), Tag C (10) and Tag D (11).FIG. 7 is agraph700 of power versus frequency illustrating four subcarrier frequencies F0, F1, F2and F3. Arrows illustrate a relationship between the bits corresponding to the four RFID tags (Tag A, Tag B, Tag C and Tag D) represented inFIG. 6 and the four subcarrier frequencies F0, F1, F2and F3represented inFIG. 7, respectively. It will be appreciated that, whileFIGS. 6 and 7 depict four leaf nodes Tag A (00), Tag B (01), Tag C (10) and Tag D (11) and four subcarrier frequencies F0, F1, F2and F3, respectively, for simplicity of illustration and ease of understanding, the concepts disclosed may be applied to other numbers of nodes and/or subcarrier frequencies.
FIG. 8 is a block diagram of an exemplary RFIDtag communications system800 that may be contained in each of the RFID tags115 ofFIG. 1 and that is useful in the context of the subcarrier frequency signaling arrangement ofFIGS. 6 and 7. The RFIDtag communications system800 includes anantenna805 coupled to anRF interface810. TheRF interface810 is coupled to amodulator815 and ademodulator820. Themodulator815 is coupled to asubcarrier frequency generator825, which, in turn, is coupled to anoscillator830. TheRF interface810 is also optionally coupled to a DCpower recovery module835.Control logic840 is coupled to thesubcarrier frequency generator825, themodulator815 and thedemodulator820. Amemory845, which may include read-write memory and non-volatile memory, is coupled to thecontrol logic840 and is configured to store data received from thecontrol logic840 and to retrieve data and provide retrieved data to thecontrol logic840. Thememory845 is also configured to store identification code information and program modules including operating instructions.
When forward signals125 (FIG. 1) are received by theantenna805, the DCpower recovery module835 rectifies a portion of theforward signals125 to provide DC power to a remainder of the RFIDtag communications system800. Thedemodulator820 receives a portion of theforward signals125 and provides commands and information from theforward signals125 to thecontrol logic840. Thecontrol logic840 responds by providing responses to themodulator815 and/orsubcarrier frequency generator825. As a result,reverse signals135 are transmitted back to theinterrogation unit110.
Theoscillator830 is synchronized to a component of the forward signals125, such as a pattern in the forward signals125. This provides an accurate oscillator signal at a first frequency to thesubcarrier frequency generator825. Thesubcarrier frequency generator825 provides one or more signals to themodulator815 that are derived from the first frequency signal from theoscillator830. For example, theoscillator830 may provide a signal at a frequency of 5 Megahertz. Thesubcarrier frequency generator825 may include a group of frequency dividers and use these to derive signals F0, F1, F2and F3, for example, having frequencies of 1.25 Megahertz, 2.5 Megahertz, 3.75 Megahertz and 5 Megahertz, respectively. In one embodiment, thesubcarrier frequency generator825 provides three or more signals to themodulator815.
FIG. 9 is a flowchart describing aninterrogation unit110process900 for traversing apopulation105 ofRFID tags115 that is useful in the context of the N-FSK signaling protocol described with reference toFIGS. 6, 7 and8. TheRFID tag115 may transmit multiple bits of information in a single symbol to theinterrogation unit110. For example, a signal corresponding to F0indicates that “00” is being transmitted, with F1corresponding to “01”, F2corresponding to “10” and F3corresponding to “11”. This example increases the data rate of transmissions from theRFID tag115 to theinterrogation unit110 by a factor of two.
Theprocess900 begins in ablock905. In theblock905, theinterrogation unit110 transmits a command to place the RFID tags115 in a traversal mode or a sort mode and to synchronize the RFID tags115 with theinterrogation unit110. For example, the RFID tags115 are set to an entry node corresponding to an entry node employed by theinterrogation unit110.
With reference toFIG. 2, such would be one ofnodes215,217,220,225 or235 (as discussed above) or theroot node205. This example is described in terms of a start from theroot node205, with theportion600 of the tree ofFIG. 6 corresponding tonode225 ofFIG. 2 and elements below node225 (e.g.,node225 corresponding to node level N-2,node235 corresponding to node level N-1 etc.).
In ablock910, theinterrogation unit110 polls the population ofRFID tags115 by transmitting a carrier signal. The carrier signal may also act to provide or supplement DC power for the RFID tags115.
In ablock915, theinterrogation unit110 analyzes information from the RFID tags115. For example, the RFID tags115 transmit a first two bits of their ID codes.
In ablock920, theinterrogation unit110 transmits asignal125 comprising multiple bits of a target path. This signal acts to poll thepopulation105 ofRFID tags115 or a subpopulation of the RFID tags115 not in a mute state and places thoseRFID tags115 not associated with the target path in the mute state. For example, theinterrogation unit110 polls thepopulation105 ofRFID tags115 by transmitting information representing a first N many bits of a target path, such as ‘10’ and then transmits a carrier.
In ablock925, theinterrogation unit110 receives signals from the RFID tags105 that are on the target path comprising N many bits of an identification code, such as the next two bits (corresponding to the example ofFIGS. 6 and 7). Each of theRFID tags115 backscatters N many bits as a single bit length symbol modulated using one of the subcarrier frequencies F0, F1, F2 and F3. In the example ofFIG. 2, each of the RFID tags Tag A, Tag B, Tag C and Tag D would all backscatter a single bit symbol at the subcarrier frequency F2. RFID tags115 that do not have these bits set to the target path value (i.e., to ‘10’ in this example) would be placed in a “mute” or non-responsive state by this sequence of signals.
In ablock930, theinterrogation unit110 analyzes the information contained in the reverse signals135 from the RFID tags115 that are not in the mute state. Theinterrogation unit110 can determine when nosignal135 is returned, one ormore signals135 are returned that carry the same data (because there are no collisions) or whenmultiple signals135 are returned that carry different data (because there are collisions, i.e., signals corresponding to more than one of the subcarrier frequencies are present).
In aquery task935, theprocess900 determines when a leaf node has been singulated or is within a threshold value of being singulated. When thequery task935 determines that the leaf node has not been singulated or that theprocess900 is not within a threshold value of being singulated, control passes to ablock940. When thequery task935 determines that the leaf node has been singulated or that the process is within a threshold value of being singulated, control passes to ablock945.
In theblock940, the target path is incremented. A next segment of the target path is selected to provide a new path segment. Control of theprocess900 then passes back to theblock910 and theprocess900 iterates. For example, theinterrogation unit115 transmits a second portion of N many bits of a target path, such as ‘10’, which may again followed by transmission of a carrier (block920). This second portion causes the RFID tags115 on that path (e.g., “1010 . . . ”) to backscatter a second group of N many bits, in this case ‘10’, corresponding to traversal from thenode217 to thenode220.
In theblock945, singulation is completed and verified. Theprocess900 then ends. TheRFID tag115 and theinterrogation unit110 then can exchange information.
Theblock945 includes multiple embodiments corresponding to different scenarios. Theinterrogation unit110 may or may not have knowledge of the length of the ID code. Additionally, where theinterrogation unit110 does not have a priori knowledge of the length of the ID codes, several different protocols are possible for achieving singulation.
In one embodiment, when theinterrogation unit110 is provided with knowledge of a length of the ID code a priori, the determination of thequery task935 may be effectuated by theinterrogation unit110 recognizing that all of the bits of the ID code have been received. When the ID code length or entry node selection results in fewer than N bits spanning from the last node polled to the leaf node, theRFID tag115 corresponding to the singulated leaf node appends dummy characters to the bits spanning from the last node polled to the leaf node and transmits that information back to theinterrogation unit110. Theinterrogation unit110 then discards the dummy bits.
FIG. 10 is a flowchart illustrating aninterrogation unit110process1000 for singulation and verification of a leaf node when theinterrogation unit110 does not have knowledge of ID code length.
Theprocess1000 assumes that theRFID tag115 being singulated will append dummy bits to the last valid bit of the ID code when theRFID tag115 transmits target path bits back to the interrogation unit. Theprocess1000 begins in ablock1005.
In theblock1005, theinterrogation unit110 transmits an additional target path segment (e.g., as in block920). However, because the last target path segment included at least one valid target path bit and at least one invalid target path bit, no response signal is generated from any of the RFID tags115.
In ablock1010, theinterrogation unit110 waits a predetermined interval and determines that no response signal is received during the predetermined interval.
In ablock1015, theinterrogation unit110 transmits a command, which may be a single bit command, requesting knowledge of a number of significant bits in thelast RFID tag115 response signal.
In ablock1020, theinterrogation unit110 receives a signal from thesingulated RFID tag115 to indicate the number of valid bits in thelast RFID tag115 response signal. For example, when the last target path segment included two bits, only one of which was valid, thesingulated RFID tag115 may transmit a signal at the subcarrier F1to indicate that only one of the bits was valid. Theprocess1000 then ends.
FIG. 11 is a flowchart illustrating anRFID tag115process1100 for singulation and verification of a leaf node when theinterrogation unit110 does not have knowledge of ID code length. TheRFID tag115process1100 is a companion process to theinterrogation unit process1000 ofFIG. 10.
Theprocess1100 begins in ablock1105, wherein theRFID tag115 being singulated recognizes that the last path segment includes one or more invalid path elements, i.e., includes more bits than needed to singulate the leaf node associated with theRFID tag115.
In ablock1110, theRFID tag115 being singulated appends one or more dummy bits to a valid portion of the last path segment to form an N-bit long segment, where N is the number of nodes intended to be traversed by the target path segment ofblock1105.
In ablock1115, theRFID tag115 being singulated transmits the N-bit long segment.
In ablock1120, theRFID tag115 being singulated receives a command requesting a number of valid bits in the N-bit long segment.
In ablock1125, theRFID tag115 being singulated transmits a symbol indicative of the number of valid bits in the N-bit long segment. Theprocess1100 then ends.
FIG. 12 is a flowchart illustrating aninterrogation unit110process1200 for singulation and verification of a leaf node when theinterrogation unit110 does not have knowledge of ID code length. Theprocess1200 assumes that theRFID tag115 recognizes when the leaf node is within N many bits of the present node, where N is the number of bits being traversed in each target path segment, and that theRFID tag115 does not transmit a reply signal when the leaf node is within N many bits of the present node. Theprocess1200 begins in ablock1205.
In theblock1205, theinterrogation unit110 transmits data intended to correspond to a target path segment.
In theblock1210, theinterrogation unit110 waits for a predetermined interval for a reply signal.
In aquery task1215, theinterrogation unit110 determines whether a reply was received during the predetermined interval. When thequery task1215 determines that no reply was received during the predetermined interval, control passes to ablock1220.
In theblock1220, theinterrogation unit110 modifies the node level. In one embodiment, theinterrogation unit110 “backs up” one or more nodes. In one embodiment, theinterrogation unit110 may use a binary or other search technique to modify or adjust the node level. Control then passes back to theblock1205 and theprocess1200 iterates.
When thequery task1215 determines that a reply was received during the predetermined interval, theRFID tag115 has been singulated. Theprocess1210 then ends.
FIG. 13 is a flowchart illustrating anRFID tag115process1300 for singulation and verification of a leaf node when theinterrogation unit110 does not have knowledge of ID code length. TheRFID tag115process1300 is a companion process to theinterrogation unit process1200 ofFIG. 12.
Theprocess1300 begins in ablock1305. In theblock1305, the RFID tags115 determine that the traversal process has proceeded to within N bits of a leaf node.
In ablock1310, theRFID tag115 waits until a target path segment is received that corresponds to (e.g., ends with) the last N bits in the identification code for thatRFID tag115. In ablock1315, theRFID tag115 then transmits an acknowledgement signal. Theprocess1300 then ends.
FIG. 14 is a flowchart illustrating aninterrogation unit110process1400 for singulation and verification of a leaf node when theinterrogation unit110 does not have knowledge of ID code length. Theprocess1400 begins in ablock1405.
In theblock1405, theinterrogation unit110 transmits N bits representing an intended target path segment.
In ablock1410, theinterrogation unit110 waits a predetermined interval following transmission of the intended target path segment.
In aquery task1415, theinterrogation unit110 determines when a response has been received during the predetermined interval. When thequery task1415 determines that no response was received during the predetermined interval, theinterrogation unit110 knows that it is within N-1 node levels of a leaf node, and control passes to ablock1420. When thequery task1415 determines that a response was received during the predetermined interval, control passes to ablock1417. In theblock1417, the target path is incremented and control passes back to block1405, such that theprocess1400 continues singulation.
In theblock1420, theinterrogation unit110 receives a signal from the RFID tags associated with the last target node. These signals use fewer of the subcarrier frequencies, for example, F0or F1only.
In ablock1425, the interrogation unit transmits a modified or incremental target path segment, such as a single node step command to cause the RFID tags115 to step to a next lower node level.
In ablock1430, theinterrogation unit110 receives response signals generated by the RFID tags115 below the next lower node level.
In aquery task1435, the interrogation unit determines when a leaf node has been singulated. When thequery task1435 determines that a leaf node has not yet been singulated, control passes back to theblock1425. When thequery task1435 determines that a leaf node has been singulated, theprocess1400 ends.
FIG. 15 is a flowchart illustrating anRFID tag115process1500 for singulation and verification of a leaf node when theinterrogation unit110 does not have knowledge of ID code length. TheRFID tag115process1500 is a companion process to theinterrogation unit process1400 ofFIG. 14. Theprocess1500 begins in ablock1505.
In theblock1505, the one ormore RFID tags115 associated with the current node recognize that less than N many bits or node levels separate the current target node from a leaf node.
In ablock1510, the one ormore RFID tags115 wait for a predetermined interval.
In ablock1515, the one ormore RFID tags115 below the last target node transmit signals using a group of fewer of the subcarrier frequencies, for example, F0or F1only.
In ablock1520, the one ormore RFID tags115 receive a modified target path segment, such as a single node step command to cause the one ormore RFID tags115 to step to a next lower node level.
In ablock1525, the RFID tags115 that are associated with the next lower node level transmit response signals using the group of fewer subfrequencies.
In aquery task1530, the RFID tags115 determine when a leaf node has been singulated. When thequery task1530 determines that a leaf node has not been singulated, control passes back to theblock1520. When thequery task1530 determines that a leaf node has been singulated, theprocess1500 ends.
It will be appreciated that, while the discussion above has been presented in terms of single bit-length N-FSK symbols being transmitted from the RFID tags115 to theinterrogation unit110, multiple bit-length N-FSK symbols could be transmitted to encode larger amounts of information.
These arrangements also guarantee no bit or path level collisions. For the example above, there are a maximum of four possibilities for leaf node demographics below node level N-2, using the four subcarrier frequency model discussed above. When all four subcarrier frequencies are detected, theinterrogation unit110 knows that all four leaf nodes are populated. Theinterrogation unit110 similarly is provided with information as to which leaf nodes are populated when fewer than four subcarriers are detected and thus avoids selection of node addresses that correspond to unpopulated nodes. This example shows that using four subcarriers allows theinterrogation unit110 to determine tree population from a branch node at the N-2 node level with asingle transmission125 andresponse135, in contrast to multiple signal exchanges needed by conventional signaling protocols for such a determination. When an odd number of bits represent the path from the root to theleaf nodes240, theRFID tag115 may append a “0” to the last bit to determine which subcarrier to employ for the symbol.
It will be appreciated that other arrangements using more subcarriers can provide greater efficiency in communicating signals by the reverse link. When 2Nsubcarriers are employed on the reverse link, 2NN-bit paths emanating from a given node may be mapped to them and N many nodes can be traversed with eachinterrogation unit110 command. The RFID tags115 are able to transmit N bits per interrogation unit command, in comparison to the slower data rates possible with conventional RFID tag systems.
By including multiple bits in each symbol, theinterrogation unit110 is able to traverse multiple nodes in a single command. This results in increased throughput and also guarantees absence of bit level collisions and path level collisions. The number of subcarriers need not be a multiple of two; any integer number of subcarriers may be employed.
FIG. 16 is a block diagram representing aportion1600 of a signal exchange between one ormore RFID tags115 and aninterrogation unit110. Theportion1600 begins with a bit-by-bit exchange of signals whereby single symbol interrogation unit or reader signals SR1605 are interleaved with single symbol RFID tag signalsST1610. This format for data exchange is conventional for transmission of data bits or symbols fromRFID tags115 and results in a symbol period TS1having a duration equal to a time for theinterrogation unit110signal SR1605 plus a time for theRFID tag115signal ST1610. Theinterrogation unit110 symbols SR1605 and theRFID tag115 symbols ST1610 may represent single bits, or these symbols SR1605 and/orST1610 may represent more than one bit of information. In some communication protocols and under some conditions, such as when asingulated RFID tag115 is transmitting data back to theinterrogation unit110, theinterrogation unit110 symbols SR1605 may represent “dummy” bits, however, dummy bits add to the duration of each symbol exchange period.
Aburst command1615 may be transmitted from theinterrogation unit110 to the RFID tags115. Alternatively, under predetermined conditions, theinterrogation unit110 and/or the RFID tags115 may switch to a burst mode.
For purposes of this document, a burst is a sequential transmission of at least two symbols along one of the forward and reverse links, without an intervening transmission between the two symbols along the other one of the forward and reverse links. One symbol is sometimes transmitted with two codes (sometimes called “chips”, e.g., two bits, a low or ZERO and a high or ONE), and the symbol is the transition from the low to the high.
In the burst mode, a series ofsingle RFID tag115symbols ST1620 are transmitted from one or more RFID tags115. The burst mode results in a symbol period TS2having a duration equal to a time for theRFID tag115signal ST1620 alone. As a result, data exchange from the RFID tag(s)115 to theinterrogation unit110 is more rapid for any given symbol length.
FIG. 17 is a flowchart describing asingulation process1700. Thesingulation process1700 begins in ablock1705.
In theblock1705, anindividual RFID tag115 is singulated. TheRFID tag115 may be singulated using techniques described hereinabove or via conventional techniques.
In one embodiment, theRFID tag115 is singulated using a proxy identification code having a length that is much less than a length of a full identification code for thatRFID tag115. For example, the proxy identification code might have a length in a range of from 10 to 20 or 30 bits, while a full identification code may have a length of up to 256 bits or more. In one embodiment, theRFID tag115 may be singulated using the full identification code.
In ablock1710, communications switch to a burst mode. In one embodiment, thesingulated RFID tag115 switches to a burst mode of communication.
In ablock1715, data are exchanged in the burst mode. In one embodiment, thesingulated RFID tag115 transmits data to theinterrogation unit110 in theblock1715. In the embodiment where theRFID tag115 was singulated using the proxy identification code, theRFID tag115 may transmit a full identification code in the burst mode. TheRFID tag115 may transmit other data to theinterrogation unit110 as well. When data communication ends, control passes to aquery task1720.
In thequery task1720, theprocess1700 determines whenfurther RFID tag115 singulation is needed. When thequery task1720 determines that nofurther RFID tag115 singulation is needed, theprocess1700 ends.
When thequery task1720 determines thatfurther RFID tag115 singulation is needed, anothertarget RFID tag115 is selected in ablock1725. Control then passes back to theblock1705. Theprocess1700 then iterates.
FIG. 18 is a flowchart of aprocess1800 describing a map mode for determination of collision-free portions of identification code sequences for a population of RFID tags115. Theprocess1800 begins in ablock1805.
In theblock1805, theinterrogation unit110 sends a global command to cause all of the RFID tags115 in thepopulation105 to transmit their identification codes contemporaneously, that is, in relatively close synchrony. In one embodiment, the command causes the RFID tags115 to transmit the identification codes in a burst mode, which may include the entire identification code or a portion of the identification code. In one embodiment employing backscatter for the reverse link, theinterrogation unit110 then transmits a carrier.
In ablock1810, theinterrogation unit110 monitors the identification codes transmitted back from the RFID tags115 for portions having collisions. In one embodiment, theinterrogation unit110 is able to determine which portions of the identification codes involve collisions by determining when energy has been transmitted at more than one of the N many frequencies described above.
In ablock1815, theinterrogation unit110 determines collision-free portions of the identification codes. This requires that the RFID tags115 transmit such that at least a portion of each bit position from each of the RFID tags115 overlap the same bit position in the sequence from the other RFID tags115. In one embodiment, theinterrogation unit110 detects absence of collisions by determining those bit positions where received energy is present at only one of thereceivers RX1160 throughRXN190 ofFIG. 1 during a particular bit interval.
In ablock1820, theinterrogation unit110 sets one or more block lengths based on the collision-free portions of the identification codes. In one embodiment, theinterrogation unit115 determines lengths of collision-free blocks within the identification codes, that is, determines a length for each collision-free block.
In one embodiment, theblock1820 determines a block length consistent with several collision-free blocks. For example, when collision-free blocks having lengths of 10 bits, 12 bits and 20 bits are identified, a block length of 10 or fewer bits is consistent with each of the identified collision-free block lengths. Traversal then may be implemented by switching to the burst mode at corresponding points in the identification code, for example, by transmitting commands to switch to or from the burst mode. If an additional collision-free block of three bits in length was also identified, it may still be desirable to select a block length, such as five to ten bits, that is less than or equal to the first three block lengths but that is not consistent with the shorter collision-free block length.
In a block1825, the block length information is exchanged between theinterrogation unit110 and the RFID tags115. Theprocess1800 then ends.
FIG. 19 is a flowchart of asingulation process1900 employing burst mode communications. Theprocess1900 begins in ablock1905.
In theblock1905, an entry node is selected. In one embodiment, the entry node is chosen to be a most significant bit or a least significant bit of the identification code. In one embodiment, the entry node is selected using a priori knowledge of population demographics for the RFID tags115. In one embodiment, the entry node may be selected using principles described above.
In ablock1910, a command sets the RFID tag(s)115 to a burst mode. For example, when a single bit traversal process is operative and it is determined that a predetermined number of bits have been traversed without a collision being observed, it is possible that aparticular RFID tag115 has been singulated.
While a full identification code may be very long (e.g., 256 bits), when 20 bits have been traversed, more than one million different codes have also been traversed. Similarly, 30 bits correspond to more than a billion different codes. Thus, apopulation105 ofRFID tags115 having fewer than one million RFID tags in it can be provided with unique identification codes for each member of thepopulation105 where only the first or last (or any other grouping or groupings) of bits totaling twenty (or fewer) bits differ.
In ablock1915, the RFID tag ortags115 that are in the traverse state transmit a burst of M many symbols back to theinterrogation unit110.
In aquery task1920, theprocess1900 determines if a collision between transmissions from two or more RFID tags115 has occurred. When thequery task1920 determines that a collision has occurred, control passes to ablock1925.
In theblock1925, a null command returns the RFID tags115 that are in the traverse state to a transactional mode or a single symbol mode of communication. The RFID tags115 that are in the traverse state also return to the beginning of the data block in which the collision occurred, i.e., the most recent block of bits. Theprocess1900 then ends and singulation proceeds according to any of the protocols described herein or any conventional protocol.
When thequery task1920 determines that a collision has not occurred during the most recent burst transmission, control passes to ablock1930. In theblock1930, theinterrogation unit110 acknowledges the most recent block of data. For example, theinterrogation unit110 may echo the last bit or symbol from the block, or may transmit any other predetermined acknowledgement signal.
In ablock1935, a next group of bits are selected. Control then passes back to theblock1915 to transmit the selected group of bits.
FIG. 20 is a flowchart of asingulation process2000 employing burst mode communications. Theprocess2000 begins in ablock2005.
In theblock2005, theprocess2000 traverses a portion of thepopulation105. The portion may be traversed one node per transaction or may be traversed more than one node per transaction.
In aquery task2010, theprocess2000 determines when no collisions have taken place for a predetermined number K of nodes. When the query task determines that the predetermined number K of collision-free nodes have not been traversed, control passes back toblock2005. When the query task determines that the predetermined number K of collision-free nodes have been traversed, control passes to ablock2015.
In theblock2015, theprocess2000 switches to a burst mode. For example, theinterrogation unit110 may transmit a command to cause the portion of thepopulation105 that is in the traverse mode to switch to a burst mode.
In ablock2020, theinterrogation unit110 and the traversing portion of thepopulation105 exchange a block of data comprising a predetermined number of symbols.
In aquery task2025, theprocess2000 determines when the block of data included any collisions. When thequery task2025 determines that the data block was received with collisions, control passes to ablock2030.
In theblock2030, theprocess2000 returns to the transactional mode. For example, a null command returns the RFID tags115 that are in the traverse state to a transactional mode or a single symbol mode of communication. The RFID tags115 that are in the traverse state also return to the beginning of the data block in which the collision occurred, i.e., the most recent block of bits. Theprocess2000 then ends and singulation proceeds according to any of the protocols described herein or any conventional protocol.
When thequery task2025 determines that the block of data was exchanged without any collisions, control passes to ablock2035. In theblock2035, theinterrogation unit110 acknowledges the most recent block of data. For example, theinterrogation unit110 may echo the last bit or symbol from the block, or may transmit any other predetermined acknowledgement signal.
In ablock2040, a next group of bits are selected. Control then passes back to theblock2020 to traverse the selected group of bits.
Computer Storage Media
Thememory155 ofFIG. 1 and thememory845 ofFIG. 8 each store program modules corresponding to one or more of the processes ofFIGS. 3-5 and10-15. In one embodiment, thememory155 and/or thememory845 comprise non volatile semiconductor memories, which may include a write capability. Other forms of computer readable media may also be optionally interfaced with either theinterrogation unit110 or the RFID tags115.
By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other media which can be used to store the desired information and which can be accessed by control logic.
Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The present disclosure is provided in part in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments.
For purposes of illustration, programs and other executable program components such as the operating system are illustrated herein as discrete blocks, although it is recognized that such programs and components reside at various times in different storage components, and are executable by a processor, CPU or control logic. Alternatively, the concepts disclosed herein may be implemented in hardware or a combination of hardware, software, and/or firmware. For example, one or more application specific integrated circuits (ASICs) could be designed or programmed to embody the concepts disclosed herein.
Additionally, it will be appreciated that theinterrogation unit110 and the RFID tags115 may include capabilities for operating in more than one of the modes described herein, and may include capability for switching to a specific one of these modes. Further, it will be appreciated that either theinterrogation unit110 or the RFID tags115 may include a capability for being programmed with additional modes of operation or with newer versions of one of the modes of operation.
EXAMPLEFIGS. 21 and 22 are timing charts providing examples of signal exchanges, such as between an interrogation unit110 (FIG. 1) and one ormore RFID tags115 within a population oftags105.FIGS. 21 and 22 each show a graph of signal amplitude (ordinate) versus time (abscissa), with both abscissa and ordinate corresponding to arbitrary units.FIG. 21 depicts series of interrogation/command signals, represented by S1, S2, S3, are shown as being interleaved with a corresponding series of response signals R1, R2, R3, with a duration of a time T1from a beginning of signal S1to a termination of signal R3.FIG. 22 depicts serial transmission of a group of symbols SN followed by a response signal R1-Nwith a duration of a time T2that is less than the duration T1, from a beginning of signal S1to a termination of signal R1, 2, 3, where the signal R1, 2, 3represents, e.g., three bits. It will be appreciated that more or fewer bits may be conferred by signal via suitable choices of subcarrier frequencies.
In one aspect,FIG. 21 can be used to illustrate a conventional, bit-by-bit, binary tree traversal process. In that aspect, signals SN are transmitted from the interrogation unit and signals RN are returned by one or more of the population of tags. As a result, when the signals are transmitted using a single response signal frequency choice, the time T1is needed in order to exchange three bits of information between the interrogation unit and the tag population.
However, when the signals RNeach may comprise different spectral content with the spectral content also corresponding to two or more bits, the scenario shown inFIG. 21 provides advantages in efficiency because more information may be exchanged within the interval T2than was possible in the prior art. In other words, the concepts of the present disclosure facilitate completion of traversal of a binary tree in less time that was needed according to the prior art.
CONCLUSION The concepts described herein provide significant advantages compared to prior art RFID tag systems. The protocols described herein do not require the interrogation intervals ordinarily associated therewith. As a result, these protocols and systems require fewer interrogation operations to sequentially singulate a tag population.
Although the disclosed concepts have been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed subject matter.