Finkenzeller K.RFID handbook.2003
.pdf210 |
7 DATA INTEGRITY |
0.6
0.4
Throughput S
0.2
0 0 |
|
|
|
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
Offered load G
3 dB
10 dB
Figure 7.16 Throughput behaviour taking into account the capture effect with thresholds of 3 dB and 10 dB
|
Table 7.2 Command set for anticollision |
|
|
REQUEST |
This command synchronises all transponders in the reader’s |
|
interrogation zone and prompts the transponders to transmit their |
|
serial numbers to the reader in one of the time slots that follow. In |
|
our example there are always three time slots available. |
SELECT(SNR) |
Sends a (previously determined) serial number (SNR) to the |
|
transponder as a parameter. The transponder with this serial |
|
number is thereby cleared to perform read and write commands |
|
(selected). Transponders with a different serial number continue to |
|
react only to a REQUEST command. |
READ−DATA |
The selected transponder sends stored data to the reader. (In a real |
|
system there are also commands for writing, authentication, etc.) |
|
|
If a serial number is read without errors, then the detected transponder can be selected by the transmission of a SELECT command and then read or written without further collisions with other transponders. If no serial number were detected at the first attempt the REQUEST command is simply repeated cyclically.
When the previously selected transponder has been processed, further transponders in the interrogation zone of the reader can be sought by means of a new REQUEST command.
Dynamic S-ALOHA procedure As we have established, the throughput S of an S-ALOHA system is maximised at a offered load G of around 1. This means that there are the same number of transponders in the interrogation zone of the reader as
7.2 MULTI-ACCESS PROCEDURES — ANTICOLLISION |
213 |
||||||
NRZ coding |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Transponder 1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
|
|
|
|
|
|
|
Transponder 2 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
|
|
|
|
|
|
|
Combined signal |
|
|
|
|
|
|
|
at the reader |
|
|
|
|
|
|
|
Decoded |
|
|
|
|
|
|
|
data stream |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
Manchester coding |
|
|
|
|
|
||
|
|
|
|
|
|
|
Transponder 1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
|
|
|
|
|
|
|
Transponder 2 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
|
|
|
|
|
|
|
Combined signal |
|
|
|
|
|
|
|
at the reader |
|
|
|
|
|
|
|
Decoded |
|
|
|
|
|
|
|
data stream |
1 |
0 |
1 |
?? |
?? |
0 |
1 |
0 |
Figure 7.20 Collision behaviour for NRZ and Manchester code. The Manchester code makes it possible to trace a collision to an individual bit
are to guarantee the uniqueness of the addresses (serial numbers) a maximum of 256 transponders can be issued.
The use of the commands defined in Table 7.3 in a binary search algorithm will now be demonstrated based upon a procedure with four transponders in the interrogation zone of the reader. The transponders in our example possess unique serial numbers in the range 00–FFh (= 0 − 255 dec. or 00000000 − 11111111 bin.) (Table 7.4).
The first iteration of the algorithm begins with the transmission of the command REQUEST (≤11111111) by the reader. The serial number 11111111b is the highest possible in our example system using 8-bit serial numbers. The serial numbers of all transponders in the interrogation zone of the reader must therefore be less than or equal to 11111111b, so this command is answered by all transponders in the interrogation zone of the reader (see Figure 7.21).
The precise synchronisation of all transponders, so that they begin to transmit their serial numbers at exactly the same time, is decisive for the reliable function of the binary tree search algorithm. Only in this manner is the determination of the precise bit position of a collision possible.
7.2 MULTI-ACCESS PROCEDURES — ANTICOLLISION |
215 |
Downlink (reader |
REQUEST |
1st iteration |
REQUEST |
2nd iteration |
REQUEST |
|
=> Transponder) |
<11111111 |
<10111111 |
<10101111 |
|||
|
|
|||||
Uplink |
|
1X1X001X |
|
101X001X |
|
|
Transponder 1 |
|
10110010 |
|
10110010 |
|
|
Transponder 2 |
|
10100011 |
|
10100011 |
|
|
Transponder 3 |
|
10110011 |
|
10110011 |
|
|
Transponder 4 |
|
11100011 |
|
|
|
|
Downlink |
|
REQUEST |
3rd iteration |
SELECT |
Read/Write |
|
|
<10101111 |
10100011 |
||||
|
|
|
|
|||
Uplink |
|
|
10100011 |
|
|
|
Transponder 1 |
|
|
|
|
|
|
Transponder 2 |
|
|
10100011 |
|
10100011 |
Transponder 3
Transponder 4
Figure 7.21 The different serial numbers that are sent back from the transponders to the reader in response to the REQUEST command lead to a collision. By the selective restriction of the preselected address range in further iterations, a situation can finally be reached in which only a single transponder responds
Table 7.5 Possible serial numbers after the evaluation of the received data and taking into account the collisions (X) that have occurred in the first iteration. Four of the possible transponder addresses ( ) actually arise in our example
Bit number: |
7 |
6 |
5 |
4 |
3 2 1 |
0 |
|
|
|
|
|
|
|
Received data in the reader |
1 |
X |
1 |
X |
001 |
X |
Possible serial number A |
1 |
0 |
1 |
0 |
001 |
0 |
Possible serial number B* |
1 |
0 |
1 |
0 |
001 |
1 |
Possible serial number C* |
1 |
0 |
1 |
1 |
001 |
0 |
Possible serial number D* |
1 |
0 |
1 |
1 |
001 |
1 |
Possible serial number E |
1 |
1 |
1 |
0 |
001 |
0 |
Possible serial number F* |
1 |
1 |
1 |
0 |
001 |
1 |
Possible serial number G |
1 |
1 |
1 |
1 |
001 |
0 |
Possible serial number H |
1 |
1 |
1 |
1 |
001 |
1 |
|
|
|
|
|
|
|
The general rule for limiting the search area (range) is shown in Table 7.6.
After the reader has transmitted the command REQUEST (≤10111111), all transponders that fulfil this condition will respond by sending their own serial numbers to the reader. In our example these are the transponders 1, 2 and 3 (Figure 7.22). There is now a collision (X) at bit 0 and bit 4 of the received serial number. From this we can conclude that there are still at least two transponders in the search range of the second iteration. The received bit sequence 101X001X still permits four options for the serial numbers that remain to be detected (Table 7.7).
216 |
7 DATA INTEGRITY |
Table 7.6 General rule for forming the address parameter in a binary search tree. In each case, bit (X) is the highest value bit of the received transponder address in which a collision occurred in the previous iteration
Search command |
|
|
|
|
|
1st iteration range |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nth iteration range = |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REQUEST ≥ Range |
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bit(X) = 1, Bit(0 to X − 1) = 0 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REQUEST ≤ Range |
|
|
|
|
|
SNRmax |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bit(X) = 0, Bit(0 to X − 1) = 1 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Start = 1st iteration |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
0 |
|
|
|
|
|
|
1 |
|
|
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
1 |
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|
|
1 |
|
|
1 |
|
|
|
1 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
1 |
|
|
|
|
|
|
|
1 |
||||||||||||||||||
|
0 |
|
|
|
0 |
|
|
0 |
|
|
0 |
|
|
0 |
|
0 |
|
0 |
|
|
|
0 |
|
0 |
|
|
0 |
|
|
|
|
0 |
|
|
|
0 |
|
|
|
0 |
|
|
0 |
|
|
|
0 |
|
|
|
|
0 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
= Transponder from |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
example |
|
|
|
|
|
|
|
2nd iteration |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3rd iteration |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Figure 7.22 Binary search tree. An individual transponder can finally be selected by a successive reduction of the range
Table 7.7 Possible serial numbers in the search range after the evaluation of the 2nd iteration. The transponders marked ( ) are actually present
Bit number: |
7 6 5 |
4 |
3 2 1 |
0 |
|
|
|
|
|
Received data at reader |
101 |
X |
001 |
X |
Possible serial number A |
101 |
0 |
001 |
0 |
Possible serial number B* |
101 |
0 |
001 |
1 |
Possible serial number C* |
101 |
1 |
001 |
0 |
Possible serial number D* |
101 |
1 |
001 |
1 |
|
|
|
|
|
The renewed appearance of collisions in the second iteration necessitates a further restriction of the range in a third iteration. The use of the rule in Table 7.6 leads us to the search range ≤10101111. The reader now transmits to the transponders the command REQUEST (≤10101111). This condition is now only fulfilled by transponder 2 (10100011), which now responds to the command alone. We have thus detected a valid serial number — a further iteration is not necessary.
By means of a subsequent SELECT command, transponder 2 is selected using the detected transponder address and can now be read or written by the reader without interference from other transponders. All other transponders are silent as only a selected transponder responds to a write/read command — READ DATA.
After the completion of the write/read operations, transponder 2 can be fully deactivated by an UNSELECT command, so that it no longer responds to the next REQUEST
7.2 MULTI-ACCESS PROCEDURES — ANTICOLLISION |
217 |
command. In this manner the number of iterations necessary for the selection of an individual transponder can be gradually reduced if a large number of transponders are ‘waiting’ for processing in the interrogation zone of the reader. In our example, running the anticollision algorithm again would thus automatically lead to the selection of one of the previously processed transponders 1, 3 or 4.
The average number of iterations L that are required to detect a single transponder from a large number depends upon the total number of transponders N in the interrogation zone of the reader, and can be calculated easily:
log(N ) |
+ 1 |
|
L(N ) = ld(N ) + 1 = log(2) |
(7.7) |
If only a single transponder is located in the interrogation zone of the reader, precisely one iteration is required to detect the serial number of the transponder — a collision does not occur in this case. If there is more than one transponder in the interrogation zone of the reader, then the average number of iterations increases quickly, following the curve shown in Figure 7.23.
Dynamic binary search procedure In the binary search procedure described above, both the search criterion and the serial numbers of the transponders are always transmitted at their full length. In practice, however, the serial numbers of transponders do not consist of one byte, as in our example, but, depending upon the system, can be up to 10 bytes long, which means that a large quantity of data must be transferred in order to select an individual transponder. If we investigate the data flow between the reader and the individual transponders in more detail (Figure 7.24) we find that:
5
4
3
L (N)
2
1
0
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
N
Figure 7.23 The average number of iterations needed to determine the transponder address (serial number) of a single transponder as a function of the number of transponders in the interrogation zone of the reader. When there are 32 transponders in the interrogation zone an average of six iterations are needed, for 65 transponders on average seven iterations, for 128 transponders on average eight iterations, etc.