+ All Categories
Home > Documents > Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà...

Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà...

Date post: 08-Oct-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
168
Università degli Studi del Sannio in Benevento Facoltà d’Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Microcontrollori in Rete per la Domotica Relatore: Candidato: Ch.mo Prof. Francesco VASCA Domenico DELLA RATTA Matr. 195/528 Correlatore:
Transcript
Page 1: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Università degli Studi del Sannio in Benevento

Facoltà d’Ingegneria

Corso di Laurea in Ingegneria Informatica

Tesi di Laurea

Microcontrollori in Rete per la Domotica

Relatore: Candidato:

Ch.mo Prof. Francesco VASCA Domenico DELLA RATTAMatr. 195/528

Correlatore:

Prof. Giovanni Fiengo

ANNO ACCADEMICO 2001 - 2002

Page 2: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Ringraziamenti.

La presente Tesi mi ha impegnato per circa quattro mesi per cui sono diverse le persone a cui mi sento di porgere dei ringraziamenti.

Primo tra tutti desidero ringraziare il Prof. Francesco Vasca per avermi dato l’opportunità di impegnarmi in questo lavoro di Tesi e soprattutto per il contributo professionale ed umano che mi ha fornito durante tutti questi mesi.

Porgo un ringraziamento particolare all’Ing. Giovanni Fiengo per la sua disponibilità ed impegno nel seguirmi durante il mio lavoro ed all’Ing. Vito Blasi il cui sostegno professionale ed umano mi è stato di fondamentale importanza sin dall’inizio. Inoltre ringrazio tutti coloro con i quali ho condiviso questi mesi di lavoro nel laboratorio di automatica (L.A.U.S.) e con cui ho condiviso idee e consigli.

Dedico la presente Tesi ai miei genitori per il sostegno che mi hanno offerto durante tutta la mia carriera universitaria.

Page 3: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Indice

Introduzione.................................................................................................................................................5

1. Microcontrollori.................................................................................................................................7

Introduzione.........................................................................................................................................71.1 Origini e caratteristiche.....................................................................................................71.2 Caratteristiche architetturali.........................................................................................11

1.3 Memorie negli MCU...........................................................................................................13

1.4 Alimentazione degli MCU................................................................................................15

1.5 I/O............................................................................................................................................17

1.6 Interrupt................................................................................................................................19

1.7 Watch Dog Timer...............................................................................................................20

1.8 Linguaggi di programmazione di un MCU................................................................20

1.9 Scelta dell’MCU...................................................................................................................22

2. Microcontrollori della Microchip®.................................................................................................26

Introduzione.......................................................................................................................................26

2.1 Famiglie di MCU..................................................................................................................27

2.2 PIC16F876............................................................................................................................30

2.3 Sviluppo del software.......................................................................................................82

3. Progetto di Rete per la Domotica....................................................................................................86

Introduzione.......................................................................................................................................86

3.1 Progetto di un sistema per la Domotica...................................................................87

3.2 Introduzione alla Domotica............................................................................................90

3.3 Introduzione alle Reti per Domotica...........................................................................93

3.4 Progetto HomeNet...........................................................................................................112

Appendice – Codice Assembly del nodo.................................................................................................131

A.1 Introduzione............................................................................................................................131

A.2 Lettura DIP Switch.................................................................................................................131

A.3 Conversione A/D.....................................................................................................................133

Conclusione..............................................................................................................................................136

Bibliografia................................................................................................................................................138

Page 4: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

4

Page 5: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Introduzione

Scopo della presente Tesi è mostrare come sia possibile

realizzare una Rete di controllo per la Domotica1 utilizzando dei

microcontrollori (MCU, MicroController Unit) per l’implementazione dei

nodi periferici sotto la supervisione di una centralina.

Per portare a termine un progetto che ha scopo prototipale ma

che ha presupposti per divenire un prodotto in seguito, occorre

eseguire tutta una serie di studi, che vanno da un lato ad

approfondire le conoscenze dei dispositivi elettronici che verranno

utilizzati, gli MCU, nonché delle nozioni dei protocolli di rete per

l’interconnessione degli stessi e dall’altro a ricercare quelle che sono

le richieste odierne in materia di Domotica della maggior parte delle

utenze.

Quindi nella prima parte si descriveranno le caratteristiche basi

degli MCU in generale, nel secondo capitolo le caratteristiche di un

MCU in particolare, il PIC16F876 della Microchip® che è quello che si

utilizzerà per il progetto, infine nel terzo capitolo si parlerà delle varie

fasi che si sono seguite per il progetto della rete per la Domotica,

sottolineando gli aspetti relativi all’organizzazione architetturale del

1 Domotica è un neologismo derivato dal francese domotique, a sua volta contrazione della parola latina domus e di  informatique, quindi automazione domestica.

Page 6: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

INTRODUZIONE

sistema, sia a livello hardware che software, senza tralasciare i

particolari relativi al protocollo utilizzato. In Appendice verranno

descritte alcune porzioni di software implementato.

6

Page 7: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Capitolo

11. Microcontrollori.

Introduzione.

Nel presente capitolo si descrivono le maggiori caratteristiche degli MCU in generale motivando alla fine la scelta di utilizzare come microcontrollori del sistema di controllo per la Domotica i PICmicro™ della Microchip® sulla base di grafici di prestazioni dei dispositivi analizzati in diverse casistiche.

1.1 Origini e caratteristiche.

Un MCU è un dispositivo elettronico che opportunamente

programmato è in grado di svolgere diverse funzioni in modo

autonomo. Essenzialmente gestisce delle linee di input e di output in

Page 8: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

relazione al programma in esso implementato. Al loro interno trova

spazio un vero e proprio microprocessore completo di CPU, RAM,

Timer e numerose linee di ingresso/uscita.

A differenza dei microprocessori più evoluti, negli MCU il

programma è contenuto all'interno in un'apposita area di memoria

(non volatile) e viene eseguito ciclicamente; anche la RAM per i dati

volatili è all'interno dello stesso dispositivo ed alcuni dispongono di

aree dati non volatili e riscrivibili (EEPROM). Lo stadio di IN/OUT è già

implementato all'interno ed alcuni dispongono già di interfacce per

segnali analogici, per comparatori o per comunicazioni seriali.

In effetti ciò che distingue un MCU da un microprocessore è che

questo per poter funzionare ha bisogno di componenti aggiuntivi,

come memorie o componenti per la ricezione e spedizione di dati,

mentre quello è progettato per contenere tutto in uno e quindi non

necessita di alcun componente aggiuntivo.

Gli MCU sono usati soprattutto laddove la potenza di calcolo non

è di fondamentale importanza: controllori embedded2 e MCU sono

usati spesso in robotica dove la potenza e la complessità del calcolo

sono distribuite tra i singoli task utilizzando un gran numero di MCU

con piccola potenza di calcolo. Inoltre la possibilità di comunicazione

2 Sono i “fratelli maggiori” dei microcontrollori. Sono lo sviluppo di una versione più potente di microprocessori (Motorola 68EC300, Intel 386 EX, e l’IBM PowerPC 403GB). I controllori “Embedded” fanno riferimento alla stessa filosofia d’integrazione, specializzazione e riduzione dei costi di progetto e di distribuzione dei microcontrollori. Si differenziano principalmente per non essere proprio dei dispositivi “ALL IN ONE CHIP”, in quanto possono richiedere delle componenti esterne (soprattutto RAM) [1].

8

Page 9: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

tra ogni singolo controllore ed un controllore di maggiore potenza

(computer o mainframe) rende possibile l’elaborazione delle

informazioni prodotte da ogni singolo MCU.

Le applicazioni degli MCU sono molteplici, sono usati con successo in applicazioni di monitoring e data recording, dove le caratteristiche vincenti sono il basso consumo (in idle state) e l’auto-riattivazione mediante interrupt, facilmente programmabili. Grosso impiego trovano anche in Domotica, in cui si crea in genere una rete di microcontrollori a formare un sistema centralizzato o decentralizzato per il controllo dell’ intero “Domus”. Esempio tipico è il controllo di temperatura: se d’estate la temperatura si alza sopra certi limiti il sistema attua l’accensione dell’impianto di condizionamento d’aria fino a quando la stessa non scende sotto la soglia che l’utente ha prefissato.

Gli MCU hanno origine dalla filosofia nata con i primi PLC: integrazione del core di un processore in un ambiente differente rispetto alla macchina general-purpose, per la risoluzione di problemi specialistici (prevalentemente in logica booleana). Molti MCU hanno origine dalle prime versioni di microprocessori come lo Zilog Z80, l’Intel 8088 e il Motorola 6809. Man mano che il processo di miniaturizzazione è avanzato, tutti i componenti necessari per un controllore sono stati inseriti in un unico chip e così è nato il microcontrollore.

La tecnologia costruttiva più diffusa è la CMOS che richiede basse potenze permettendo l’alimentazione con batterie. I chip CMOS sono quasi statici, permettendo il rallentamento della frequenza di

9

Page 10: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

clock (o lo stop) fino a mettere l’MCU in sleep mode3 ed hanno un’alta immunità al rumore elettro-magnetico (fluttuazione dell’alimentazione e picchi di corrente). Un’altra tecnologia costruttiva è il PMP (Post

Metal Programming), il procedimento d’implementazione ad alta energia che permette la programmazione della ROM dopo la metallizzazione finale, inducendo una riduzione dei tempi di produzione di un prototipo con ROM da 8-6 settimane a 2 settimane.

Spesso definito soluzione in un unico chip, l’MCU è costituito in genere dai seguenti componenti:

Microprocessore a 4, 8, 16, 24 o 32 bit. Memoria RAM di dimensioni ridotte, usata solo per la

memorizzazione delle variabili intermedie e delle variabili di ingresso e di uscita.

Memoria EPROM per la memorizzazione del programma che il controllore deve eseguire.

Dispositivi di I/O per la lettura e la generazione di segnali particolari, verso i quali il controllore è prodotto già specializzato.

Memoria aggiuntiva, di tipo EEPROM, che permette all’MCU di memorizzare variabili in modo non volatile, così da preservarle anche in caso di mancanza di alimentazione.

Contatori di tempo, o timers. Moduli controllori di interrupt. Altri moduli aggiuntivi, quali convertitori Analogici/Digitali,

convertitori Digitali/Analogici, moduli per le comunicazioni

3 Modalità di funzionamento a basso consumo, in cui solo una parte della circuiteria dell’MCU è attiva, ossia quella adibita a captare il verificarsi di eventuali interrupt che riporterebbero il dispositivo in stato di funzionamento normale (risveglio o wake-up) [1].

10

Page 11: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

seriali su Bus, e così via.

Poiché includono caratteristiche specifiche di un unico task quale il controllo, gli MCU sono in genere relativamente economici, anche perché essendo componenti integrati in un unico chip, il costo di progetto è ridotto così come il numero dei suoi componenti interni.

1.2 Caratteristiche architetturali.

Le architetture tipiche di un MCU sono mostrate in figura 1-1: Harvard:

Bus separato per i dati e le istruzioni. Memoria programma separata da quella dati.

Von Neumann:

Bus singolo condiviso per i dati e per le istruzioni. Memoria comune per i dati e le istruzioni.

11

VON NEUMANN

CPU

MemoriaDati e

Programma

8 bit

CPU

12/14/16 bit

8 bit

Memoria Program

maMemoria

DatiHARVARD

Page 12: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

Figura 1-1: Architetture di tipo Harvard e von Neumann

Nell’architettura di von Neumann per ogni istruzione c’è la necessità di prelevare prima l’istruzione e quindi i dati, ossia avere due accessi in memoria: ciò può rallentare non poco il dispositivo. Questo limite è superato con un’architettura di tipo Harvard, in cui le due operazioni possono essere parallelizzate in modo da aumentarne le prestazioni.

Altra importante caratteristica degli MCU è la distinzione tra architettura di tipo CISC e di tipo RISC4:

CISC (Complex Instruction Set Computer, anni ’70): col progredire della tecnologia si pensò di ridurre il gap semantico tra linguaggio ad alto livello e linguaggio macchina, per cui si ebbero ISA5 sempre più complesse così come processori sempre più complessi, in cui la presenza di meccanismi usati solo di rado impediva di ottimizzare l’esecuzione delle istruzioni usate più di frequente [2].

RISC (anni ’80): quando ci si rese conto che ISA semplici rendono possibile l’implementazione di processori molto veloci (ad esempio mediante pipelining) e che la tecnologia dei compilatori ottimizzanti, facilitata anch’essa dalla semplicità del linguaggio macchina,

4 Il concetto di RISC (Reduced Instruction Set Computer) fu sviluppato da John Cocke dell’IBM Research nel 1974. Le sue argomentazioni erano basate sul fatto che un computer usa solo il 20% del proprio set di istruzioni per il 90% del programma. Un processore, quindi, dovrebbe essere dotato di poche istruzioni che richiedono un minore numero di transistor. Il termine RISC fu coniato in seguito da David Patterson, docente alla University of California in Berkeley.5 Instruction Set Architecture, (lett. Architettura dell’ Insieme di Istruzioni) è l’acronimo per livello del linguaggio macchina, ossia l’insieme delle istruzioni in linguaggio macchina di un processore.

12

Page 13: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

completa l’opera, fu allora che si ritornò alla semplicità iniziale [2].

La tendenza dell’industria dei processori è ormai quella di adoperare un’architettura di tipo RISC, specie nell’industria dei microcontrollori, indotta dalle caratteristiche tipiche, quali semplicità di progetto, chip di dimensioni più ridotte, ridotto numero di pin e non ultimo ridotto consumo di potenza. La semplicità complessiva porta anche a poter strutturare l’architettura secondo il modello Harvard, quindi ad una organizzazione dell’MCU in pipeline con conseguente aumento delle prestazioni. Caratteristica ulteriore è il set di istruzioni ridotto e ortogonale, sebbene manchi di istruzioni particolari a scopi specifici, il che si traduce a volte nel dover utilizzare diverse istruzioni al posto di un’unica eventuale istruzione più complessa.In sostanza i vantaggi di un’architettura sono gli svantaggi dell’altra e viceversa.

1.3 Memorie negli MCU.

Diversi sono i tipi di memorie di cui un MCU è fornito:

FLASH: tipo di memoria non volatile. Come la EEPROM, la memoria flash offre la programmazione in-circuit usando un solo transistor per cella raggiungendo alte densità di integrazione equivalenti alla densità di una DRAM se non addirittura superiori, poiché non ha bisogno di capacità aggiuntive nella cella. Tuttavia la Flash permette meno

13

Page 14: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

cicli di lettura e scrittura rispetto alla EEPROM ed ha in genere prestazioni simili: per questo motivo tali memorie vengono utilizzate in genere per contenere il codice del programma dell’MCU che in genere non subisce molte letture e scritture.

EEPROM (Electrically Erasable Programmable Read Only Memory): tipo di memoria non volatile, di cui gli MCU in genere non ne hanno una grossa quantità; infatti è meno integrabile della flash, ma viene usata per memorizzare in modo non volatile delle variabili, per cui in genere supporta più di cicli di lettura e scrittura rispetto alla stessa, anche se comunque il numero totale è limitato per cui è consigliabile valutare l’ordine di grandezza del numero dei cicli di lettura e scrittura a cui sarà sottoposta nel tempo, anche se le odierne tecnologie ce ne assicurano decine di migliaia.

RAM (Random Access Memory ) statica: tra i maggiori vantaggi nell’uso di memoria RAM di tipo statico è che si tratta di memorie molto più veloci di tutti gli altri tipi, tanto da essere preferite soprattutto laddove ci sia la necessità di manipolare una grossa quantità di dati ed avere grosse performance, nonché un numero elevato di scritture e letture; in effetti le RAM statiche non hanno alcun limite sul numero totale di letture e scritture. La limitazione è che sono poco integrabili per cui occupano molto spazio.

Caratteristica importante è la possibilità di programmare e riprogrammare l’MCU sul posto senza la necessità di rimuoverlo dal sistema che controlla. Si pensi in quanti casi ciò sia di fondamentale

14

Page 15: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

importanza: gli MCU di una centralina di un autovettura che controllano l’emissione degli scarichi devono essere riprogrammati per fissare dei bugs o perché sono cambiate delle norme legislative, per cui i vecchi settaggi devono essere modificati. In questo caso basta collegare opportunamente il programmatore alla centralina e riprogrammarla per avere gli MCU funzionanti con i nuovi programmi aggiornati, senza la necessità di rimuoverli singolarmente, programmarli e rimontarli di nuovo.

Infine alcune case costruttrici offrono dei dispositivi del tipo OTP (One Time Programmable), ossia dispositivi con una memoria programma di tipo PROM (Programmable Read Only Memory) che è programmabile una sola volta, con il rischio di rendere inutilizzabile un dispositivo qualora si scoprano dei bugs nel codice per cui deve essere modificato.

1.4 Alimentazione degli MCU.

Dato che il settore dell’Automotive (controllo automatico sulle autovetture) è stato il braccio portante per lo sviluppo degli MCU, nel qual caso è semplice ottenere un’alimentazione di 5 Volt per gli MCU, la maggior parte di essi inizialmente hanno solo supportato modalità di funzionamento a tale tensione; tuttavia man mano che l’uso degli MCU è divenuto più radicato ed in campi d’applicazione più ampi, le richieste per un’alimentazione più bassa sono divenute più insistenti anche perché è il mercato stesso che sta andando sempre più verso

15

Page 16: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

una cultura della miniaturizzazione e del portatile ormai in ogni settore.

La tendenza recente è quella di avere dispositivi alimentati da una tensione minore, il che vuol dire soprattutto avere dei dispositivi di dimensioni ridotte ma anche con minor consumo di potenza, quindi maggior facilità nell’alimentarli con batterie.

Le ragioni sono di tipo elettronico e riguardano i transistor6:

La quantità di potenza dissipata dai transistor è direttamente proporzionale alle loro dimensioni.

Il ritardo di propagazione è direttamente proporzionale alle loro dimensioni.

Il costo è direttamente proporzionale al quadrato delle loro dimensioni.

Quindi avendo dei transistor a dimensioni ridotte si guadagna in termini di potenza dissipata, velocità e costo; di qui le ricerche delle grosse case costruttrici di componenti elettronici volte a miniaturizzare i componenti stessi.

Gli MCU possono essere programmati per funzionare in modalità particolari a bassi consumi di potenza:

Modalità Idle (detta anche sleep-mode): tutte le attività sono ferme, eccetto la circuiteria che riguarda l’oscillatore, il watchdog ed il timer Idle. Il consumo in questa modalità è circa il 30% di quello in modalità normale di funzionamento. Ad intervalli regolari il timer Idle genera il risveglio dell’MCU (wake-up) per testare che

6 Paul K. Johnson, Hewlett-Packard Company.

16

Page 17: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

non ci siano problemi, quindi ritorna in Idle. In seguito ad interrupt o reset il dispositivo può risvegliarsi per operare in modalità normale ed eseguire delle operazioni, dopodiché ritornare di nuovo in Idle. Caso tipico in cui è utile questa modalità di funzionamento è il data logging, ove ad intervalli regolari l’MCU si sveglia per memorizzare dei dati, quindi ritorna in stato di basso consumo.

Modalità Halt: tutta la circuiteria è inattiva, timer compresi, ed il consumo è ridotto al minimo. Soltanto un interrupt o un reset possono risvegliare l’MCU.

E’ importante notare che in entrambi i casi sia il contenuto della RAM che lo stato delle uscite resta invariato, per cui in sostanza il dispositivo non cambia il proprio stato interno globale.

1.5 I/O.

Un MCU viene progettato per poter essere impiegato in più campi possibili; di qui la necessità di equipaggiarli con diversi tipi di dispositivi di I/O. Eccone un elenco con relative descrizioni:

UART (Universal Asynchronous Receiver Transmitter) è un adattatore di porte seriali per trasmissioni seriali asincrone7.

USART (Universal Synchronous/Asynchronous Receiver Transmitter) è un adattatore di porte seriali per

7 Una trasmissione asincrona richiede bit di start e di stop per ogni pacchetto inviato, cosa che non è richiesto per quella sincrona: quest’ultima inoltre può operare in genere a velocità superiori.

17

Page 18: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

trasmissioni seriali sincrone ed asincrone selezionabili via software caratterizzate da una velocità superiore rispetto alla UART.

SPI (Serial Peripheral Interface) è una porta seriale sincrona introdotta da Motorola.

SCI (Serial Communications Interface) è una sorta di UART più avanzata.

I2C bus (Inter-Integrated Circuit bus, introdotto da Philips) è una semplice interfaccia seriale a 2 fili sviluppata per applicazioni ad 8 bit e largamente usata per interfacciare dispositivi esterni agli MCU.

CAN (Controller Area Network) è un protocollo di comunicazione seriale sviluppato dalla Bosch e dalla Intel e nato per interconnettere i vari dispositivi nelle autovetture.

PWM (Pulse Width Modulator) è un generatore di impulsi a frequenza costante con duty-cycle8 variabile che spesso viene utilizzato come convertitore digitale/analogico.

Pulse Accumulator è un registro particolare che si incrementa all’occorrenza di ogni impulso in ingresso.

Input Capture è un misuratore di frequenze esterne, o di intervalli di tempo, ottenuti copiando il valore di un timer interno autonomo in un registro ogni volta che occorre un evento esterno.

Linee di ingressi analogici elaborate da opportuni moduli convertitori A/D che hanno caratteristiche diversi nei vari MCU, distinguendosi soprattutto per l’accuratezza della conversione, ossia per il massimo errore di quantizzazione possibile, che è diretta conseguenza del numero di bit usati nella rappresentazione della conversione eseguita.

8 È in percentuale il rapporto tra il tempo in cui in segnale è alto ed il periodo del segnale stesso che è costante nel tempo.

18

Page 19: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

1.6 Interrupt.

L'interrupt è una particolare caratteristica del microcontrollore (e dei microprocessori in generale) che consente di intercettare un evento, di interrompere momentaneamente il programma in corso, eseguire una porzione di programma specializzata per la gestione dell'evento verificatosi e riprendere l'esecuzione del programma principale.

E' evidente quanto sia più efficiente gestire un evento con un interrupt, anziché controllare ciclicamente il verificarsi dell'evento con il programma principale. Gran parte degli aspetti legati alla gestione dell'interrupt sono inoltre trattati direttamente dallo hardware interno dell’MCU, per questo il tempo di risposta all'evento è in pratica immediato.

La maggior parte degli MCU ha almeno un interrupt esterno e le modalità di gestione degli stessi variano nei vari dispositivi: in quelli più semplici si preferisce disabilitare gli interrupt mentre il dispositivo è nella fase di gestione dell’ultimo verificatosi; altri invece supportano un sistema ad interrupt vettorizzato, in cui è possibile che mentre il dispositivo sta gestendo un’ interrupt e se ne verifica un altro a priorità maggiore, quello in corso viene sospeso per servire l’ultimo accorso, e così via: per tali dispositivi quindi sorge il problema di assegnare delle priorità ai vari interrupt che il sistema gestisce.

19

Page 20: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

1.7 Watch Dog Timer.

Il Watch Dog Timer (lett. Temporizzatore Cane da Guardia), è un oscillatore interno all’MCU, ma completamente indipendente dal resto della circuiteria, il cui scopo è quello di rilevare eventuali blocchi della CPU e azzerare l’MCU per riprendere la normale esecuzione del programma, evitando che lo stesso resti permanentemente in stato di stallo. In sostanza se il WDT termina il proprio ciclo di conteggio senza che sia stato resettato da un’apposita istruzione di clear inserita nel programma, allora vuol dire che l’MCU non funziona come previsto, ossia si è bloccato, per cui è necessario resettarlo. E’ compito del programmatore quindi inserire un’istruzione particolare nel corpo del programma che vada ad azzerare il WDT prima che lo stesso termini il proprio ciclo di conteggio e segnali malfunzionamenti con relativo reset dell’MCU.

1.8 Linguaggi di programmazione di un MCU.

Un programma è costituito da una sequenza di istruzioni, ognuna delle quali identifica univocamente una funzione che l’MCU deve svolgere. Ogni istruzione è rappresentata da un codice operativo (in inglese operation code o più brevemente opcode) composto di un

20

Page 21: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

certo numero di bit, che varia in base allo specifico MCU, e memorizzata in una locazione di memoria dell'area programma. Questa, di tipo CMOS o Flash, ha un certo numero di locazioni, ognuna delle quali è capace di contenere una sola istruzione o al più una coppia istruzione/dato.

Tali codici operativi sono gli unici che l’MCU è in grado di interpretare, ma essendo privi di significato per l’essere umano si è associata una sigla mnemonica ad ogni istruzione in modo da ricordarne l’azione svolta. Non solo alle istruzioni, ma anche alla dichiarazione di variabili, costanti ed etichette (label) sono associate delle sigle mnemoniche. L’insieme di tali sigle nonché delle relative regole viene definito “Linguaggio Assemby” dell’MCU.

E’ possibile anche utilizzare linguaggi di programmazione di più alto livello, come il “C”, ma in questo caso ci sarà bisogno di un opportuno compilatore che dovrà tradurre il sorgente ad alto livello in Assembly.

Non essendo l’MCU capace di interpretare linguaggi simbolici come l’ Assembly, c’è bisogna che venga tradotto in linguaggio macchina; di questo se ne occupa l’Assemblatore: in sostanza questi è un compilatore che traduce ogni istruzione in Assembly nelle relative istruzioni in linguaggio macchina. Alla fine se il codice sarà privo di errori verrà generato un file che bisognerà caricare nella memoria dell’MCU con un opportuno programmatore, dopodiché il dispositivo è pronto ad eseguire il programma.

21

Page 22: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

1.9 Scelta dell’MCU.

Attualmente sono molti gli MCU che si possono trovare sul mercato, come diverse sono le proprietà di cui si caratterizzano. Dovendo progettare un sistema a microcontrollori, bisogna valutare varie cose per affrontare la scelta sul particolare tipo di MCU da utilizzare:

1. Le prestazioni dei vari MCU in quanto a velocità di esecuzione delle istruzioni, ad esempio ricercando delle tabelle comparative di prestazione.

2. Le caratteristiche di cui abbiamo bisogno, legate ai vari task a cui gli MCU dovranno essere adibiti, ad esempio disponibilità o meno di moduli A/D.

3. I vari tools che la casa costruttrice mette a disposizione per il progettista, sia software, come compilatori, debugger, simulatori, che hardware, come schede che permettono di simulare e “debuggare” il comportamento dell’MCU facendo avanzare il programma per singoli passi.

Relativamente al primo punto, sono mostrate in seguito dei grafici che sono significativi circa le prestazioni di alcuni degli MCU a 8 bit in commercio tra i più diffusi ottenuti facendo eseguire gli stessi programmi ai diversi MCU [3]: i seguenti non sono interamente scientifici ma vengono frequentemente usati nelle applicazioni di microcontrollori.

In figura 1-2 viene mostrato il tempo impiegato, in

22

Page 23: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

microsecondi, per un’operazione di bit test e di salto condizionato: l’MCU della Microchip® offre prestazioni migliori in assoluto con un tempo di 0.6 μsec.

Figura 1-2: Bit test e salto condizionato.

In figura 1-3 viene mostrato il tempo impiegato per un’istruzione detta di Loop Control: un ciclo di loop in cui un registro contenente un contatore viene decrementato, testato e se diverso da zero viene ripetuto il ciclo.

Figura 1-3: Loop Control.

23

Page 24: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

Infine in figura 1-4 viene mostrato il tempo impiegato in un’operazione di shift seriale, in cui una word ad 8 bit viene serializzata in uscita ad ogni fronte di salita del clock generato dall’MCU stesso.

Figura 1-4: Trasmissione sincrona di 8 bit.

Anche negli ultimi due casi l’MCU della Microchip® offre prestazioni migliori rispetto a tutta la concorrenza, per cui il primo punto è a netto favore degli MCU della suddetta casa costruttrice.

Per quanto concerne la disponibilità di componenti di cui gli MCU devono disporre, è d’uopo far notare come la Microchip® metta a disposizione una vastissima gamma di dispositivi con soluzioni per ogni evenienza.

In ultimo la stessa casa mette a disposizione del software base completamente gratuito scaricabile dal sito Internet (www.microchip.com) che comprende assemblatore, simulatore e debugger che sono del tutto sufficienti per chi sappia programmare in

24

Page 25: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI

assembly, mentre per chi cerca tools di più alto livello, quali il compilatore “C”, allora bisogna acquistarlo. Non mancano a pagamento schede hardware di simulazione e debugging on-circuit, che sono molto utili qualora si voglia testare il comportamento dell’MCU eseguendo il programma per passi successivi.

In conclusione si può affermare che la Microchip® offre una vasta gamma di MCU assicurando una grande performance ed una buona flessibilità, nel senso che è difficile trovare applicazioni in cui non siano utilizzabili. Inoltre cerca anche di supportare i suoi consumatori in modo tale da rendere quanto più economici i loro progetti con prodotti base di sviluppo gratuiti.

25

Page 26: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Capitolo

22. Microcontrollori della Microchip®

Introduzione.

Nel presente capitolo si introdurranno le varie famiglie di MCU della Microchip® del tipo PICmicro™9 descrivendone le maggiori caratteristiche, quindi verrà descritto in maggior dettaglio uno in particolare, il PIC16F876, che è quello che verrà utilizzato nella rete per Domotica; infine si descriveranno i vari passi da seguire in generale per lo sviluppo del software di controllo dell’MCU.

9 Il microcontrollore PIC nacque nel 1989 come Peripheral Interface Controller (e diventato poi comunemente PIC) ad opera della General Instruments. L’architettura del microcontrollore PIC offriva molti vantaggi rispetto al 6805 Motorola e 8051 Intel, unici microcontrollori disponibili all’epoca.

Page 27: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

2.1 Famiglie di MCU.

La Microchip® mette a disposizione diverse famiglie di MCU del tipo PICmicro™ (PIC) in modo tale da fornire soluzioni per ogni evenienza. Sono raggruppate in base alle dimensioni della “Word Istruzione” e del “Set Istruzione”, come mostrato in seguito:

8 pin, PIC12CXXX/PIC12FXXX10, istruzione a 12/14 bit. Base-Line, PIC16C5X, istruzione a 12 bit. Mid-Range, PIC16CXXX/ PIC16FXXX, istruzione a 14 bit. High-Performance, PIC17CXXX, istruzione a 16 bit. Enhanced, PIC18CXXX / PIC18FXXX, istruzione a 16 bit.

Senza entrare nei dettagli di ogni famiglia, in seguito ci si limiterà a descrivere le maggiori caratteristiche tipiche di ognuna.

2.1.1 Famiglia PIC12CXXX/PIC12FXXX.

Dispositivi a soli 8 pin che rappresentano un’ottima soluzione laddove le prestazioni richieste non sono troppo elevate mentre invece lo spazio occupato in termini di layout è fondamentale. Sono 10 “C” sta per tecnologia “CMOS” mentre “F” sta per “Flash”, inoltre “X” indica qualsiasi sigla.

27

Page 28: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

caratterizzati da istruzioni a 12 o 14 bit a da una tensione di alimentazione di soli 2.5 Volt, per cui rappresentano un’ottima soluzione qualora si abbia un’alimentazione a batteria. Tra le altre caratteristiche si ha la gestione degli interrupt, stack a più livelli di profondità, multipli canali per il convertitore A/D, memoria programma di tipo Flash, ROM od OTP e memoria dati di tipo EEPROM.

2.1.2 Famiglia Base-Line.

Dispositivi con istruzioni a 12 bit caratterizzati dalla possibilità di operare a basse tensioni, che arriva a 2.0 Volt per i dispositivi OTP, che sono quindi ideali per applicazioni in cui si abbia un’alimentazione a batteria. In aggiunta la famiglia 16HV5XX può operare fino a 15 Volt in modo che tali dispositivi possono essere usati direttamente con le batterie. Sono presenti in vari formati, dai più semplici a soli 14 pin a quelli più completi a 28.

2.1.3 Famiglia Mid-Range.

Con questa famiglia la Microchip® introduce un modulo convertitore A/D molto performante con quantizzazione fino a 12 bit in alcuni dispositivi, caratterizzati da istruzioni a 14 bit, gestione di interrupt e stack fino ad 8 livelli di profondità con una grande varietà

28

Page 29: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

di dispositivi, che vanno dai più semplici a 18 pin fino ai più completi a 68.

2.1.4 Famiglia High-Performance.

Con questa famiglia viene estesa l’architettura RISC molto performante ad istruzioni a 16 bit, fornendo un set di istruzioni più avanzato, e capacità di gestione di interrupt multipli che diviene quindi vettorizzato.

2.1.5 Famiglia Enhanced.

E’ la famiglia di MCU più performanti della Microchip®, con caratteristiche del core più avanzate, uno stack con 32 livelli di profondità e sorgenti di interrupt multiple sia interne che esterne. I bus separati per le istruzioni e per i dati, tipici dell’architettura di tipo Harvard, permettono la convivenza di istruzioni a 16 bit e dati ad 8; inoltre la struttura pipelined a due livelli permette di eseguire ogni istruzione in un solo ciclo di clock, ad eccezione dei branches che ne richiedono due. L’ISA è composto di 77 istruzioni, ma in aggiunta alcune istruzioni particolari garantiscono prestazioni ancora più elevate, fino a raggiungere i 10 MIPS (Mega Instructions Per Second).

29

Page 30: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

2.2 PIC16F876.

E’ un MCU appartenente alla famiglia Mid-Range le cui maggiori caratteristiche [4] sono le seguenti:

Architettura RISC ad alte prestazioni con un ISA di sole 35 istruzioni.

Le istruzioni sono eseguite in due colpi di clock, eccetto le istruzioni di salto per le quali occorrono quattro colpi di clock.

8k ( ) words per la memoria programma di tipo Flash, con word a 14 bit.

368 byte di memoria dati (locazioni da 8 bit) di tipo RAM. 256 byte EEPROM (memoria permanente con possibilità di

lettura e scrittura durante l’esecuzione del programma). Stack a 8 livelli di profondità. Max frequenza di clock esterna DC a 20 Mhz. Modi di indirizzamento diretto, indiretto e relativo. Gestione degli interrupt con fino a 14 sorgenti (non

vettorizzato).

Caratteristica su periferici:o Timer0: timer/contatore a 8 bit con prescaler ad 8 bit.o Timer1: timer/contatore a 16 bit con prescaler che

può essere incrementato durante lo SLEEP tramite il clock esterno.

o Timer2: timer/contatore con registro a periodo di 8 bit, prescaler e postscaler.

o 2 moduli Capture, Compare e PWM: Capture a 16 bit, max. risoluzione 12.5 μsec. Compare a 16 bit, max. risoluzione 200 μsec. PWM con max. risoluzione a 10 bit.

30

Page 31: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

o SSP (Synchronous Serial Port) con modalità Master (SPI) e Master/Slave (I2C).

o Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) con detenzione di indirizzo a 9 bit.

o Parallel Slave Port (PSP) a 8 bit con controllo esterno RD, WR and CS.

o Circuiteria per detenzione di Brown-Out per reset di Brown-Out (BOR).

Caratteristiche speciali:o 10.000 cicli di cancellazione-scrittura tipici della

memoria di programma Enhanced di tipo flash.o 10.000.000 cicli di cancellazione-scrittura della

memoria dati EEPROM.o Mantenimento del codice in assenza d’alimentazione

maggiore di 40 anni.o Power-on reset (POR).o Power-up timer (PWRT).o Watch-dog timer (WDT).o Modalità SLEEP a basso consumo.o Protezione del codice programmabile.o Programmazione In-Circuit seriale (ICSP) e In-Circuit

Debugging mediante 2 soli pin.o Possibilità di accesso in lettura e scrittura da parte del

processore alla memoria programma.o Operabilità in un ampio intervallo di tensione: 2.0 –

5.5 Volt.o Operabilità in un ampio intervallo di temperatura

anche del tipo industriale.o Basso assorbimento di potenza:

< 0.6 mA tipici a 3 Volt e 4 Mhz. 20 μA tipici a 3 Volt e 32 Khz. < 1 μA tipici in tensione di standby.

o Diverse opzioni selezionabili per il clock esterno.

Di qui in avanti si descrivono più in dettaglio le varie sezioni significative dell’MCU.

31

Page 32: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

2.2.1 Architettura.

In figura 2-1 è mostrato il diagramma a blocchi del PIC16F876: si

evince il livello di semplicità dell’architettura dell’MCU ma, in effetti,

proprio a questo è dovuta l’alta efficienza dei processori di tipo RISC.

Figura 2-1: Diagramma a blocchi dell’MCU.

32

Page 33: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

L’elemento nella parte centrale in alto dello schema, è la memoria ad accesso diretto File Registers. Nel File Registers sono implementati dei registri che controllano il funzionamento della CPU, ma anche dei registri di controllo I/O e registri RAM usati dall’utente per funzioni di memoria ed interfaccia variabili rispetto allo hardware periferico dell’MCU.

Direttamente connesso alla ALU c'è il registro W, Work Register, denominato anche accumulatore: di fatto è una semplice locazione di memoria in grado di contenere un solo valore a 8 bit. La differenza sostanziale tra il registro W e le altre locazioni di memoria consiste nel fatto che, per referenziare il registro W, l’ALU non deve fornire alcun indirizzo di memoria, ma può accedervi direttamente. Tutte le operazioni aritmetiche usano il registro W ed il risultato stesso può essere registrato sia in W sia nel registro sorgente dati. Ciò permette di eliminare in maniera efficace la necessità di istruzioni aggiuntive per memorizzare il risultato dell’operazione. Come è noto una tale architettura viene detta “Registro - Accumulatore”.

La memoria programma e la memoria dati possono essere accedute contemporaneamente nello stesso ciclo macchina data l’architettura di tipo Harvard del dispositivo.

Per l’interfacciamento con sensori ed attuatori, o più in generale con il mondo esterno, l’MCU è dotato di 3 port di I/O, ognuno dei quali con un certo numero di piedini (massimo 8) che possono essere configurati come ingressi o uscite digitali, ingressi analogici o per funzioni speciali. Più avanti si descriveranno in dettaglio le possibili configurazioni dei vari port.

33

Page 34: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP® 34

Page 35: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

2.2.2 Organizzazione della Memoria.

L’MCU dispone di tre tipi diversi di memorie, la memoria programma, di tipo flash, la memoria dati, di tipo RAM, e la memoria EEPROM.

Memoria Programma.

E’ utilizzata per man-tenere memorizzato il pro-gramma da eseguire anche se manca l’alimentazione. Ogni locazione è in grado di contenere un codice opera-tivo di 14 bit. Nel caso specifico del 16F876, il pro-gramma più complesso che si potrà realizzare non potrà essere più lungo di 8192 istruzioni, da 0000h fino a 1FFFh, essendo dotato di 8192 words.

35

Figura 2-2: Mappa della memoria programma

Page 36: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Tabella 2-1: Bit di selezione banchi

memoria dati

MICROCONTROLLORI DELLA MICROCHIP®

La prima locazione di memoria, all'indirizzo 0000h, deve contenere la prima istruzione che l’MCU dovrà eseguire all’atto del reset e per questa ragione è detta Reset Vector; all’indirizzo 0004h invece trova posto il vettore interruzioni (Interrupt Vector), che è l’istruzione che l’MCU eseguirà all’atto del verificarsi di un interrupt: in sostanza a tale locazione troverà posto un salto incondizionato verso la funzione di gestione degli interrupt (Interrupt Handler). In figura 2-2 è mostrata la mappa delle locazioni di memoria e lo stack.

Il program counter (PC) a 13 bit può indirizzare esattamente (8192) locazioni di memoria, e l’indirizzamento è ciclico, nel senso che ad esempio gli indirizzi 0020h e 201Fh (= 0020h + 2000h) puntano alla stessa locazione di memoria.

Memoria Dati.

E’ suddivisa in 4 banchi che contengono registri a scopo generale e per funzioni speciali implementati come RAM di tipo statico. La selezione dei banchi è effettuata mediante i bit RP1 e RP0 del registro STATUS come mostrato nella tabella a lato. Ogni banco contiene 128 bytes di dati, ossia 128 locazioni da 8 bit, ognuna delle quali in sostanza è un registro. La mappatura di tali registri è mostrata nella figura 2-3: negli indirizzi più bassi ci sono i registri per le funzioni speciali, in quelli più alti invece ci sono quelli a scopo generale.

RP1:RP

0

Banco

00 0

01 1

10 2

11 3

36

Page 37: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Figura 2-3: Mappa della memoria dati.

Registri Speciali.

37

Page 38: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

I registri speciali si dividono in 2 gruppi: quelli relativi alla CPU e quelli per i periferici. Di qui si descrivono i più importanti di essi, rimandando al DataSheet per una più esaustiva descrizione dei suoi tutti.

Registro di stato (STATUS).

Il registro di stato contiene lo stato delle operazioni logiche ed aritmetiche portate a termine dall’ALU, lo stato del reset e del bit di selezione banco. Può essere indirizzato in qualsiasi istruzione come un qualsiasi registro. I flag Z, C e DC sono protetti, se il registro di stato è la destinazione di una istruzione di scrittura. Invece sono protetti sempre in scrittura i flag TO e PD e per questa ragione l’operazione di scrittura di questo registro può dare risultati inattendibili. Solo le istruzioni BCF, BSF, SWAPF e MOVWF possono essere usate per alterare il registro di stato poiché non modificano lo stato del registro stesso.

Registro Opzioni (OPTION_REG).

L’Option Register è un registro a lettura/scrittura che contiene diversi bit di controllo: per configurare il prescaler di TMR0/WDT, l’interrupt del piedino INT e del weak-up di PORTB. L’Option Register risiede all’indirizzo 81h e 181h.

INTCON Register.

38

Page 39: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

E’ un registro a lettura/scrittura che contiene bit di abilitazione e di flag per il registro TMR0, il cambiamento di stato della porta RB e il pin esterno di interrupt RB0/INT.

I bit dei relativi flag di interruzione sono a 1 quando avviene l’interruzione relativa se anche il bit GIE di INTCON<7> è stato precedentemente attivato.

Altri registri importanti sono i seguenti: PIE1: contiene i bit di abilitazione degli interrupt

periferici. PIR1: contiene i bit di flag degli interrupt periferici. PIE2: contiene i bit di abilitazione degli interrupt periferici

di CCP2, degli interrupt di collisione su bus di SSP e dell’interrupt di fine scrittura dell’ EEPROM.

PIR2: contiene i bit di flag degli interrupt periferici di CCP2, degli interrupt di collisione su bus di SSP e dell’interrupt di fine scrittura dell’ EEPROM.

PCON: contiene bit di flag per permettere la differenziazione tra un Power-on Reset, un Brown-out Reset, un Watchdog Reset ed un reset esterno MCLR.

Registri Generali.

Sono registri usati per la memorizzazione delle variabili temporanee del programma e possono essere accessi sia direttamente che indirettamente mediante il registro speciale FSR (File Select Register). In figura 2-4 è mostrata la modalità di accesso indiretto: viene utilizzato il registro INDF e accedendo ad esso si accede alla locazione puntata dal registro FSR.

39

Page 40: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Facciamo un esempio: la locazione 0005h contiene 10h e la locazione 006h contiene 0Ah: se il valore contenuto in FSR è 05h una lettura del registro INDF restituisce il valore 10h. Incrementando di una unità FSR, una successiva lettura del registro INDF restituisce il valore 0Ah.

Figura 2-4: Indirizzamento diretto ed indiretto.

E’ da notare che nell’indirizzamento indiretto per la selezione del banco da accedere si utilizza il bit IRP del registro di stato.

Memoria EEPROM.

40

Page 41: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

La EEPROM dati è una particolare area di memoria che nel PIC16F876 ha una capacità di 256 byte e nella quale si possono scrivere dei valori numerici i quali non saranno persi in caso di mancanza di tensione di alimentazione. Questa funzionalità è necessaria quando l’MCU riceve la tensione di alimentazione solo durante il suo utilizzo. In questo caso la EEPROM dati integrata garantisce un ottimo livello di sicurezza nella conservazione dei dati, unito ad una relativa facilità d'uso.

La memoria EEPROM è scrivibile e leggibile in condizioni di normale alimentazione e senza dover ricorrere ad alcun programmatore esterno. I modi di accesso sono notevolmente diverse dalla memoria RAM del File Register e devono seguire una serie di procedure particolari atte ad evitare eventuali perdite di dati in condizioni di funzionamento anomale.

I registri speciali usati nell’accesso alla memoria EEPROM sono i seguenti:

EEADR: registro utilizzato per indirizzare una delle 256 locazioni di memoria EEPROM in cui si desidera fare una lettura o scrittura di un dato.

EEDATA: il registro usato per inviare un byte alla EEPROM in scrittura oppure per ricevere un byte dalla EEPROM in lettura.

EECON1 ed EECON2: registri di controllo utilizzati nelle operazioni di lettura e scrittura.

41

Page 42: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

2.2.3 ALU, Program Counter e Stack.

L’ALU (acronimo di Arithmetic and Logic Unit ovvero unità aritmetica e logica) è il componente più complesso del microcontrollore in quanto contiene tutta la circuiteria delegata a svolgere le funzioni di calcolo e manipolazione logica dei dati durante l'esecuzione di un programma. L’ALU è un componente presente in tutti i microprocessori e da essa dipende direttamente la potenza di calcolo dell’MCU stesso.L’ALU dei PIC è in grado di operare su valori ad 8 bit, ovvero valori numerici non più grandi di 255. I dati delle operazioni può riceverli come costanti (direttamente dall’istruzione), dai registri o dal registro accumulatore W, mentre il risultato può depositarlo nei registri (di banco e/o dello Special Function Register) o di nuovo nell’accumulatore. Ricordo infatti che il dispositivo ha un’architettura del tipo “Registro – Accumulatore” per cui non può eseguire operazioni logiche od aritmetiche tra operandi che si trovino entrambi nei registri, ma almeno uno di essi deve essere nell’accumulatore oppure deve essere una costante, nel qual caso viene prelevato direttamente dall’istruzione: se c’è bisogno di operare tra operandi entrambi nei registri allora c’è bisogno di due istruzioni, ove la prima consiste nel caricare l’accumulatore di uno dei due.

42

Figura 2-5 - Unità Aritmetica Logica.

W

ALU SFR

BANK3

BANK2

BANK1

BANK0

costante

Page 43: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Come abbiamo già visto nei punti precedenti, l’MCU inizia l'esecuzione del programma a partire dal vettore di reset (Reset Vector) ovvero dall'istruzione memorizzata nella prima locazione di memoria (indirizzo 000h). Dopo aver eseguito questa prima istruzione passa quindi all'istruzione successiva memorizzata nella locazione 001h e così via. Se non esistesse nessuna istruzione in grado di influenzare in qualche modo l'esecuzione del programma, l’MCU arriverebbe presto ad eseguire tutte le istruzioni presenti nella sua memoria fino all'ultima locazione disponibile. Sappiamo ovviamente che non è così e che qualsiasi microprocessore o linguaggio di programmazione ha istruzioni di salto, ovvero di istruzioni in grado di modificare il flusso di esecuzione del programma in base alle esigenze del programmatore. Una di queste istruzioni è il goto (dall'inglese “go to”, andare a) che permette di cambiare la sequenza di esecuzione e di "saltare" direttamente ad una qualsiasi istruzione, all'interno della memoria programma e di continuare quindi l'esecuzione a partire da quel punto.

L’MCU per determinare quale sarà l'istruzione successiva da eseguire, utilizza uno speciale registro denominato Program Counter

(dall'inglese contatore di programma) la cui funzione è proprio quella di mantenere traccia dell'indirizzo che contiene la prossima istruzione da eseguire. Questo registro è incrementato automaticamente ad ogni istruzione eseguita, per calcolare l’indirizzo dell'istruzione successiva. Al momento del reset dell’MCU, il Program Counter è azzerato fissando così l'inizio dell'esecuzione a partire dall'indirizzo 000h.

43

Page 44: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

L'istruzione Goto consente l'inserimento da programma di un nuovo valore nel Program Counter ed il conseguente salto ad una locazione qualsiasi dell'area programma dell’MCU.

Il PC è di 13 bit: la parte bassa del Program Counter è detta PCL ed è un registro leggibile/scrivibile; la parte alta è detta PCH ed è un registro formato da PC<12:8>; non è leggibile ma è indirettamente scrivibile attraverso il registro PCLATH. Se il Program Counter è modificato oppure una condizione di salto condizionato è vera, l’istruzione seguente richiederà un ciclo istruzione in più (il secondo ciclo è eseguito come un nop).

Un'altra istruzione che influenza il valore del Program Counter è la call (dall'inglese “to call“, chiamare) con la quale è possibile fare delle invocazioni a sottoprogrammi. Questa istruzione funziona in maniera molto simile al goto. Come il Goto, infatti, permette di scrivere nel Program Counter un nuovo indirizzo di esecuzione del programma. La differenza sostanziale consiste però nel fatto che prima di eseguire il salto l’MCU memorizza in un altro registro speciale, denominato Stack, l'indirizzo di quella che sarebbe dovuta essere la successiva istruzione da eseguire se non si fosse incontrata l’istruzione Call. La parola Stack in inglese significa "catasta" ed infatti è su questa catasta che è possibile depositare, uno sull'altro, più indirizzi per recuperarli poi quando servono. Lo Stack è organizzato in modo LIFO, dall'inglese Last In First Out, in cui l'ultimo elemento inserito (last in) deve necessariamente essere il primo ad uscire (first out). Grazie a questa caratteristica è possibile compiere più invocazioni a sottoprogrammi annidati, ovvero innestati l'un nell'altro, e mantenere quindi sempre traccia del punto in cui riprendere il

44

Page 45: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

flusso del programma al momento che si incontra una istruzione di tipo Return. In particolare il PIC 16F876 ha uno stack a 8 livelli, ossia uno stack che consente fino ad 8 chiamate annidate. E' importante assicurarsi, durante la stesura di un programma, che ci sia sempre una istruzione di Return per ogni Call invocata per evitare pericolosi disallineamenti dello Stack che in esecuzione possono dar occasione ad errori difficilmente rilevabili.

Come già detto, l’MCU ha un’architettura di tipo Harvard, ossia la memoria programma separata dalla memoria dati (figura 1-1). Entrambe le memorie possono essere accedute da bus separati contemporaneamente. Ciò incrementa la larghezza di banda rispetto all’architettura von Neuman, nella quale i dati e le istruzioni sono prelevati dalla stessa memoria usando lo stesso bus. Per eseguire una istruzione con una macchina di von Neumann si deve accedere una o più volte alla memoria per prelevare l’istruzione. Quindi si possono prelevare i dati, eseguire l’istruzione ed eventualmente scrivere il risultato. Invece, con l’architettura Harvard, quando l’istruzione è prelevata, la memoria dati può essere letta o scritta, nel frattempo, in modo indipendente.

Con i bus separati si può eseguire un’istruzione, mentre la seguente è già prelevata dalla memoria. Questa tecnica è detta pipeline che nel caso del PIC è a due fasi, vale a dire che effettua la sovrapposizione delle fasi di prelievo dell’istruzione e dell’esecuzione. Il fetch prende i primi due colpi di clock mentre l’esecuzione gli altri due colpi di clock. Quindi grazie alla sovrapposizione del fetch della prossima istruzione e l’esecuzione della istruzione attuale, ogni due colpi di clock è

45

Page 46: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

eseguita una istruzione. Nel caso di istruzioni che prevedono il cambio del contenuto del Program Counter occorrono due colpi di clock in più. In figura 2-6 sì nota che durante la fase di esecuzione dell’istruzione Call, il fetch della istruzione seguente è effettuato (senza utilità), ma la fase di esecuzione di quest’ultima è “lavata via” (in questa fase il Program Counter è caricato con il nuovo indirizzo). Dal punto 5 riprende la pipeline con le istruzione della subroutine SUB1.

OSC21 OSC22 OSC23 OSC24 OSC25 OSC26

1. MOVLW 55h Fetch 1 Exec 12. MOVWF PORTB Fetch 2 Exec 23. CALL SUB1 Fetch 2 Exec 2

4. BSF PORTA, RA3 Fetch 2 FLUSH

5. 1a istruz. di sub1 Fetch SUB1

Exec SUB1

6. 2a istruz. di sub1 Fetch SUB1+1

Figura 2-6: Istruzioni in pipeline a 2 Livelli.

Osc1

Osc2

Q1 Q2 Q3 Q4 Q1

123

4

Ciclo di una istruzione

46

Page 47: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

2.2.4 Dispositivi di I/O.

Il PIC16F876 dispone di 3 Port di I/O a scopi generali (PORTA, PORTB e PORTC). Alcuni dei loro pin sono multiplexati con una funzione periferica alternativa: in tal caso se tale funzione è abilitata il pin non può essere utilizzato come I/O generico.

Ogni Port ha associato un registro Tris con cui si definisce la direzione di ogni suo piedino. In sostanza i registri Tris determinano il funzionamento in ingresso o in uscita di ogni singola linea mentre i registri Port determinano lo stato delle linee in uscita o riportano lo stato delle linee in ingresso.

Ognuno dei bit contenuti nei registri menzionati corrisponde univocamente ad una linea di I/O. Ad esempio il bit 0 del registro PORTA e del registro TRISA corrispondono alla linea RA0, il bit 1 alla linea RA1 e così via. Se il bit 0 del registro TRISA è messo a zero, la linea RA0 sarà configurata come linea in uscita, quindi il valore cui sarà messo il bit 0 del registro PORTA determinerà lo stato logico di tale linea (0 = 0 Volt, 1 = 5 Volt).

PORTA.

Il PORTA è un gruppo di 6 piedini di I/O bidirezionali. Ad alcuni piedini possono essere associate funzioni particolari mediante la configurazione di opportuni registri. Ad esempio settando il registro

47

Page 48: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

ADCON1 è possibile configurare il piedino RA0 come ingresso analogico piuttosto che come I/O digitale. Per completezza mostro in tabella 2-2 le configurazioni possibili dei vari piedini di PORTA.

Tabella 2-2: Funzioni di PORTA

PORTB.

Il PORTB è un gruppo di 8 piedini di I/O bidirezionali che hanno la particolarità di poter essere messi in pull-up via software. Tre piedini sono multiplexati con la funzione di programmazione a bassa tensione: RB3/PGM, RP6/PGC ed RB7/PGD. Le configurazioni possibili di ogni piedino sono mostrate in tabella 2-3.

48

Page 49: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Tabella 2-3: Funzioni di PORTB.

PORTC.

Il PORTC è un gruppo di 8 piedini di I/O bidirezionali che hanno la particolarità di avere buffer Trigger Schmitt in ingresso. Le configurazioni possibili di ogni piedino sono mostrate in tabella 2-4.

49

Page 50: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Tabella 2-4: Funzioni di PORTC.

2.2.5 Oscillatore, Timer e Prescaler.

OSCILLATORE.

Il PIC16F876 può funzionare in quattro diverse modalità di oscillatore. Configurando 2 bit (FOSC1 e FOSC0) l’utente può selezionare una delle seguenti quattro:

LP: Low Power Crystal XT: Crystal /Resonator HS: High Speed Crystal/Resonator RC: Resistor /Capacitor

50

Page 51: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Oscillatore a cristallo e risuonatore ceramico.

Nei modi XT, LP e HS un cristallo o un risuonatore ceramico è applicato ai piedini OSC1/CLKIN e OSC2/CLKOUT per fornire una oscillazione al PIC, come è tracciato nella figura seguente.

Figura 2-7: Oscillatore nei modi XT, LP e HS.

I valori di CX raccomandati per oscillatori di tipo ceramico sono quelli indicati in tabella:

Tabella 2-5: Capacità per gli oscillatori ceramici.

Frequenza

C1 e C2

XT 455 khz 68-100 pF2 Mhz 15-68 pF4 Mhz 15-68 pF

HS

8 Mhz 10-68 pF

16 Mhz 10-22 pF

51

Page 52: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Le capacità dei condensatori devono essere uguali. Capacità alte rendono l’oscillazione più stabile ma allungano il tempo di partenza. Il PIC ha bisogno di un collegamento parallelo del cristallo, usare un collegamento serie darebbe una frequenza diversa da quella indicata dal costruttore. In ogni caso in modo XT, LP o HS è sufficiente collegare un oscillatore al piedino OSC1/CLKIN e lasciare OSC2/CLKOUT libero, per assicurare il clock al microcontrollore come mostrato nella figura seguente:

Figura 2-8: Oscillatore esterno.

Oscillatore RC.

Per applicazioni non sensibili alla precisione del clock, l’oscillatore RC offre una soluzione economica. La frequenza dell’oscillatore RC è funzione del valore di tensione d’alimentazione, del valore di resistenza del resistore esterno REXT, del valore della capacità del condensatore esterno CEXT e della temperatura. In

52

Page 53: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

aggiunta la frequenza di oscillazione varia nel tempo a causa della variazione dei parametri di processo.

Nella figura seguente è mostrato come è connessa al PIC la combinazione R/C ed i relativi valori raccomandati.

Figura 2-9: Oscillatore RC.

MODULO TIMER0.

Il modulo Timer0 è un modulo contatore/timer con le seguenti caratteristiche:

Timer/contatore ad 8 bit. Scrivibile e leggibile. Prescaler a 8 bit programmabile via software. Selezione di clock interna od esterna. Interrupt da overflow che si verifica al passaggio dal

valore FFh a 00h. Selezione del fronte attivo (salita/discesa) per il clock

53

Page 54: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

esterno.

In sostanza il modulo Timer0 è un registro di 8 bit ed è leggibile e scrivibile come gli altri registri e capace di generare una segnalazione di overflow tramite un’interruzione dedicata.

E’ selezionabile come timer ponendo a 0 il bit TOCS (OPTION_REG<5>), nel qual caso incrementerà il valore del registro ad ogni ciclo istruzione (ossia ogni 4 cicli di clock esterni).

E’ selezionabile come contatore ponendo a 1 il bit TOCS (OPTION_REG<5>), ovvero un particolare tipo di registro il cui contenuto è incrementato al fronte attivo del clock selezionabile mediante il bit TOSE (OPTION_REG<4>).

In ogni caso genererà un’ interrupt alla situazione di overflow,

ossia al passaggio dal valore FFh a 00h.

In pratica, a differenza d’altri registri, il TMR0 non mantiene inalterato il valore che gli è memorizzato, ma lo incrementa continuamente a seguito del verificarsi di eventi. Quando il registro raggiunge lo zero si attiva un’interruzione.

Se ad esempio scriviamo in Timer0 il valore 10, dopo un tempo pari a quattro colpi di clock, il contenuto del registro comincia ad essere incrementato ad 11, 12, 13 e così via con cadenza costante e del tutto indipendente dall'esecuzione del resto del programma. Se, ad esempio, dopo aver inserito un valore nel registro TMR0, eseguiamo un loop infinito il registro TMR0 è in ogni caso incrementato dall'hardware interno all’MCU contemporaneamente alla esecuzione del loop. Una volta raggiunto il valore 255, il registro

54

Page 55: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

TMR0 è azzerato automaticamente riprendendo quindi il conteggio non dal valore originariamente impostato ma da zero.

Figura 2-10: Selezione clock per il Timer0.

Nella figura precedente è riportata la catena di blocchi interni all’MCU che determinano il funzionamento del registro TMR0. I blocchi Fosc/4 e T0CKI riportati in blu rappresentano le due possibili sorgenti di segnale per il contatore TMR0. Fosc/4 è un segnale generato internamente all’MCU dal circuito di clock ed è pari alla frequenza di clock divisa per quattro. T0CKI è un segnale generato da un eventuale circuito esterno ed applicato a T0CKI, corrispondente al piedino 6. I blocchi T0CS e PSA riportati in verde sono due multiplexer sulla cui uscita è presente uno dei due segnali in ingresso in base al valore dei bit T0CS e PSA del registro OPTION. Il blocco PRESCALER è un divisore programmabile il cui funzionamento sarà spiegato in seguito. Vediamo in pratica com’è possibile agire su questi blocchi per ottenere differenti modalità di conteggio per il registro TMR0.

Fosc/4

PIN T0CKI

0

1

T0CS

1

0

PSA

PRESCALERTIMER0

REGISTER

3PS2, PS1,

PS0

T0SE

55

Page 56: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Iniziamo programmando i bit T0CS a 0 e PSA a 1. La configurazione di funzionamento che otterremo è rappresentata nella figura seguente.

Figura 2-11: Una configurazione per il Timer0.

Le parti in rosso evidenziano il percorso che compie il segnale, prima di arrivare al contatore TMR0. Come abbiamo già detto in precedenza, la frequenza Fosc/4 è pari ad un quarto della frequenza di clock. Utilizzando ad esempio un quarzo da 4 Mhz avremo una Fosc/4 pari ad 1 Mhz. Tale frequenza è inviata direttamente al registro TMR0 senza subire nessun cambiamento. La cadenza di conteggio che se ne ottiene è quindi pari ad 1 milione d’incrementi il secondo del valore presente in TMR0. Ipotizziamo ora di cambiare lo stato del bit T0CS da 0 a 1: la configurazione che otteniamo è quella indicata nella figura seguente.

Fosc/4

PIN T0CKI

0

1

T0CS

1

0

PSA

PRESCALERTIMER0

REGISTER

3PS2, PS1,

PS0

T0SE

56

Page 57: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Figura 2-12: Una configurazione per il Timer0.

Questa volta sarà il segnale applicato al piedino T0CKI dell’MCU ad essere inviato direttamente al contatore TMR0 determinandone la frequenza di conteggio. Applicando ad esempio a questo piedino una frequenza di 100 hz si otterrà una frequenza di conteggio pari a cento incrementi il secondo.

La presenza della porta logica XOR all'ingresso TOCKI dell’MCU consente di determinare tramite il bit T0SE del registro OPTION se il contatore TMR0 deve essere incrementato in corrispondenza del fronte di discesa (T0SE=1) o del fronte di salita (T0SE=0) del segnale applicato dall'esterno.

Nella figura seguente è rappresentata la corrispondenza tra l'andamento del segnale esterno ed il valore assunto dal contatore TMR0 in entrambe i casi:

Fosc/4

PIN T0CKI

0

1

T0CS

1

0

PSA

PRESCALERTIMER0

REGISTER

3PS2, PS1,

PS0

T0SE

T0SE=0 T0SE=1

57

Page 58: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Figura 2-13: Fronti attivi di clock per il Timer0.

PRESCALER.

Il Prescaler consiste in un divisore programmabile a 8 bit da utilizzare nel caso la frequenza di conteggio inviata al contatore TMR0 è troppo elevata.

Per poter inviare al registro TMR0 il segnale in uscita dal PRESCALER occorre configurare il bit PSA del registro OPTION a "0" come visibile nella seguente figura.

Figura 2-14: Uscita del Prescaler come ingresso per il Timer0.

Nell'esempio riportato prima si è visto che utilizzando un quarzo

da 4 Mhz si ottiene una frequenza di conteggio pari ad 1 Mhz che in

molti casi potrebbe essere troppo elevata. Con l'uso del Prescaler si

Fosc/4

PIN T0CKI

0

1

T0CS

1

0

PSA

PRESCALERTIMER0

REGISTER

3PS2, PS1,

PS0

T0SE

58

Page 59: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

può dividere ulteriormente la frequenza Fosc/4 configurando

opportunamente i bit PS0, PS1 e PS2 del registro OPTION secondo la

seguente tabella.

PS2:PS0 Divisore per TMR0 Divisore per WDT000 2 1001 4 2010 8 4011 16 8100 32 16101 64 32110 128 64111 256 128

Tabella 2-6: Configurazioni per il Prescaler

E’ da notare che in tabella 2-6 sono stati inseriti anche i valori di divisione per il Watch Dog Timer dipendenti dal prescaler, da tenere in considerazione più avanti quando si tratterà il WDT.

2.2.6 Funzioni Speciali.

59

Page 60: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

INTERRUPT.

Si è già parlato in generale degli interrupt nella sezione 1.6, qui ci si limiterà a descrivere la gestione degli stessi da parte del PIC16F876.Questo ha fino a 13 sorgenti di interrupt, che possono essere abilitati o meno settando opportunamente i flag relativi ad ognuno. Il più importante è senza dubbio il flag GIE (Global Inerrupt Enable) che se messo ad 1 abilita gli interrupt, altrimenti li disabilita; esso gioca un ruolo fondamentale nella gestione degli interrupt. Infatti non appena si ha un interrupt esso viene azzerato in modo tale da non permettere la gestione di un altro eventuale interrupt che potrebbe accadere nel frattempo. Come ultima istruzione della routine di gestione dell’interrupt accorso deve essere inserita la RETFIE, un’istruzione particolare che fa ritornare da tale routine settando il bit GIE di nuovo ad 1: l’MCU come detto non prevede la gestione di interrupt annidati (interrupt vettorizzato).

I più importanti eventi che possono dar luogo ad interrupt sono i seguenti:

INT INTERRUPT: segue ad ogni fronte attivo che si ha in ingresso sul piedino RB0/INT.

TMR0 INTERRUPT: ne abbiamo parlato in precedenza. PORTB INTCON CHANGE: segue ad ogni variazione che si

ha in ingresso su PORTB<7:4>. EEPROM INTERRUPT: segue la fine di scrittura di una

locazione in EEPROM.

60

Page 61: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Qualunque sia l'evento abilitato, al suo manifestarsi l’MCU inter-rompe l'esecuzione del programma in corso, memorizza nello Stack il valore corrente del Program Counter ed esegue l'istruzione presente nella locazione di memoria 0004h, denominata Interrupt Vector

(vettore delle interruzioni). È a questo indirizzo che dobbiamo inserire l’istruzione di salto che redirige il Program Counter alla nostra subroutine di gestione dell'interrupt denominata Interrupt Handler

(gestore di interru-zione). Tra i primi compiti dell’Interrupt

Handler è la verifica di quale, tra gli eventi abilitati, ha generato l'interru-zione per decidere l'esecuzione della parte di programma relativo. Questo controllo può essere fatto interrogando i relativi interrupt flag che sono messi ad 1 dall’ hardware al ve-rificarsi dell’interrupt corrispondente.

61

Interrupt

Interrupt Vector

STACK

end

return

Interrupt Handler

Main Program

(2) legge nel Interrupt vector l’indirizzo della gestione interruzioni e lo mette nel PC

(1) salva nello stack l’indirizzo di ritorno della prossima istruzione

(3) al ritorno della gestione dell’interruzione preleva l’indirizzo di ritorno nello stack e lo mette nel PC

Figura 2-15: Gestione degli interrupt.

Page 62: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

E’ importante che una volta sia stato rilevato quale flag è attivo, l'interrupt handler deve essere azzerato altrimenti non sarà più generata l'interruzione corrispondente.

La gestione degli interrupt è schematizzata in figura 2-15.

POWER-DOWN MODE.

Il Power Down Mode o Sleep Mode è un particolare stato di funzionamento dell’MCU utilizzato per ridurre il consumo di energia nei momenti in cui l’MCU non è utilizzato perché è in attesa di un evento esterno.

Per evitare di consumare inutilmente la limitata energia di una eventuale batteria di alimentazione è possibile disattivare buona parte dei circuiti di funzionamento dell'MCU e riattivarli solo in corrispondenza di un qualche evento esterno.

Per mettere l’MCU in Power-Down Mode si utilizza l’istruzione SLEEP: la corrente assorbita passerà da circa 2 mA (a 5 volt con clock

di funzionamento a 4 Mhz) a circa 2 µA, ovvero si riduce di 3 ordini di grandezza.

Qualsiasi istruzione presente dopo SLEEP non sarà eseguita dall’MCU che terminerà in questo punto la sua esecuzione, spegnerà tutti i circuiti interni, tranne quelli necessari a mantenere lo stato dei port di I/O (stato logico alto, basso o alta impedenza) ed a rilevare le condizioni di "risveglio".

Per ridurre il consumo di energia in questo stato, non devono esserci ovviamente circuiti collegati alle linee di uscita dell’MCU che

62

Page 63: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

assorbono corrente. O meglio questi circuiti devono essere progettati in modo da limitare il loro assorbimento nelle condizioni di Power-Down. Un altro accorgimento raccomandato da Microchip® è quello di collegare al positivo (Vdd) o al negativo (Vss) di alimentazione, tutte le linee in alta impedenza non utilizzate compresa la linea RA4/T0CKI.

Per risvegliare l’MCU possono essere utilizzate diverse tecniche:

Reset dell’MCU mettendo a 0 il piedino MCLR (piedino 4). Timeout del timer del Watch Dog (se abilitato). Verificarsi di una situazione di interruzione (interruzione

sul RB0, cambio di stato sul port B o interrupt periferico.

Nel primo e secondo caso l’MCU è reimpostato e l'esecuzione riprende dalla locazione 0x00. Nel terzo caso, l’MCU si comporta come nella normale gestione di una interruzione eseguendo per primo l'interrupt handler e quindi riprendendo l'esecuzione dopo l'istruzione SLEEP. Perché l’MCU sia risvegliato da una interruzione devono essere abilitati opportunamente i flag del registro INTCON.

WATCH DOG TIMER.

Lo scopo del Watch Dog Timer è quello di migliorare l'affidabilità dei nostri circuiti basati su MCU.

In pratica è un oscillatore interno all’MCU, ma completamente indipendente dal resto della circuito, il cui scopo è quello di rilevare eventuali blocchi della CPU dell’MCU e azzerare l’MCU per riprendere la normale esecuzione del programma.

63

Page 64: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Per poter rilevare un eventuale blocco della CPU durante l'esecuzione del programma principale è inserita all'interno di questo un’istruzione speciale, CLRWDT (CLeaR Watch Dog Timer) la quale azzera ad intervalli regolari il Watch Dog Timer non consentendogli di terminare il suo conteggio. Se la CPU non esegue questa istruzione prima del termine del conteggio allora si assume che il programma si sia bloccato per qualche motivo e si effettua il Reset della CPU.

E' possibile assegnare il Prescaler al Watch Dog Timer per ottenere periodi più lunghi secondo i parametri specificati nella tabella 2-6. Ovviamente la scelta corretta dovrà essere fatta tenendo conto del massimo ritardo che si riesce ad ottenere all'interno del nostro programma tra l'esecuzione di due istruzioni CLRWDT successive.

Per abilitare il Watch Dog Timer occorre abilitare in fase di programmazione il flag WDTE (Watch Dog Timer Enable) del word di configurazione. La modalità di attivazione di questo flag dipende dal programmatore in uso.

RESET.

Il reset è un modo per azzerare l’MCU; il PIC16F876 ne presenta diversi tipi:

Power-on Reset (POR): generato quando viene rilevato la salita dell’alimentazione dal piedino VDD (20), nell’intervallo tra 1.2V e 1.7V; in sostanza quando l’MCU

64

Page 65: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

viene acceso. MCLR : generato quando viene messo a massa il piedino

MCLR; lo stato di reset dura per tutto il tempo in cui tale piedino è mantenuto a massa.

WDT: ne ho parlato in precedenza. Brown-out Reset (BOR): generato quando la tensione su

VDD scende sotto la soglia VBOR (circa 4 Volt) per un tempo almeno pari a TBOR (circa 100 μsec). Una volta che l’MCU è in reset per BOR, vi resta fino a quando la tensione su VDD

non si alza al di sopra di VBOR.

L’azione di reset provoca il caricamento dell’indirizzo del Reset Vector nel Program Counter: nel PIC16F876 tale indirizzo è 0x0000.

2.2.7 Conversione A/D.

Il PIC16F876 ha 5 ingressi analogici che possono essere

selezionati come ingressi al modulo A/D. A tale modulo quindi può

essere applicato un segnale condizionato, tra 0 e 5 Volt, il quale sarà

convertito in uscita con un valore intero tra 0 e 1023 (essendo la

quantizzazione a 10 bit); sicché avendo un segnale analogico

possiamo convertirlo in un array di valori interi.

È chiaro che la conversione richieda un certo tempo, quello che

occorre al circuito per produrre il valore campionato.

Il circuito ADC contiene un modulo detto Sample & Hold. La

65

Page 66: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

figura 2-16 mostra il principio di funzionamento di tale circuito.

Figura 2-16: Sample & Hold.

In (A) abbiamo il segnale analogico che vogliamo convertire in valore digitale. L’interruttore (B) è comandato da un circuito e fa in modo che il condensatore di piccola capacità sia caricato. Il livello di tensione elettrica ai capi del condensatore è quello del segnale nell’istante di chiusura dell’interruttore (Sample). Il segnale elettrico deve essere applicato al condensatore solo per il tempo necessario alla sua carica completa. Quando il condensatore è carico (Hold), l’interruttore è aperto e il valore di tensione del segnale stabilizzato può essere quantizzato (C).

Bisogna tenere conto che i canali d’ingresso analogico sono implementati negli stessi piedini dei port digitali, per questo bisogna impostare il comportamento del piedino in modo analogico oppure digitale, prima di utilizzare l’ingresso.

66

Page 67: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Il modulo di conversione A/D ha a disposizione due comparatori programmabili, via software, collegabili ai piedini VDD, VSS oppure ai piedini RA2 e RA3. Altra particolarità è che il convertitore A/D può operare anche quando l’MCU è in sleep mode e in tal caso per clock

utilizza l’oscillatore RC interno.Il modulo A/D è controllato da 4 registri:

ADRESH: contiene una parte del risultato della conversione.

ADRESL: contiene la parte restante del risultato della conversione.

ADCON0 (figura 2-17): controlla le operazioni dell’A/D. ADCON1 (figura 2-18): regola il funzionamento dei piedini

(analogico o digitale).

Figura 2-17: Registro ADCON0.

ADCS1:ADCS0 (A/D Conversion Clock Select ) sono una coppia di bit che indicano di quanto scalare la frequenza di oscillazione per campionare il segnale. In effetti l’MCU impiega un certo tempo per eseguire la conversione, per cui sulla base della frequenza di clock del MCU così deve essere settata la sorgente di clock per il modulo A/D.

TAD è definito il tempo impiegato per la conversione di un bit. L’intera conversione, a 10 bit, richiede almeno un tempo pari a 12*

67

Page 68: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

TAD ed inoltre per assicurarsi una corretta conversione occorre un clock di conversione almeno pari a 1,6 μsec. In tabella 2-7 sono mostrate le configurazioni dei bit ADCS1 e ADCS0 per le diverse frequenze di funzionamento del MCU.

Tabella 2-7: Sorgente di clock per l’A/D.

CSH2:CSH0 sono tre bit che indicano quale degli 8 piedini di ingresso al multiplexer è da utilizzare per il campionamento. Il bit GO_DONE se messo a 1 avvia la conversione, quando diventa 0 allora la conversione è terminata. Infine il bit ADON se impostato a 1 abilita il convertitore A/D se invece è a 0 lo disabilita.

Per quanto riguarda il registro ADCON1, il bit ADFM indica il formato del risultato della conversione. Se vale 1 il risultato è giustificato a destra (riempimento di zeri a sinistra), se vale 0 la giustificazione è a sinistra (riempimento di zeri a destra).

68

Page 69: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Figura 2-18: Registro ADCON1.

I bit PCFG3:PCFG0 (A/D Port Configuration Control) stabiliscono

quale deve essere il comportamento dei piedini (analogico o digitale)

e quali sono i riferimenti di tensione.

Al termine della conversione il risultato risiede nei registri

ADRESH:ADRESL, il bit GO_DONE (ADCON0<2>) si azzera ed il bit

ADIF (interrupt A/D) è messo a 1.

Riepilogando, i passi da seguire per campionare un segnale sono:

1. Configurare il modulo A/D2. Configurare i piedini in modo analogico3. Impostare i riferimenti di tensione4. Selezionare il canale d’ingresso analogico5. Selezionare il clock di conversione6. Attivare il modulo A/D7. Configurare l’interrupt per A/D

ADIF = 0 ADIE = 1 PEIE = 1 GIE = 1

8. Attendere il tempo di sample9. Mettere GO_DONE = 1 per iniziare la conversione10. Attendere per il tempo di conversione

Eseguendo il polling del bit GO_DONE oppure Attendere l’interrupt fine conversione

11. Leggere il risultato in ADRESH:ADRESL e azzerare ADIF.

69

Page 70: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Al punto 8 si è parlato di tempo di sample; in effetti questo è il tempo necessario al Sample & Hold per acquisire il segnale analogico in ingresso prima di aprire il circuito stesso per mantenere tale valore costante in modo tale da poter essere campionato, come precedentemente mostrato in figura 2-16. Senza entrare nei dettagli elettrici, si può dire che tale tempo dipende dal tempo di carica della capacità (Cap in figura 2-16) e da un coefficiente variabile con la temperatura: un valore significativo è dell’ordine dei 20 μsec.

Se l’MCU è in Sleep Mode, la conversione richiede che il clock sia di tipo RC (ADCS1:ADCS0 = 11). In questo modo l’A/D parte con la conversione un ciclo d’istruzione in ritardo (istruzione sleep) eliminando i rumori di commutazione digitali dalla conversione. Quando la conversione è terminata, il bit GO_DONE è zero ed il risultato risiede in ADRESH:ADRESL. Se l’interruzione di A/D è attivata, l’MCU si sveglia ed ha il risultato di conversione pronto all’elaborazione, altrimenti il modulo A/D è spento ed il bit ADON rimane a 1. Se la sorgente di clock è differente da RC, l’istruzione SLEEP abortisce la conversione.

2.2.8 Formato generale delle istruzioni.

In questa sezione si descrivono brevemente i vari formati delle istruzioni nonché le varie istruzioni Assembly tipiche dei PIC e valide in particolare anche per il PIC16F876.

70

Page 71: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Ogni istruzione è una word a 14 bit divisa in OPCODE, che specifica il tipo di istruzione, ed uno o più operandi.

I formati possibili per le istruzioni sono tre: formato byte-

oriented, formato bit-oriented sui registri e formato letterale e di controllo.

FORMATO BYTE-ORIENTED.

Figura 2-19: Formato istruzione byte-oriented.

Le istruzioni byte-oriented (figura 2-19) hanno un codice operativo di 6 bit (i sei bit più significativi) e due operandi. I 7 bit meno significativi (f) rappresentano l’indirizzo del registro su cui è applicata l’operazione. Il bit 7, denominato d, rappresenta la destinazione del risultato e può essere l'accumulatore W se d=0, oppure il registro d'origine su cui si è operato.

La maggior parte di queste istruzioni sono aritmetiche (ADDWF, ANDWF, CLRF, CLRW, COMF, DECF, INCF, IORWF, RLF, RRF, SUBWF, SWAPF, XORWF), di trasferimento o spostamento (MOVF, MOVWF), di

71

Page 72: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

salto condizionato (DECFSZ, INCFSZ). L' istruzione NOP, non esegue alcuna operazione ma inserisce solo una breve pausa pari al tempo di esecuzione di una istruzione (quattro cicli di clock). Alcune delle operazioni aritmetiche sono applicate a due operandi (uno è implicitamente l'accumulatore, l'altro è un registro esplicitamente specificato); in questo caso il risultato può essere inserito nell'accumulatore oppure nel registro (secondo il valore del bit d). Altre hanno un solo operando (l'accumulatore implicitamente specificato oppure un registro specificato attraverso il suo indirizzo); il risultato sovrascrive il dato di partenza. Solo il NOP non ha nessun operando. Notare come non è possibile eseguire una operazione aritmetica su due registri, in questo caso è necessario spostare uno degli operandi nell'accumulatore. Degne di nota sono le due istruzioni byte-oriented di salto condizionato. Esse permettono l'implementazione di strutture del tipo for o while. Tali istruzioni sono però limitate per due motivi:

l'unica condizione che si può verificare, in base alla quale l’MCU compie il salto oppure no, è l'uguaglianza a zero;

il salto che si compie è corto, in altre parole è possibile saltare solo l'istruzione successiva, mentre non è possibile passare il controllo ad una istruzione ad un indirizzo qualsiasi.

Per completezza è mostrato in tabella 2-8 l’elenco di tutte le istruzioni di questo formato.

72

Page 73: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Tabella 2-8: Istruzioni del formato byte-oriented.

FORMATO BIT-ORIENTED.

Figura 2-20: Formato istruzione bit-oriented.

In tale formato “b” rappresenta il numero del bit interessato dall’operazione, mentre “f” è l’indirizzo del registro in cui tale bit è localizzato.

73

Page 74: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Queste istruzioni sono soltanto quattro: BCF, BSF, BTFSC, BTFSS. Le prime due (BCF e BSF) servono solo per mettere a zero (BCF, Bit

Clear f) oppure mettere ad uno (BSF, Bit Set f) un bit di un registro (il bit numero b). Le altre due (BTFSC e BTFSS) sono altre due istruzioni di salto condizionato dove il salto (solo dell'istruzione successiva) avviene se il bit specificato nell'istruzione è zero (BTFSC, Bit Test f,

Skip if Clear) oppure uno (BTFSS, Bit Test f, Skip if Set).É bene notare che queste operazioni possono essere eseguite

solo su registri e non sull'accumulatore.In tabella 2-9 è mostrato l’elenco di tutte le istruzioni di questo

formato.

Tabella 2-9: Istruzioni del formato bit-oriented.

FORMATO LETTERALE E DI CONTROLLO.

Figura 2-21: Formato istruzione letterale.

74

Page 75: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Le istruzioni letterali sono sempre operazioni aritmetiche dove uno degli operandi è una costante immediata specificata direttamente all'interno dell'istruzione; l'altro operando è implicitamente l'accumulatore e il risultato è memorizzato sempre nell'accumulatore, sovrascrivendo il valore precedente. Esse sono ADDLW, ANDLW, IORLW, SUBLW, XORLW. Esiste anche una operazione di spostamento (MOVLW) che memorizza nell'accumulatore un valore costante immediato.

Figura 2-22: Formato istruzione di controllo.

Le istruzioni di controllo sono quelle di salto incondizionato (GOTO), di chiamata a subroutine (Call), di ritorno da una subroutine (RETURN, RETLW), di ritorno da una interruzione (RETFIE). Come si è detto a proposito dello Stack, l'istruzione di CALL “salva" il valore del registro Program Counter in testa allo Stack e inserisce sempre in questo registro l'indirizzo specificato dall'istruzione stessa; tale indirizzo è quello della prima istruzione della subroutine. Per ritornare dalla subroutine si può usare l'istruzione di RETURN che ripristina l'ultimo valore salvato nello Stack nel Program Counter. Interessante

75

Page 76: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

è l'istruzione RETLW (Return Literal in W) che è identica all'istruzione RETURN e, in più, memorizza nell'accumulatore un valore costante immediato. Tale istruzione è utile per poter creare delle subroutine che restituiscono alla procedura chiamante un risultato.

In tabella 2-10 è mostrato l’elenco di tutte le istruzioni di questo formato.

Tabella 2-10: Istruzioni del formato letterale e di controllo.

2.2.9 Comunicazioni seriali.

Il PIC16F876 dispone di due moduli per le comunicazioni seriali, il MSSP e l’USART, che a loro volta possono funzionare in diverse modalità.

76

Page 77: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

MICROCONTROLLORI DELLA MICROCHIP®

Si Descrivono brevemente le caratteristiche dei due moduli, in particolare quelle relative all’ USART che verrà utilizzato per la realizzazione della rete per la Domotica.

MSSP.

Il MSSP (Master Synchronous Serial Port) è uno dei moduli per le comunicazioni seriali utile per le comunicazioni con dispositivi periferici, quali EEPROM,shift-register, convertitori A/D ed altri, o con altri MCU. Può operare in una delle due modalità:

SPI (Serial Peripheral Interface): permette la trasmissione e la ricezione simultanea di 8 bit di dati in modo sincrono ed è configurabile sia in modalità master che slave.

I2C (Inter-Integrated Circuit): implementa tutte le funzionalità tipiche sia di un modulo master che slave, poiché può operare in entrambi i modi, e gestisce in hardware gli interrupt per determinare se il bus è libero per la comunicazione.

USART.

L’USART (Universal Synchronous Asynchronous Receiver

Transmitter) è uno dei moduli seriali, conosciuto anche come SCI (Serial Communications Interface), che può essere configurato come

77

Page 78: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

sistema asincrono full-duplex11, con la possibilità di comunicare con dispositivi periferici come un PC, o come sistema sincrono half-

duplex11, con la possibilità di comunicare con dispositivi periferici come convertitori A/D, EEPROM seriali ed altri: in questa modalità può essere configurato sia come master che come slave.

In entrambe la modalità interviene il modulo BRG (Baud Rate

Generator) per la generazione della velocità di trasmissione dei dati. Questo modulo è controllato dal registro SPBRG che determina il periodo del timer ad 8 bit. In modalità asincrona interviene il bit BRGH (TXSTA<2>) per settare la comunicazione ad alta o bassa velocità. In tabella 2-11 mostro come calcolare i valori nel registro SPBRG per impostare il BRG.

Baud Rate con BRGH=0

(bassa velocità)

Baud Rate con BRGH=1

(alta velocità)

ASINCRON

O

SINCRONO non si applica

Tabella 2-11: Determinazione del Baud-Rate.

11 In modalità full-duplex è consentita la ricezione e trasmissione contemporanea, mentre in modalità half-duplex è consentita la trasmissione e la ricezione, ma non in contemporanea.1

Page 79: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

La X in tabella 2-11 è il valore da impostare in SPBRG per la generazione del Baud-Rate corrispondente sulla base della frequenza impostata all’MCU (FOSC). Ad esempio per avere un Baud-Rate di 19.200 a 20 Mhz bisogna impostare il registro SPBRG a 12.

Tralasciando la descrizione delle altre modalità di funzionamento, ci si concentra sulla modalità asincrona full-duplex, che è quella che si è utilizzata nella rete per Domotica.

Modalità asincrona full-duplex.

In questa modalità il modulo utilizza il seguente formato dati: un bit di START, 8 o 9 bit dati ed uno STOP bit; il formato più comune prevede 8 bit dati, ma è possibile selezionare anche quello a 9, ponendo ad 1 il bit TX9 (TXSTA<6>). Per selezionare questa modalità bisogna mettere a zero il bit SYNC (TXSTA<4>).

Come detto prima, viene utilizzato il modulo BRG per derivare la frequenza di trasmissione a partire dalla frequenza di clock dell’MCU. La comunicazione prevede di trasmettere e ricevere prima il LSb (Less Significant bit), ossia il bit meno significativo.

Il modulo consiste di 4 componenti:

BRG: generatore di Baud-Rate. Circuito di Campionamento: applicato al piedino

RC7/RX/DT ed operante tre volte in ricezione dati per determinare se il valore ricevuto corrisponde ad uno “zero” o ad un “uno” logico.

Modulo trasmettitore asincrono.

Page 80: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Modulo ricevitore asincrono.

In figura 2-23 è mostrato il diagramma a blocchi del modulo di trasmissione dell’USART: il cuore è lo shift register di trasmissione, TSR; questo riceve i dati dal buffer di trasmissione a lettura e scrittura TXREG, il quale a sua volta viene caricato via software. TSR non viene caricato dei nuovi valori fino a quando il bit di STOP della precedente trasmissione non viene trasmesso. Non appena ciò accade, viene caricato TSR dei nuovi valori da TXREG, ovviamente se disponibili. Non appena TXREG invia i dati a TSR, si svuota e viene settato il flag TXIF, che indica che TXREG può essere caricato di nuovi valori. Se è stato abilitato l’interrupt dell’USART settando il flag TXIE, ciò genera anche un’interruzione come è possibile vedere nel diagramma a blocchi in figura.

Figura 2-23: Diagramma a blocchi modulo di trasmissione dell’USART.

Page 81: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Analogamente viene settato il flag TRMT quando TSR si svuota, senza però generare interruzione. L’utente deve quindi eseguire un polling per rilevare tale situazione. Il flag TXEN deve essere settato per abilitare la trasmissione, mentre per abilitare la trasmissione seriale deve essere settato il flag SPEN.

I passi da seguire per settare la trasmissione asincrona sono i seguenti:

1. Settare SPBRG per il Baud-Rate.2. Abilitare i port seriale asincrono ponendo a 0 SYNC e ad 1

SPEN.3. Settare TXIE se si desidera avere un’interruzione ad ogni

trasmissione di un byte.4. Settare TX9 se si desidera avere una trasmissione a 9 bit.5. Abilitare la trasmissione settando il flag TXEN.6. Caricare il flag TX9D se si sta operando in trasmissione a

9 bit.7. Caricare i dati nel registro TXREG.8. Se si stanno adoperando gli interrupt assicurarsi che

siano settati i flag GIE e PEIE per abilitare la gestione degli interrupt.

Per quanto riguarda il modulo ricevente, in figura 2-24 è mostrato il suo diagramma a blocchi.

I dati vengono ricevuti sul piedino RC7/RX/DT e se settato il flag SPEN vengono inviati al Data Recovery: questo è uno shift register

operante ad alte velocità che trasferisce i dati ricevuti al buffer di ricezione RSR (Receiver Serial Register). Questo è l’elemento

Page 82: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

fondamentale del modulo, che una volta ricevuto il bit di STOP invia il pacchetto al registro RCREG. Una volta ultimato tale trasferimento viene settato il flag RCIF, il quale genera un interrupt se è stato settato il bit RCIE. Anche questo modulo come quello per la trasmissione prevede la gestione del nono bit.

E’ importante notare che RCREG è un buffer di tipo FIFO a due profondità capace di contenere due byte: questo serve ad aumentare l’affidabilità ed a diminuire la probabilità di perdita di dati in seguito ad overflow del buffer di ricezione. Tuttavia tale situazione può verificarsi, quando RSR riceve il bit di STOP e RCREG è ancora pieno, nel qual caso viene segnalata dal bit OERR (Overrun Error) che viene messo ad 1. Tale flag deve essere azzerato via software altrimenti la ricezione resta disabilitata. Il flag FERR segnala un eventuale errore di frame.

Page 83: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Figura 2-24: Diagramma a blocchi modulo di ricezione dell’USART.

2.3 Sviluppo del software.

La scelta di utilizzare un microcontrollore nasce da una specifica esigenza. In figura 2-25 è mostrato il ciclo di sviluppo del software, in cui la sequenza di progettazione hardware, progettazione software, scrittura software, assemblaggio, simulazione e correzione devono essere ripetuti numerose volte fino a che il sistema raggiunge le specifiche richieste.

Page 84: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Figura 2-25: Diagramma a blocchi ciclo di sviluppo del software.

I riquadri in rosso rappresentano aree che richiedono maggiore attività dell'utente; le attività più intensive sono, infatti, il progetto hardware, il progetto software, la simulazione e la correzione degli errori.

Si è già descritto nel paragrafo 1.8 il linguaggio di programmazione di un MCU, in questa fase ci si concentra sui passi da seguire per programmare un MCU a fargli eseguire il controllo voluto, ossia il programma dell’utente.

Idea

ProgettoHW

ProgettoSW

Scrittura SW

Assemblatore

Simulatore

Errori?

Programmatore

NOSI

Page 85: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Figura 2-26: Compilazione e programmazione.

Per scrivere un programma in linguaggio Assembly occorre conoscere le istruzioni disponibili per il microcontrollore che si intende usare, le regole sintattiche per definire le variabili, i parametri, ecc. e disporre di un editor di testo con cui digitare il programma. Il file di testo così ottenuto è denominato source o sorgente Assembly. Il passo successivo consiste nel tradurre il sorgente Assembly nella giusta sequenza di istruzioni in formato binario che l’MCU è in grado di interpretare. Questo tipo di programma si chiama compilatore

Assembler o assemblatore.Nella Figura 2-26 è schematizzato il flusso di operazioni ed i file

Editor

compilatore

programmatore

.ASM.INC

.COD .LST .ERR .HEX

PIC

Page 86: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

generati necessari per ottenere un MCU programmato.Come già detto, la prima operazione da compiere è la scrittura

del source in Assembly e la sua memorizzazione in un file di testo: l'estensione di questo file deve essere .ASM.

Possiamo usare allo scopo un qualsiasi editor ASCII, ma personalmente consiglio un editor pensato appositamente per sviluppare sorgenti. Il passo successivo è la compilazione del file sorgente, ovvero la trasformazione in opcode dei codici mnemonici o istruzioni Assembly in esso contenute. Il compilatore assembler è contenuto in MPLAB prodotto da Microchip® ed è fornito gratuitamente.

Come è possibile vedere nella figura precedente, oltre al source con estensione .ASM è necessario fornire al compilatore un secondo file prodotto da Microchip® con estensione .INC, differente a seconda del tipo dell’MCU che si sta utilizzando e denominato header: questo source contiene alcune definizioni dipendenti dal chip utilizzato. Durante la compilazione, l'assemblatore genera una serie di file con il nome identico al modulo sorgente da cui derivano, ma con estensione diversa. Vediamo quali sono e cosa contengono:

HEX è il file contenente gli opcode da inserire nella memoria programma dell’MCU.

LST è un file di testo in cui è riportato l'intero modulo sorgente assembler e la corrispondente traduzione in opcode. Non è utilizzabile per la programmazione dell’MCU ma è estremamente utile per verificare i processi di compilazione che ha eseguito l'assemblatore.

Page 87: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

ERR contiene la lista degli errori di compilazione riscontrati ed il numero di linea all'interno del source assembler in cui sono stati rilevati.

I file .LST e .ERR sono utilizzati per il controllo di quanto effettuato durante la compilazione. Solo il file .HEX è utilizzato realmente per programmare il microcontrollore: non è un file in formato binario ma un file codificato in un formato ideato dalla Intel®

per la descrizione dei file binari in formato ASCII. É utile sapere che tale formato è direttamente riconoscibile da qualsiasi programmatore di MCU, il quale procurerà di leggere da questo formato gli opcode ed a trasferirli nella memoria del microcontrollore.

Page 88: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Capitolo

33. Progetto di Rete per la Domotica

Introduzione.

Nel presente capitolo si descriveranno i vari passi da seguire per la progettazione di una rete per automazione domestica, dando uno sguardo ai concetti generali sulla Domotica ed ai relativi standard attualmente utilizzati. Per concludere si descriveranno le varie fasi che si sono seguite per la realizzazione della rete HomeNet, progetto che è in fase di sviluppo alla Facoltà d’Ingegneria dell’Università degli Studi del Sannio di Benevento ed a cui sto personalmente partecipando. Particolare risalto sarà dato alla descrizione dell’architettura hardware e software del sistema ed al protocollo di rete implementato.

Page 89: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

3.1 Progetto di un sistema per la Domotica.

Si descrivono in questa sezione i passi consigliati da seguire nella progettazione di un sistema per la Domotica avente carattere del tutto generale.

Il primo passo nella progettazione di un sistema per la Domotica è di costatare lo stato e la tendenza dell’home automation intesa come mercato e desideri dell’utente. Per fare questo una intensa ricerca bibliografica, su internet e altre fonti massive di informazione (riviste del settore) è ritenuta importante e necessaria. Quindi una parte del tempo sarà impiegata per l’analisi dello stato dell’arte.

Forti di una compenetrazione, almeno di carattere generale, si potrà impostare lo studio di quale architettura (centralizzata o decentralizzata) sia più adatta per imporvi in seguito la struttura hardware di segnalazione e controllo per gli oggetti nella casa automatizzata.

Le aspettative dell’utente, la tendenza industriale e criteri di carattere puramente ingegneristico imporranno le condizioni interne ed al contorno.

Fondamentali sono i seguenti parametri:

Costo di installazione e manutenzione e la possibilità di avere un unico supporto fisico su cui viaggiare informazioni e dati.

Difficoltà di prima installazione .

89

Page 90: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Modularità, intesa come numero e qualità degli accessori, che il sistema possiede rispetto al nucleo di base.

La comunicazione riveste un ruolo fondamentale sull’affidabilità, si consiglia perciò notevole rilievo al livello fisico (cioè ai supporti fisici e i protocolli utilizzati per il collegamento). Le funzioni che devono essere realizzate dalla rete di comunicazione sono:

Controllo, cioè scambio di messaggi tra diverse unità per operare le diverse funzioni e svolgere diagnostica.

Distribuzione di segnale, con relativo scambio di comandi di attuazione.

Dopo la definizione di quale architettura utilizzare, si potrà passare alla definizione della struttura hardware del sistema che può accogliere i requisiti fondamentali. Dopo si potrà passare allo sviluppo del software necessario alla gestione dei vari moduli funzionali. Per modulo funzionale si intende i moduli di segnalazione e di controllo o eventualmente di entrambe assemblati in un unico modulo.

La simulazione del sistema, su Personal Computer, è necessaria in fase di test e per individuare miglioramenti in fase progettazione. Il primo passo è la completa simulazione del sistema.

Se la scelta cadesse su una architettura centralizzata o parzialmente decentralizzata, occorrerà procedere alla progettazione della centrale di comando/programmazione e quindi alla simulazione della centrale di comando/programmazione collegata ai prototipi dei moduli funzionali.

90

Page 91: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Per qualsiasi scelta di architettura è necessario lo studio di come condizionare i sensori da collegare ai moduli funzionali di segnalazione e di come attuare il controllo con i moduli funzionali di controllo.

Il primo test del sistema dovrà essere effettuato sulle capacità ed affidabilità di comunicazione tra i vari moduli. Una volta verificata l’affidabilità nella dimensione spaziale della comunicazione e il potenziale esaustivo del protocollo si potrà passare ai test sui prototipi dei moduli funzionali che potranno essere effettuati con semplici sensori di contatto e per attuatori dei relais applicati a piccoli carichi luminosi e/o resistivi.

Se l’architettura scelta fosse del tipo centralizzato o semi-centralizzato, a questo punto, si potrà passare alla progettazione hardware della centrale di gestione/programmazione. I parametri funzionali imporranno il dimensionamento della capacità di calcolo ed il clock dell’unità centrale, di quanta memoria è necessaria per il funzionamento, dei vari dispositivi di supporto e l’interfacciamento con la rete. Parte del lavoro di simulazione effettuato con il Personal Computer potrà essere riversato nel software per la centrale. Questa potrà essere testata collegandola alla rete arricchita dai moduli funzionali già testati in precedenza.

A questo punto, se la procedura di progettazione (iterativa ed incrementale) è stata seguita con criterio, si può giungere ad un modello di sistema per Domotica indipendente dal mezzo fisico di segnalazione e controllo, pienamente espandibile e programmabile. Si potranno aggiungere procedure che rendano il sistema fault tollerant

(robusto) e user friendly cioè gestibile con i mezzi che l’utente ritiene

91

Page 92: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

più idonei o che rientrano nella capacità comune di uso degli elettrodomestici.

3.2 Introduzione alla Domotica.

Il termine Domotica deriva dal francese "domotique", a sua volta derivato dal latino "domus" e da "informatique", ed indica lo studio dell'integrazione e dell’automazione dei dispositivi elettronici presenti in una casa, con lo scopo di migliorare la qualità della vita. La Domotica è quindi la scienza che studia l’Automazione Domestica (Home Automation).

Anche se si parla di automazione domestica già da tempo, si può affermare che essa ha realmente stimolato l'interesse dei produttori e degli utenti solo negli ultimi anni, diventando una nuova industria di prodotti per il consumatore.

I requisiti [5] che un buon sistema di home automation dovrebbe avere sono:

Basso costo, inteso come economicità delle periferiche e della rete di interconnessione, unitamente alla semplicità di installazione della stessa.

Flessibilità intesa come modularità. La vita media di un impianto elettrico domestico è molto lunga: per questo motivo si richiede che nel tempo possono essere effettuate delle modifiche introducendo nuove periferiche o eliminandone delle vecchie in modo indolore per l'utente.

Integrazione di un vasto numero di applicazioni. Capacità di supportare diversi mezzi di comunicazione

92

Page 93: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

come i raggi infrarossi, la radio frequenza, il doppino intrecciato, e la linea di alimentazione.

Facilità di utilizzo. Qualsiasi utente deve essere in grado di utilizzare al massimo le potenzialità dell'impianto con il minimo sforzo.

Possibilità di interagire con apparecchi di marca diversa. Plug and Play. Se possibile, infatti, si vorrebbe evitare

l'intervento di un tecnico specializzato ogni volta che devono essere apportate delle modifiche all'impianto.

Molti di questi requisiti sono purtroppo in contrasto tra loro e questo è il motivo che ha portato i produttori a sviluppare delle soluzioni spesso estremamente diverse tra di loro. Alcuni hanno fatto dell'economicità il requisito fondamentale del loro sistema, spesso rinunciando all'implementazione di caratteristiche che avrebbero aumentato la soddisfazione dell'utente finale. Altri, invece, hanno sviluppato sistemi capaci di integrare un numero molto elevato di applicazioni, mettendo in secondo piano l’aspetto economico. La conseguenza di ciò è che il prodotto di un'azienda spesso è incompatibile con quello di una concorrente, dando vita ad uno scenario di mercato estremamente eterogeneo. Inoltre, questa differenza di vedute è probabilmente la causa fondamentale del mancato affermarsi di uno standard nel settore, nonostante si parli di automazione domestica già da circa venti anni.

Già dal 1984, difatti, le organizzazioni americane e internazionali hanno realizzato standard di comunicazione per automazione domestica. Ci si aspettava che questi standard fornissero un'infrastruttura che potesse stimolare lo sviluppo dei prodotti e del mercato. Tuttavia, tale sviluppo fu molto lento e questo rallentò il lavoro di completamento degli standard.

93

Page 94: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Nei primi anni '90 gli standard cominciarono a diventare popolari. Allo stesso tempo Internet divenne popolare ed alcune compagnie decisero di creare dei nuovi standard privati per sviluppare applicazioni basate su TCP/IP. Altre compagnie formarono dei consorzi privati per realizzare tecnologie di nicchia, come la trasmissione dei dati sui cavi telefonici esistenti. Tutte queste organizzazioni acquisiscono ed abbandonano in continuazione partecipanti col risultato che lo sviluppo dei prodotti è confuso e non è concentrato su un'unica stabile infrastruttura.

Il problema fondamentale dello sviluppo dell'automazione domestica è convincere il consumatore stesso dell'effettiva necessità del prodotto: un tempo i telecomandi per i televisori erano considerati un optional, oggi è impossibile vendere un apparecchio che non ne sia dotato. Invece, lo sviluppo di sistemi per l'automazione domestica è estremamente complicato a causa del fatto che l'utente è scarsamente informato dei benefici e delle possibilità del sistema. La domanda di sistemi domestici è quindi latente.

Potenziali acquirenti potrebbero essere:

Persone adulte che vogliono risparmiare tempo e desiderano una casa autonoma.

Persone anziane che desiderano assistenza per sopperire dei limiti fisici. Negli ultimi anni [6] in America la popolazione oltre i 65 anni sta crescendo rapidamente, raggiungendo circa i 35 milioni di persone, e si prevede arrivi ai 53 milioni entro il 2020. Le persone che appartengono a questa fascia di età spesso hanno una o più disfunzione che limita le loro azioni. Nonostante ciò oltre il 95% di essi desidera continuare a vivere in casa propria.

Utenti che passano molto tempo fuori casa, e che

94

Page 95: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

vogliono comunicare e controllare l'ambiente domestico dal posto di lavoro.

Tuttavia, considerando l'ampia gamma e le diversità dei desideri degli utenti risulta difficile sviluppare un sistema capace di ottimizzare i bisogni di tutti. La chiave dello sviluppo di un prodotto vincente [7] è fornire un prodotto che sia facilmente adattabile ai requisiti futuri, competitivo nei costi e che incontri le necessità dell'utente, sia quelle attese, in quanto realmente riconosciute come bisogni, sia quelle inattese, dovute alla scarsa informazione sulle nuove tecnologie o ad idee innovative. La domanda per i sistemi di automazione domestica deve quindi essere stimolata inventando nuovi prodotti e servizi: la semplice interconnessione delle applicazioni esistenti non è sufficiente. Inoltre, i prodotti realizzati devono avere una complessità interna invisibile all'utente che deve poter realizzare semplici procedure con un minimo addestramento.

3.3 Introduzione alle Reti per Domotica.

Utilizzando una rete di automazione domestica è possibile aggiungere nuove caratteristiche ai sistemi convenzionali ed anche abbassare i costi delle apparecchiature. Difatti, sistemi esistenti per il controllo domestico, come il riscaldamento e il condizionamento, la sicurezza e la gestione degli allarmi, richiedono la presenza di fili per connettere i componenti. Con i sistemi convenzionali il cablaggio e le tecnologie di comunicazione cambiano da produttore a produttore.

95

Page 96: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Tutte queste applicazioni potrebbero invece essere installate ad un costo più basso connettendole ad una rete domestica standardizzata.

In primo luogo, l'installazione di apparecchiature in un ambiente già cablato non richiederebbe ulteriori fili. Inoltre si renderebbero inutili componenti come alimentatori trasformatori e amplificatori e si potrebbe standardizzare includendo i componenti nei moduli di comunicazione. Questi potrebbero essere acquistati da un unico produttore invece che sviluppati singolarmente dalle società che si occupano di riscaldamento o di sicurezza.

Se da un lato la realizzazione di una rete domestica favorisce l'abbattimento dei costi, l'implementazione di funzionalità aggiuntive li fa inevitabilmente lievitare. Per lo sviluppo si rende quindi indispensabile un confronto costo benefici. Tuttavia, se si considerano le innovazioni introdotte, il prezzo diventa secondario ed il valore di mercato viene stabilito dai servizi e dalle caratteristiche offerte. E’ per questo motivo che spesso le analisi di mercato svolta intervistando i potenziali consumatori si sono rivelate inesatte.

La situazione mondiale nel 1997 per quello che riguarda i protocolli è mostrata in figura 3-1.

96

Page 97: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Figura 3-1: Situazione mondiale degli Standard di Automazione Domestica nel 1997.

In America si erano diffusi gli standard X-10, Cebus, LonTalk e Smart House, in Europa il BatiBus, l'EIB e l'EHS, ed in Giappone l'HBS. La figura 3-2 mostra invece la situazione odierna:

97

Page 98: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Figura 3-2: Situazione mondiale degli standard di Automazione Domestica nel 2002

In Europa sembra essersi affermata la convinzione che un conflitto di protocolli non porta nessun beneficio al mercato. Per questo motivo i tre standard esistenti nel 1997 si sono uniti dando vita ad un unico protocollo chiamato Konnex. Al contrario, la confusione è aumentata per quello che riguarda il Nord America e si possono distinguere tre tipi di protocolli:

Proprietari: appartengono ad una singola compagnia. I protocolli proprietari di solito non vengono resi pubblici e sono trattati come segreti di mercato.

Open: sviluppati da una compagnia o un consorzio di compagnie, ma pubblici.

Standard: scritti da enti nazionali o internazionali preposti al loro sviluppo.

98

Page 99: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Oltre alla confusione generata dall'utilizzo di standard diversi, le aziende hanno spesso preso strade diverse anche per quello che riguarda la realizzazione della rete di interconnessione, ovvero il collegamento tra apparecchiature, sensori, attuatori, interruttori, controllori ed interfacce per l'utente, con lo scopo di creare nuove applicazioni ed infrastrutture per la diffusione multimediale.

Le comunicazioni tra le varie apparecchiature si possono distinguere in interne ed esterne alla casa [8]. Esempi di comunicazione interna sono:

Sicurezza. Controllo ambientale e della temperatura. Gestione energia. Controllo apparecchiature. Intrattenimento (distribuzione audio e video).

Le prime quattro applicazioni possono utilizzare protocolli e mezzi trasmissivi simili. L'intrattenimento richiede invece un canale di comunicazione ad ampia capacità. Oltre queste applicazioni base, sono possibili comunicazioni verso l'esterno della casa. Per esempio il sistema di sicurezza potrebbe essere programmato per effettuare telefonate in caso di allarme ed il sistema di controllo ambientale potrebbe essere configurato in modo da essere controllato da remoto attraverso Internet. Esempi di comunicazione verso l'esterno della casa sono:

Home shopping. Home banking.

99

Page 100: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Servizi di informazione. Lavoro domestico. Telecontrollo. Telemisurazione (gas,acqua,elettricità).

3.3.1 I mezzi trasmissivi.

Nella realizzazione di un impianto di automazione domestica il mezzo trasmissivo viene ad assumere un ruolo fondamentale in quanto da esso dipende la realizzazione di una rete che sia poco invasiva e facilmente espandibile. Possibili mezzi per realizzare la rete di interconnessione sono:

Onde convogliate. Linee telefoniche. Infrarossi. Radiofrequenze. Altre tecnologie wireless. Doppino intrecciato. Cavo coassiale. Fibra ottica.

Alcuni di essi vengono utilizzati quando si vuole minimizzare l'installazione: è il caso delle onde convogliate, infrarossi, radio ed altre tecnologie wireless. La fibra ottica quando sono richieste bande molto ampie, ossia bit rate elevati. Particolarmente importante è il

100

Page 101: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

protocollo utilizzato, il quale deve poter essere facilmente adattato per l'utilizzo su mezzi differenti. Questa caratteristica consente di minimizzare l’hardware necessario per collegare reti diverse.

Di seguito analizzo brevemente le diverse soluzioni [9].

Onde convogliate su linee di alimentazione.

Il vantaggio di utilizzare le onde convogliate risiede nel fatto che viene sfruttata una risorsa già esistente, come le linee di alimentazione, rendendo inutile l'installazione di nuovi cavi. Possibili problemi sono:

Rumore ambientale. Variazione dell'impedenza di carico. Interferenze.

I primi due problemi possono essere risolti attraverso un buon disegno e attraverso un'attenta opera di rilevazione e correzione degli errori. In particolare, dovrebbero essere note le caratteristiche del rumore. Tecniche che prevedono la semplice ritrasmissione del segnale risultano in questo caso non idonee ed occorrono delle metodologie capaci di introdurre delle ridondanze nel pacchetto trasmesso, in modo da poter correggere eventuali errori. Una limitazione è invece la bassa velocità di trasmissione, collegata alla banda passante del cavo. Per questi motivi l'utilizzo delle onde convogliate sui cavi di alimentazione è limitato ai casi in cui si voglia

101

Page 102: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

controllare e monitorare apparecchiature, in particolare quando queste sono connesse alla linea di alimentazione, anche se ultimamente si stanno sviluppando delle tecnologie che cercano di superare questi limiti.

Linea telefonica.

Nella maggior parte dei paesi le case hanno già installato un impianto telefonico. Le linee telefoniche sono in grado di trasmettere segnali che richiedono bande molto elevate, come ad esempio la comunicazione voce e dati. Con le nuove tecnologie, come HomePNA [10] è possibile condividere connessioni Internet, stampanti, scanner, diffondere musica o immagini con velocità fino a 10 Mbps.

Infrarosso.

La trasmissione infrarossa è un utile metodo di comunicazione senza fili, ma è confinata all'utilizzo all'interno di una singola camera, in prossimità del ricevitore. Un tipo di modulazione utilizzabile è la pulse modulation, comunemente utilizzato per i telecomandi TV. Difatti, impulsi di alta intensità e breve durata comportano bassi assorbimento di potenza, resistenza al rumore e possono essere facilmente ricevuti. I problemi principali che si possono incontrare nell'utilizzo degli infrarossi sono i generatori di rumore, come ad

102

Page 103: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

esempio le lampade fluorescenti. La standardizzazione in questo campo è particolarmente importante perché ci potrebbero essere nella stessa stanza più periferiche che utilizzano questo metodo di comunicazione ed occorre quindi evitare le mutue interferenze. Ma trasmissione infrarossa può essere utilizzata insieme a quella ad onde convogliate, riservando a quest'ultima il compito della comunicazione tra le varie stanze. In questo caso, in ogni camera dove si intende utilizzare l'assegnazione infrarossa deve essere presente un convertitore il quale trasforma il segnale in una grandezza compatibile con il secondo mezzo trasmissivo.

Segnalazione radio.

La trasmissione radio in bassa potenza è un mezzo al naturale per realizzare semplici controlli dei monitoraggi nel caso in cui si voglia minimizzare l'installazione. Questo mezzo copre facilmente l'intera casa senza bisogno di ripetitori, ma occorre evitare di trasmettere segnali indesiderati alle case adiacenti. Il problema è il medesimo che si scontrava nell'utilizzo delle onde convogliate, anche se in questo caso la semplice soluzione dell'adozione di un filtro non può essere adottata. La tendenza è quella di alzare il più possibile la frequenza di trasmissione, anche se in questo caso diviene problematico il posizionamento delle periferiche. Un problema nella standardizzazione risiede nel fatto che le bande consentite di frequenza variano da paese a paese.

103

Page 104: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Altre tecnologie senza fili.

Esistono numerose soluzioni che possono essere usate in ogni tipo di rete. Tra le più diffuse ricordiamo Wireless LAN, HomeRF, Bluetooth ed IRDA.

Doppino intrecciato.

Il doppino intrecciato è probabilmente il mezzo di trasmissione più semplice, ma richiede un maggiore lavoro di installazione rispetto ai mezzi fino ad ora considerati ed occorre ricercare un compromesso tra il bit rate, la topologia della rete e la distanza massima. All'interno di una tipica abitazione si pone solitamente una lunghezza totale di 200 metri e di un bit rate almeno pari a 100 kbit/s, anche se la maggior parte delle applicazioni richiede delle velocità molto minori. Questa tecnica può essere affiancata a quella ad onde convogliate, in modo da minimizzare i costi nel caso in cui si debbano connettere un elevato numero di sensori.

Cavo coassiale.

104

Page 105: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

La distribuzione di segnali audio e video richiede dei mezzi trasmissivi a capacità più elevata. Per motivi di flessibilità bisognerebbe posizionare una presa in ogni stanza, anche se non è necessario che siano connesse tutte contemporaneamente. Le reti realizzate con questo mezzo dai vari standard mondiali si differenziano per topologia, massima distanza e numero di prese. Importanti considerazioni che bisogna compiere prima di intraprendere la realizzazione della rete di interconnessione con questo mezzo riguardano la semplicità di installazione che è direttamente dipendente dalla sezione del cavo. Tuttavia, più piccolo è il cavo maggiore sarà l'attenuazione del segnale, il che impone un vincolo addizionale in fase di progettazione.

Fibra ottica.

L'importanza fondamentale della fibra ottica risiede nella possibilità di implementare applicazioni future. Le caratteristiche fondamentali sono l'attenuazione praticamente assente e la velocità di trasmissione estremamente elevata. Attraverso questo mezzo è possibile la trasmissione di più canali video, anche se la realizzazione della rete con questo mezzo è estremamente costosa. Se si considera inoltre che la maggior parte delle applicazioni domestiche non richiedono un bit rate estremamente elevato si capisce come mai la fibra ottica è di gran lunga il mezzo trasmissivo meno utilizzato.

105

Page 106: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

3.3.2 Gli Standard.

Di seguito riporto quali sono gli standard più diffusi a livello mondiale ed i mezzi trasmissivi impiegati.

X-10.

L'X-10 [11] è uno standard storico dell'automazione domestica, presente ormai da vent'anni in America. Ha avuto larga diffusione anche in Europa e sembra mantenere, grazie anche alle innumerevoli periferiche disponibili sul mercato, una salda posizione nel panorama delle soluzioni dell'automazione domestica.

È costituito da un'unità centrale che invia dei comandi ai dispositivi periferici utilizzando un sistema ad onde convogliate su rete elettrica per la trasmissione dei dati. L'utilizzo della rete elettrica esistente si traduce in una elevata economicità. È possibile connettere da una a 256 periferiche ed è possibile mandare comandi a più periferiche semplicemente assegnando alle stesse il medesimo indirizzo. Tuttavia, può accadere che in particolari situazioni le periferiche incontrino delle difficoltà nella comunicazione. È possibile infatti che ci siano dei generatori di rumore sulla linea elettrica: è il caso di motori e di elettroniche molto avanzate come quelle di alcuni grossi schermi tv. Per risolvere il problema è sufficiente porre un filtro a valle delle periferiche che generano rumore. Un secondo problema

106

Page 107: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

può nascere quando il trasmettitore si trova su una fase della rete elettrica e il ricevitore sull'altra. Il problema può essere risolto utilizzando un accoppiatore di fase chiamato SignaLinc. Una recente indagine di mercato rivela che i prodotti compatibili X-10 possono essere trovati in oltre 10 milioni di case americane e questo a grazie ai vantaggi che presentano rispetto a prodotti concorrenti:

Basso costo. Possibilità di non dover utilizzare nuovi cavi. Semplicità di installazione. Centinaia di prodotti compatibili. Longevità: prodotti per l’ X-10 esistono da oltre vent'anni.

CeBus.

CEBus [12] è l'acronimo di Consumer Electronics Bus: fu sviluppato in America nel 1984 dall'EIA (Electronic Industries Association) con lo scopo di standardizzare la segnalazione di infrarossi usata per il controllo remoto di apparecchiature, al fine di evitare incompatibilità o interferenze. Le caratteristiche fondamentali dello standard, oltre alla flessibilità e al costo relativamente basso, sono:

Possibilità di introdurre automazione anche in case esistenti.

Utilizzare una strategia di comunicazione distribuita in modo da non rendere necessario un controllore centrale per la comunicazione tra le apparecchiature. Il controllo centralizzato è supportato come opzione dal costruttore.

107

Page 108: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Capacità di aggiungere o rimuovere apparecchiature e componenti alla rete senza interrompere il funzionamento e richiedendo, da parte dell'utente, una minima configurazione della rete.

Lo standard CeBus definisce numerosi mezzi di comunicazione:

Le linee di potenza. Il doppino intrecciato. Il cavo coassiale. I segnali infrarossi. I segnali radio. Le fibre ottiche. Il bus Audio-Video.

In questo modo è possibile far comunicare le periferiche tramite le linee di potenza, e quindi senza dover introdurre degli impianti elettrici supplementari, mentre si possono usare segnali infrarossi o segnali radio per comunicare con il controllo remoto. La versatilità dei mezzi di comunicazione consente inoltre di poter utilizzare il protocollo sia in case già esistenti sia in strutture nuove. In quest'ultimo caso l'adozione di mezzi trasmessi come il cavo coassiale con le fibre ottiche consente l'implementazione di funzioni avanzate. La velocità di trasmissione è 8kbit al secondo ed è possibile indirizzare i messaggi alla singola periferica, a gruppi di periferiche o a tutte le periferiche. Un componente può appartenere tanto ad un singolo quanto a più gruppi.

108

Page 109: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Lon Talk.

Il protocollo Lon Talk [13] è stato sviluppato dall'americana Echelon nel 1988. Il funzionamento della rete si basa sul Neuron Chip, componente realizzato per fornire intelligenza alle periferiche ad un basso costo. Il chip include tre processori che forniscono sia la capacità di comunicazione che quella di elaborare applicazioni e viene commercializzato da aziende come Motorola e Toshiba. Ogni periferica collegata alla rete deve essere dotata di questo chip.

Le caratteristiche principali dello standard sono:

Indipendenza dal mezzo trasmissivo: le periferiche possono comunicare su ogni tipo di supporto fisico. È possibile inoltre implementare reti miste ovvero realizzate con diversi mezzi trasmissivi collegati tra loro. A seconda del mezzo utilizzato, si hanno differenti caratteristiche in termini di massimo numero di periferiche collegabili, velocità di comunicazione e massima distanza tra due componenti.

Possibilità di collegare 32.385 periferiche, per un massimo di 256 gruppi.

Indirizzamento ad una singola periferica, ad un gruppo di periferiche o a tutte le periferiche.

Minimizzazione dei costi di installazione e manutenzione. Capacità di poter riconfigurare facilmente i collegamenti

tra le periferiche.

109

Page 110: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

SmartHouse.

Il sistema SmartHouse è stato creato nel 1984 da un gruppo di 25 ditte produttrici. Lo scopo principale era quello di unificare in un unico sistema tutti gli impianti esistenti in un edificio in modo da poter economizzare il costo totale evitando di dover chiamare più installatori.

In origine [14] il sistema SmartHouse prevedeva tre cavi multiconduttore installati durante la costruzione dello stabile e che andavano a sostituire l'intero cablaggio. Attraverso questi tre cavi venivano erogati i comuni servizi quali l'alimentazione, controllo, telefonia, con l'aggiunta di un bus dati realizzato attraverso conduttori coassiali. Ovviamente questo tipo di soluzione non era adottabile per case già costruite. Un sottosistema di controllo e comunicazione era responsabile della coordinazione, delle operazioni, e della gestione delle funzioni della casa. Le sue due funzioni primarie erano il controllo dei consumi energetici e la gestione dei messaggi scambiati tra le periferiche. Un controllore di sistema si occupava della gestione del sottosistema di controllo e comunicazione. Esso era formato da un certo numero di porte input/output, due microprocessori, memoria volatile e non volatile. Realizzato su una singola scheda elettronica, includeva il software necessario nella gestione delle comunicazioni e il controllo delle funzioni. Il massimo numero di nodi era pari a 900. Col tempo era stata avvertita ovviamente la necessità di adottare il sistema anche in edifici esistenti.

Circa cinque anni fa è stato formato un consorzio privato per poter creare delle specifiche per la trasmissione dati ad alta velocità

110

Page 111: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

sulle linee telefoniche. Allo stesso tempo produttori di tecnologie per linee di alimentazione hanno dato inizio allo sviluppo delle medesime potenzialità sui cavi di alimentazione. Il vantaggio nell'utilizzo di questo mezzo trasmissivo risiede nel fatto che ovunque ci sia una presa di corrente c'è anche un accesso alla rete domestica. Per questo motivo, la seconda alternativa sembrava essere la migliore in quanto in un edificio sono decisamente maggiori le prese di corrente che non quelle telefoniche. Tuttavia, anche in questo caso lo sviluppo è stato rallentato dall'elevato numero di aziende che lavoravano nello sviluppo delle tecnologie per linee di alimentazione. Nel 2000 queste aziende si sono unite in un consorzio privato, con lo scopo di fornire una tecnologia entro un anno. Attualmente stanno testando tale tecnologia sul campo e non sono ancora stati pubblicati i risultati.

L'ultima tecnologia presa in esame dal protocollo SmartHouse per realizzare la rete domestica è la radiofrequenza, per la quale esistono tre tecnologie concorrenti: Wi-Fi, HomeRF e Bluetooth, tutte operanti a 2,4 GHz. Tuttavia, queste tecnologie hanno mostrato un decadimento di prestazioni se utilizzate in particolari ambienti.

KNX.

I tre standard europei Batibus [15], EIB [16] ed EHS [17] si sono uniti nel maggio del 1999 con lo scopo di creare uno standard unico per l'automazione domestica in Europa. Difatti, ognuno dei tre standard era particolarmente adatto in determinati campi di applicazione, come quello residenziale o commerciale, ma nessuno

111

Page 112: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

dei tre copriva la gamma completa delle applicazioni. Il progetto, denominato progetto convergenza, ha dato vita alla Konnex

Association. Scopo dell'associazione è diffondere l'esperienza e le risorse dei tre standard europei per promuovere un singolo protocollo di comunicazione come nuovo standard per l'automazione domestica. Il protocollo prende il nome di KNX e distingue tre diversi modi di configurazione e quattro differenti mezzi trasmissivi. I tre modi di configurazione sono:

Modo A: metodo di configurazione automatico, adatto per piccoli consumatori.

Modo E: metodo di configurazione semplice, adatto per applicazioni professionali di base.

Modo S: metodo di configurazione liberamente programmabile, adatto per funzionalità e applicazioni complesse.

I mezzi trasmissivi ammessi sono:

Il doppino intrecciato. Le onde convogliate. La radiofrequenza. Gli infrarossi.

Caratteristica del protocollo è la decentralizzazione del controllo, anche se, qualora sia richiesto, è possibile realizzare delle configurazioni a controllo centralizzato La topologia della rete è del tutto arbitraria, e non sono necessari resistori di terminazione. Nel caso di utilizzo del doppino intrecciato questo viene utilizzato anche

112

Page 113: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

per alimentare le periferiche collegate alla rete. Le caratteristiche quali massimo numero di periferiche collegabili e massima lunghezza del segmento elettrico variano ovviamente a seconda del mezzo utilizzato: nel caso del doppino è possibile connettere sulla stessa linea senza ripetitori fino a 64 periferiche per una lunghezza totale di 1000 metri. È possibile inoltre collegare tra di loro fino ad un massimo di 16 linee tramite accoppiatore di linea, identificando in questo modo delle zone. Il massimo numero di zone indirizzabili è pari a 15 e quindi il numero massimo di periferiche collegabili è pari a 15.360. Utilizzando invece i ripetitori sulla stessa linea è possibile collegare fino a 256 periferiche, portando il numero massimo di dispositivi a 61.440, indirizzabili singolarmente o in gruppo.

HBS.

L’Home Bus System (HBS) [18] è stato creato da un consorzio di società giapponesi. I mezzi trasmessi supportati sono il doppino intrecciato, il cavo coassiale, le onde convogliate su linee di potenza e la trasmissione via radio. Le applicazioni includono il controllo degli apparecchi domestici, il controllo audio-video e l'accesso a servizi esterni alla casa quali lo shopping e l'assistenza medica a distanza.

3.3.3 Lo scenario attuale.

113

Page 114: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

Nelle case moderne [19] esistono numerose tecnologie audio e video come televisori, videoregistratori e personal computer. Il mercato si sta muovendo nella direzione della ricerca di una tecnologia che consenta la loro integrazione con altre elettroniche ed apparecchiature domestiche all’interno di una rete di interconnessione comune. Lo schermo del televisore, per esempio, può divenire una piattaforma multimediale attraverso cui controllare le altre periferiche e potrebbe anche essere utilizzato per l’accesso ad Internet.

Il problema è quello di trovare una tecnologia che consenta l’interconnessione di periferiche che svolgono compiti distinti e che quasi sempre sono di produttori diversi. Per questo motivo stanno nascendo una serie di standard, attraverso i quali implementare nuove applicazioni. Per esempio, si può immaginare di programmare il videoregistratore attraverso Internet anche stando fuori casa, di utilizzare lo schermo del televisore per videoconferenze, di accendere il riscaldamento della casa dall’interno ed altro ancora. La condizione più importante per la realizzazione di questo scenario è la interoperabilità tra le periferiche dei diversi costruttori. Inoltre l’utente finale richiede una singola rete di interconnessione con un’unica interfaccia piuttosto che una serie di sottoreti per le diverse periferiche. Tutte queste richieste portano alla nascita di una serie di standard i cui più importanti attualmente sono HAVi [20], Jini e HomeAPI.

114

Page 115: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

3.4 Progetto HomeNet.

Dopo aver introdotti i concetti generali sulla Domotica ed i vari standard di comunicazione utilizzati nelle reti, si descriveranno di qui in avanti i vari aspetti legati alla progettazione della rete HomeNet.

3.4.1 Architettura generale.

L’architettura generale della rete HomeNet è di tipo master/slave centralizzato, con il dispositivo master, la centralina, che va ciclicamente ad interrogare i vari nodi della rete, i dispositivi slave, ai quali è connesso mediante bus.

L’alternativa all’architettura centralizzata sarebbe stata di tipo decentralizzato: nessun nodo master e tanti nodi periferici che autonomamente ed in modo del tutto asincrono potevano rispondere ad eventuali cambiamenti di stato relativi ai loro ingressi inviando dei messaggi di comando o di interrogazione ad altri nodi. Gli svantaggi di una tale architettura di rete sono molteplici:

Ogni nodo necessita del codice non solo relativo alla gestione delle sue linnee di ingresso e di uscita, oltre alla

115

Page 116: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

PROGETTO DI RETE PER LA DOMOTICA

gestione del protocollo di rete, ma anche della strategia di controllo vero e proprio che, nel caso di architettura centralizzata, è invece relegata al solo nodo master.

L’installazione dell’impianto di conseguenza è più complessa dovendo prevedere dei singoli sattaggi per ogni nodo e richiede quindi degli appositi installatori specializzati.

L’altra faccia della medaglia è che un buon sistema decentralizzato è sicuramente più robusto per quanto riguarda eventuali guasti nei nodi che non dovrebbero compromettere il funzionamento dell’intera rete. Nel caso centralizzato invece se la centralina si guasta l’intera rete va in blocco.

La topologia della rete è ad anello aperto, necessita quindi di terminatori alle due estremità e non prevede alcuna struttura gerarchica a livello fisico: in sostanza tutti i nodi sono direttamente connessi al master. Si impone solo di assegnare un indirizzo di nodo ed uno di gruppo: il primo per identificare univocamente un nodo all’interno di un gruppo, il secondo per eseguire una sorta di gerarchia di più alto livello; questo perché per la gestione della rete potrà essere utile separare un gruppo di nodi (ad esempio appartenente al settore antifurto) da un altro (ed esempio nodi appartenenti al settore climatizzazione).

Il nodo master quindi ad intervalli regolari, od in base ad una politica di scheduling prestabilita magari anche in relazione a delle priorità, va ad interrogare i nodi periferici pretendendo delle risposte: questi quindi possono iniziare una trasmissione sul bus solo se interrogati dalla centralina. Poiché il protocollo prevede anche dei

116

Page 117: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

messaggi di tipo broadcast12, c’è la possibilità che contemporaneamente più nodi rispondano con dei messaggi al master, e di qui la possibilità di collisione su bus. Quindi il protocollo ha bisogno di implementare particolari routine capaci di rilevare le eventuali collisioni e di ovviare ad esse indicando ai nodi di ritrasmettere i frame che sono collisi. C’è inoltre un ulteriore controllo da effettuare sui dati che è quello della validità degli stessi, che possono venire alterati durante la trasmissione sul mezzo fisico.

A più basso livello il protocollo di rete utilizzato è l’RS48513 che verrà descritto in seguito nella sezione 3.4.5. Esso utilizza come mezzo fisico un doppino intrecciato a due soli fili; ulteriori due fili saranno aggiunti per portare l’alimentazione ai singolo nodi che quindi non necessitano di essere alimentati autonomamente.

Quindi in sostanza la rete prevede un protocollo a basso livello (fisico) che è l’RS485 ed in più uno di livello superiore che garantisce una tolleranza alle perdite su bus che possono seguire da collisioni o da disturbi sul mezzo fisico.

Si è visto in precedenza che in Domotica vengono oggigiorno utilizzati parecchi protocolli di comunicazione, alcuni dei quali sono proprietari altri invece sono open. Da analisi svolte è risultato particolarmente costoso sviluppare una rete per Domotica con i primi, soprattutto per quanto riguarda i componenti periferici da collegare alla rete; per quanto riguarda i secondi invece è risultato particolarmente arduo trovare documentazioni complete che

12 Modalità di trasmissione da una sorgente a tutti i destinatari.13 Il prefisso “RS” sta per “recommended standard”, ossia standard raccomandato, ma in effetti il nome corretto sarebbe EIA/TIA-485 e deriva dall’associazione che lo ha definito, the Electronics Industry Association.

Page 118: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

descrivessero in dettaglio il protocollo, in alcuni casi addirittura tali documentazioni erano fornite solo a pagamento.

Di qui la scelta di utilizzare un protocollo che è molto usato, soprattutto in ambito industriale per l’alta immunità ai disturbi, e di cui è facile trovare le specifiche tecniche e relativamente al quale è possibile trovare parecchia componentistica elettronica che quindi potrà risultare idonea per ogni nostra applicazione.

3.4.2 Architettura hardware del nodo periferico.

In figura 3-3 è mostrata l’architettura hardware del generico nodo periferico della rete.

Il livello fisico della rete è gestito dal transceiver RS485 che interfaccia il doppino di comunicazione al microcontrollore convertendo i livelli elettrici dell’RS485 in livelli elettrici TTL (0-5 Volt) e viceversa: in questo modo è possibile adattare i segnali dell’MCU in segnali RS485 e viceversa. La comunicazione tra il transceiver RS485 e l’MCU avviene mediante tre soli piedini del PIC16F876, utilizzando la comunicazione seriale dell’ USART14 settata in modalità asincrona a 19200 b/s, con pacchetti ad 8 bit, nessuna parità ed un bit di stop.

14 Si veda la sezione USART del paragrafo 2.2.9.

Page 119: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Figura 3-3: Architettura hardware del nodo periferico.

Il piedino DE (Driver Enable) viene utilizzato per abilitare il transceiver in trasmissione ed a trasformare il segnale TTL inviato dal PIC tramite il piedino TX in un segnale RS485. In condizioni di normale funzionamento il transceiver viene mantenuto dal PIC in modalità di ricezione. Tramite il piedino RX il PIC riceve i dati provenienti dal bus ed opportunamente convertiti dal transceiver.

Una coppia di fili trasporta l’energia fornita dal nodo master per alimentare i circuiti elettronici del nodo: 12 Volt – 1 A continui sono ritenuti sufficienti. Essendo la circuiteria del nodo alimentata a 5 Volt allora l’alimentazione di 12 Volt fornita al nodo viene trasformata in 5

Linea RS 485

PIC

APPLICAZIONE

LM7805 16 Mhz

RS 485TRANSCEIVER

RX TX DE

5 V

indirizzo nodo

clock

12 Volt

indirizzo gruppo

Page 120: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Volt stabilizzati mediante un circuito integrato del tipo mostrato in figura (LM7805).

L’indirizzo del nodo è dettato dallo stato di due DIP switch che impongono un valore su 16 bit all’MCU (8 bit per l’indirizzo di nodo e 8 bit per l’indirizzo di gruppo). Escludendo di utilizzare 16 linee dell’MCU per la gestione apposita degli indirizzi, si è pensato di serializzare i 16 bit totali di indirizzo mediante due shift-register15 così da impiegare in totale solo 4 piedini a tale scopo. I bit ottenuti uno dopo l’altro verranno opportunamente salvati in due registri ad 8 bit dell’MCU che conterranno quindi gli indirizzi nodo e di gruppo del corrispondente nodo: questa procedura verrà eseguita solo una volta, al reset dell’MCU, ed è particolarmente utile in quanto permette di configurare manualmente gli indirizzi di ogni nodo semplicemente settando 16 semplici switch.

In figura 3-4 è mostrato come viene gestito il DIP switch e la sua interconnessione allo shift-register: si è utilizzato l’integrato 74LS165, il cui datasheet [21] descrive la serializzazione che si svolge in più fasi:

1. Alzare PL (Parallel Load), tramite il piedino RC5 del PIC.2. Abbassare PL (Parallel Load): a questo punto i dati

paralleli in ingresso sono stati caricati.3. Ad ogni fronte di salita di CP (CP1 se teniamo CP2 basso,

oppure CP2 se teniamo CP1 basso) si manda in uscita su Q7 (piedino RC5 del PIC) il valore in ingresso al pin D7, quindi al prossimo fronte di salita di CP si ha quello in ingresso al pin D6 e così via fino ad arrivare all’ultimo, D0,

15 Registri a scorrimento che permettono di serializzare in uscita i loro ingressi paralleli.

Page 121: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

dopodiché non si avranno più variazione su Q7, per cui resterà stabile il valore dell’ultimo bit in ingresso, ossia D0.

Figura 3-4: Schema gestione DIP switch.

Visto il comportamento del dispositivo bisognerà fare attenzione a valutare significativi tra i dati serializzati solo i primi 8, per cui i fronti di salita che l’MCU dovrà generare nell’operazione sono solo 8.

I pin dell’MCU che devono essere riservati a tale operazione sono 3:

2 in uscita: RC3 ed RC2; 1 in ingresso: RC5.

Page 122: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Per ottenere l’altro indirizzo si ha lo stesso schema ripetuto, con il solo accorgimento di pilotare il caricamento parallelo (PL) mediante un piedino diverso dell’MCU (che quindi non sarà più RC2) in modo tale da separare le due fasi: una per l’indirizzo di gruppo e l’altra per quello del nodo.

In Appendice verrà mostrato il codice implementato per la gestione dei DIP switch.

3.4.3 Architettura software del nodo periferico.

In figura 3-5 è mostrata l’architettura software del nodo periferico: è strutturata in livelli secondo quanto descritto di seguito.

Al livello più basso si trova l’hardware dell’USART del PIC che, come abbiamo visto, si occupa della trasmissione e ricezione dei dati in modalità sariale asincrona verso e dal transceiver RS485. Con questo livello comunica direttamente lo strato di software superiore, il protocollo di comunicazione, il quale si occupa di organizzare i dati da trasmettere su rete e di ricevere e controllare la validità dei dati ricevuti dalla rete.

Page 123: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Figura 3-5: Architettura SW del nodo periferico.

Un livello più in alto si trova l’applicazione utente che è il programma di controllo dell’utente, il quale comunica direttamente con il protocollo di comunicazione da un lato e con le linee di I/O dall’altro: il suo compito in sostanza è quello di gestire le funzionalità locali del nodo, come la lettura dello stato delle linee di ingresso o il controllo dello stato delle linee d’ uscita secondo quanto previsto dall’applicazione stessa. In tutto ciò il programma utente non deve preoccuparsi della gestione delle numerose attività inerenti alla trasmissione e ricezione a basso livello, gestite, come detto, dal software di gestione del protocollo di comunicazione a livello inferiore.

HW dell’USART

applicazione utente

buffer TX buffer RX

protocollo di comunicazione

linee di ingresso/uscita

TRANSCEIVER RS485

Page 124: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

E’ proprio questo il motivo per cui il software è stato progettato in livelli.

3.4.4 Protocollo di comunicazione.

In questa sezione viene descritto in dettaglio come avviene la gestione del protocollo di comunicazione via software: il suo compito è quello di gestire i dati provenienti dal bus ed opportunamente condizionati dal transceiver, facendo in modo di prelevare i singoli byte dall’USART e salvarli in appositi registri pronti ad essere processati dall’applicazione utente. Viceversa in trasmissione il suo compito è quello di prelevare i byte precedentemente caricati in registri appositi dall’applicazione e inviarli all’USART rispettando i vincoli temporali imposti dal protocollo di rete. Mediante l’USART i dati verranno trasmessi al transceiver e di qui sul bus.

Il protocollo è simile al CSMA/CD (Carrier Sense Multiple Access

with Collision Detection) utilizzato comunemente nelle reti Ethernet, che prevede la rilevazione delle collisioni e conseguente ritrasmissione con l’accorgimento di aggiungere un ritardo casuale per evitare nuove collisioni. La rilevazione delle collisioni avviene direttamente in ogni nodo che quando trasmette un byte lo riceve anche andando a controllare che i due coincidano: ciò è possibile grazie al modulo seriale dell’USART che è settato in modalità asincrona full-duplex (si veda sezione 2.2.9–USART). Un controllo ulteriore sulla validità dei messaggi è ottenuto mediante l’uso di ACK

Page 125: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

(Acknowledgment) e NACK (Not Acknowledgment): sono messaggi di un solo byte che il nodo ricevente deve inviare al mittente per indicargli che i dati ricevuti sono corretti o meno. Questo test viene effettuato da ogni nodo all’atto della ricezione di un frame mediante il codice CRC16 a 16 bit.

Lo schema generale dell’architettura del software è mostrato in figura 3-6.

Figura 3-6: Schema a blocchi del protocollo di comunicazione.

16 Cyclic Redundancy Check (controllo a ridondanza ciclica): è un particolare codice che calcolato sui byte di un frame produce un numero univoco, che nel caso specifico è di 16 bit. Viene calcolato dal nodo mittente ed inserito nell’opportuno campo a 16 bit. Il ricevente effettua il calcolo sui byte ricevuto e confronta il risultato con il campo CRC ricevuto nel frame: se i due coincidono allora non c’è stato errore, altrimenti c’è stata corruzione sul mezzo fisico.

reset

INIT

Task in

Task out

Invia pacchetto

Loopinfinito

Tx buffer

USART_RCIF_Handler

RX buffer

TMR0_TOIF_Handler

TMR0_task_1ricarica timer0

TMR0_task_2aggiorna timer sistema

TMR0_task3test pacchetto rx

Timer0

USART TX

RX flag

TX flag

USART RX

Interrupt RCIFriceve un carattere

TOIF interrupt1 ms

RS 485transceiver

RX

TX

DE

processo

Page 126: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Al reset dell’MCU viene eseguita la sezione di codice relativa all’inizializzazione del PIC (INIT) e delle sue aree di memoria usate sia per la gestione del protocollo che per quella del programma utente. Tutto quanto segue invece viene ripetuto in un ciclo infinito a partire dalla sezione “Task in” che si occupa di controllare se ci sono dati pronti ricevuti dall’USART ed eventualmente di prelevarli: si va a testare il bit “RX flag” e se è alto vuol dire che ci sono dati pronti quindi si può procedere a prelevarli da “RX Buffer”. Per abilitare di nuovo la ricezione di altri byte non bisogna dimenticarsi di azzerare il bit “RX flag”.

A questo punto se il programma utente lo richiede è possibile processare i dati ricevuti: questo avviene nella sezione “processo”.

La fase successiva è quella relativa al caricamento del registro “TX buffer” dei dati da trasmettere. Prima di ciò bisogna accertarsi che tale buffer sia libero, controllando che il bit “TX flag” sia a 0: se ciò è vero si carica il buffer dei dati da trasmettere specificando anche la lunghezza in byte di tali dati e l’indirizzo destinazione e settando ad 1 il bit “TX flag” per inizializzare la fase di trasmissione. Nel caso “TX flag” sia ancora ad 1 vuol dire che è in fase di trasmissione un frame precedente per cui bisogna attendere che termini.

A questo punto si entra nella sezione “Invia pacchetto” che provvederà ad inviare i dati mediante l’USART ed a resettare il bit “TX

flag” per permettere ulteriori trasmissioni se la trasmissione avrà buon esito. In caso contrario si procederà con altri tentativi fino ad un

Page 127: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

massimo di tre: se si avrà sempre una condizione di errore allora verrà settato il bit “TX error”.

Da qui il software provvederà a riprendere l’esecuzione dalla sezione “Task in” ed il tutto verrà ripetuto.

Il modulo “Timer0” viene utilizzato per la gestione delle temporizzazioni relative al protocollo mentre la segnalazione dell’arrivo di pacchetti avviene mediante l’USART che lo segnala mediante un’interruzione che va a settare il bit “RX flag” il quale a sua volta viene direttamente testato nell’applicazione.

3.4.5 Il livello fisico.

Come detto in precedenza, la comunicazione tra nodi della rete su bus avviene mediante protocollo RS485 utilizzando una coppia di conduttori in configurazione differenziale garantendo così un’elevata immunità ai disturbi come le interferenze elettromagnetiche. In effetti nei sistemi bilanciati differenziali la tensione associata alla trasmissione di un singolo bit è misurata come differenza di potenziale tra due fili, tra loro identici e pilotati da trasmettitori con la stessa impedenza di uscita: se la tensione è maggiore su uno dei fili il valore logico è associato ad uno “zero”, se è minore ad un “uno”. Non ha invece nessuna importanza la tensione dei due fili rispetto a massa [22]. La tensione sui due fili in genere varia tra -5 e +5 Volt.

Senza entrare in ulteriori dettagli di natura elettrica è d’uopo rammentare che questo standard prevede l’interconnessione di più

Page 128: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

dispositivi su un'unica linea o bus. Di conseguenza oltre allo stato logico “uno” e “zero” è previsto anche uno stato detto “Idle” o ad “alta impedenza”, in cui non si va in alcun modo ad influenzare la linea stessa in modo da scongiurare collisioni se qualche altro dispositivo è in trasmissione; in effetti in tale stato l’elettronica appare non fisicamente collegata alla linea di comunicazione. Il nodo della rete si trova in “Idle” quando il piedino DE del PIC si trova allo stato logico “0”, mentre in trasmissione il piedino DE dovrà essere settato ad “1”.

La rice-trasmissione dei dati è seriale half-duplex asincrona, ove la singola unità è un byte, a cui va aggiunto un bit di stop. Non viene utilizzato alcun bit di parità per il controllo d’errore su tutti i byte, cosa che viene implementato mediante l’utilizzo del codice CRC a 16 bit all’interno di ogni frame come visto in precedenza. Per ogni byte è trasmesso per primo il bit meno significativo (LSB, Least Significant

Bit). Il bit di start è allo stato elettrico opposto allo stato d’attesa, ossia è all’ “1” logico, mentre il bit di stop è allo stato elettrico dello stato di attesa, ossia allo “0” logico, secondo quanto mostrato in figura 3-7.

Figura 3-7: Trasmissione seriale su Bus.

Page 129: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Utilizzando un classico doppino telefonico del tipo AWG24 la velocità di trasmissione dei dati in b/s (Baud) può arrivare ai 10M (M=mega=

) per brevi distanze, ma per distanze maggiori tende a scendere notevolmente. Alle massime distanze imposte dallo standard, che è di circa 1200 metri, il Baud scende a circa 100K (K=kilo= ). Limiti sono imposti anche sul numero massimo di nodi su una linea; tale limite è dovuto al fan-out dei transceiver, che nel caso particolare di quello utilizzato è pari a 128. E’ comunque possibile utilizzare ripetitori in modo da estendere la lunghezza massime della linea e di aumentare il numero massimo di nodi.

Tutti i dispositivi si trovano normalmente in stato di ricezione ed il bus in stato di riposo. La trasmissione su bus può iniziare da un nodo non appena il bus risulti libero e se ovviamente è stato precedentemente interrogato dalla centralina. In figura 3-8 è mostrata l’interconnessione PIC – transceiver RS485.

Figura 3-8: Comunicazione transceiver-PIC.

Page 130: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

3.4.6 Il formato dei messaggi.

Il protocollo HomeNet prevede due soli formati per i messaggi: il primo costituisce il cosiddetto frame ed è il formato del messaggio di ogni nodo sorgente; il secondo è il formato del nodo destinazione che ha ricevuto il messaggio e risponde con un singolo byte, come verrà descritto in seguito.

Nel primo caso il formato avrà i campi mostrati in figura 3-9.

Figura 3-9: Formato messaggio del primo tipo (frame).

Si ha una prima parte che costituisce la cosiddetta intestazione (header). Essa consta dei seguenti campi ad 8 bit:

DG: Indirizzo gruppo destinazione (Destination Group). DA: Indirizzo nodo destinazione (Destination Address).

Page 131: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

SG: Indirizzo gruppo sorgente (Source Group). SA: Indirizzo nodo sorgente (Source Address). SB: Byte di servizio (Service Byte) che per ora viene

lasciato vuoto ma che potrà essere utilizzato per scopi futuri.

DL: Lunghezza dati (Data Length), che indica la lunghezza in byte del campo dati.

A seguire si trova la sezione contenente i dati utili (payload), ossia il messaggio vero e proprio da processare, la cui lunghezza, definita dal campo DL nell’intestazione, può variare da 0 a 255 byte.

L’ultima porzione, detta coda, contiene dati per la verifica della correttezza dei dati ricevuti: si tratta di un codice CRC a 16 bit calcolato su ogni byte del frame escluso il CRC stesso, quindi dal primo dell’intestazione all’ultimo del campo dati. Il primo byte del campo CRC ricevuto è il meno significativo.

I messaggi del secondo formato sono costituiti da un solo byte e vengono inviati dal nodo ricevente in risposta al messaggio ricevuto. Esso può contenere due soli valori:

02h: nel caso in cui il frame ricevuto presenta un errore di CRC.

10h: nel caso in cui si vuole comunicare un ACK (Acknowledgment), ossia che il frame è stato ricevuto correttamente.

Sono previsti messaggi in broadcast, che può riguardare tutti i nodi della rete (DG=0 e DA=0) o tutti i nodi di un gruppo X (DG=X e DA=0). In entrambi i casi i nodi riceventi non devono inviare alcun

Page 132: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

messaggio di risposta.Con questo tipo di indirizzamento si possono, teoricamente,

indirizzare sul bus fino a 65535 nodi. In pratica ciò non è possibile per la limitazione del fan-out dei transceiver che, come si è detto, ne limita il numero massimo a 128 nodi.

3.4.7 Temporizzazioni.

Per il funzionamento della rete è molto importante rispettare i tempi di sincronizzazione della comunicazione.

Prima di iniziare a trasmettere un frame il nodo sorgente per evitare collisioni deve attendere che il bus sia libero per almeno 2 msec. In questo caso il nodo può trasmettere senza che nessun altro nodo stia per trasmettere. Infatti l’intervallo massimo accettabile nella trasmissione tra due byte di uno stesso messaggio è di 1 msec, mentre se un nodo deve trasmettere un messaggio di risposta deve farlo in meno di 1.5 ms.

Se un byte appartenente al messaggio di tipo 1 (frame) supera il timeout di 1 msec dal byte precedente, si considera chiusa la trasmissione del messaggio e il ricevitore inizia ad analizzarne la validità. Il nodo ricevente entro 1.5 msec dalla ricezione del frame

deve rispondere con un byte di risposta (ACK o NACK).Se, dopo un periodo di 2 msec da quando il bus risulta libero,

due nodi tentano di accedere contemporaneamente al bus, avviene una collisione. Bisogna quindi prevedere un meccanismo in grado di rilevarle; la gestione delle collisioni avviene secondo quanto segue:

Page 133: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Per ogni byte trasmesso l’USART del PIC va anche a ricevere dal bus controllando che il byte trasmesso sia uguale a quello ricevuto.

Se la precedente condizione è negata allora vuol dire che c’è stata una collisione sul bus. Viene aggiornato un timer con un tempo casuale tra 0 e 18 msec in modo tale da evitare la situazione che tutti i nodi coinvolti nella collisione ritentano una nuova trasmissione allo stesso istante con una nuova conseguente collisione. Tale tempo va sommato a quello minimo richiesto durante il quale il bus deve essere libero prima di poter iniziare una trasmissione (2 msec).

Quando la trasmissione ha avuto successo e tutto il frame è stato spedito si va all’attesa per l’ACK. Se questo non arriva entro 1.5 msec o se arriva un NACK allora viene decrementato di un’unità il contatore di tentativi di trasmissione, che inizialmente è stato posto a 3. Quando questo arriva a zero vuol dire che c’è un problema sul bus per cui viene segnalata tale situazione settando il bit “TX error”.

Page 134: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Appendice – Codice Assembly del nodo.

A.1 Introduzione.

Nella presente Appendice si descrivono alcune porzioni di codice Assembly implementato nei nodi periferici utilizzando il PIC16F876 per la realizzazione della rete HomeNet come descritto nella Tesi. Senza voler descrivere nei dettagli l’intero software di gesione del nodo, vuol essere solo citato a titolo d’esempio per mostrare l’uso delle più importanti istruzioni in linguaggio simbolico dei PICmicro™ della Microchip® che , come detto, sono degli MCU dei tipo RISC, con un ISA di sole 35 istruzioni. Si ricorda che tali istruzioni sono descritte nella Tesi nella sezione 2.2.8.

A.2 Lettura DIP Switch.

Per una migliore comprensione si veda lo schema di interconnessione dei DIP switch con il PIC riportato in figura 3-4.

----------------------------------------------------------------------------------------LETTURA DELL’INDIRIZZO DI GRUPPO

----------------------------------------------------------------------------------------

bcf STATUS,RP0 ; swap al BANK 0

Page 135: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

APPENDICE

bcf PORTC,1 ; carica dati paralleli in ingresso allo shift registerbsf PORTC,1 ; abilita l'uscita serialecall LeggiDIP ; chiamata alla funzione LeggiDIP per

; ottenere l’indirizzo di gruppo al ritorno ; W contiene il valore ad 8 bit

; dell’indirizzo di gruppobsf STATUS,RP0 ; swap al BANK 1movwf GruppoNodo ; memorizza gruppo di nodo

----------------------------------------------------------------------------------------LETTURA DELL’INDIRIZZO DI NODO

----------------------------------------------------------------------------------------

bcf STATUS,RP0 ; swap to BANK 0bcf PORTC,2 ; carica dati paralleli in ingresso allo shift registerbsf PORTC,2 ; abilita l'uscita serialecall LeggiDIP ; chiamata alla funzione Leggi DIP per

; ottenere l’indirizzo del nodo; al ritorno W ; contiene il valore ad 8 bit dell’indirizzo di ; nodo

bsf STATUS,RP0 ; swap al BANK 1movwf IndirizzoNodo ; memorizza indirizzo di nodo

----------------------------------------------------------------------------------------ROUTINE DI LETTURA DIP SWITCH

----------------------------------------------------------------------------------------

LeggiDIP ; funzione di lettura DIP Switchclrf tmpReg1 ; buffer indirizzomovlw 8 ; 8 bitmovwf contatoreLoopBytecall LeggiBit ; chiamata alla funzione LeggiBit bcf STATUS,RP0 ; Swap to BANK 0decfsz contatore,F ; decrementa il contatore ad ogni bit lettogoto LoopByte ; contatore == 0call FormaByte ; contatore > 0

135

Page 136: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

APPENDICE

return ; ritorno dalla funzione LeggiDIP con ; l’indirizzo memorizzato in W

LeggiBit ; funzione di lettura di un singolo bitCLOCK_ATTIVO ; chiamata alla macro che genera un

; fronte attivo di clock in ingresso allo ; shift register

btfss PORTC,5 ; ricevuto un bit 1?goto RxBitLRxBitHnopbsf STATUS,C ; si, metti 1 al carrygoto RxShiftRxBitLbcf STATUS,C ; no, metti 0 carrygoto RxShiftRxShiftnoprrf tmpReg1,F ; shift a destra di una posizione con carry return ; ritorno dalla funzione LeggiBit

FormaBytemovf tmpReg1,W ; a questo punto l’accumulatore W

; contiene il valore dell’indirizzo return ; ritorno dalla funzione FormaByte

CLOCK_ATTIVO MACRObcf PORTC,3 ; generiamo un fronte di salita sul clock

; in ingresso allo shift registerbsf PORTC,3ENDM

A.3 Conversione A/D.

----------------------------------------------------------------------------------------SETTING ADC

----------------------------------------------------------------------------------------

136

Page 137: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

APPENDICE

movlw 0x84 ; ADFM=1 (risultato giustificato a destra)movwf ADCON1 ; RA0,RA1,RA3 ingressi Analogici, RA2,

; RA5 digitali ; +Vref=Vdd, -Vref=Vssbcf STATUS,RP0 ; Selezione Bank 0.movlw 0x81 ; Clock = 32 Tosc (MAX frequenza 20 Mhz), ; considerando di utilizzare un oscillatore ; esterno di16 Mhzmovwf ADCON0 ; ADON=1 (ADC abilitato) ; resta da settare "a run time" la sorgente ; (ossia quale delle linee analogiche ; prendere come ingresso da convertire) ; ed il flag GO che si può eseguire

; sommando l'opportuno valore ad; DCON0

----------------------------------------------------------------------------------------SELEZIONE SORGENTE ADC MEDIANTE MACRO

----------------------------------------------------------------------------------------

INGRESSO_ANALOGICO0 MACROmovlw 0x00 ; setta come sorgente RA0addwf ADCON0,F ; CHS2=CHS1=CHS0=0goto Adc_Label1

ENDM ; fine macro

INGRESSO_ANALOGICO1 MACROmovlw 0x08 ; setta come sorgente RA1addwf ADCON0,F ; CHS2=CHS1=0, CHS0=1goto Adc_Label1

ENDM ; fine macro

INGRESSO_ANALOGICO2 MACROmovlw 0x18 ; setta come sorgente RA3addwf ADCON0,F ; CHS2=0, CHS1=CHS0=1goto Adc_Label1

ENDM ; fine macro

----------------------------------------------------------------------------------------FUNZIONE CONVERSIONE A/D

137

Page 138: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

APPENDICE

----------------------------------------------------------------------------------------

A2Dbcf STATUS,RP0 ; selezione BANK 0addwf PCL,F ; jump table per il settaggio dell' AD

; relativo alla source selezionatagoto FineComando ; errore sull'indicazione della linea

; analogica da leggere (W=00h) INGRESSO_ANALOGICO0 ; RA0INGRESSO_ANALOGICO1 ; RA1INGRESSO_ANALOGICO2 ; RA3

Adc_Label1

movlw 0x01 ; numero di loop di 255 cicli di clock = 1call swait ; chiamata alla funzione swait per inserire ; un ritardo che sia almeno di 20 μsec ; pari al tempo di acquisizione, che

; sostanzialmente è pari al tempo ; impiegato dalla Capacita'

(Sample and ; Hold) a caricarsi piu' altri fattori ; inizia_conversionebsf ADCON0,GO ; avvia la conversioneaspetta_fine_convbtfsc ADCON0,GO ; loop per rilevare la fine della conversionegoto aspetta_fine_convreturn ; fine conversione

; a questo punto il risultato a 10 bit si ; trova in ADRESH:ADRESL giustificato a ; destra

138

Page 139: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Conclusione

Con la presente Tesi si è voluto descrivere il lavoro svolto per la realizzazione di un progetto che è di forte attualità nel settore dell’automazione e dell’informatica in generale quale è l’automazione domestica.

In particolare dovendo progettare una rete di controllo per la Domotica si sono approfonditi i concetti relativi ai microcontrollori quali dispositivi cardine per il controllo dei vari componenti in un edificio, allo stato dall’arte della Domotica in generale, per approfondire le esigenze delle utenze moderne nonché i vari standard già presenti sul mercato. Infine, forte di una compenetrazione di carattere generale si è potuti passare alla realizzazione del progetto prototipale HomeNet.

I criteri fondamentali che hanno guidato le varie fasi del progetto fin dall’inizio sono stati il frutto di un’attenta analisi in materia di Domotica:

1. Basso costo delle periferiche e della rete di interconnessione.

2. Semplicità di istallazione della rete.3. Facilità di utilizzo del prodotto finale.4. Integrazione di un vasto numero di applicazioni.5. Capacità di supportare diversi mezzi di comunicazione:

infrarossi, doppino intrecciato, onde convogliate sulla linea di alimentazione ed altri.

Page 140: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

CONCLUSIONE

L’ultimo punto è obiettivo di sviluppi futuri della rete, che dovrà essere del tutto indipendente dal mezzo fisico di interconnessione delle periferiche. In sostanza la rete resterà la stessa qualsiasi sia o siano i mezzi fisici utilizzati per interconnettere i vari nodi della stessa. A tale scopo ogni nodo dovrà essere provvisto di un’opportuna interfaccia che all’occorrenza farà da adattatore del nodo al mezzo fisico utilizzato; va da sé che il protocollo ad alto livello implementato non subirà alcuna modifica. Fatto questo anche il quarto punto visto sopra risulterà soddisfatto poiché all’occorrenza ogni applicazione potrà essere adattata alla rete mediante il mezzo fisico appropriato.

Ulteriore obiettivo sarà quello di progettare una sorta di sistema operativo nella centralina di controllo dell’intera rete per assegnare le giuste priorità ai vari processi da gestire al fine di ottimizzare la gestione della stessa con un’attenta politica di scheduling.

140

Page 141: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

Bibliografia

[1] http://www.esacademy.com [2] Prof. Michele Di Santo, “Appunti delle lezioni di Calcolatori

Elettronici”, Università degli Studi del Sannio di Benevento, A.A. 2001/2002, Lezione n. 3, pag. 65.

[3] http://www.vlsivie.tuwien.ac.at/lehre/inf_seminar/ergebnisse2000/weigl_txt.pdf

[4]

http://www.microchip.com/download/lit/pline/picmicro/families/16f87x/30292c.pdf

[5] Kennet Wacks, “Home System Standards: Achievements and

Challenges” , Ph. D., Convener of Home Electronic System Standards Committee, IEEE Communication Magazine, April 2002.

[6] A.M. Cole and B.Q. Tran, “Home Automation To Promote

Independent Living In Elderly Populations”. [7] John R. Durrett, “A Hybrid Analysis And Architectural Design

Method For Development of Smart Home Components”, Texas Tech University, December 2002.

[8] J.L.Ryan, “Home Automation”, Electronic And Communication Engineering Journal, July/August 1989.

[9] Dimitar Valtchev and Ivailo Frankov, “Service Gateway

Page 142: Tesi: Microcontrollori in Rete per la Domotica Della Ratta/Te…  · Web viewFacoltà d’Ingegneria. Corso di Laurea in Ingegneria Informatica. Tesi di Laurea. Microcontrollori

BIBLIOGRAFIA

Architecture For A Smart Home”, IEEE 2002.[10] http://www.homepna.org[11] http://www.x-10.com[12] http://www.ce.org[13] http://www.echelon.com[14] H. Brooke Stauffer, “Smart Enabling System For Home

Automation”, IEEE 1991.[15] http://www.batibus.com[16] http://www.eiba.com[17] http://www.ehsa.com[18] http://www.hbs.ne.jp[19] Christian Gran and Dr. Angela Sheller, “From Proven Office

Technologies To The Intelligent Multimedia Home”, IEEE 2000.[20] http://www.havi.org[21] http://www.fairchildsemi.com/ds/DM/DM74LS165.pdf [22] http://www.vincenzov.net/tutorial/rs485/rs485.htm

142


Recommended