Search...

Anticipating your starting point with the Q value

Anticipating your starting point with the Q value

Section Contents



An intelligent user who knows that only one tag is going to be present can short-circuit this relatively slow process of adaptation by telling the reader to look for only one tag. Many readers allow the user to set the initial value of Q, under some name like Qinit or Qstart. In this case, a starting value of Q=0 will ensure that the tag will respond every time: 20-1 = 0, so the slot counter can only take the value that initiates a tag reply. By properly setting the starting value we have achieved a 27-fold increase in the read rate!

The opposite problem takes place if we start with a small value of Q when many tags are present. Imagine now that there are 50 tags of interest to us, all at about the same distance from the reader antenna, and that we’ve forgotten to adjust the starting value of Q from the single-tag case. The reader begins an inventory by issuing a Query with Q=0. As there is only one time slot available, if all 50 tags hear the command, every tag will respond simultaneously. The reader might be able to detect that a collision occurred, because the response from every tag contains an identical preamble, which can be decoded even when issued by multiple tags. Since a collision is detected, the reader will hopefully issue a new Query or QueryAdjust with an increased value of Q. On the other hand, if some tags talk a bit faster than others, even the preamble may be gibberish. If no collision is detected, the reader may simply conclude that no tag is present (since Q=0) and stop the inventory, reporting no tags.


Figure 2: inventory round with 50 tags present, using Q=0

The same pointless exercise will occur for larger values of Q until there are enough slots to give a single tag a chance of having one to itself. In this case, with 50 tags, when we get to a value of around Q=5 we should start getting a reasonable number of tags read in each inventory. At lower values of Q, virtually all the slots will contain collisions between tags, often with more than two tags talking at once. Readers differ in their ability to optimize on their own, but even the best reader will still waste many read cycles before reaching an effective value of Q, and some readers may never be able to optimize away from a small starting value (Q=0 or 1) and a large number of tags.

Obviously it is again useful to provide a good starting value of Q to the reader to obviate the wasteful initial optimization. In figure 3 we show a simple estimate of how many tags of the 50 will be read in a single inventory with varying values for the parameter Q, and the ‘efficiency’ (the average number of tags read per QueryRep command). We can see that any value of Q between about 4 and 8 will work reasonably well, and likely provide a good enough start that the reader’s adaptation algorithms will do the rest.


Figure 3: expected number of tag reads in a single inventory round (blue) and percent of QueryRep commands (slots) producing a good tag read, vs. value of Q; inventoried population of 50 identical tags, assuming a read occurs whenever only one tag replies in a given slot.

So the lesson of this discussion is: your Gen 2 reader will work faster and more efficiently if you provide an accurate starting value for Q corresponding to the expected tag population.

For reference, Table 1 gives recommended values of Q that produce reasonably efficient inventories for varying numbers of tags in the read zone.

Table 1: suggested starting Q value for various numbers of tags simultaneously
present in the read zone.
Posted on 8:16 AM by Zaheer and filed under | 0 Comments »

0 comments:

Post a Comment