Come per lo standard HF ISO15693 (descritto nell’articolo Anticollisione per tag HF), anche per transponder UHF esiste una sequenza che permette di leggere una popolazione di tag contemporaneamente.

Lo standard EPCglobal Class-1 Generation-2 UHF RFId prevede la possibilità di lettura multipla dei tag. Questo significa che un comando di inventory fornito dal reader non restituisce un solo valore EPC, ma tutti i valori EPC dei transponder raggiungibili dal campo elettromagnetico.
La domanda più ricorrente è: come fanno i transponder a comunicare contemporaneamente senza disturbarsi a vicenda? La risposta risiede in quello che viene comunemente chiamato algoritmo di anticollisione.
 
L’algoritmo è descritto nel dettaglio all’interno delle specifiche. In questa sessione presentiamo solamente i punti fondamentali del sistema.
 
Un reader gestisce una popolazione di tag tramite 3 operazioni basilari:
Select: processo con il quale un reader seleziona una popolazione di tag per accesso o per inventory.
Inventory: processo con il quale un reader identifica i tags. Un inventory round inizia con un comando di Query, al quale uno o più tags possono rispondere. Se un solo tag risponde, allora il reader richiederà PC, EPC e CRC.
Access: processo con il quale un reader accede per lettura o scrittura ad un tag.

 

La selezione di una popolazione di tag avviene tramite l’invio di un comando di Select. Il comando di select contiene numerosi parametri che permettono di selezionare una sottopopolazione dei tag presenti nel campo in modo da eseguire operazioni di unione o intersezione insiemistiche. In generale è quindi possibile selezionare una numero di tag che rispondano a determinati criteri.

 
Eseguire un comando di inventory richiede invece più passaggi, definiti dalle singole richieste di Query, QueryAdjust, QueryRep, ACK e NAK. Il comando di Query inizia quello che comunemente è chiamato inventory round (giro di inventario).
Query contiene un parametro denominato Q che viene trasmesso ai tag selezionati: ogni tag calcola un numero random compreso nell’intervallo 0 – 2Q-1 (inclusi) e lo carica nel proprio slot counter. Tags che calcolano il valore 0000h rispondono immediatamente, tags che calcolano un valore diverso da zero attendono comandi di QueryRep che servono a decrementare il valore nello slot counter: anche in questo caso il tag risponde solamente quando lo slot counter raggiunge il valore 0000h.
Se più tag rispondono contemporaneamente ed il reader riesce a risolvere la collisione di uno dei tag a livello di forma d’onda, il tag decodificato riceve un comando di ACK (acknowledge), ovvero di accettazione del dato, ed il reader, accorto della collisione, può procedere in due modi:
          prosegue con l’inventory round, ignorando il tag perso, fornendo un comando di QueryRep, oppure
          aggiusta i parametri con un comando di QueryAdjust;
 

Il valore di Q è quindi fondamentale per calcolare la probabilità che due tag rispondano contemporaneamente: Q è un valore intero nel range 0-15 quindi la probabilità che due tag rispondano contemporaneamente va da 20 = 1 a 2-15 = 0,000031.

 

Figura 1: Inventory round
 
 
Conclusioni

Uno dei vantaggi tecnologici del prodotto RFId consiste nella capacità di leggere contemporaneamente più transponder. La sequenza di anticollisione consiste proprio nella procedura adottata dai reader per riuscire ad interrogare una popolazione numerosa di tag.