Sei sulla pagina 1di 23

Copyright 2005 -Tutti i diritti sono riservati.

1
PCF7931: Guida completa allo sniffing.
Autore: TheInsider
Revisione: 1.0.4
Questa approfondita guida rivolta a tutti coloro che sono affascinati dalla
tecnologia RFID (Radio Frequency Identification) ma che non hanno
competenze specifiche in materia.
Per quanto mi sar possibile cercher di utilizzare un linguaggio facilmente
accessibile a chiunque, mi perdoneranno i lettori pi esperti se indugier a
volte nel chiarire nozioni triviali e per molti scontate.
Questa guida mira ad individuare un modo per captare un segnale
elettromagnetico prodotto da una sorgente (uno scrittore RFID) e diretto ad un
ricevitore nelle vicinanze (un transponder RFID).
Per quale motivo dovremmo voler captare questa comunicazione
scrittore/transponder? La risposta semplice: per capirne il funzionamento e
verificarne i limiti in termini di distanza di lettura e di sicurezza intrinseca del
sistema.
Investireste in un sistema di comunicazione RFID che non offre adeguate
garanzie in termini di protezione dei dati trasmessi e che risulti facilmente
violabile da un qualunque ragazzino curioso? Probabilmente no, ed per
questo motivo che necessario vi facciate unidea precisa dei limiti di tali
sistemi di comunicazione per poter scegliere quello che meglio si adatta alle
vostre esigenze in termini di costo, affidabilit e sicurezza.
Dopo questa necessaria premessa possiamo entrare nel vivo del problema
posto: cos semplice intercettare una comunicazione tra uno scrittore RFID
ed un transponder? La risposta s, abbastanza semplice se si conoscono le
basi della tecnologia RFID e questo capitolo intende fornire non solo le basi
teoriche ma anche elementi pratici di immediata applicazione.
Quando uno scrittore RFID (detto writer) invia un messaggio ad un
transponder RFID (detto tag) lo fa emettendo un campo magnetico variabile
nel tempo e sfruttando un fenomeno detto di induzione elettromagnetica, lo
stesso fenomeno che si sfrutta nei comuni trasformatori. Grazie a questo
fenomeno, ai capi della bobina del tag (un avvolgimento di filo di rame
smaltato che si trova allinterno del tag), si genera una tensione di ampiezza
proporzionale allintensit del campo magnetico prodotto dal writer.
In parole povere se ad un certo istante il campo magnetico prodotto dal
writer vale 10 allora la tensione ai capi del tag varr 10, se il campo magnetico
si annulla allora anche la tensione sul tag si annulla. Se un istante dopo il
campo magnetico diventa 5, anche la tensione sul tag diventa 5 (possiamo
ignorare per ora le unit di misura).
Grazie a questa magica induzione elettromagnetica allora diventa facile
inventarsi un sistema per inviare dati ad un tag, basta stabilire che la presenza
di un campo magnetico variabile corrisponde ad un 1 logico e la sua assenza
corrisponde ad uno 0 logico.
Copyright 2005 -Tutti i diritti sono riservati.
2
Questo intuitivo da capire se il tag alimentato a batteria (tag cosiddetto
attivo), ma come possibile fare in modo che il tag riesca ad autoalimentare
la circuiteria interna (microcontrollore, eeprom, controllo daccesso) sfruttando
il campo magnetico emesso dal writer?
Questa la vera meraviglia suscitata dai tag cosiddetti passivi come il ben
noto transponder PHILIPS PCF7931, costituito da un minuscolo contenitore in
plastica nera di 12x6mm senza alcun contatto e senza alcuna fonte di
alimentazione esterna.
Come possibile? E presto detto. La tensione che si presenta ai capi della
bobina del tag quando il writer emette un campo magnetico variabile nel
tempo capace di generare una corrente piccola, dellordine dei uA
(microAmpere), ma gi sufficiente ad alimentare il microchip contenuto nel tag
e a permetterne il funzionamento.
Lobiezione che pu essere posta allora la seguente: se il writer trasmette
un 1 logico tutto fila liscio perch il campo magnetico variabile presente e
dunque il tag si pu autoalimentare, ma quando il writer trasmette uno 0
logico (campo magnetico nullo) il tag perde completamente la sua fonte di
nutrimento energetico, come fa ad autoalimentarsi e a registrare
correttamente il dato???
Lobiezione corretta ma la soluzione semplice: il tag contiene un
condensatore che si carica durante la fase attiva del campo magnetico e che
funge da riserva energetica nei momenti di assenza di campo magnetico,
permettendogli di sopravvivere. Ovviamente questa riserva energetica
limitata dalle microscopiche dimensioni del condensatore presente nel tag e
consente di spegnere il campo magnetico solo per poche decine di
microsecondi, pena lo spegnimento del tag.
Dunque per poter mantenere costantemente vivo e ricettivo il tag
necessario che il writer utilizzi un sistema di codifica dei dati tale da mantenere
attivo il campo magnetico variabile per la stragrande maggioranza del tempo,
limitandosi ad interromperlo solo per brevissimi istanti, detti impulsi di
trasmissione.
Finora ho parlato di un generico campo magnetico variabile come condizione
essenziale per poter generare una tensione ai capi della bobina del tag, ma
esattamente, che aspetto ha questo campo magnetico? E presto detto: si
presenta come unonda sinusoidale detta portante di frequenza standard
prestabilita: esattamente 125KHz nel caso del transponder PCF7931.
In Figura 1 possibile vedere come si presenta il segnale sulla bobina del
transponder PCF7931 che riceve i dati dal writer (segnale ASK). Per generare
tale segnale il writer usa un segnale digitale di controllo (modulante) per
spegnere/accendere un signale sinusoidale a 125KHz (portante) generato
internamente. Il breve istante in cui la portante assente costituisce limpulso
di programmazione che il transponder deve interpretare. Siccome la portante
si accende e si spegne completamente si parla di modulazione OOK-ASK (On
Off Keying Amplitude Shift Keying). Se invece di spegnere completamente la
portante se ne dimezzasse lampiezza si parlerebbe di modulazione ASK al
50%, se si riducesse lampiezza solo del 10% si parlerebbe di modulazione ASK
Copyright 2005 -Tutti i diritti sono riservati.
3
al 10% e cos via. La modulazione OOK-ASK non altro che una modulazione
ASK al 100%.
Figura 1.
Modulazione OOK-ASK di una portante a 125KHz.
E interessante notare come il transponder PCF7931 usi due differenti tipi di
modulazione ASK a seconda della direzione della comunicazione: per
programmare il tag occorre modulare al 100% (OOK-ASK) la portante, per
ricevere i dati dal tag occorre demodulare un segnale ASK modulato al 10%.
La comunicazione inoltre sempre half-duplex, ossia non possibile
trasmettere e ricevere contemporaneamente, il tag o trasmette o riceve, per
usare una metafora automobilistica basti pensare ad un senso unico alternato.
A questo punto dovrebbe essere sufficientemente chiaro come il writer riesca
ad alimentare il PCF7931 e contemporaneamente inviargli impulsi di
comunicazione, ci che non ho ancora spiegato come faccia il transponder a
capire se il brevissimo impulso (assenza di campo magnetico) che gli appena
arrivato sia un 1 oppure uno 0 logico. La risposta a questo quesito nascosta
in una sigla: PPM ossia Pulse Position Modulation. Il PCF7931 adotta proprio
tale codifica che consiste nel mantenere acceso il campo magnetico per la
maggiorparte del tempo, spegnendolo solo per brevissimi istanti la cui
posizione temporale relativa codifica il bit desiderato.
In altri termini il tempo trascorso dal penultimo impulso che ci arrivato
che ci fa capire se devo interpretare lultimo impulso come uno 0 od un 1
logico. Dunque nella codifica PPM il contenuto informativo nascosto nella
durata degli intervalli tra un impulso ed il successivo, dove per impulso si
intenda un fugace spegnimento del campo magnetico.
Copyright 2005 -Tutti i diritti sono riservati.
4
Provo ad esemplificare il concetto. Supponiamo di stabilire la seguente regola
di codifica PPM: se trascorso 1ms (millisecondo) dal penultimo impulso allora
lultimo impulso uno 0 logico; se sono trascorsi 2ms dal penultimo impulso
allora lultimo impulso un 1 logico.
Adesso supponiamo di essere riusciti a registrare la seguente sequenza
temporale di impulsi inviati dal writer al transponder:

Primo impulso (cio portante assente);


Pausa di 2ms (cio portante presente);
Secondo impulso;
Pausa di 1ms;
Terzo impulso;
Pausa di 2ms;
Quarto impulso;
Pausa di 2ms;
Quinto impulso;

Domanda: sulla base della codifica PPM che abbiamo adottato, qual la
sequenza di bit ricevuti dal tag?
Risposta: il quinto impulso vale 1 perch lo separano 2ms dal precedente, il
quarto impulso vale 1 perch lo separano 2ms dal precedente, il terzo impulso
vale 0, il secondo vale 1 ed il primo impulso allora ??? Quello non fa testo,
solo un bit di start, un modo per avvertire il tag che stanno arrivando gli
impulsi di programmazione.
Dunque la sequenza di bit inviati dal writer al tag vale 1011, facile no?
In realt la codifica PPM adottata dal tag PCF7931 leggermente pi
complessa in quanto si possono discriminare 3 diversi possibili intervalli tra un
impulso e il successivo. Studiando la sequenza di tali intervalli abbastanza
semplice interpretare il valore dei bit che rappresentano.
Non mi addentrer in questa guida nei dettagli della codifica PPM adottata dal
PCF7931 per non allontanarci troppo dal topic del capitolo e non appesantire,
chi vuole farlo pu consultare direttamente il datasheet.
A questo punto ho introdotto abbastanza nozioni per intuire che per captare il
segnale emesso dal writer in fase di scrittura del transponder non dobbiamo
fare altro che realizzare nientepopodimenoch un transponder! O meglio,
possiamo semplicemente copiare lo stadio di ricezione del PCF7931 senza
preoccuparci della sua alimentazione, che pu essere fornita esternamente
tramite una pila da 9V oppure tramite una tensione fornita per esempio da un
notebook.
Copyright 2005 -Tutti i diritti sono riservati.
5
Probabilmente qualcuno preso dallentusiasmo star pensando di captare il
segnale di programmazione del writer usando qualcosa di simile ad una
radiolina sintonizzata sui 125KHz, comodamente spaparanzato a 10metri di
distanza dal writer. In fondo si tratta pur sempre di onde elettromagnetiche
no? Purtroppo la magia dellinduzione elettromagnetica ha un grosso limite,
che riduce fortemente le distanze utili a poter ricevere un segnale
apprezzabile. Questo limite dato dal fatto che il campo magnetico generato
dal writer riduce la propria intensit con il cubo della distanza, divenendo
inapprezzabile gi a distanza di pochi centimetri se non addirittura millimetri!
Per questo motivo si parla di effetto di prossimit, non c contatto tra
writer e transponder ma la distanza deve essere molto breve, pena
lincomunicabilit.
Per capire meglio quanto velocemente il campo magnetico si riduca con
laumentare della distanza, immaginiamo di porre il tag a 1cm di distanza dalla
bobina del writer e supponiamo di leggere una tensione di 8Vpp ai capi della
bobina del tag (per chi a digiuno di elettronica per Vpp si intende la tensione
misurata tra il massimo picco positivo e il massimo picco negativo del segnale
in esame).
Bene, se ora allontaniamo il tag portando la distanza dal writer a 2cm, la
tensione captata dal tag si ridurr di ben 8 volte portandosi ad appena 1Vpp,
troppo poco per riuscire ad autoalimentare il microchip interno.
Se invece dimezziamo la distanza portandola a 0.5cm, la tensione captata
diverr circa 8 volte pi grande, ben 64Vpp !!!
Dunque occorre avvicinarci il pi possibile alla bobina del writer per poter
avere qualche chance di captare un segnale apprezzabile. Inoltre uno sniffer
che si rispetti deve essere discreto e non disturbare la comunicazione tra il
writer e il transponder, deve avvicinarsi in punta di piedi e mettersi in
silenzioso ascolto senza alterare il segnale emesso dal writer, pena
linterruzione della comunicazione per rumori sospetti
Ma passiamo ora ad analizzare come fatto il sensore di un transponder per
cercare di replicarlo nel nostro sniffer ideale.
In precedenza ho gi accennato al fatto che il campo magnetico emesso dal
writer viene captato da una bobina. Una bobina non altro che un lungo filo di
rame smaltato avvolto su un supporto. Allora, penser qualcuno, basta
prendere un filo da trasformatore qualunque, arrotolarlo su un supporto
qualunque facendo un numero di spire qualunque ed il gioco fatto.
Se siete molto fortunati potreste anche riuscire nellimpresa di raggomitolare
una bobina che abbia un minimo di sensibilit, ma noi preferiamo essere un po
pi scientifici, vogliamo creare una bobina con la massima sensibilit e con il
minimo costo. Per raggiungere questo obiettivo dobbiamo conoscere leffetto
netto di ogni parametro che caratterizza una bobina per arrivare a forgiare una
bobina allo stato dellarte e sotto il nostro pieno controllo.
Cominciamo col dire che il parametro pi importante che influenza la
sensibilit della nostra bobina la sua induttanza, che esprimeremo in uH
(microHenry).
Copyright 2005 -Tutti i diritti sono riservati.
6
Nel nostro caso possiamo pensare allinduttanza come allattitudine di una
bobina di assorbire il campo magnetico dallo spazio circostante per poterlo
rendere poi sottoforma di tensione ai suoi capi. Pi campo magnetico la bobina
in grado di assorbire e pi tensione avremo ai suoi capi e dunque maggior
sensibilit.
Dunque cosa aspettiamo? Perch accontentarci di una bobina da 30uH,
facciamola da 100uH, anzi no, da 200uH. E perch non di pi?
Come in tutte le cose occorre cercare il giusto compromesso, perch una
bobina con una grande induttanza molto sensibile ma presenta un paio di
svantaggi importanti:
a) occorre molto filo e molta pazienza dunque costa di pi costruirla;
b) se si avvicina troppo al writer rischia di assorbire talmente tanto campo
magnetico da farsi scoprire esattamente come un elefante che origlia in una
cristalleria;
Allora esploriamo lestremo opposto: se avvolgiamo una bobina di piccola
induttanza, 10uH, anzi no, solo 5uH, cosa succede? In questo caso avremo una
bobina molto semplice da realizzare, agile e silenziosa come un gatto ma
purtroppo un po dura dorecchi per cui anche se la posizionassimo a pochissimi
millimetri dal writer otterremmo una tensione ai capi molto bassa, dellordine
dei 10-100mVpp, valore decisamente noioso da gestire per lelettronica dello
sniffer, che dovrebbe integrare una precisa sezione di amplificazione,
demodulazione e squadratura con tutte le complicazioni e i costi del caso.
Occorre quindi prendere una prima importante decisione progettuale:
preferiamo adottare una bobina con un discreto udito accoppiata ad un
demodulatore semplice oppure preferiamo adottare una bobina un po dura
dorecchi accoppiata ad un demodulatore pi sensibile ma pi complesso?
Siccome la mia esperienza pratica per ora limitata allutilizzo di un
demodulatore semplice realizzato usando un singolo chip, la scelta operata in
questa guida abbastanza scontata, ma non detto che in futuro non si possa
provare ad accoppiare una buona bobina con un demodulatore pi complesso
che riesca a captare il segnale anche a 5-6cm di distanza dal writer (speravate
5-6 metri eh?)
Nel chiarire il concetto di induttanza ho prematuramente accennato ad un
demodulatore da accoppiare alla bobina senza spiegare a cosa ci serve. Per
ora consideriamolo come una magica scatola nera in grado di trasformare il
segnale analogico messo gentilmente a disposizione dalla nostra bobina in un
segnale digitale digeribile da una porta di un microcontrollore o da una porta
seriale di un notebook per permetterci di salvare i dati catturati in modo
permanente su una eeprom o su un file.
Ma rimaniamo focalizzati sulla nostra bobina ideale: dobbiamo realizzare una
bobina con una sensibilit sufficiente per poter generare una tensione digeribile
dal chip demodulatore. Del chip in questione, il JB125, si sa abbastanza poco e
Copyright 2005 -Tutti i diritti sono riservati.
7
pare non trovarsi presso distributori ufficiali, lunica fonte di
approvvigionamento che ho trovato costituita da un pugno di sperimentatori
che ha messo in piedi una scarna paginetta su http://tfc.altervista.org e che
distribuisce il chip fino ad esaurimento scorte al prezzo di 15 euro spedizione
compresa. Sullo schema dello sniffer che propongono e che ho fedelmente
replicato viene indicata la sensibilit dellingresso del JB125: 2.5Vpp.
Ci significa che ci basta realizzare una bobina con una sensibilit sufficiente
a produrre almeno 2.5Vpp ai suoi capi quando la posizioniamo molto vicina alla
sorgente del campo magnetico.
Ma che induttanza deve avere la bobina per essere cos sensibile? Cercare di
calcolarlo in via teorica abbastanza complesso perch non conosciamo a
priori lintensit del campo magnetico indotto dal writer nel punto in cui si
trover fisicamente la nostra bobina per cui ci affideremo al metodo empirico:
linduttanza minima quella che ha dato prova di funzionare, una bobina con
uninduttanza compresa tra 25uH e 70uH pare essere un buon compromesso
in termini di sensibilit, velocit di risposta, intrusivit e facilit costruttiva.
Ovviamente si possono provare anche valori superiori al range indicato:
sapendo che il campo magnetico decresce molto velocemente con la distanza
ovvio che se la distanza dal writer aumenta anche solo di 4-5mm occorre
aumentare un po linduttanza per ottenere un segnale che sia ancora
sufficientemente forte ai capi della bobina.
Per tagliare la testa al toro avvolgete la bobina posizionandola il pi vicino
possibile al writer, ogni mm di distanza in pi vi fa perdere preziosi Vpp ai capi
della bobina.
Decidiamo dunque di costruire una bobina allinterno del range empirico che
ho definito, il problema che ci si pone ora : quali fattori costruttivi influenzano
linduttanza di una bobina? Prover a rispondere analizzandoli uno ad uno:
Supporto sul quale avvolgiamo la bobina.
Vi sono materiali detti ferromagnetici (leghe di ferro, ferriti) che agiscono da
veri e propri amplificatori magnetici moltiplicando il valore dellinduttanza della
bobina avvolta su di essi. Siccome il loro effetto rischia di creare degli elefanti
in cristalleria producendo induttanze eccessive per i nostri scopi, decidiamo di
avvolgere la bobina esclusivamente su materiali non ferromagnetici quali
materiali plastici, carta, cartoncino, legno. Le bobine realizzate in questo modo
vengono anche chiamate bobine in aria e la loro induttanza risulta essere
molto pi predicibile.
Fattore di forma della bobina.
La forma dellavvolgimento influenza poco linduttanza della nostra bobina. Un
avvolgimento su un supporto di forma rettangolare produce uninduttanza
lievemente superiore rispetto ad un avvolgimento su un supporto di forma
cilindrica (solenoide) a parit di area. Decidiamo di avvolgere la nostra bobina
su un supporto di forma rettangolare.
Copyright 2005 -Tutti i diritti sono riservati.
8
Sezione della bobina.
Maggiore larea della bobina (sezione) e pi grande linduttanza. Decidiamo
di avvolgere la bobina su un supporto plastico di sezione 11x5mm.
Numero di spire dellavvolgimento.
Maggiore il numero di spire e maggiore linduttanza della bobina. Per
realizzare una bobina facilmente riproducibile decidiamo di avvolgere le spire
su un singolo strato (single layer) senza mai sovrapporre le spire.
Decidiamo di avvolgere 130 spire di filo di rame.
Serraggio delle spire e regolarit dellavvolgimento.
Per garantire un segnale privo di distorsioni necessario porre particolare cura
nellavvolgimento che deve presentarsi regolare e senza spazi tra una spira e
laltra per massimizzare linduttanza. Per assicurare il massimo numero di spire
per unit di lunghezza serrare con le unghie le spire mano a mano che
vengono avvolte tenendo in tensione il filo smaltato. Usando un filo di diametro
0.1mm lavvolgimento di 130 spire non deve essere pi lungo di 15mm.
Diametro del filo di rame smaltato.
Un diametro piccolo ci permette di massimizzare il numero di spire a parit di
lunghezza dellavvolgimento e dunque massimizzare linduttanza a parit di
volume. Ho scelto il pi piccolo diametro disponibile, 0.1mm (0.115mm
compreso lo smalto isolante) che ci offre anche un interessante vantaggio che
spiegher in seguito. Se avete difficolt a reperirlo potete ordinarne un
rocchetto intero per circa 9 euro su http://www.rs-components.it (Codice 337-7088).
Riepiloghiamo ora le caratteristiche della nostra bobina sperimentale:
- il diametro del filo di rame da usare di 0.1mm.
- la bobina avvolta su un supporto plastico di sezione rettangolare di
11x5mm.
- lavvolgimento della bobina costituito da 130 spire serrate su un singolo
strato in modo tale da non superare i 15mm di lunghezza complessiva.
Una bobina siffatta decisamente sensibile senza essere troppo invasiva, certo
occorre una pazienza certosina per avvolgere 130 spire perfettamente serrate,
se sfugge la bobina di mano occorre ricominciare tutto da capo
Vi suggerisco di tenere a portata di mano dei piccoli rettangoli di sottile scotch
trasparente per fissare gli estremi della bobina al termine dellavvolgimento e
di ricoprire poi lintera bobina con un ulteriore strato di scotch protettivo.
Ora che la bobina pronta opportuno chiarire come va posizionata rispetto
ai due soggetti comunicanti: il writer e il transponder. Prendiamo ancora in
considerazione il transponder PCF7931.
Usualmente esso affogato in un supporto plastico che lo protegge e lo rende
maneggiabile. Tale supporto plastico viene di norma introdotto in una cavit
rettangolare o cilindrica al cui interno contenuta la bobina del writer.
Dunque, dove avvolgiamo la nostra bobina sperimentale? Lidea pi brillante
Copyright 2005 -Tutti i diritti sono riservati.
9
consiste nellavvolgere la bobina sullo stesso supporto plastico che contiene il
PCF7931 facendo attenzione a non avvolgerla sul PCF7931. Per quale motivo?
Semplicemente perch se noi coprissimo il PCF7931 con la nostra bobina
schermeremmo il transponder impedendo al writer di alimentarlo tramite il
campo magnetico. In altre parole come se ci frapponessimo tra telecomando
e televisore, il telecomando non riuscirebbe a cambiare canale.
Siccome la nostra bobina di ascolto non deve disturbare la conversazione tra
writer e tag necessario iniziare lavvolgimento appena termina il corpo del
transponder (vedi Figura 2). Vale la pena ricordare una regola importante: la
massima induzione elettromagnetica si ottiene ponendo le bobine coinvolte
sullo stesso asse (tratteggiato in figura). Sebbene non venga mostrato in
figura, anche la bobina contenuta allinterno del PCF7931 coassiale con le
altre due bobine. Se per ipotesi ruotassimo di 90 la nostra bobina di ascolto,
leffetto di induzione sarebbe pressoch nullo, ossia avremmo tensione nulla
sulla bobina, a prescindere dal valore della sua induttanza.
Figura 2.
Posizionamento della bobina rispetto a writer e tag.
Ai pi attenti sar rimasto un dubbio amletico: come facciamo a conoscere
linduttanza della bobina che abbiamo appena avvolto con cura certosina?
Misurandola. Qualcuno possiede un induttanzimetro che riesca a misurare con
precisione i microHenry? La maggioranza di voi sicuramente ne sprovvisto e
dunque occorre aguzzare lingegno per scoprire linduttanza della vostra
bobina. Per ora accontentiamoci del metodo teorico che vado ad illustrare, in
seguito scopriremo come poter misurare linduttanza in modo indiretto usando
un semplice multimetro (s, avete capito bene, non ci sar bisogno
delloscilloscopio!).
Transponder PCF7931
Bobina di ascolto
Supporto plastico
Al demodulatore JB125
Bobina del writer
Copyright 2005 -Tutti i diritti sono riservati.
10
Stima teorica dellinduttanza della bobina.
Vi sono studiosi che hanno dedicato la vita allo sviluppo di funzioni
matematiche complesse in grado di prevedere con grande precisione
linduttanza di una bobina sulla base delle proprie caratteristiche dimensionali
(lato lungo, lato corto, lunghezza dellavvolgimento, numero di spire).
Personalmente ho messo a punto un programma DOS che implementa una
delle formule pi raffinate in circolazione per stimare linduttanza di bobine di
sezione rettangolare a singolo strato.
Grazie a questo software vi posso gi anticipare che la vostra bobina nuova
fiammante, se avete seguito scrupolosamente le istruzioni, ha uninduttanza di
esattamente 63uH.
Comodo, non vero? Se volete implementare un programmino simile dovete
procurarvi in biblioteca una copia del testo di F.W.Grover, oppure se siete pigri
e svogliati con 25 euro potete acquistare una copia del mio software di calcolo
che automaticamente calcola induttanza, resistenza DC, fattore di merito e
condensatore di accordo della bobina (Figura 4).
E venuto ora il momento di fare un salto di qualit: avrete senzaltro sentito
parlare del fatto che la bobina va accordata con un condensatore posto in
parallelo per ottenere la massima tensione ai suoi capi.
Ma come, vi chiederete, non si era appena detto che la nostra bobina era gi
pronta per captare con buona sensibilit ogni bisbiglio proveniente dal writer?
Cos questa storia del condensatore da aggiungere in parallelo?
In effetti la nostra bobina cos come si presenta in Figura 2 gi in grado di
produrre una tensione ai suoi capi in presenza di un campo magnetico variabile
ma se vi dicessi che basta porre in parallelo alla bobina un condensatore di
valore opportuno per amplificare il segnale di 4-5 volte ci sputereste sopra?
Certo se la tensione prodotta dalla sola bobina fosse gi sufficiente a scaldare
il cuore del JB125 saremmo gi a posto. Ma purtroppo la sola bobina non
sufficiente, abbiamo bisogno di amplificare un po il segnale prima di darlo in
pasto al JB125 e cosa c di pi veloce ed economico di un amplificatore
costituito da un semplice e banale condensatore ceramico?
A qualcuno questa sembrer magia, ma si tratta solo di sfruttare un
fenomeno elettrico chiamato risonanza. Per usare una metafora possiamo
pensare che il condensatore in parallelo agisca come la cassa di risonanza di
una chitarra o di un tamburo: basta un piccolo tocco sulle corde della chitarra o
sulla pelle di tamburo per produrre suoni di intensit magnificata.
Allo stesso modo il condensatore, se scelto di valore opportuno, agisce sulla
bobina restituendole esattamente la stessa energia che un istante prima la
bobina aveva captato e donato al condensatore. C quindi una sorta di
rimpallo energetico tra la bobina (L) ed il condensatore (C), un circolo virtuoso
assimilabile ad unaltalena: una volta avviata basta una piccola spinta per
portarla sempre pi in alto ad ogni nuova oscillazione.
Ma veniamo alle questioni pratiche: c un limite alle performance di
amplificazione della coppia bobina-condensatore? In altri termini possiamo
Copyright 2005 -Tutti i diritti sono riservati.
11
riuscire ad amplificare per 5, per 10 o anche per 20 la tensione sulla bobina
semplicemente scegliendo un condensatore di valore opportuno? Dipende.
La risposta risiede nellindividuazione del principale responsabile della
limitazione dellamplificazione: la resistenza interna della bobina (R
L
).
Dobbiamo infatti pensare che la nostra bobina costituita da pi di 4 metri di
filo di rame smaltato e dunque ha una precisa resistenza DC, facilmente
misurabile con un multimetro. Se avete costruito la bobina correttamente
dovreste misurare una resistenza ai capi della bobina di circa 9 ohm.
Questa resistenza chiamata resistenza DC perch misurata in corrente
continua ma per un fenomeno detto effetto pelle la resistenza effettiva
destinata ad aumentare con la frequenza del segnale di lavoro.
Fortunatamente alla bassa frequenza di 125KHz leffetto pelle
assolutamente trascurabile usando un filo di rame da 0.1mm di diametro,
dunque il multimetro ci fornisce gi la resistenza effettiva che ci interessa (i pi
curiosi che volessero provare diametri di filo diversi da 0.1mm sappino che
leffetto pelle comincia a farsi apprezzabile solo con diametri molto maggiori:
considerate che usando un diametro da 0.3mm la resistenza effettiva aumenta
per effetto pelle appena dell 1% rispetto alla resistenza DC misurata con il
multimetro).
Come dicevo la nostra bobina ha una resistenza effettiva R
L
=9 ohm.
Tale resistenza ci permetter ora di calcolare lamplificazione massima
potenzialmente ottenibile dal nostro circuito LC risonante parallelo.
Il fattore di amplificazione massimo del nostro LC risonante espresso dal
cosiddetto fattore di merito della bobina (Q):
Q= 2fL/ R
L
dove f la nostra frequenza di lavoro (125KHz) ed L linduttanza della
bobina.
Sapendo che la nostra bobina ha uninduttanza L=63uH, dai calcoli Q=5.5
Dunque ci significa che se scegliamo il condensatore giusto riusciremo ad
amplificare il segnale fornito dalla sola bobina di ben 5 volte e mezzo! Direi che
vale proprio la pena sfruttare questa magica risonanza, che ne dite?
Sono certo che qualcuno di voi si chieder: perch allora non sfruttare meglio il
fenomeno della risonanza scegliendo un filo di rame di diametro maggiore per
poter alzare ancora di pi il Q della bobina?
In effetti si pu fare, usando un filo da 0.15mm di diametro si pu
raggiungere un Q di circa 8 con il vantaggio di una maggior facilit di
avvolgimento ma vi anche il rovescio della medaglia: un filo pi grosso
implica un minor numero di spire a parit di lunghezza dellavvolgimento e
dunque minor induttanza ottenibile. In pratica vero che lamplificazione
risulta pi vigorosa ma la tensione di partenza che viene amplificata pi
bassa. Vi anche un altro prezzo da pagare nel scegliere un Q alto: la rapidit
di risposta della bobina diminuisce e noi desideriamo una bobina scattante,
capace di captare impulsi di durata molto breve, ricordate? Per la nostra
applicazione dunque meglio non spingersi oltre Q=10 per non rischiare di
Copyright 2005 -Tutti i diritti sono riservati.
12
ottenere una bobina troppo lenta nel comunicarci le variazioni del campo
magnetico captato.
Ma la vera ragione che mi ha indotto a preferire il diametro 0.1mm consiste
nella maggior facilit di accordo dellLC risonante, in altre parole pi facile
centrare al primo colpo il valore giusto del condensatore in modo tale da
lavorare in perfetta risonanza. Ma capirete meglio cosa questo significhi non
appena ci addentreremo nella misteriosa operazione di accordo della bobina.
Figura 3.
La risonanza di un LC parallelo con tre diverse bobine.
Si osservi attentamente il grafico di Figura 3. Il grafico contiene tre curve,
ogni curva rappresenta una diversa bobina, caratterizzata da un preciso fattore
di merito Q (che come abbiamo visto dipende da L e da R
L
).
Sulle ascisse troviamo la frequenza di lavoro, lunit di misura pu essere
intesa in centinaia di KHz, sulle ordinate troviamo lamplificazione subita dal
segnale presente sulla bobina grazie al fenomeno della risonanza. La curva
indicata con Q=5 approssima bene il comportamento della nostra bobina.
Notiamo che tutte le curve sono contraddistinte da una forma a campana che
tende a stringersi e ad alzarsi mano a mano che scegliamo bobine con Q pi
grande.
Ora, cosa significa accordare una bobina con un condensatore in parallelo?
Significa trovare quel valore di capacit che permette di centrare la campana
della risonanza esattamente sulla nostra frequenza di lavoro (125KHz).
In altre parole leffetto di un condensatore posto in parallelo alla bobina
consiste nello shiftare a destra o a sinistra la campana della risonanza di
Figura 3. Pi precisamente se alzo il valore di capacit la campana si sposta
verso sinistra, se abbasso il valore di capacit la campana si sposta verso
destra.
Se allora voglio spostare il picco della campana della nostra bobina proprio
sulla frequenza di 125KHz, che condensatore devo usare?
Copyright 2005 -Tutti i diritti sono riservati.
13
Ecco la veloce formuletta approssimata:
C=1/((2f
res
)
2
L) Prima formula inversa della risonanza.
Ricordando che L=63uH e f
res
=125KHz ne risulta C=25nF.
Ci significa che ponendo in parallelo alla bobina un condensatore da 25nF il
nostro circuito LC parallelo va in risonanza alla frequenza di 125KHz, ossia
quando vengono captati segnali a 125KHz verranno amplificati di Q=5.5 volte.
Adesso cominciate a capire perch ho preferito avere un Q della bobina non
troppo elevato? Se io avessi realizzato una bobina con un Q=10 sarebbe stato
decisamente pi delicato trovare lesatto valore del condensatore che centrasse
la campana esattamente sui 125KHz perch in risonanza la campana molto
stretta e sarebbe bastato qualche nF in pi o in meno (considerando anche la
tolleranza di costruzione del condensatore) per ritrovarmi a perdere anche il
10% di amplificazione.
Con un Q=5.5 posso invece permettermi di piazzare un qualunque
condensatore nel range 23-27nF potendomi considerare ancora in risonanza
(cio nello stato di massima amplificazione per quella particolare bobina).
In pratica usando bobine con un Q basso la risonanza un cocuzzolo della
montagna comodo e spazioso, quasi un altipiano, usando invece bobine con un
Q alto la risonanza diventa un picco acuminato sul quale pi difficile rimanere
in bilico ed il rischio quello di cadere facilmente a met montagna se non si
accorda la bobina con attenzione.
Potreste infine chiedervi quale sarebbe stata la frequenza di risonanza nel caso
avessimo inserito un condensatore di soli 23nF. Per rispondere sufficiente
utilizzare la seguente formula approssimata:
f
res
=1/(2LC) Formula della risonanza.
Dai calcoli risulta una campana il cui picco centrato sulla frequenza di
risonanza di 132KHz, leggermente superiore a 125KHz ma perfettamente
utilizzabile se il Q della bobina relativamente basso come nel nostro caso.
Vi faccio ora prendere un po di fiato con qualche indicazione di carattere
pratico: il filo di rame smaltato saldabile, basta scaldarlo ad almeno 350C
con la punta del saldatore per rimuovere il poliuretano isolante che lo ricopre.
Quando avete individuato il valore teorico di capacit da usare ma non avete
a disposizione un valore standard potete raggiungere il valore desiderato
combinando diversi condensatori in serie o in parallelo. Ricordate che per
sommare due capacit occorre metterle in parallelo, se invece mettiamo in
serie due capacit uguali il valore risultante dimezza.
Nel nostro caso specifico dunque per avvicinarci alla capacit di 25nF che
risulta dai calcoli basta mettere in serie due condensatori standard da 47nF ed
ottenere cos 23.5nF, valore che ci permette di lavorare comunque in zona
risonante.
Copyright 2005 -Tutti i diritti sono riservati.
14
In Figura 4 potete vedere loutput fornito dal software di calcolo cui ho
accennato in precedenza, per semplicit i valori usati nella guida sono stati
arrotondati.
Figura 4.
Il software coil.exe per il calcolo automatico dei parametri della bobina.
Molti di voi avranno sicuramente notato che il software calcola il valore del
condensatore di accordo per due differenti tipologie di bipolo LC risonante:
serie e parallelo. Il valore che ci interessa in questo caso quello relativo al
bipolo LC parallelo. Noterete che la differenza del condensatore di accordo nelle
due tipologie minima ed per questo che in letteratura si tende ad usare la
stessa formula per entrambe le tipologie, formula gi mostrata nella pagina
precedente. In realt tale formula esatta solo per il bipolo serie mentre per il
bipolo parallelo una buona approssimazione. Il software calcola per entrambi
i casi le rispettive formule esatte ed per questo che i condensatori di accordo
si differenziano leggermente. Siccome la differenza esigua, ai fini pratici si
utilizza comunemente la semplice formula della risonanza per entrambe le
tipologie di bipolo.
Il software inoltre fornisce una stima teorica della sensibilit della bobina
calcolando quanti Vpp essa in grado di generare se sottoposta ad
uninduzione magnetica di 170 microWeber/m
2
(valore tipico per programmare
un PCF7931). Dalla figura si vede che la sensibilit teorica alta, la nostra
bobina capace di generare ai suoi capi ben 10Vpp!
Se avete letto attentamente fino a questo punto ora non solo avete acquisito
una discreta base teorica sulla tecnologia RFID ma avete anche accordato la
vostra prima bobina. Ma produrr una tensione sufficiente per il JB125 ?
E il momento di scoprirlo costruendo uno strumentino tanto semplice quanto
efficace.
Copyright 2005 -Tutti i diritti sono riservati.
15
Costruzione di un misuratore di sensibilit della bobina.
Materiale occorrente:
- 4 diodi 1N4148.
- 1 condensatore ceramico da 10nF.
- 1 multimetro con impedenza di ingresso di 1Megaohm.
Lo schematico del nostro misuratore che chiameremo power-meter
riportato in Figura 5.
Per scoprire la sensibilit della nostra bobina sufficiente avvicinarla il pi
possibile al writer per renderci conto se il segnale captato abbastanza intenso
da poter essere digerito dal demodulatore JB125.
Il multimetro deve essere impostato su VDC in quanto leggeremo un valore di
tensione continuo. Tale valore di tensione non rappresenta il valore di picco del
segnale captato ma ci fornisce comunque una preziosa informazione in quanto
il valore rilevato proporzionale al valore picco-picco del segnale (Vpp)
presente ai capi della bobina accordata.
Ora, qual il valore minimo che deve misurare il power-meter per garantirci
che il chip JB125 potr funzionare correttamente? Dalle prove empiriche
effettuate con un multimetro con impedenza di ingresso da 1 Megaohm, se con
il multimetro misurate almeno 1.2Vdc avete una bobina che vi fornisce un
segnale sufficiente per poter usare il demodulatore JB125 (ci significa che ai
capi della bobina vi sono almeno 2.5Vpp, valore minimo per poter usare il
JB125, come riportato dalle specifiche).
Figura 5.
Schema del power-meter, misuratore di sensibilit della bobina.
Copyright 2005 -Tutti i diritti sono riservati.
16
Se addirittura misurate 2-3Vdc o pi avete costruito un gioiellino
Supponiamo che invece misuriate appena 0.8Vdc per esempio, dove pu stare
il problema? Vi possono essere diverse ragioni che concorrono a rendere la
vostra bobina poco sensibile, vediamole:
La bobina non lavora in risonanza.
Questo succede se avete accordato male la bobina scegliendo un condensatore
di valore sbagliato o troppo lontano dal valore teorico calcolato. Naturalmente
lo stesso problema si pone se linduttanza stimata non corrisponde a quella
reale: il condensatore magari teoricamente giusto, ma calcolato partendo da
un valore sbagliato dellinduttanza. Vedremo fra poco come sfruttare il power-
meter appena costruito per essere certi di aver accordato bene la bobina. In
pratica usando il power-meter saremo in grado di accordare la bobina pur non
conoscendone linduttanza.
Linduttanza della bobina troppo bassa.
Pur avendo accordato perfettamente la bobina, linduttanza della stessa
potrebbe essere troppo bassa per generare un segnale decente. Questo pu
accadere se avete avvolto poche spire attorno al supporto e/o se la sezione del
supporto molto piccola.
La distanza dal writer eccessiva.
Pur avendo accordato la bobina ad opera darte, qualche mm di distanza di
troppo dalla bobina del writer possono rendere vano lo sforzo fatto, ricordate
che il campo magnetico si indebolisce rapidamente con la distanza. Dovete
trovare il modo di diminuire la distanza oppure dovete optare per una bobina di
induttanza maggiore riaccordandola opportunamente.
Il campo magnetico del writer debole.
Se il campo magnetico del writer appena sufficiente per programmare il
transponder le cose si fanno pi complesse, oltre ad avvicinarvi il pi possibile
dovrete aumentare ulteriormente linduttanza della bobina. Ovviamente la
bobina dovr essere come sempre perfettamente accordata.
Come ho accennato in precedenza il power-meter appena costruito pu
divenire un prezioso strumento nel caso non abbiate un oscilloscopio a portata
di mano o non siete in possesso del software per stimare linduttanza della
vostra bobina, fra poco vedremo perch.
Prima di procedere vorrei infine chiarire il motivo per cui non possiamo fare a
meno del power-meter connettendoci alla bobina direttamente con il
multimetro in AC. Se lo faceste molto probabilmente leggereste una tensione
nulla semplicemente perch il vostro multimetro in grado di misurare la
tensione AC RMS (valore efficace) solo fino ad una frequenza di 10-20KHz
max, difficilmente potr andare oltre e noi stiamo lavorando a ben 125KHz.
Copyright 2005 -Tutti i diritti sono riservati.
17
Come accordare una bobina senza usare loscilloscopio.
Materiale occorrente:
- un generatore sinusoidale a frequenza variabile da 0 a 300KHz.
- un resistore da 100 ohm W.
- il vostro fido power-meter.
- un multimetro.
Come potete vedere chiaramente dalla Figura 6 il generatore sinusoidale
alimenta tramite un resistore di protezione la bobina di induttanza sconosciuta
a cui stato posto in parallelo un condensatore ceramico da 47nF.
Il power-meter ai capi della bobina sostituisce loscilloscopio fornendoci come
risposta un livello di tensione DC.
Il valore del condensatore ceramico non molto importante, possiamo
scegliere un valore compreso tra 22nF e 100nF, la cosa veramente importante
che il valore sia perfettamente conosciuto: usate un condensatore con bassa
tolleranza oppure, meglio ancora, misuratene il valore con un multimetro
dotato della funzione capacimetro.
Figura 6.
Come accordare una bobina facendo a meno delloscilloscopio.
Copyright 2005 -Tutti i diritti sono riservati.
18
Ora, il primo obiettivo consiste nello scoprire linduttanza della vostra bobina. Il
bipolo LC parallelo che stiamo valutando sar caratterizzato da una campana
posizionata in un punto a noi sconosciuto lungo lasse della frequenza (vedi
ancora Figura 3). Se noi scoprissimo a quale frequenza posizionato il picco
di quella campana avremmo scoperto la frequenza di risonanza di quel
particolare bipolo. Come facciamo a scoprire dove posizionata in frequenza
la campana?
Semplice, basta agire in frequenza sul generatore sinusoidale fino ad
individuare quella frequenza che rende massimo il valore di tensione misurato
dal power-meter. Ed essendo a forma di campana faremo presto a capire se ci
stiamo allontanando od avvicinando alla risonanza, basta tenere docchio il
power-meter. Supponiamo per esempio di misurare queste coppie di valori:
Frequenza Tensione power-meter
80KHz 1.75Vdc
90KHz 1.88Vdc
100KHz 1.95Vdc
110KHz 1.85Vdc
120KHz 1.70Vdc
Avete indovinato dove sta posizionata la campana? Avr il suo picco di
risonanza tra i 90KHz e i 110KHz, per scoprirlo con maggior precisione baster
provare le frequenze in questo range con step di 1KHz, cos scopriremo qual
lesatta frequenza di risonanza del bipolo.
Supponiamo allora di aver scoperto che la frequenza di risonanza del bipolo in
esame vale 94KHz.
Dunque adesso che conosciamo la frequenza di risonanza del bipolo (94KHz) e
il valore del condensatore (47nF), come calcoliamo linduttanza della nostra
bobina incognita? Ancora una volta con la formula inversa della risonanza:
L=1/((2f
res
)
2
C) Seconda formula inversa della risonanza.
Dai calcoli risulta L=61uH, la bobina promette bene, adesso che conosciamo
con buona precisione linduttanza della bobina siamo a cavallo, ci ritroviamo
esattamente nella condizione in cui ci trovavamo quando, consultando
loracolo, vi ho rivelato linduttanza della vostra bobina.
Basta ora ricalcolare il giusto valore del condensatore per far s che il bipolo
vada in risonanza a 125KHz (vedi prima formula inversa della risonanza data in
precedenza). Dalla formula risulta C=26uH, valore ovviamente molto simile a
quello calcolato per la precedente bobina essendo le induttanze di valore
similare.
Adesso possiamo sostituire al condensatore di test da 47nF il nostro
condensatore di accordo da 26uH e verificare che la bobina sia ora
effettivamente perfettamente accordata sui 125KHz.
Copyright 2005 -Tutti i diritti sono riservati.
19
Come? Semplicemente spazzolando di nuovo le frequenze con il generatore e
toccando con mano che il valore massimo fornito dal power-meter guarda
caso proprio nellintorno dei 125KHz: la bobina dunque non stata solo
misurata ma anche stata perfettamente accordata senza fare alcun uso
delloscilloscopio!
La procedura pu risultare di primo acchito macchinosa ma vi assicuro che se
mandate a memoria le tre formulette basilari della risonanza e tenete a portata
di mano una calcolatrice potete accordare una bobina in pochi minuti.
Naturalmente chi dispone di un oscilloscopio pu utilizzarlo al posto del
power-meter per verificare direttamente a quale frequenza il segnale
sinusoidale raggiunge la massima ampiezza picco-picco.
Chi invece non dispone n di un oscilloscopio n di un generatore sinusoidale
non deve fare altro che costruirsi un semplice multivibratore astabile seguendo
le indicazioni che seguono.
Accordare una bobina senza oscilloscopio n generatore sinusoidale.
Si pu riuscire ad accordare la nostra bobina sostituendo il generatore
sinusoidale usato nel metodo precedente con un semplice multivibratore
astabile basato sul comunissimo timer NE555/LM555 come da Figura 7.
Figura 7.
Schema completo per laccordo della bobina usando solo un multimetro.
Copyright 2005 -Tutti i diritti sono riservati.
20
Il timer NE555 genera unonda quadra con dutycycle 50% e frequenza tarabile
con il trimmer multigiri da 50Kohm. Non usare la versione CMOS del timer
(LMC555) in quanto non in grado di erogare abbastanza corrente.
La tensione di alimentazione del timer pu spaziare tipicamente tra 5V e 15V,
suggerisco di usare almeno 12V per avere maggiore sensibilit di misura.
La procedura di taratura identica a quella descritta in precedenza,
suggerisco di partire con il trimmer settato alla frequenza pi alta (circa
200KHz) per poi scendere gradualmente monitorando il power-meter per
scoprire la posizione della campana di risonanza.
Lunica differenza pratica rispetto alluso di un generatore sinusoidale da
banco consiste nel fatto che essendoci in questo caso unonda quadra a
stimolare la bobina (invece di una sinusoide), solo in prossimit della
frequenza di risonanza si former sulla bobina una sinusoide perfetta, salendo
in frequenza la sinusoide tender a trasformarsi in unonda triangolare di
ampiezza via via inferiore, scendendo in frequenza la sinusoide comincer a
distorcere con ampiezza via via inferiore fino a diventare irriconoscibile.
La cosa essenziale comunque individuare quella frequenza che permette di
massimizzare il valore dc misurato dal power-meter, corrispondente alla
frequenza di risonanza del bipolo LC parallelo in esame.
Ci stiamo avviciniamo al termine di questa articolata guida, siete ora padroni
del know-how essenziale per poter procedere ad un livello pi elevato di
studio, il prossimo step consiste nel costruire uno sniffer completo connettendo
una bobina perfettamente accordata ad un chip demodulatore come il JB125
oppure ad un demodulatore pi complesso che magari voi stessi progetterete.
Figura 8.
La bobina accordata.
In Figura 8 potete finalmente vedere la bobina da 63uH descritta nella guida.
Il condensatore di accordo stato saldato nella parte terminale del supporto
plastico e protetto dagli urti usando cera a caldo.
Copyright 2005 -Tutti i diritti sono riservati.
21
Demodulare il segnale captato dalla bobina con un JB125.
Le uniche informazioni che sono riuscito a reperire su questo microchip sono
quelle contenute nello schema cartaceo speditomi insieme al chip che ho
ordinato online. In Figura 9 ho riprodotto lo schematico dello sniffer che viene
proposto, personalizzandolo con la bobina da 63uH che abbiamo appena
progettato.
Figura 9.
Schematico completo dello sniffer.
Rispetto allo schema originale, che sfrutta una linea di uscita (RTS, pin 7)
della porta seriale per alimentare il chip, ho apportato una piccola variante
usando una comune pila transistor da 9V, per il resto lo schema identico.
Come potete vedere ho inserito la nostra bobina da 63uH accordata con due
condensatori da 47nF posti in serie.
Luscita del chip finisce direttamente sulla linea di input della porta seriale
detta DSR (sul connettore maschio a 9 poli si tratta del pin 6).
A questo punto abbiamo a disposizione uno sniffer completo che trasforma il
segnale modulato ASK di Figura 1 captato dalla nostra bobina in un segnale
digitale che commuta a livello logico alto se presente il campo magnetico
variabile, commuta a livello logico basso non appena il campo magnetico si
interrompe. In pratica lo sniffer ricostruisce il segnale modulante di Figura 1
(per questo motivo si dice che il chip demodula il segnale ASK).
Il segnale che dunque si presenter allingresso DSR quando il writer
comincer ad inviare dati al PCF7931 sar costituito da un primo impulso della
durata di 24us (il bit di start) seguito da una sequenza di impulsi della durata
di 48us (i bit della password) codificati usando la modalit PPM cos come
abbiamo visto allinizio della guida.
Copyright 2005 -Tutti i diritti sono riservati.
22
Da qui in avanti dunque la palla passa finalmente al software il quale dovr
semplicemente campionare il segnale che giunge sulla porta DSR e salvarlo su
file per una successiva analisi dei dati campionati.
Quella che segue la routine principale di campionamento dei dati codificata
in linguaggio BASIC a puro scopo esemplificativo. Ognuno potr implementare
il software di campionamento come meglio crede, usando il linguaggio che
preferisce. Come si vede la routine decisamente semplice, sufficiente
eseguire una istruzione IN sulla linea DSR della porta seriale (COM1 o COM2)
accedendo direttamente ai registri di I/O della seriale.
Pinout porta seriale del PC.

9poli_male 25poli_male

out RTS 7 4 (bit 1)


out DTR 4 20 (bit 0)
in DSR 6 6 (bit 5)
in CTS 8 5 (bit 4)
GND 5 7
comport=3f8h indirizzo base porta seriale: COM1=3f8h COM2=2f8h
outport=comport+4 registro di output RTS e DTR.
bitout=1 RTS= bit 1, DTR= bit 0.
out(outport,bitout,1) setta la linea RTS a 1 (+12V) per alimentare il JB125.
inport=comport+6 registro di input DSR e CTS.
bitin=5 DSR=bit 5, CTS= bit 4.
rx$="" stringa destinata a contenere i dati campionati.
buffer=400000 numero di bit da acquisire.
for i=1 to buffer
bit=in(inport,bitin) acquisizione di un bit dalla linea fisica DSR.
rx$=rx$+string$(bit) salvataggio del bit su stringa.
next i
print rx$ stampa dei bit campionati.
Come si vede, nel listato ho inserito anche listruzione OUT che permette di
impostare a +12V luscita DTR nel caso vogliate alimentare il JB125
direttamente dalla seriale come da schema originale TFC.
Usando la seriale di un notebook la tensione presente sulla linea DTR
minore di 12V e si aggira sui 6-7V, valore comunque sufficiente per alimentare
il grabber.
Vi suggerisco di operare direttamente da DOS nativo usando un floppy o una
partizione DOS dedicata in quanto i recenti sistemi operativi Win2000 e WinXP
Copyright 2005 -Tutti i diritti sono riservati.
23
non permettono pi di accedere direttamente agli indirizzi di I/O rendendo la
procedura poco efficiente.
Lobiettivo infatti quello di riuscire a campionare abbastanza velocemente
da non perdere neanche un impulso.
Considerando che il writer invia al transponder unicamente impulsi di durata
24us e 48us sufficiente riuscire a campionare un sample ogni 5us per essere
certi di non perdere dati preziosi. Questo facile da ottenere anche su
macchine non recentissime.
Una volta salvati i sample su file non vi resta che armarvi di datasheet e
procedere allinterpretazione degli impulsi codificati in PPM scorrendo il file dei
sample ed annotando manualmente lintervallo temporale che separa ogni
impulso dal successivo. Non occorre comunque che io entri nei dettagli
sullorganizzazione dei dati inviati in sequenza dal writer (1 bit di start, 1 bit di
password enable, 56 bit di password, ecc), il datasheet del PCF7931 la
vostra migliore fonte informativa, fatene tesoro.
Unultima chicca prima di lasciarvi, se avete accordato la vostra bobina senza
power-meter, semplicemente monitorando con un oscilloscopio il segnale
sinusoidale presente ai suoi capi, potete finalmente vedere il contenuto
informativo trasmesso ciclicamente dal transponder. E infatti sufficiente
posizionare il PCF7931 come in Figura 8 e osservare il segnale che si presenta
sulloscilloscopio. Noterete che il segnale sinusoidale viene modulato
digitalmente dal PCF7931 (il debole segnale modulato presente agli estremi
della portante ha unampiezza attorno ai 200mV). Se avete un oscilloscopio
digitale potete impostare a 10ms la base dei tempi e congelare un intero
blocco di dati (16 bytes) trasmesso dal transponder. In pratica ora disponete di
un rozzo lettore di PCF7931. Cercate di decodificare manualmente la sequenza
digitale catturata stampandola su carta, un ottimo esercizio didattico prima
di pensare ad una futura decodifica software.
Adesso davvero tutto, mi auguro che questa guida abbia chiarito molti degli
aspetti oscuri e misteriosi che circondano laffascinante mondo della tecnologia
RFID.
Fate buon uso del prezioso know-how acquisito fin qui e proseguite nello
studio, largomento della prossima guida consister nel progettare e costruire
uninterfaccia di programmazione per il transponder PCF7931.
-TheInsider-

Potrebbero piacerti anche