La tecnologia RFID è stata ampiamente utilizzata per l'etichettatura delle risorse in una varietà di contesti industriali e governativi.
Un'applicazione tipica utilizza un set di tag serializzato con una memoria EPC codificata e un database che collega i dati EPC del tag agli identificatori delle risorse. Per esempio, un tag RFID codificato con un codice EPC a 96 bit può essere associato a un server informatico con numero di serie specifico, macchina utensile, o dispositivo medico. Un presupposto implicito nella progettazione di un sistema di tracciamento è che i tag possano essere letti in modo affidabile, identificando così correttamente il bene.
però, questo processo può soffrire di un problema chiamato bit flipping.
capovolgere un po'
La stragrande maggioranza dei tag RFID sul mercato utilizza la memoria EEPROM per memorizzare i dati di identificazione. La carica immagazzinata nella cella di memoria determina il valore di ciascun bit nei dati EPC identificati (cioè., una cella di memoria carica può rappresentare a “1”, mentre una cella vuota può rappresentare a “0”, e viceversa).
Lo stato di una cella di memoria può diventare indeterminato in due potenziali situazioni. Per semplicità, assumiamo che una cella di memoria carica rappresenti a “1”.
La cella di memoria “perdite”, la carica depositata durante la codifica si dissipa, provocando il cambiamento dello stato cellulare, quindi il bit cambia da “1” per “0”
La cella di memoria non è stata completamente caricata durante la codifica, ed è statisticamente possibile che una cella parzialmente carica venga letta come a ‘0’ invece di un '1'†
†Tecnicamente, è sempre possibile che il bit di addebito venga interpretato come a ‘0'. però, quando viene superata la soglia di carica specificata, la probabilità che ciò accada è molto piccola. I dettagli statistici vanno ben oltre lo scopo di questa discussione.
Scena di esempio
Uno scenario di esempio potrebbe essere quel cestino 1011 finisce per cambiare in cestino 1001 – più comunemente un carattere esadecimale “B” viene cambiato in un esadecimale “9”, che appare come un'etichetta che retrodiffonde due codici EPC. Per esempio, utilizzando la codifica a 96 bit:
E280 1170 EA21 7B2A 04C2 1181 e E280 1170 EA21 792A 04C2 1181
Questo è osservato raramente — non conosciamo alcun dato affidabile sulla prevalenza da parte di nessun produttore di chip — ma con miliardi di tag RFID effettivamente implementati, la possibilità non può essere ignorata.
Come controllo di integrità, considerare un tasso di errore ε di 10-6/cella e l'uso di memoria EPC estesa a 128 bit, che è disponibile in molti chip RFID, che riteniamo sia un tasso di errore più elevato di quello normalmente osservato, ma il principio si applica a prescindere Qual è il tasso di cambio reale. A scopo di discussione, ignoreremo qualsiasi effetto temporale (cioè l'analisi del tempo di guasto). A ε = 10-6, circa 1 nel 7,812 i tag dovrebbero mostrare un singolo capovolgimento di bit; Inoltre, circa 1 nel 61.5 milioni di tag dovrebbero mostrare due bit capovolti, e circa 488 miliardo 1 mostrerà tre bit capovolti.
Rileva e correggi in modo affidabile i capovolgimenti delle unità
Perché il tasso di fallimento è così basso, singole istanze di inversioni di bit possono essere rilevate e corrette in modo affidabile.
Il modo più semplice è codificare ogni bit come un triplo e utilizzare il “regola della maggioranza” metodo per determinare i dati corretti. In questo caso, un unico “1” è codificato come “111” e “0” è codificato come “000”. Se un bit della tripla viene capovolto, gli altri due lo faranno “votazione” per coprire la parte sbagliata. Questo metodo è molto robusto, poiché la perdita di dati richiede molto, evento molto improbabile, il lancio di due bit di una tripla qualsiasi. Ancora, considerando il nostro esempio di codifica a 128 bit sopra, la probabilità di un capovolgimento di 2 bit per qualsiasi tripletta, vale a dire. perdita di dati irrecuperabile, il Tag RFID MIFARE risponderà al comando:
~1/64 * (128/1,000,000) *(127/1000000) ~ 2.5 X10-10 o ~ 1 parte a 3.9 miliardo.
Questo è il prodotto della probabilità che il primo e il secondo bit siano capovolti su un'etichetta e la probabilità che il secondo bit capovolto sia uno dei bit adiacenti in una particolare terna.
Nella maggior parte degli scenari regolari, la probabilità di corruzione dei dati è molto bassa. però, la capacità di memorizzazione dei dati del tag è ridotta di due terzi, con meno di 33% della memoria tag disponibile utilizzata per i dati quando la memoria a 128 bit può contenere solo 41 pezzetti di informazioni.
Rileva due bit capovolti
Esiste un modo meno dispendioso in termini di memoria per rilevare e correggere un singolo bit capovolto, nonché rilevare (ma non corretto) eventi con una probabilità molto inferiore di un tag con due bit invertiti.
Questo può essere fatto non codificando direttamente il tag, ma utilizzando una modifica di una modalità originariamente inventata da Richard Hamming chiamata SECDEC, o Correzione errore singolo Rilevamento errore doppio.
Questa modalità utilizza bit di parità aggiuntivi calcolati in base ai dati del carico utile. Come suggerisce il nome, questo algoritmo consente di correggere un solo bit invertito, ma consente il rilevamento di un secondo bit capovolto. I progettisti di sistemi RFID devono incorporare risorse nell'architettura per gestire la situazione meno comune del doppio ribaltamento dei bit su un singolo tag.