Try

July 31, 2017 | Author: CesareCacitti | Category: Capacitor, Resistor, Light Emitting Diode, Electromagnetism, Manufactured Goods
Share Embed Donate


Short Description

efrwqe...

Description

PCF7931: Interfaccia di programmazione lowcost. Autore: TheInsider Revisione: 1.0.2 Dopo aver esplorato a fondo nella precedente guida gli aspetti teorici di base della tecnologia RFID, ci apprestiamo ora a progettare una completa interfaccia di programmazione per transponder PCF7931. Anche in questa guida porrò particolare attenzione ad utilizzare un registro comprensibile alla fascia più ampia possibile di lettori, pur mantenendo il necessario rigore espositivo. I concetti di base già esposti in precedenza si assumeranno già acquisiti, vi farò riferimento in questa guida esclusivamente per evidenziare le differenze tra il circuito LC parallelo già studiato ed il circuito LC serie che sfrutteremo per realizzare l’interfaccia di programmazione in oggetto. Cosa intendo per interfaccia di programmazione? E’ presto detto. Ciò che intendo proporre è una sorta di scatola nera che metta a disposizione dell’utente due semplici segnali a livello TTL/CMOS(0-5V), da poter controllare a piacimento per la lettura e la scrittura del transponder PCF7931. Per la precisione la linea RX costituirà l’output dell’interfaccia, la cui decodifica software ci permetterà di conoscere il contenuto del tag, la linea TX costituirà l’input dell’interfaccia, pilotando opportunamente il quale sarà possibile programmare il tag a piacere. Grazie all’interfaccia di programmazione che costruiremo potremo interagire con il transponder come se stessimo scrivendo/leggendo su una comune eeprom. Ovviamente spetterà a voi codificare/decodificare opportunamente via software i segnali da inviare a questa eeprom un po’ speciale, studiando con attenzione il protocollo PPM (Pulse Position Modulation) per la scrittura ed il protocollo CDP (Conditioned Diphase) per la lettura, il tutto spiegato accuratamente sul datasheet del nostro caro PCF7931. In altre parole una volta costruita l’interfaccia non dovremo più preoccuparci di campi magnetici o modulazioni ASK, dovremo solo decidere come pilotare digitalmente i segnali TX ed RX messi a disposizione dall’interfaccia, dopodichè potremo concentrarci esclusivamente sull’aspetto software. Come gestire i segnali TX ed RX? Vi sono diverse possibilità, il modo più professionale consiste nell’utilizzare un microcontrollore (PIC Microchip od altro). In alternativa è possibile pilotare l’interfaccia direttamente dalla porta parallela di un PC, come ho fatto io, anche se, mi rendo conto, ciò richiede una certa capacità nel saper gestire con grande accuratezza il timer di sistema. Se intendete invece limitarvi alla sola lettura del transponder, l’approccio diretto tramite porta parallela non necessita del timer di sistema e risulta quindi sicuramente alla portata di molti. Vediamo dunque lo schema a blocchi dell’interfaccia di programmazione che andremo a costruire.

©Copyright 2005 -Tutti i diritti sono riservati.

1

OSCILLATORE AD ONDA QUADRA (125KHz)

GENERATORE DI CAMPO MAGNETICO

RIVELATORE DI PICCO, FILTRO PASSA BASSO E SQUADRATORE RX

TX PORTA PARALLELA OPPURE MICROCONTROLLORE PIC MICROCHIP

Figura 1. Schema a blocchi dell’interfaccia di programmazione per PCF7931. Come potete vedere in Figura 1 l’interfaccia è costituita da un oscillatore ad onda quadra che genera la portante a 125KHz. Tale portante viene modulata OOK-ASK (ossia accesa-spenta, ricordate?) dal segnale di scrittura TX e data in pasto al driver che genera il campo magnetico necessario a programmare il tag. In ricezione il rivelatore di picco estrae dalla portante il segnale inviato dal tag (demodulazione ASK), lo ripulisce con un semplice filtro RC e lo squadra rendendolo idoneo a pilotare una porta a livelli TTL/CMOS. Ogni progetto che si rispetti nasce da una serie di specifiche tecniche che devono essere chiare fin dall’inizio nella mente del designer. Queste sono le specifiche definite per la nostra interfaccia: -

minimo costo realizzativo in termini di componentistica. tensione di alimentazione 5Vdc±10%. frequenza e dutycycle della portante indipendente dalla tensione di alimentazione. distanza operativa in lettura/scrittura minimale. segnali TX ed RX compatibili con livelli TTL/CMOS.

L’unico punto che forse merita una spiegazione è quello relativo alla sensibilità richiesta al nostro lettore. Ci interessa veramente riuscire a leggere il tag da distanze di 20-30mm o ci basta semplicemente –leggere-, anche se dobbiamo inserire il tag al centro della bobina del lettore per riuscirvi? ©Copyright 2005 -Tutti i diritti sono riservati.

2

Siccome riusciamo a risparmiare parecchi componenti se ci accontentiamo di una sensibilità minimale preferiamo risparmiare soldi piuttosto che aggiungere una feature per ora considerata non necessaria. In pratica riusciremo a fare a meno dello stadio di amplificazione costituito da un operazionale e diversi componenti di contorno, limitandoci a ripulire e squadrare il forte segnale ricevuto posizionando il PCF7931 al centro della bobina del lettore. Inoltre per ottenere una portante precisa, stabile ed indipendente dalla tensione di alimentazione ho optato per un quarzo da 4MHz ed un divisore di frequenza 74HC4060, ottenendo la miglior qualità possibile con un costo minimale. Starete a questo smaniando di mettere finalmente le mani sullo schematico completo del programmatore, non è vero? Attendete ancora un secondo, vediamo prima di fare la lista della spesa (o più tecnicamente la “Bill Of Material”): BOM list. Reference:

Part number:

RS code:

RS euro/unit:

U1 U2 U3 Q1 Q2 XTAL1 D1,D2 LD1,LD2 L1 C4 C1,C5,C10,C11 C6,C8,C9,C12 C7 C2,C3 R1 R12 R6 R3 R8,R10 R9 R7 R4 R2,R11 R13 R5

74HC4060 74HC132 LMC555 BC337 BC327 crystal 4MHz 1N4148 LED coil 122uH, 0.1mm∅ 100uF electrolitic 100nF ceramic 10nF ceramic 3.3nF ceramic 33pF ceramic 1Mohm 0.25W 330kohm 0.25W 22kohm 0.25W 10kohm 0.25W 10kohm 0.25W 1% 8.2kohm 0.25W 1% 1kohm 0.25W 470 ohm 0.25W 330 ohm 0.25W 100 ohm 0.25W 18 ohm 0.25W

436-7587 436-7414 346-1975 169-9617 348-3846 471-9714 446-8551

0.41 0.28 0.77 0.10 0.35 0.60 0.06

337-7088

©Copyright 2005 -Tutti i diritti sono riservati.

3

Figura 2. Schematico completo dell’interfaccia di programmazione v2.1 per PCF7931. Come potete notare dalla BOM tutti i componenti sono di facile reperibilità, dove non diversamente indicato i resistori si intendono con tolleranza 5%. Vi suggerisco di utilizzare la versione CMOS del timer 555 (LMC555), evitando in questo caso la versione bipolare classica (LM555/NE555), la sensibilità del vostro lettore ne trarrà giovamento. Nella BOM ho voluto indicare come riferimento il codice RS ed il prezzo per unità di alcuni componenti, potrà esservi utile per studiare i datasheet e per fare valutazioni indicative di costo, considerate che nel vostro negozio di fiducia potrete molto probabilmente spendere cifre inferiori ai prezzi indicati. L’unico componente che sarà necessario autocostruire è la bobina L1, costituita da un avvolgimento di filo di rame smaltato da 0.1mm di diametro, lo stesso utilizzato nella precedente guida. Essendo il driver la parte più critica di tutto il progetto dedicherò un capitolo apposito per l’analisi e la messa a punto. Quelli listati sono i componenti essenziali, ovviamente dovrete ritagliarvi una basetta millefori di circa 10x5cm per montare il tutto, decidendo magari di zoccolare gli integrati e di montare un comodo jack per l’alimentazione del programmer. Se deciderete inoltre di sfruttare la porta parallela di un PC per pilotare i segnali TX ed RX, potrà essere di utilità un connettore DB9 o DB25 per l’interfacciamento. Lo schematico di Figura 2 vi svela finalmente le scelte progettuali operate nel dare corpo allo schema a blocchi visto in precedenza. L’integrato 74HC4060 realizza con una manciata di componenti un preciso oscillatore quarzato e un divisore di frequenza: sull’uscita Q5 è presente la frequenza del quarzo divisa per 32, ottenendo un’onda quadra oscillante a 125.000KHz con un perfetto duty cycle del 50%. Non preoccupatevi se la frequenza effettiva che otterrete non sarà precisa all’Hertz, possiamo permetterci una tolleranza anche di ±1KHz, la cosa importante è che il dutycycle sia esattamente del 50%. ©Copyright 2005 -Tutti i diritti sono riservati.

4

Qualora abbiate difficoltà a reperire un quarzo da 4MHz niente paura, potete raggiungere la frequenza desiderata scegliendo un divisore di frequenza diverso (per esempio usando un quarzo da 16MHz troverete gli agognati 125KHz sul pin 6 di U1). Una delle porte NAND dell’HC132 viene usata per modulare digitalmente la portante (ON/OFF) tramite il segnale di pilotaggio TX. Il segnale TX dovrà dunque permanere nello stato alto durante la lettura del tag, mentre dovrà essere in grado di produrre impulsi bassi della durata rispettivamente di 24us e 48us durante la scrittura del tag. Se per un PIC produrre tali brevi impulsi è abbastanza semplice, non si può certo dire lo stesso per una porta parallela programmata a livello di registri di I/O, anche se vi posso garantire per esperienza diretta che si può fare. Siamo finalmente giunti al cuore del programmatore, il driver, costituito da una coppia di transistor bipolari connessi ad emettitore comune (Q1 e Q2) e da un circuito RLC risonante serie formato da R5,L1 e C6+C7. Questa è senz’altro la parte più critica di tutto il progetto, ci ritorneremo più avanti, per ora vi basti sapere che ai capi di C6 e C7 si dovrà osservare a vuoto (ossia senza avvicinare il PCF7931 alla bobina L1) un perfetto segnale sinusoidale di 13Vpp di ampiezza (con power supply di 5Vdc). Inserendo il tag nella bobina L1 il segnale sinusoidale verrà modulato in ampiezza (modulazione ASK al 10%) e sarà compito del blocco circuitale successivo provvedere ad estrarre il segnale informativo inviato a ripetizione dal tag. L’estrazione del segnale viene effettuata tramite un rivelatore di picco positivo costituito da D1,C8 ed R6. Il segnale viene poi ripulito dal filtro passa basso costituito da R7 e C9. Il condensatore C10 infine disaccoppia in continua il segnale utile sommandolo al riferimento di tensione presente sul pin CONTROL dell’LMC555 (posto a 2/3 VCC da un partitore resistivo interno al chip). La speciale configurazione adottata permette di sfruttare un economico timer LMC555 come comparatore non invertente ad isteresi programmabile usando solo 3 resistori esterni (R8,R9,R10), un vero record in termini di ottimizzazione progettuale! I valori scelti per i tre resistori all’1% ci permettono di ottenere velocemente una sensibilità più che sufficiente per le nostre esigenze (circa 500mVpp di segnale utile) senza perdere tempo in tarature fini (se non riuscite a reperire resistori all’1% potete selezionarli misurandone la resistenza con un multimetro). Siccome non ho resistito alla tentazione di spremere al massimo questo ricevitore economico, vi mostrerò in seguito come, semplicemente scegliendo resistenze opportune, si possano raggiungere sensibilità di 150-200mVpp, facendoci guadagnare per puro sfizio qualche millimetro in più in termini di distanza massima di lettura. Per terminare l’analisi circuitale, l’uscita del timer LMC555 fornisce il segnale digitale RX che rappresenta il contenuto informativo inviato dal tag e che dovrà essere decodificato dal software. ©Copyright 2005 -Tutti i diritti sono riservati.

5

Ulteriori due porte NAND (U2B,U2C) provvedono infine a dotare il nostro ricevitore di una feature decisamente utile: il led LD2 si accende in modo stabile solo quando sulla linea RX è presente un segnale da decodificare. In questo modo potrete valutare immediatamente la sensibilità in lettura del reader avvicinando un PCF7931 alla bobina, anche con diverse angolazioni: appena il segnale ricevuto sarà sufficientemente forte, il led si accenderà. Ricordate che le massime distanze in lettura si ottengono mantenendo la bobina del reader coassiale con la bobina interna del PCF7931, come ho già mostrato nella precedente guida. Naturalmente è possibile risparmiare qualche componente rinunciando alla feature suddetta e al led di power-on LD1. La Figura 3 vi mostra la versione ultra-lowcost del programmatore, priva dei led di segnalazione. Potete scegliere indifferentemente tra le due versioni proposte, il funzionamento è assolutamente identico.

Figura 3. Schematico completo dell’interfaccia di programmazione v2.0 per PCF7931.

Criteri di progetto del circuito LC risonante serie. Qualcuno si sarà chiesto per quale motivo non sia stata utilizzata una configurazione LC parallelo, preferendo invece una configurazione LC serie. Entrambi i bipoli generano un campo magnetico se percorsi da una corrente variabile nel tempo. Il problema consiste nel fatto che il bipolo LC parallelo tende ad opporsi al passaggio di corrente in quanto in condizioni di risonanza aumenta di molto l’impedenza che presenta ai suoi capi, dunque ci rema decisamente contro. Ricordiamo infatti che il campo magnetico generato da una bobina in aria è direttamente proporzionale alla corrente RMS che la ©Copyright 2005 -Tutti i diritti sono riservati.

6

percorre, dunque più corrente iniettiamo e più potente sarà il campo magnetico generato. Il bipolo LC parallelo si presta molto meglio ad essere usato all’interno di un transponder in quanto l’alta impedenza che presenta il bipolo in risonanza permette lo svilupparsi ai suoi capi di tensioni consistenti (il suo comportamente diventa assimilabile ad un generatore di tensione), che possono essere poi raddrizzate e applicate ad un carico (il microcontrollore e la eeprom interna al tag). Guarda caso all’interno del PCF7931 è presente proprio un bipolo LC parallelo, ottimo “sensore” di campo magnetico variabile. Un bipolo LC serie invece si presta pefettamente al nostro scopo in quanto in condizioni di risonanza presenta una bassa impedenza, fatto che ci permette di farvi scorrere facilmente correnti elevate e produrre di conseguenza elevato campo magnetico, indispensabile per riuscire a fornire sufficiente energia per programmare un PCF7931. Per nostra fortuna la formula della risonanza applicata al già studiato LC parallelo è la stessa da applicare al bipolo LC serie: fres=1/(2π√LC)

Formula della risonanza.

Dunque, se utilizzate la bobina L1 e i condensatori di accordo C6 e C7 come descritto nello schema, quale sarà la frequenza di risonanza del bipolo? Sostituite a C nella formula la somma C6+C7 e ad L il valore di L1 ed otterrete guarda caso la frequenza di 125KHz. Se avete studiato bene la guida precedente vi chiederete allora se la formula per il calcolo del fattore di qualità Q che abbiamo usato nel bipolo LC parallelo si applichi anche al bipolo LC serie. La risposta è affermativa, con l’unica differenza che nel calcolo invece di considerare esclusivamente la resistenza intrinseca della bobina (RL) è necessario tenere conto anche della resistenza offerta dal driver (Q1,Q2) e della resistenza serie R5: Q= 2πfL/ (RL +R DRIVER+R5)

Fattore di qualità del bipolo LC serie.

In questo caso qual è il significato del Q? Il Q del bipolo LC serie ci indica di quanto la corrente verrà amplificata grazie al magico fenomeno della risonanza, dunque più è alto il Q e più sarà potente il campo magnetico ottenibile. Per quale motivo allora abbiamo inserito la resistenza R5 ? Togliamola, in modo da alzare il Q del bipolo! Purtroppo come al solito occorre trovare il giusto compromesso, infatti un Q elevato oltre a rendere delicata l’operazione di accordo della bobina con il giusto condensatore serie (ricordate il picco della montagna?) porta in questo caso una ben più grave conseguenza: la bobina diventerebbe molto potente ma estremamente lenta, sarebbe dunque impossibile riuscire a produrre impulsi PPM di appena 24us con ripidi fronti di salita e di discesa e dunque sarebbe impossibile riuscire a programmare il tag PCF7931. ©Copyright 2005 -Tutti i diritti sono riservati.

7

Ma siccome il campo magnetico necessario per programmare il tag è relativamente basso (tipicamente 170uWeber/m2), è abbastanza semplice produrlo senza bisogno di alzare pericolosamente il Q: con una bobina da circa 122uH è sufficiente un Q=2 per avere tutta la potenza necessaria per programmare il tag. Se riflettete sulla campana della risonanza che abbiamo studiato nella guida precedente dedurrete che una bobina con Q=2 è decisamente facile da accordare, ci possiamo affidare completamente al software di calcolo senza bisogno di tarature con l’oscilloscopio! Siccome il valore da assegnare alla resistenza RDRIVER non è noto a priori è conveniente usare una formula alternativa specifica per calcolare il Q del nostro circuito: Q= VCpp*π/(4*VCC) Supponendo di alimentare l’interfaccia con VCC=5V e di misurare sul condensatore C6 una tensione sinusoidale di ampiezza 13Vpp il Q del nostro circuito sarà Q=2.04. E’ importante non superare 13Vpp di tensione picco-picco, perché altrimenti si rischia di avere un Q troppo alto e dunque una bobina troppo lenta. Qualora misuraste una tensione picco-picco diversa modificate il valore della resistenza R5 fino ad ottenere una tensione su C6 compresa tra 12.5Vpp e 13.5Vpp (alimentando l’interfaccia con 5Vdc esatti). La funzione della resistenza R5 consiste proprio nel ridurre il Q del circuito al fine di velocizzare la bobina. Conoscendo la tensione picco-picco ai capi dei condensatori di accordo possiamo ora calcolare la corrente picco-picco circolante nel circuito: ICpp = VCpp*2πfC dove f=125KHz e C=C6+C7=13.3nF. Ad una tensione VCpp=13Vpp corrisponde dunque una corrente di circa 135mA picco-picco, equivalenti a 48mA RMS. La corrente RMS così calcolata è la medesima corrente che scorre sulla bobina ed è dunque un dato prezioso per poter stimare il campo magnetico presente all’interno della stessa. Come? Facendo uso della legge di Biot-Savart di cui riporto la formula semplificata, perfetta per i nostri scopi: B= 4π10-7*IRMS*N/D

Biot-Savart law

dove I RMS =48mA, N=80 spire, D=0.0184m (diametro della bobina in metri). L’induzione magnetica B presente al centro della bobina sarà B=262uWeber/m2. Abbiamo dunque ampio margine rispetto al valore tipico richiesto per programmare un PCF7931 (170uWeber/m2). ©Copyright 2005 -Tutti i diritti sono riservati.

8

Progettazione della bobina di lettura/scrittura. Per progettare la bobina L1 da 122uH ci affideremo al software di calcolo coil.exe usato nella guida precedente. Siccome il Q del circuito è molto basso non ci sarà bisogno di accordare manualmente la bobina e ci potremo fidare del valore di capacità di accordo suggerito dal software. Il software è pensato per una bobina di sezione rettangolare ma è possibile utilizzarlo anche per bobine di sezione circolare senza commettere errori apprezzabili. Nella costruzione della bobina valgono tutte le raccomandazioni elencate nella precedente guida, in particolare le spire devono essere perfettamente serrate e non devono mai sovrapporsi. Vi suggerisco di avvolgere la bobina su un supporto plastico cavo di forma cilindrica. Ho scelto la forma cilindrica perché di più facile reperibilità rispetto a quella rettangolare, in Figura 4 e Figura 5 potete osservare la bobina in dettaglio: come supporto ho usato un comune cappuccio di pennarello. Caratteristiche della bobina realizzata: -

supporto plastico di forma cilindrica. diametro esterno del cilindro: 18.4mm. lunghezza dell’avvolgimento: 9.4mm diametro del filo di rame smaltato: 0.1mm numero di spire: 80

©Copyright 2005 -Tutti i diritti sono riservati.

9

Figura 4. Dettaglio realizzativo della bobina di lettura/scrittura.

©Copyright 2005 -Tutti i diritti sono riservati.

10

Figura 5. Visione d’insieme della bobina protetta da uno strato di scotch e cera a caldo.

©Copyright 2005 -Tutti i diritti sono riservati.

11

Ovviamente non è detto che riusciate a procurarvi un cilindro plastico di esattamente 18.4mm di diametro (sinceramente non saprei nemmeno dirvi la marca del pennarello J), ed è per questo che ci viene in aiuto il software coil.exe. La cosa essenziale è che voi siate in grado di realizzare una bobina con un’induttanza compresa indicativamente tra 115uH e 125uH, a prescindere dal diametro della bobina e dal numero di spire avvolte. Siccome il software è pensato per una bobina di sezione rettangolare, viene richiesta la lunghezza dei due lati di una bobina rettangolare. Ora noi abbiamo un supporto cilindrico di diametro 18.4mm, che dati dobbiamo inserire ? E’ presto detto. Dobbiamo inserire nel software i lati di un quadrato che abbia la stessa area della nostra bobina. Facciamo il calcolo ricordando che l’area di un cerchio di raggio r vale A=πr2: AREA DELLA BOBINA DI SEZIONE CIRCOLARE = π(18.4mm/2)2 = 265.9mm 2 LATO DEL QUADRATO DI AREA EQUIVALENTE = √265.9 = 16.3mm Dunque nel software dobbiamo fingere di usare una bobina di sezione quadrata di lato 16.3mm, la cui induttanza sappiamo sarà circa equivalente a quella della nostra bobina di sezione circolare di diametro 18.4mm. Chiaro? In Figura 6 potete osservare i risultati del calcolo, dopo aver immesso tutti i dati richiesti. In questo caso gli unici output che ci interessano sono l’induttanza della bobina (122uH) e il valore del condensatore di accordo per LC serie risonante (13.25nF). Abbiamo dunque realizzato la bobina con l’induttanza richiesta da accordare con un condensatore da 13.25nF teorici. Nello schema il valore teorico è stato arrotondato senza problemi mettendo in parallelo due condensatori rispettivamente da 10nF (C6) e 3.3nF(C7).

©Copyright 2005 -Tutti i diritti sono riservati.

12

Figura 6. Calcolo dei parametri della bobina di lettura/scrittura del programmer. Un ultimo consiglio per riuscire a realizzare la bobina: progettando la bobina esclusivamente con il software potete prevedere la lunghezza dell’avvolgimento sapendo che 80 spire ben serrate determinano una bobina di circa 9.4mm di lunghezza, dunque ogni spira occuperà circa 0.118mm (questo è ragionevole in quanto il filo di rame nudo ha diametro 0.1mm ma occorre considerare anche lo spessore dell’isolamento in poliuretano). Dunque basta trovare un qualunque cilindro plastico di diametro 16-20mm per poi calcolare tramite il software il numero di spire necessarie per raggiungere l’induttanza desiderata. Dulcis in fundo potete osservare in Figura 7 l’interfaccia di programmazione assemblata nella versione completa v2.1. Come si vede ho adottato un compatto connettore DB9 maschio per interfacciarmi direttamente con la porta parallela tramite un cavetto autocostruito. Chi volesse invece gestire l’interfaccia di programmazione tramite un PIC non dimentichi di riservare adeguato spazio sulla basetta a bollini.

©Copyright 2005 -Tutti i diritti sono riservati.

13

Figura 7. Interfaccia di programmazione per PCF7931 v2.1.

©Copyright 2005 -Tutti i diritti sono riservati.

14

Affinamento della sensibilità del lettore. Questo capitolo ha un intento puramente didattico in quanto la sensibilità del lettore nella sua configurazione standard di Figura 2 è già più che sufficiente (bastano circa 500mVpp di segnale) per leggere senza problemi con il PCF7931 inserito nel cilindro al centro della bobina di lettura/scrittura. Come vi avevo accennato la sensibilità del lettore può essere comunque tarata scegliendo opportunamente le resistenze R8,R9,R10 che in pratica definiscono i livelli di trigger di commutazione dei comparatori interni del timer LMC555. Per prima cosa occorre misurare il valore di offset (tensione DC) a vuoto presente sul pin 5 (VCONTROL) tramite un multimetro. Il valore teorico è di 2/3 VCC, dunque sul pin 5 ci devono essere circa 3.33Vdc alimentando il programmer con 5Vdc. Il datasheet dell’LMC555 in realtà specifica una tolleranza abbastanza larga su questo riferimento di tensione per cui è opportuno comunque misurarlo per poter tarare con precisione la sensibilità del lettore. Supponiamo che: VCC= 5.0V VCONTROL=3.4V Sensibilità richiesta = 200mVpp. Calcoliamo ora la soglia di isteresi superiore e inferiore: VH= 3.4+0.1 = 3.5V VL= 3.4-0.1 = 3.3V Scegliendo a piacere R8=10kohm la somma delle resistenze R9 ed R10 dovrà essere: R9+R10= VL*R8/(VCC-VL) = 3.3*10000/(5-3.3) = 19411 ohm La resistenza R10 dovrà essere: R10= VH*(R9+R10)/(VL*2) = 3.5*19411/(3.3*2) = 10293 ohm e dunque R9 = 19411-10293 = 9118 ohm Riassumendo se teoricamente scegliessimo: R8=10000 ohm R9=9118 ohm R10=10293 ohm il nostro lettore avrebbe una sensibilità di 200mVpp quando alimentato con 5Vdc.

©Copyright 2005 -Tutti i diritti sono riservati.

15

In pratica la tensione presente sul pin 6 (THRESHOLD) rappresenta la soglia inferiore VL, mentre la tensione presente sul pin 2 (TRIGGER) rappresenta la metà della soglia superiore VH. Per comprendere meglio questa particolarissima configurazione realizzata con il timer LMC555 vi suggerisco di studiarne bene la struttura interna. Troubleshooting. Come ho ripetuto più volte la sezione più critica è costituita dal driver. Verificate attentamente con un oscilloscopio la frequenza, l’ampiezza piccopicco e la forma d’onda del segnale presente sui condensatori di accordo C6 e C7: deve essere presente una perfetta onda sinusoidale di 12.5/13.5Vpp e frequenza 125KHz. Eventuali distorsioni della sinusoide possono essere sintomo di un errato accordo della bobina, in pratica la bobina potrebbe avere un’induttanza molto diversa da quella attesa a causa della scarsa qualità realizzativa (spire distanziate, parzialmente sovrapposte, filo di diametro errato, ecc..). Oppure l’errore potrebbe essere nel condensatore di accordo, molto diverso rispetto al valore nominale a causa delle ampie tolleranze costruttive. Scegliete condensatori con dielettrico definito NP0, C0G, X7R o X5R per disporre di un valore di capacità stabile in temperatura. Usate eventualmente un capacimetro per verificare l’effettivo valore di capacità dei condensatori di accordo (raccomandato nel caso vogliate calcolare con precisione il campo magnetico generato dalla bobina). Queste raccomandazioni valgono soprattutto per l’operazione di scrittura del tag, certamente più critica e delicata della fase di lettura. Chi desiderasse costruire un’interfaccia con la sola funzionalità di lettura del PCF7931 può fare riferimento allo schema sottostante (Figura 8).

Figura 8. Schematico dell’interfaccia di sola lettura v1.0 per PCF7931.

©Copyright 2005 -Tutti i diritti sono riservati.

16

Il software di lettura e programmazione. Come già detto l’interfaccia di programmazione presentata costituisce un tassello necessario ma non sufficiente per rendere pienamente funzionale il programmatore. Ora che avete a disposizione una solida interfaccia hardware occorre che vi rimbocchiate le maniche e che iniziate a stendere qualche centinaia di righe di codice, datasheet del PCF7931 alla mano, per provare inizialmente a decodificare il segnale digitale inviato dal tag sulla linea RX del lettore. Una volta capita la decodifica e realizzata la procedura di lettura del PCF7931 potrete concentrarvi sulla formattazione degli impulsi di scrittura da inviare alla linea TX, rammentandovi che la comunicazione con il tag avviene sempre in half-duplex, ossia o leggete o scrivete, non potete fare entrambe le cose contemporaneamente. A questo punto non mi resta che augurarvi buon divertimento. -TheInsider-

©Copyright 2005 -Tutti i diritti sono riservati.

17

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF