Esperimenti con RFID

125 kHz


Non mi assumo nessuna responsabilita' per danneggiamenti, perdita di dati o danni personali come risultato diretto o indiretto dell'uso delle informazioni contenute in queste pagine. Questo materiale e' fornito cosi' com'e' senza nessuna garanzia implicita o esplicita.


Home
Hardware
Software

Se stai leggendo questo articolo e' probabile che tu abbia seguito il link da questa pagina.

Facciamo un esperimento: un bel oscillatore sinusoidale. Gia' che ci siamo lo facciamo con un FET a giunzione (come ad esempio il famoso 2N3819), con una bobina bella grande e facciamo in modo che oscilli alla frequenza di 125kHz. Questo lo schema elettrico risultante.

Oscillator schematic

La bobina potrebbe presentare qualche problema: deve essere realizzata avvolgendo 20 spire di filo smaltato del diametro di 0.20mm su un supporto di plastica di 6x8cm. Io ho usato un pezzo di plexyglass dello spessore di 4mm, ricavando una cava di circa 1mm lungo tutto il bordo, in questo modo il filo rimane all'interno della cava e non si muove o non si disfa. Sopra alle prime 20 spire dobbiamo avvolgere altre 10 spire dello stesso filo, questo costituisce il circuito di reazione dell'oscillatore.

Cs e' un condensatore elettrolitico da 47uF/25V mentre Rs ha un valore compreso tra 220ohm e 120ohm, per questa serve scegliere il valore piu' alto che mantiene le oscillazioni senza che il circuito si spenga (potrebbe avere dei problemi ad entrare in oscillazione se il valore di Rs e' troppo alto). Io ho scelto Rs = 150ohm. Il circuito viene alimentato con una pila quadrata da 9V. Questo il risultato finale montato su un a piccola breadboard.

Oscillator antenna

Tanto per cominciare questo coso potrebbe essere visto come un oscillatore didattico, di fatto ho scelto un oscillatore a JFET perche' non lo avevo mai fatto prima, quindi se il nostro aggeggio oscilla potremmo aver gia' raggiunto il Nirvana. Qui vediamo il segnale generato dal nostro stupendo oscillatore.

Oscillator signal

Chiaramente questo non e' lo scopo dell'articolo, e' solo il punto zero: se il nostro circuito non oscilla non possiamo andare avanti. Il lettore attento potrebbe aver gia' capito dove voglio andare a parare: la tessera bianca che si vede in parte nella foto e' un tag RFID del tipo a sola lettura, di fatto la tessera contiene un codice univoco a 64 bit e se viene eccitata da un campo magnetico a 125kHz trasmette ciclicamente il proprio codice identificativo.

Colleghiamo la sonda dell'oscilloscopio al punto segnato in giallo sullo schema elettrico (il drain del transistor), avviciniamo la tessera all'antenna e vediamo che cosa succede.

Bit view

Come vedete il segnale generato dalla nostra antenna viene modulato in ampiezza dalla scheda. Il tag dovrebbe trasmettere un codice di 64 bit complessivi, in modulazione Manchester, dove ciascun bit e' lungo esattamente 64 oscillazioni della portante generata da noi. Qui sotto ho voluto contare la durata del bit, la parte alta del segnale rappresenta esattamente mezzo bit.

Bit length

Regolando opportunamente la scala dei tempi possiamo tentare di visualizzare il codice completo sul monitor dell'oscilloscopio. Effettivamente la trasmissione di 64 bit, dove ciascun bit ha la durata di 64 cicli della portante, richiede un totale di 4096 cicli che alla frequenza di 125kHz equivalgono a circa 32ms per trasmettere tutto il codice; nella figura sotto la distanza tra le righe tratteggiate e' di 35.6ms.

Full code view

Ora rendiamo leggeremente piu' serio il nostro esperimento: prendiamo un vero lettore di tag RFID come quello qui sotto; si tratta di un kit di montaggio basato sull'integrato U2270B: un front end studiato proprio per dialogare con trasponder a 125kHz. Il lettore di tag comprende un PIC che fa la decodifica del codice Manchester e confronta il codice del tag con quelli memorizzati, nel caso di confronto positivo attiva un rele' che apre il cancello di casa. Per quanto possa sembrare un'applicazione piuttosto banale il punto sta nel fatto che questo e' un lettore ufficiale che puo' essere acquistato in negozio.

Tag reader

Come al solito avviciniamo la nostra tessera e vediamo che cosa succede, ma prima predisponiamo un paio di sonde strategiche, questo il codice come esce dall'U2270B.

Tag code

Ovviamente si tratta di un bel segnale squadrato e privato della portante, altrimenti l'U2270B che cosa ci sta a fare??!!?

Qualcuno si potrebbe domandare come cavolo sia fatto questo maledetto lettore e dove siano prelevati i segnali, per questo ci viene in aiuto lo schema elettrico qui sotto.

Tag reader schematic

Trattandosi di un articolo pubblicato su diverse riviste non posso io riprodurre per intero lo schema elettrico in questa sede, qui sopra si vede solo il front end radio, che di fatto e' la parte che ci interessa.

Possiamo anche ingrandire la vista ed entrare nel dettaglio dei bit: di fatto il segnale analogico modulato in ampiezza viene amplificato e squadrato e ripresentato all'uscita pulito e soprattutto TTL compatibile.

Tag bits detail

Qualcuno magari comincia a chiedersi perche' mai siamo diventati matti a costruire la prima antenna quando avevamo un lettore completo gia' bello che pronto sotto mano, il bello viene adesso: possiamo sfruttare la nostra antenna per sniffare il dialogo mentre il vero lettore legge la tessera?

Sapete gia' qual'e' la risposta, altrimenti non vi avrei nemmeno fatto la domanda; prendiamo il nostro circuito e togliamo il transistor, dobbiamo lasciare solo l'avvolgimento principale collegato ai due condensatori d'accordo, il secondario riname in aria senza alcun collegamento. Ora colleghiamo una sonda dell'oscilloscopio all'uscita dell'U2270B (il canale giallo) e l'altra sonda alla nostra antenna (il canale magenta) dopo di che mettiamo la nostra antenna sopra ala bobina del lettore e avviciniamo la carta, questo il risultato.

Tag sniffing

Il segnale e' praticamente identico a quello che si vedeva prima con la nostra antenna da sola, quindi con un po' di fantasia potremmo rivelare l'inviluppo ed ottenere la copia del segnale giallo senza collegamenti con il circuito originale.

Cambiando antenna e utilizzando ad esempio l'antenna ZXC495XJLB della Coilcraft si ottiene un segnale leggermente diverso.

Tag sniffing


Questo sito e' stato realizzato interamente con vim.
Un grazie veramente sentito a tutta la comunita' open source, alla free software foundation e chiunque scriva software libero.