I.T.I.S.
“Enrico Mattei”
2008/2009
Sensore di Temperatura
Wireless per PC
Francesco Renzini
5°A/EN
1 INDICE
-
1. Introduzione
2. Descrizionee del progetto
3. Dati di targga
4. Schema di principio
5. Blocchi circuiti
mento
6. Funzionam
7. Applicazioni
8. Codice
mponenti principali
9. Pinout com
10. Istruzionii per l’ uso
11. Teoria
12. Bibliograffia
2 1.Introduzione:
Il seguente progetto non ha la pretesa di essere un dispositivo da
commercializzare ma, semplicemente di riassumere il lavoro svolto
durante i tre anni di specializzazione nelle diverse materie tecniche,
applicando le competenze acquisite. Tutti i circuiti stampati (eccetto quelli
dell’alimentazione), facenti parte del progetto, sono stati fatti a tecnologia
smt (surface mount technology) e, realizzati utilizzando le apparecchiature
e strumentazioni dei laboratori dell’istituto. Anche ogni cablaggio e
collaudo è stato portato a termine con l’utilizzo di strumenti scolastici e
personali.
2.Descrizione del progetto:
Il “sensore di temperatura wireless per pc”, consiste in un termometro
interfacciabile con il calcolatore, dotato di un sensore wireless, (cioè senza
fili) che può essere spostato dalla base (collegata al computer) di circa 50
metri in linea d’aria (aperta). Si possono intuire le parti costituenti il
progetto. Nel sensore portatile avremo: una parte di rilevazione della
temperatura (trasduttore), una di acquisizione (ADC), una di elaborazione
(μC) e trasmissione (modulo radio). Nella centralina invece avremo: una
parte di ricezione dei dati trasmessi dal precedente modulo, quindi, un’
altro modulo, la parte di elaborazione (μC) e una parte di comunicazione
con il calcolatore (interfaccia 232).
Riassumendo, si utilizzano due moduli radio ( un Tx ed un Rx ), gestiti da
microcontrollori.
3 3.Dati di targa:
SENSORE
¾ INTERVALLO DI MISURA:
0°C – 50°C
¾ TENSIONE ALIMENTAZIONE:
•
•
9V D.C. utilizzando 6 batterie da 1.5V AA in serie
Alimentatore stabilizzato da 9-15V D.C.
¾ CORRENTE ASSORBITA IN STAND-BY:
90mA
¾ CORRENTE ASSORBITA IN FUNZIONE:
100mA
¾ DISTANZA MASSIMA DALLA BASE IN LINEA D’ARIA LIBERA:
50m
BASE
¾ TENSIONE ALIMENTAZIONE:
•
•
9V D.C. utilizzando 6 batterie da 1.5V AA in serie
Alimentatore stabilizzato da 5-15V D.C.
¾ CORRENTE ASSORBITA IN STAND-BY:
---mA
¾ CORRENTE ASSORBITA IN FUNZIONE:
---mA
¾ PORTA INTERFACCIA PC:
Seriale RS232: connettore DB9 femmina
4 4.Schema di principio:
SENSORE ETERE
BASE Il blocco sensore ha lo scopo di rilevare la temperatura e di trasmetterla via
radio alla base, posta a distanza.
L’etere, inteso come aria, è il mezzo nel quale viaggiano le onde
elettromagnetiche, che compongono quelle radio portatrici di informazioni
(quindi non si vuole intendere per etere, l’ “etere luminifero”, quell’
ipotetico mezzo, attraverso il quale, si propagano le onde
elettromagnetiche, di cui Newton ipotizzò l’ esistenza, definitivamente
smentita dalla teoria della Relatività Ristretta di Albert Einstein)
Il blocco base ha lo scopo di captare i segnali radio informativi, elaborarli
ed inviarli al calcolatore su richiesta dell’utente.
5.Blocchi circuiti:
SENSORE
STABILIZZATORE 3.3V 2
9‐15V C.C. 1
3 4
5 MODULO RADIO μC
5 TRASDUTTORE‐ CIRCUITO CONDIZIONAMENTO‐
FILTRO BASE
9‐15V C.C. 1
STABILIZZATORE 3.3V 2
6 MODULO RADIO 7
μC
8
RS232 9 PC 1) 9-15V C.C.: è l’alimentazione esterna, fornitagli da batterie o da un
alimentatore stabilizzato. Tale tensione deve essere abbastanza stabile, in
quanto serve ad alimentare la parte del circuito costituita dal trasduttore.
Questa fonte di alimentazione deve essere in grado, almeno di erogare una
corrente non inferiore a 100mA, quindi deve avere una potenza minima di
0.9W.
Pmin= Vmin*Imin= 9 * 100*10-3 = 0.9W = 900mW
Pmin= Potenza minima - Vmin = tensione minima - Imin= corrente minima
Il valore minimo di tensione di alimentazione è 9V in quanto gli amplificatori
operazionali del blocco del trasduttore, potrebbero non funzionare
correttamente, non essendo “rail to rail”.
Come valore massimo di tensione in ingresso si ha 15V, perché il sensore ti
temperatura potrebbe lesionarsi.
6 Porta batterie per 6 AA
2) STABILIZZATORE 3.3V: è un circuito che serve a stabilizzare la tensione di
alimentazione a 3.3V per alimentare il resto del circuito. È costituito da un
regolatore di tensione lineare LD1086 e da alcune capacità di filtro (i cui valori
sono imposti dal datasheet).
Circuito stabilizzatore
Schema elettrico
Questo integrato ha un dropout basso, 1.3V a 1.5A (corrente massima
erogabile).
Si è scelto di utilizzare alimentatori lineari per semplicità di realizzazione e
perché le potenze in gioco sono piccole. Quindi anche con un rendimento del
50-60% (rendimento tipico degli alimentatori lineari) la dissipazione in calore
è limitata.
7 BOARD
Lato rame
Componenti
3) TRASDUTTORE-CIRCUITI CONDIZIONAMENTO-FILTRO è la parte
del sensore vera e propria, in quanto composta dall’ elemento sensibile alla
grandezza fisica da rilevare, e da circuiti che elaborano l’informazione
prelevata.
TRASDUTTORE CIRCUITO CONDIZIONAMENTO FILTRO Nel circuito viene utilizzato come trasduttore, l’integrato LM335, che è un
sensore di temperatura analogico, che fornisce in uscita una tensione
direttamente proporzionale alla temperatura rilevata in ingresso, data dalla
seguente funzione:
V=k*T
Dove:
V = tensione uscita
k = 10mV/°K
T = temperatura
Come si può notare il segnale analogico informativo, viene espresso in
funzione della temperatura in °K. La conversione da gradi Kelvin a Celsius
può essere fatta a livello analogico, cioè operando direttamente sul segnale che
contiene l’informazione o a livello digitale. Questo sensore ha un’accuratezza
di 1°C, quindi di 10mV.
Il circuito di condizionamento serve appunto a condizionare alle esigenze il
segnale contente l’informazione; quindi si potrebbe realizzare un circuito di
adattamento che esegua la conversione da °K a °C. Tale circuito richiederebbe
una quantità di hardware non indifferente, quindi si preferisce eseguire la
conversione digitalmente (tramite software caricato nel microcontrollore). In
questo caso il circuito di condizionamento è costituito solamente dalla parte di
taratura del sensore (R2) e da un buffer non invertente (IC1A), che ha la
funzione di isolare il sensore dal resto del circuito, facendo in modo che esso
8 non eroghi corrente, in quanto l’impedenza d’ingresso del AO ad inseguitore di
tensione, vista dal sensore è molto elevata.
Il filtro, è un passa basso del quarto ordine VCVS con approssimazione alla
Butterworth, con frequenza di taglio a circa 10Hz. Questo quadripolo ha la
funzione di eliminare i disturbi in alta frequenza che renderebbero instabile la
misurazione della temperatura.
Risposta in frequenza del filtro
9 Schema elettrico
BOARD
Lato inferiore rame
Lato superiore rame
Circuito sensore
10 Componenti
4) μC: il
microcontrollore
è
l’“autorità” che gestisce tutto il
sensore.
Il controllore utilizzato è uno
Z8F6421 prodotto da Zilog, con un
core da 8 bit. Il micro è organizzato
con architettura Harvard ed è
provvisto di:
™ 64kB di flash rom
™ 4kB ram
™ ADC 8 canali a 10 bit
™ 31 linee di I/O
™ 3 timer da 16 bit
™ 2 UART con IrDA
™ 1 I2 C
™ 1 SPI
Di tutte queste periferiche si utilizza un canale del convertitore A/D, alcune
linee di I/O, un timer, la SPI e la UART.
Il μC converte la tensione presente nell’ingresso analogico, fornitagli dal
circuito con il trasduttore e, la trasmette via SPI al modulo radio. Per eseguire
la conversione A/D, l’ADC, necessita di una tensione di riferimento, nel nostro
caso, utilizza la tensione di alimentazione filtrata con un condensatore.
Conoscendo la tensione di alimentazione e il numero di bit del convertitore, è
possibile calcolare il quanto q e l’errore di quantizzazione ε.
q =Vref / 2n° bit = 3.3/210=3.22mV
ε = q/2 = 3.22 = 1.61mV
Osservando lo schema elettrico, è possibile notare la presenza di un quarzo da
18.432MHz, che serve da oscillatore per il microcontrollore.
È presente anche un pulsante di reset, da premere all’avvio e ogni qualvolta si
presenti un problema.
Sono montati anche due diodi led, uno rosso ed uno verde che servono per
segnalare all’utente l’esito della comunicazione radio con la stazione.
Il codice sorgente è stato creato utilizzando il tool di sviluppo apposito, ZDSII.
Il programma è stato scritto in ANSI C, in quanto l’utilizzo di un linguaggio a
medio – alto livello, permette un’ astrazione del problema. Questo elevarsi
dalla macchina, consente una portabilità del codice scritto qualora si volessero
effettuare modifiche hardware (cambiare microcontrollore).
11 Il controllore è stato programmato tramite programmatore - debugger fornito
dalla Zilog, utilizzando uno specifico connettore, collegato direttamente al pin
DBG dello Z8.
All’avvio il microcontrollore inizia ad eseguire il programma precedentemente
caricato in flash, tramite apposito programmatore.
Per la prototipazione sono stati utilizzati dei μC Z8F6423 mentre, per la
realizzazione dei circuiti stampati, si sono usati due Z8F6421.
12 13 Lato inferiore rame
Lato superiore rame
Componenti
Circuito controllo sensore
14 5) MODULO RADIO è
un circuito prodotto
da
Cypress,
il
CYWM6935 è un
modulo WirelessUSB
(bus universale seriale
senza fili).
Questo
dispositivo
monta
il
chip
CYWUSB6935 che è un radio transceiver sempre prodotto da Cypress, ed
integra nel circuito stampato 2 trace antennas, amplificatori di potenza(fino ad
1mW) e rispettivi filtri.
Caratteristiche CYWM6935:
- Banda da 2.4GHz a 2.483GHz
- Sensibilità in ricezione -95dBm
- 50 m di portata in spazio libero
- Livello di potenza uscita massimo 0dBm
- Velocità massima di trasmissione di 62.5 kbits/sec
- Interfaccia SPI a più di 2 MHz
Il modulo per essere interfacciato con l’esterno, usa un connettore, da dove
viene gestito tramite SPI (Serial Peripheral Interface) da un microcontrollore /
microprocessore che, legge / scrive su dei registri presenti nell’ area di
memoria del CYWUSB6935. Questo dispositivo utilizza un modem GFSK e
due DSSS baseband riconfigurabili, che permettono di selezionare tra 80 canali
radio.
15 Il chip è predisposto di uno PseudoNoise code da 8 byte che utilizza come
espansione nella comunicazione DSSS.
Mappa registri modulo radio
Impostando determinati registri di configurazione è possibile
abilitare/disabilitare la trasmissione/ricezione, impostare il canale radio,
controllare il livello di rumore presente, abilitare diversi tipi di interruzione (in
trasmissione e ricezione), controllare l’esito della trasmissione radio, impostare
la potenza di trasmissione e cambiare il PN code.
Per gestire i registri del modulo, il micro deve inviare via SPI, prima un byte
(byte1), dove i 6 bit meno significativi indicano l’indirizzo del registro sul
quale si vuole operare, il primo bit, se è a 0, indica che i dati vengono letti dal
micro, mentre se è a 1 vengono scritti. Il secondo bit più significativo indica
l’incremento, cioè se si vuole leggere o scrivere solo un registro va posto a 0,
altrimenti, se si vogliono leggere o scrivere più registri va posto a 1; così
facendo, la macchina stati presente sul CYWUSB6935, esegue
16 automaticamente l’incremento dell’indirizzo. I byte successivi sono costituiti
dai dati.
La presenza di una macchina stati e dei precedenti registri di configurazione,
permette di utilizzare tali moduli in modo semplice e diretto.
Ciruito modulo radio
17 TRANSIZIONI SPI
Chiaramente i segnali SCK e SS sono gestiti dal master (Z8), quindi il segnale
MOSI va dal microcontrollore al modulo radio, viceversa per il segnale MISO.
6) MODULO RADIO è uguale al precedente, solamente che utilizza anche il
segnale IRQ (interrupt request), per segnalare al micro quando la trasmissione
è stata eseguita, modificando una variabile di stato all’interno del programma.
7) μC anche lui è lo stesso modello di quello utilizzato per il sensore, solamente
che, nella stazione, oltre a gestire il modulo radio, non deve effettuare alcun
tipo di conversione A/D e, come abbiamo già detto, oltre a gestire
18 l’interruzione del modulo radio in trasmissione, gestisce anche l’ interruzione
del pulsanti di RICHIESTA e quella della seriale.
8) RS232 consiste nella comunicazione seriale con il calcolatore e nell’integrato
MAX3222. Questo componente è un driver di linea con una protezione ESD
(scariche elettrostatiche) di ±15kV. Quest’ultimo integrato serve anche come
traslatore di livello, in quanto i livelli di tensione di uscita dello Z8 sono 3.3V,
il transceiver provederà a creare una differenza di potenziale di ±12V,
necessari per la comunicazione. Per il collegamento tra calcolatore e centralina,
si utilizzano due connettori DB9, connessi tramite cavo seriale a 9 poli.
Della comunicazione seriale vengono usati solamente tre segnali, quello di
trasmissione, quello di ricezione e la massa.
19 20 Lato inferiore rame
Lato superiore rame
Componenti
9) PC consiste nell’interfaccia utente, in questo caso nel software “Hyper
Terminal” o in qualunque altro programma in grado di gestire le varie porte di
comunicazione del calcolatore elettronico. Come impostare le caratteristiche
della comunicazione seriale verrà spiegato nella parte relativa all’uso del
dispositivo.
21 6.Funzionamento:
Una volta avviati i due apparati, il blocco del sensore si mette in ascolto ed esegue la
conversione A/D della temperatura, nel frattempo la base, inizializza le sue
periferiche ed inizia a trasmette un byte di chiamata (0x11), quando il micro nella
parte del sensore riceve questo byte e lo controlla, trasmette 2 byte:
- Il nibble più significativo del primo byte è un codice di riconoscimento
- Il nibble meno significativo, in particolare i due bit meno significativi, sono i
due bit meno significativi ottenuti dalla conversione A/D
- Il secondo byte contiene i rimanenti bit (i più significativi) della conversione
A/D
Se le comunicazioni avvengono con successo i micro accendono i led verdi,
altrimenti quelli rossi.
Alla richiesta dell’utente di visualizzare la temperatura, il micro della stazione calcola
il massimo e il minimo da quando è stato acceso, in quanto i dati non vengono salvati
in ROM ma in RAM; trasforma i valori numerici da 1023esimi in tensione (presente
all’ingresso analogico del sensore) e successivamente in temperatura.
Ottenuti i valori di temperatura essi vengono trasmessi via seriale; se l’utente richiede
la visualizzazione mentre la comunicazione è interrotta (led rosso acceso), la stazione
risponde con un messaggio di errore. Indipendentemente dall’esito della trasmissione,
viene anche visualizzato il livello di rumore presente nel canale radio.
Infatti il microcontrollore esegue la letture del registro dove è situato il risultato della
conversione A/D, effettuata dal modulo, e la trasmette via cavo seriale al calcolatore.
Questo valore è espresso in 32esimi (adc a 5 bit), e serve per dare un’idea all’utente,
dei disturbi presenti, quindi del possibile mal funzionamento del dispositivo. Se viene
letto un elevato livello di rumore, occore spostare i moduli dalle fonti di tali disturbi
quali: modem wireless, cellulari, computer portatili, ecc. …
Siccome la banda di frequenza di questa stazione, interseca quella dello standard
wireless per computer (IEEE 802.11), potrebbero verificarsi malfunzionamenti sia ai
calcolatori che alla centralina.
22 7.Applicazioni:
Questo progetto vuole mostrare una semplice applicazione dei moduli radio
CYWM6935, infatti il dispositivo è composto da un solo sensore. La presenza di più
canali radio, di un espansore di banda e la possibilità di implementare un protocollo
di comunicazione robusto, permette l’applicazione di tali moduli nei più svariati
settori, semplicemente anche aggiungendo sensori a questo progetto e, magari anche
realizzando un’ interfaccia software per computer.
“Il sensore di temperatura wireless per PC” può essere utilizzato in numerosi
ambienti: uffici, abitazioni, ecc. … e serve per controllare la temperatura di un luogo
comodamente dal proprio computer, con la possibilità di elaborare i dati ricavati con
applicativi standard o personalizzati.
Questi moduli radio possono trovare applicazione in qualunque dispositivo
elettronico, dove si vuole evitare l’utilizzo di lunghi, costosi e scomodi cavi elettrici.
8.Codice:
Commento codice sensore
Il codice caricato nella memoria dello Z8 presente nel sensore, inizia con le
impostazioni delle GPIO del micro, dell’ADC interno, della SPI, del timer, delle
interruzioni, del modulo WirelessUSB e dei led di segnalazione.
Le GPIO servono a gestire i vari led presenti nel circuito (verde e rosso) ed ad
attivare il modulo radio (operando sui segnali nPD e nRST), l’ADC per effettuare la
conversione A/D della temperatura, il timer serve a dettare le temporizzazioni
necessarie al micro.
Il microcontrollore una volta entrato nel ciclo infinito, inizia a testare in polling se
riceve il byte di comando (0x11) dal modulo wireless, in caso affermativo esegue la
conversione analogico-digitale e trasmette alla base tale risultato. Nel frattempo
controlla l’esito di tale comunicazione ed aggiorna i led adibiti alla visualizzazione
del risultato della trasmissione radio.
23 Commento codice base
Il listato memorizzato nella flash del microcontrollore montato nella base, comincia
con le solite inizializzazioni, imposta le GPIO, il timer, la SPI, il modulo
CYWM6935, la UART, le varie interruzioni e i led di visualizzazione.
Le GPIO servono per gestire i led di visualizzazione (verde, rosso e bianco), il
pulsante di RICHIESTA e ad attivare il modulo radio (operando sui segnali nPD e
nRST), il timer per dare le giuste temporizzazioni necessarie, la SPI per comunicare
con il modulo WirelessUSB, la UART è la seriale che tramite interfaccia
(MAX3222), verrà adatta allo standard RS232. Le interruzioni che il micro gestisce
sono: quella del timer, quella del modulo wireless, quella del pulsante di
RICHIESTA e quella generata da seriale tramite la pressione del tasto invio da parte
dell’ utente.
Lo Z8 una volta entrato nel ciclo infinito del programma, inizia col trasmettere il byte
di comando (0x11) e, se riceve la temperatura correttamente, esegue i calcoli del
minimo e del massimo; per poi controllare il livello di rumore presente nel canale
radio. Se l’utente richiede di visualizzare la temperatura, il micro esegue le varie
conversioni dei dati e trasmette il messaggio tramite seriale. Nel frattempo gestisce
anche i led di visualizzazione, se riceve una risposta corretta dal sensore, accende il
led verde, altrimenti, se non riceve niente per un secondo o riceve dati non validi,
attiva il led rosso. Ad ogni ciclo aggiorna anche lo stato del led bianco che indica l’
aggiornamento della temperatura (ad ogni lampeggio corrispondono due
aggiornamenti).
24 File:
9
9
9
9
9
9
9
funzioni.c
header.h
interrupt.c
main.c
setting.c
spi_function.c
librerie Zilog
25 File:
9
9
9
9
9
9
9
9
calcoli.c
header.h
interrupt.c
main.c
setting.c
spi_function.c
stampa.c
librerie Zilog
26 9.Pinout componenti principali:
Z8
CYWM6935
MAX3222
27 10.Istruzioni per l’ uso:
Connettere la base all’alimentazione, premere il tasto di RESET e attendere qualche
secondo (circa 5s). Dovrebbe iniziare a lampeggiare il led BIANCO, se così non
fosse, ripetere l’operazione di pressione del pulsante di RESET e attesa, fino a
quando il led BIANCO non inizia a lampeggiare. Quando il led BIANCO lampeggia,
connettere all’alimentazione il sensore wireless e premere il pulsante di reset del
sensore. Connettere la centralina tramite PORTA SERIALE al calcolatore e aprire il
programma Hyper Terminal. Creare una nuova connessione con la porta seriale
utilizzata, impostando:
-
Bit per secondo: 57600
Bit di dati: 8
Parità: nessuno
Bit di stop: 1
Controllo di flusso:
nessuno
A questo punto il dispositivo
è
pronto
all’utilizzo.
Premendo il tasto INVIO da
tastiera o il pulsante di
RICHIESTA, apparirà la
temperatura, se i led accesi
della centralina e del sensore
sono quelli verdi, altrimenti
Hyper Terminal
apparirà un messaggio di
errore. Il led BIANCO indica la frequenza di aggiornamento della temperatura, ad
ogni accensione corrispondono due aggiornamenti. Il led VERDE sia del sensore che
della centralina indica che la trasmissione dei dati è avvenuta con successo, quindi i
dati ricevuti sono validi; mentre il led ROSSO indica un errore nella trasmissione,
quindi i dati verranno scartati. Per qualunque malfunzionamento, premendo il
pulsante RESET di entrambi i circuiti si dovrebbe risolvere il problema.
Se rimangono accesi fissi i led ROSSI, potrebbe voler dire che la distanza tra sensore
e centralina è troppo elevata, quindi occorre avvicinare i due apparati.
Prima di accendere la stazione è conveniente scollegare il cavo seriale dall’apposito
connettore.
28 11.Teoria:
Introduzione
In questa parte teorica non si trattano in modo approfondito tutti gli argomenti che
possono riguardare il progetto ma, vengono accennati gli elementi fondamentali o
novità, riguardanti il dispositivo precedentemente spiegato.
Scheda di acquisizione
Il progetto presenta chiaramente le caratteristiche di una scheda di acquisizione dati,
in quanto una grandezza fisica analogica deve essere trattata da apparati digitali
(calcolatore).
CIRCUITO
CONDIZIONAMENTO
SISTEMA
A μP
CIRCUITO
CONDIZIONAMENTO
CIRCUITO
CONDIZIONAMENTO
Il primo elemento di una scheda di acquisizione è composta dal trasduttore, che è un
dispositivo in grado di convertire una grandezza fisica analogica (temperatura,
pressione, ecc. …), in una elettrica analogica (tensione, corrente o frequenza) oppure
in una elettrica digitale, a scopo di misura. Ad esempio il sensore utilizzato in questo
progetto (LM335) è un sensore che converte la temperatura (grandezza fisica
analogica) in tensione (grandezza elettrica analogica). Questa sonda termica ha una
caratteristica lineare, significa che la relazione che lega la grandezza fisica a quella
elettrica, è di proporzionalità diretta. Esistono anche sensori con una curva di risposta
esponenziale o logaritmica.
Il circuito di condizionamento è un circuito analogico che ha la funzione di adattare il
segnale informativo alle caratteristiche del sistema, come convertire il segnale
elettrico contente l’informazione di una temperatura in gradi Kelvin in Centigradi,
oppure, espandere all’interno del range misurabile il segnale informativo. Con la
larga diffusione di sistemi digitali molto potenti, in grado anche di eseguire la FFT
(Fast Fourier Transform), il circuito di condizionamento non viene più utilizzato per
29 eseguire le varie trasformazioni, che vengono effettuate via software, come nel
progetto del “Sensore di temperatura wireless per pc”.
Il sample/hold è un circuito analogico che serve a mantenere costante la grandezza
elettrica analogica da convertire, per tutto il tempo di conversione dell’ADC. Quando
la grandezza da campionare varia molto velocemente nel tempo, tale dispositivo è di
fondamentale importanza, in quanto tutela la correttezza della conversione
analogico/digitale. In genere i componenti fondamentali di questo circuito sono un
condensatore di piccola capacità, (che si carica della tensione da campionare) che
viene mantenuta costante da un buffer, che oltre ad isolare il circuito di
condizionamento fa si che il condensatore non si scarichi, in quanto la resistenza di
ingresso di un inseguitore è teoricamente infinita. L’inserzione di un sample/hold su
ogni canale di ingresso analogico, garantisce una coerenza temporale. Se questa
coerenza non è necessaria, si può montare un singolo sample/hold prima dell’ADC.
Nel progetto il sample/hold non viene utilizzato, in quanto il segnale di uscita dal
trasduttore viene assimilato come continuo, quindi che varia molto lentamente nel
tempo.
Il multiplexer analogico viene utilizzato se la scheda di acquisizione è composta da
più canali di ingresso analogico. Esso serve a selezionare attraverso i selettori, il
canale da campionare. Nel progetto del sensore wireless, avendo solamente il segnale
di un trasduttore da campionare, il multiplexer non viene inserito nel circuito.
L’ADC (Analog to Digital Converter) convertitore analogico digitale, è un dispositivo
molto importante perché è in grado di convertire una grandezza analogica (tensione)
in una digitale, espressa tramite una combinazione binaria. Il numero dei bit con la
quale esegue la conversione dipende dal convertitore; per esempio nel progetto è
stato utilizzato l’ADC interno allo Z8, che è provvisto di 10 bit. Ogni ADC per
funzionare necessita di una tensione di riferimento con il quale confrontare quella da
convertire, nel progetto si utilizza la tensione di alimentazione (3.3V). Esistono molti
tipi di ADC, quali flashADC, ad approssimazioni successive, ecc. …
È ora possibile definire il quanto, come la minima tensione in ingresso rilevabile
2
L’ errore di quantizzazione ε è definito come l’ errore massimo che si può compiere
nella conversione A/D, ed è dato da:
30 2
La conversione consiste nel confrontare quante volte il quanto è contenuto nel
segnale da convertire. Quindi il risultato della conversione n è dato da:
Conoscendo il valore della conversione può essere utile risalire al valore di tensione
con la seguente proporzione:
2
°
In generale tutti gli ADC sono disposti di due segnali il Soc (Start of Conversion) e
EoC (End of Conversion). Il segnale di start è un segnale di input per il convertitore,
in quanto la conversione viene avviata dall’esterno. Per tutto il tempo in cui viene
effettuata la conversione, la tensione in ingresso si deve mantenere constante, per non
generare errori, ciò è garantito dal sample/hold. Il tempo in cui il componente esegue
la conversione viene chiamato tempo di conversione Tc, ed è intrinseco per ogni tipo
di ADC. Il segnale EoC, viene inviato dall’ADC quando il convertitore termina la
conversione. Tale segnale può essere gestito comodamente in interruzione da parte
del microprocessore oppure in polling.
Il sistema a microprocessore serve ad eseguire tutti i controlli necessari nel sistema di
acquisizione, gestione periferiche, tra cui l’ADC, elaborare i dati ricavati da esso e
magari trasmetterli, oppure visualizzarli.
N.B.:
È consigliato anteporre un filtro passa basso di ordine abbastanza elevato, all’ADC, in
quanto esso provvederà all’eliminazione dei disturbi che inquinano il segnale
informativo e che potrebbero dare luogo ad una conversione non proprio veritiera.
Infatti nel progetto si è utilizzato un filtro passa basso VCVS del quarto ordine.
Microcontrollore
Il microcontrollore è un dispositivo programmabile ad alta scala di integrazione, che
infatti è costituito da un sistema a microprocessore, più diverse periferiche esterne. Il
vantaggio dell’utilizzo dei microcontrollori, rispetto ai microprocessori, è costituito
dal fatto che, per organizzare un sistema provvisto di varie periferiche (ADC, timer,
SPI…), con un μP queste devono essere tutte inserite nel dispositivo e progettate,
31 mentre con un μC non è necessario, in
quanto è tutto integrato nello stesso chip. Il
microcontrollore, essendo a tutti gli effetti
un sistema a microprocessore, è composto
da differenti bus, tra cui address bus,
control bus e data bus. Quindi è possibile
definire le due tipologie fondamentali di
architetture di sistemi a microprocessore,
architettura Von Neumann e Harvard.
L’architettura Von Neumann è costituita
Architettura Von Neumann
da quattro elementi fondamentali:
1.
2.
3.
4.
CPU, composta da CU e ALU
Memoria
Input/Output
Bus
Tale organizzazione di un sistema a microprocessore è caratterizzata dal fatto di
avere in comune un bus di comunicazione per la memoria dati e per quella
programma.
Questa architettura è caduta in disuso nei moderni sistemi a microprocessore, in
quanto non permette prestazioni elevate, a causa della presenza di un solo bus di
indirizzamento.
Esempi di applicazioni: sistema con microprocessore Zilog Z80.
L’architettura Harvard, anch’essa costituita dai quattro blocchi fondamentali,
solamente organizzati in modo differente.
Come si può notare dal grafico, la memoria dati e la memoria programma sono
separate, quindi utilizzano bus differenti. La presenza di due canali di indirizzamento,
consente di eseguire il caricamento di un’istruzione del programma in parallelo al
caricamento di un dato dalla memoria dati. Questo parallelismo consente di avere
prestazioni migliori.
L’architettura Harvard è attualmente utilizzata nei moderni sistemi a microprocessore
e microcontrollore.
32 Esempi
di
applicazionni:
microcontrollori
modernni
(Zilog, Atmel, Freescale…
…),
tra cui quello utilizzato per il
progetto, lo Z8, DSP ecc. …
I microcontrollori possonno
essere classificati in base alla
dimensione del core, ciooè
dalla dimensione della CPU
U,
8, 16, 32 bit; chiaramentte
quelli a 32 bit hannno
Architettura Harvarrd
prestazioni di gran lungga
migliori rispetto quelli a 8 biit. Un altro parametro importante è la frequenza
f
di lavoro,
cioè la frequenza con cui ill processore esegue le istruzioni, chiam
mato clock. Si può
andare da circa 18-20 MHz per micro di media fascia ad 8 bit (Z
Z8, ATmega168…),
fino ad arrivare a frequenze di 1 GHz, per il Freescale i.MX51. Im
mportante è anche la
dimensione della memoria programma,
p
in genere flash rom, eprom
m o e2prom, che va
da pochi kByte a qualche centinaia.
c
Anche la RAM è importantee come la ROM, in
quanto il programma, per i calcoli
c
numerici, utilizza la RAM. In geenere si va da pochi
byte e qualche kbyte. Altrra caratteristica importante di un miccrocontrollore è la
quantità e la qualità delle peeriferiche integrate nel chip. Per esemppio ci sono micro di
fascia media con un ADC a 10
1 bit fino ad arrivare a μC con 24 bit di
d ADC.
La versatilità dei microcontrrollori, si può notare dalle infinite appplicazioni possibili,
da semplici controlli di inpuut/output, fino a netPC, è per questo che
c tali componenti
sono tra i protagonisti del meercato elettronico.
Filtro
Sono dei quadripoli che sellezionano i segnali in base alla loro frequenza.
f
Esistono
due tipi di filtri, quelli passiivi e quelli attivi. I passivi, sono com
mposti solamente da
elementi passivi, quali resisttori, condensatori, induttori. Mentre quuelli attivi, oltre ad
essere costituiti da elementi passivi, sono costituiti anche da eleementi attivi, quali
amplificatori operazionali.
33 Le caratteristiche principali dei filtri sono:
•
•
•
•
•
Larghezza di banda
Il guadagno in banda passante
Le frequenze di taglio
L’ordine
Il roll-off
La larghezza di banda di un filtro è l’intervallo di frequenze che esso riesce a trattare,
più in particolare è la differenza tra le due frequenze dove si ha un’attenuazione di
3dB rispetto il centro banda. Quindi si può dire che è l’intervallo di frequenze che
lascia passare (passa-basso, passa-alto e passa-banda) o che elimina (notch) del
segnale in ingresso.
Il valore di quanto il filtro amplifica o attenua sarà il guadagno in banda passante.
Le frequenze di taglio sono quelle frequenze dove il guadagno ha un’attenuazione di
3dB rispetto la banda passante.
L’ordine del filtro è dato dal numero degli elementi reattivi (capacitivi o induttivi),
che non generano maglie improprie, cioè che non è possibile ricondurre ad un unico
elemento. A livello analitico, l’ordine è dato dal grado del polinomio a denominatore
della funzione di trasferimento del filtro preso in esame.
Il roll-off è la pendenza con cui inizia a variare il guadagno del filtro, all’allontanarsi
dalla banda passante.
Le approssimazioni di un filtro, sono delle tecniche per progettare filtri con una
risposta in frequenza il più possibile simile a quella desiderata. Ne esistono tre.
1. Quella alla Butterworth, che consente una massima piattezza in banda passante
2. Alla Bessel, che permette di ottenere delle distorsioni di fase ridotte
3. Alla Chebyschev, che si utilizza per ottenere un roll-off più elevato
Nel progetto viene utilizzata l’approssimazione alla Butterworth, in quanto si
vogliono avere tutte le componenti armoniche della banda passante, trattate allo
stesso modo.
Verrà analizzato solamente il filtro passa-basso VCVS del quarto ordine, utilizzato
nel progetto.
Partiamo dalla forma canonica di un passa-basso del quarto ordine
34 Q
1
2ζ
In generale la configurazione VCVS ha la seguente funzione di trasferimento:
1
Dove
1
Sostituendo:
Y1=R1, Y2=C2, Y3=0, Y4=R2 e Y5=C2 quindi la GVCVS(s) diventa:
1
1
1
1
1
1
1
1
Se si utilizza come metodo di progettazione, come è stato usato nel progetto, un filtro
a guadagno unitario, K=1 quindi diventa:
35 1
Utilizzando l’approssimazione alla Butterworth, i due stadi del filtro hanno una ζ
rispettivamente 0.924 e 0.383.
Quindi successivamente, conoscendo i dati necessari è possibile calcolare i valori dei
componenti, utilizzando le relazioni precedenti.
SPI
Serial Peripheral Interface è un sistema di comunicazione tra un microcontrollore ed
un circuito integrato o tra due microcontrollori. Questo sistema è seriale, in quanto
viene trasmesso un bit alla volta sulla stessa linea, ed è sincrono, vista la presenza di
un segnale di clock che coordina la trasmissione/ricezione e determina la velocità di
trasmissione. La SPI è provvista di quattro linee di comunicazione:
1. SCLK, è il clock generato dal master
2. MOSI, Master Out Slave In, è la linea
con cui il master trasmette
3. MISO, Master In Slave Out, è la linea
con cui il master riceve
4. nSS, è il chip select, attivato dal master verso lo slave con cui comunica
La SPI è anche full-duplex, in quanto è possibile ricevere e trasmettere
contemporaneamente.
Questo tipo di comunicazione è molto usato nei moderni apparati elettronici.
UART
La UART, Universal Asynchronous Receiver-Transmitter è la periferica interna al
microprocessore, che in genere viene connessa alla RS-232 esterna, quindi, questo
sistema di comunicazione è asincrono, non è presente alcun tipo di clock.
RS-232
La RS-232 (Recommended Standard 232) è uno standard di comunicazione seriale a
bassa velocità. È un tipo di comunicazione seriale asincrono bipolare. La seriale 232
può essere utilizzata in modalità full-duplex o half-duplex, ma sempre in modo
asincrono. Il frame trasmesso è composto da singoli byte, con in più l’aggiunta di un
36 bit di start, codificato con lo zero logico
e di uno o due bit di stop, codificati con
l’uno logico (queste codifiche sono
quelle della UART, alle quali
corrisponderanno le codifiche RS232
successivamente spiegate). È possibile
anche aggiungere un bit di controllo di
parità, raramente utilizzato. Tipicamente
la lunghezza del dato trasmesso è di un
byte, ma può essere anche nove bit, al
massimo 10 bit.
I livelli elettrici della comunicazione
sono i seguenti:
¾ lo zero logico viene codificato con una tensione che va da 3 a 15 V rispetto
massa
¾ l’uno logico viene codificato con una tensione che va da -3 a -15 V rispetto
massa.
Dall’immagine si può notare il segnale uscente da una periferica UART alimentata a
5V, e la codifica eseguita da un transceiver da ±12V. Si può notare il bit di start, il
dato “j”, composto da 8 bit ed un bit di stop. Questo tipo di comunicazione sta
cadendo in disuso nei calcolatori a causa della ridotta velocità (nel progetto 57600
baud/s) ma rimane molto usato nei sistemi embedded.
GFSK
La Gaussian Frequency Shift Keying è una modulazione digitale su portante
analogica (sinusoidale). Nella GFSK ai bit informativi vengono attribuiti delle
variazioni della frequenza della portante, e non come nella FSK dove ai singoli bit
vengono attribuiti due livelli di frequenze. Nella GFSK per esempio, la presenza di
un 1 logico, incrementa di un certo Δf la frequenza della portante, mentre con uno 0
logico la decrementa di una certa quantità. L’utilizzo della GFSK consente di avere
una banda ridotta rispetto la FSK.
DSSS
La Direct Sequence Spread Sprectrum è una tecnica di spreading, cioè il
procedimento con cui lo spettro di un segnale che contiene informazione viene
espanso all’interno di una banda molto più grande di quella del segnale informativo.
37 Questa espansione viene eseguita moltiplicando un segnale digitale, lo PseudoNoise
Code, che nel modulo CYWM6935 è composto da 8 byte, per un segnale di
spreading opportuno. Espandendo il segnale su una manda maggiore, fa si che che la
potenza di tale segnale viene distribuita su tutta la banda. In questo modo la potenza
per unità di banda diventa molto piccola, simile a quella del rumore. In ricezione per
riottenere il segnale informativo è necessario moltiplicare il segnale ricevuto per lo
stesso PN Code. L’utilizzo dell’espansione di spettro consente di trattare tutti i
segnali trasmessi sulle stesse frequenze come rumore bianco e di avere una
consistente protezione dalle interferenze. L’utilizzo di un PN code per generare e
ricavare segnali informativi, consente di condividere le stesse frequenze con più
apparati, per esempio nel progetto, avendo a disposizione di un PN Code di 8 byte,
teoricamente potrebbero trasmettere contemporaneamente nello stesso canale radio
°
2 °
2
18446744073709551616 trasmettitori. In
quanto 8 byte danno 2 combinazioni possibili. È intuitivo quindi che, avere a
disposizione 80 canali radio e un PN Code da 8 byte, consente la trasmissione ad un
numero esorbitante di apparati. È questa versatilità che consente ai moduli radio
l’applicazione ai più ambiziosi dispositivi.
12.Bibliografia
Software utilizzati:
•
•
•
•
CadSoft Eagle 4.13
OrCAD 10.5
ZDSII Z8Encore! 4.11.0
Hyper Terminal Private Edition
Libri utilizzati:
• Telecomunicazioni B di Onelio Bertazioli, Zanichelli
• L’Elettronica Applicazioni di E. Ambrosini e I. Perlasca, Tramontana
Siti web utilizzati:
• Wikipedia
38 Un saaluto a tutto l’I.T.I.S.
Francesco Renzini
39 
Scarica

Sensore di temperatura wireless per PC