ThingMagic Mercury API v1.23.0 User Manual
Page 125

How UHF RFID Works (Gen2)
Performance Tuning
125
The remaining Gen2 settings control how soon, and how often, a tag responds to a 
reader. If all tags in the field responded immediately to the reader, their responses would 
collide and the reader would rarely be able to decode responses from any tags. To avoid 
this, the Gen2 protocol provides a variable number of time slots in which tags can 
respond. The reader announces to the tag population the number of response 
opportunities it will give to them (calculated from a value it sends, called “Q”). Each tag 
randomly picks a number within this range and the reader starts announcing response 
slots. Essentially the reader announces the start of a round and then repeatedly shouts 
“next”. Each tag keeps count of how many “nexts” there has been and responds when 
their selected slot comes around. The “Q” value that is announced is a number from 0 to 
15. The number of slots is 2^Q power. The number of slots increases rapidly with the “Q” 
value: 1, 2, 4, 8, 16, etc.
If “Q” is too large, many response opportunities will go unanswered and the inventory 
round will take longer than it should. If “Q” is too small, one or more tags will be more 
likely to respond in the same time slot, resulting in several inventory rounds having to be 
run before all tags respond. In the extreme case, where there are many more tags in the 
field than slots available, response collisions will always occur and the inventory round 
will never complete successfully. The ideal number of slots has been determined to be 
around 1.5 times the number of tags in the field. If the tag population will be variable, the 
user can set the ThingMagic reader to automatically determine the Q based on the results 
of successive rounds (it increases the “Q” if there are many collisions, and decreases the 
“Q” if there are too many unanswered response slots.)
There are two additional Gen2 settings which control whether, and how often, a tag 
participates in an inventory round. When initially setting up the response queue, the 
reader also sends two other pieces of information to all tags:
1. How long they should delay until they re-respond (called the “session” value) and
2. What state (“A” or “B”) they should be in to participate in the inventory round. The “A”
state indicates that the tag has not yet responded to an inventory round. The “B” 
state indicates that it has. The session setting determines how long the tags wait in 
the “B” state before returning to the “A” state so they can participate again.
a query is initiated and the reader performs one or
more inventory rounds depending on the timeout period (longer timeouts result in more 
inventory rounds being executed). During an inventory round, the reader attempts to read 
all tags within the field. The reader operates in only one session for the duration of an 
inventory round. 
The “Session” setting, which controls how often tags respond to inventory rounds, has 4 
options, but two behave identically.
