UNIVERSITÀ DEGLI STUDI DI SIENA

Slides:



Advertisements
Presentazioni simili
Differenza tra comunicazione seriale e parallela
Advertisements

Prof. Rebecca Montanari Anno accademico 2011/2012
Esame di Stato Prova scritta di Informatica
UNIVERSITÀ DEGLI STUDI DI PARMA
DBMS (DataBase Management System)
Informatica e Telecomunicazioni
BAnMaT Light: un tool per la rilocazione software dei bitstream
POLITECNICO DI MILANO Politecnico di Milano A.A. 2005/06 MECCANISMI DI SINCRONIZZAZIONE PER SISTEMI MULTIPROCESSORE BASATI SUL DISPOSITIVO D740 Candidato:
Automazione a logica programmabile
Confronto di sistemi per
Università degli Studi di Modena e Reggio Emilia
Progetto e realizzazione del software "Solar Data Manager"
Analisi e Contromisure di tecniche di Sql Injection
Università degli studi di Modena e Reggio Emilia Progetto e realizzazione di un tool di sincronizzazione database server – palmare per il controllo del.
Televisione Digitale Terrestre Aspetti Tecnici
SINCRONIZZAZIONE E TRASFERIMENTO VIA WEB DI IMMAGINI E DATI MULTIMEDIALI CON INFORMAZIONI GEOGRAFICHE E RAPPRESENTAZIONI CARTOGRAFICHE Laureando: Mitja.
Università degli studi di Trieste – Tesi di laurea triennale in Ingegneria elettronica PROTOCOLLO DI COMUNICAZIONE TRA PC E MICROCONTROLLORE PER UN’INTERFACCIA.
Tesi di Laurea Triennale in Ingegneria Elettronica Applicata
Laureando: Emanuele Viviani
Di Piero Zuppelli CdL Ing Elettronica Applicata (Triennale)
Realizzazione di algoritmi video su FPGA
Tesi di laurea triennale in ingegneria delle telecomunicazioni
Università degli Studi di Trieste
Università degli Studi di Trieste
Sviluppo di un’interfaccia Camera Link - FPGA
UNIVERSITA’ DEGLI STUDI DI TRIESTE FACOLTA’ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA A.A / 2005 Tesi di Laurea Triennale SVILUPPO.
DAL MICROPROCESSORE AI SISTEMI EMBEDDED Informatica per lAutomazione II (Informatica B o II) Anno accademico 2008/2009 Prof. Giuseppe Mastronardi Ing.
Relatore:. Prof. Fabrizio FERRANDI Correlatore:. Ing. Marco D
Luca Pizzamiglio Dipartimento di Elettronica ed Informazione Corso di Laurea in Ingegneria Informatica 17 Giugno 2003 Stimatori d'area per descrizioni.
Controllo remoto di un robot mobile realizzato con Lego Mindstorms
Elaborazione di Immagini e Suoni Syllabus
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Active Server Pages.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Progetto e Simulazione di una Centralina per Reti di Domotica
Struttura dei sistemi operativi (panoramica)
Appunti informatica- prof. Orlando De Pietro
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Facoltà di Economia, Università di Roma
Espressioni condizionali
1 Linux day /11/2003 ADA. Dai requisiti al progetto Come nasce il progetto di una piattaforma e-learning Open Source.
IL MODEM Che cos’è? A cosa serve? Che problemi risolve? Come comunica?
DBMS ( Database Management System)
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
IIS “A. Maserati” di Voghera
Politecnico di Torino I Facoltà di Ingegneria
Esperienze di laboratorio “leggero” in aula
Sistemi di acquisizione
Database & Information Retrieval
MONITORAGGIO REMOTO DI UN IMPIANTO DI DEPURAZIONE
Relatore: Prof. Carla VACCHI Correlatore: Ing. Daniele SCARPA
Simulazione cassa Super-mercato
Relatore Tesi di laurea di
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria “Enzo Ferrari” – Sede di Modena Corso di Laurea Specialistica in Ingegneria Informatica.
UNIVERSITÀ DEGLI STUDI DI PAVIA
Tesi di Master Universitario Applicazione Sperimentale SoftPLC e SCADA
1.
Ingegneria del software Modulo 2 -Il software come prodotto Unità didattica 2 -I costi del software Ernesto Damiani Università degli Studi di Milano Lezione.
Sistemi ad elevate prestazioni Lezione 1
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Universita’ degli Studi Roma Tre
LE RETI INFORMATICHE Cosa sono?? A cosa servono??
CENTRAL PROCESSOR UNIT (CPU) 1/2 E’ l’unità che regola e controlla tutti I processi nel microcontroller. E’ formata da diverse sottounità tra cui: Instruction.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
Sistemi embedded per l’auto: ricevitore GPS
FACOLTÀ DI INGEGNERIA DELLE TELECOMUNICAZIONI CORSO DI LAUREA TRIENNALE "Misure del canale radio in reti n" Roma, 03/05/2010 RELATORE Prof.. STEFANO.
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTA’ DI INGEGNERIA ELETTRONICA
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
HARDWARE (2). MEMORIE Due classi di memoria MEMORIA CENTRALE –media capacità - ottima velocità MEMORIA DI MASSA elevata capacità - bassa velocità.
Struttura del Computer
Transcript della presentazione:

UNIVERSITÀ DEGLI STUDI DI SIENA FACOLTÀ DI INGEGNERIA Corso di Laurea di 1° livello in Ingegneria dell’Automazione Tesi di Laurea PROGETTAZIONE DI UNA STAZIONE ANEMOMETRICA: ASPETTI SOFTWARE Il titolo della tesi è: Progettazione di una stazione anemometrica, aspetti software. Relatore Prof. Ing. Massimo Alioto Candidato Duccio Picinotti A.A. 2005/2006

Introduzione Aspetti software Scrittura codice VHDL per descrizione hardware logica digitale: acquisizione segnali dai sensori elaborazione statistica dati generazione codici controllo correttezza generazione toni trasmissione Scrittura codice Visual Basic per ricezione: decodifica toni audio in ricezione controllo, memorizzazione e visualizzazione dati Scrittura codice ASP per pubblicazione dati su Internet Questa tesi tratta gli aspetti software inerenti la progettazione di una stazione anemometrica. La prima parte del lavoro è stata quella di scrivere il codice VHDL per la descrizione dell’hardware della scheda digitale di cui ha parlato precedentemente il mio collega. Più nel dettaglio sono stati trattati i seguenti aspetti: acquisizione dei segnali derivanti dai sensori elaborazione statistica dei dati generazione dei codici di controllo di correttezza del messaggio inviato via radio generazione dei toni per la trasmissione del messaggio Per la parte di ricezione è stato scritto un programma in Visual Basic che essenzialmente esegue le seguenti operazioni: decodifica dei toni audio ricevuti via radio controllo, memorizzazione e visualizzazione dei dati arrivati Infine sono state create delle pagine attive ASP per la pubblicazione dei dati su Internet.

Logiche digitali programmabili FPGA numero macrocelle alto veloci consumi elevati memoria volatile CPLD numero macrocelle basso meno veloci bassi consumi memoria non-volatile CPLD Il primo problema affrontato è stato quello della scelta della logica programmabile digitale. Ne esistono di due tipi: le FPGA e le CPLD. Le FPGA, rispetto alle CPLD, sono più capienti relativamente al numero di macrocelle a disposizione. Le FPGA sono anche più veloci delle CPLD. Le FPGA però, al contrario delle CPLD, presentano l’inconveniente di avere dei consumi elevati. Le FPGA, al contrario delle CPLD, hanno una memoria volatile. Dunque le FPGA, soprattutto per gli ultimi 2 aspetti, sono incompatibili con l’uso di energia solare, perciò sono state scelte le CPLD.

Scheda CPLD: GFEC Max II Starter Kit Altera Max II EPM1270T144C5 display Alimentazione 5V 16 MHz clock JTAG 8 led RS 232 8 switch Questa è la scheda digitale “GFEC Max II Starter kit” scelta per la parte di trasmissione. E’ equipaggiata di una CPLD Max II dell’Altera con 1270 macrocelle e 144 pins di I/O. In essa possiamo vedere i seguenti componenti: 1)1 clock a 16 MHz 2)8 led 3)8 switch 4)4 pulsanti 5)1 display a 4 cifre 6)alimentazione a 5V 7)144 pins di I/O 8)connettore per il cavo JTAG di programmazione 9)un’interfaccia seriale RS 232 4 pulsanti pins

Linguaggio VHDL Linguaggio di descrizione HW per logiche digitali Vantaggi programmazione VHDL indipendenza dalla tecnologia caratteristiche di alto livello progettazione gerarchica modularità Approccio sincrono: segnali I/O sincronizzati con il clock di riferimento Programma usato: Quartus II 6.0 SP1 Per la descrizione dell’hardware da implementare sulla logica digitale è stato usato il linguaggio VHDL. I suoi vantaggi sono: l’indipendenza dalla tecnologia, la presenza di caratteristiche di alto livello come cicli, funzioni ed altro, la possibilità di progettazione gerarchica e la modularità. L’approccio usato per descrivere l’hardware è quello di tipo sincrono: i segnali di I/O vengono sincronizzati con il clock di riferimento. Per lo sviluppo del codice VHDL è stato usato il programma dell’Altera denominato Quartus II, versione 6.0 con la SP1.

Programma VHDL in trasmissione DEBOUNCE temp dir vel FREQ TEMP WIND BIT_P WIND CALC WIND DIR WIND CHOOSE WIND TX portante radio_tx portante_V FREQ VEL WIND ENABLE WIND CONST WIND CLOCK In questa slide si può capire il funzionamento del programma VHDL sintetizzato nella scheda CPLD per la trasmissione dei dati via radio. Nel blocco “WIND CONST” sono raccolte tutte le costanti globali, permettendo una maggior modularità al progetto ed anche la possibilità di modifiche rapide ai valori. Inizialmente i segnali di velocità e direzione del vento e di temperatura vengono fatti passare attraverso il blocco “DEBOUNCE” dove vengono rimossi gli eventuali rimbalzi. La velocità e la direzione entrano nel blocco “WIND CALC” in cui vengono calcolati il periodo dell’onda quadra della velocità e lo sfasamento fra il segnale della direzione e quello di velocità. Questi 2 valori entrano nel blocco “WIND DIR” dove viene calcolata la direzione fra i 4 punti cardinali ed i loro intermedi. Nella parte superiore si può vedere il segnale di temperatura che entra nel blocco “FREQ TEMP” per il calcolo della temperatura istantanea. Parallelamente viene calcolata la velocità nel blocco “FREQ VEL” che non è altro che il blocco “FREQ TEMP” istanziato un’altra volta. Il blocco “WIND CLOCK” serve per distribuire dei clock con diverse frequenze a tutti gli altri blocchetti partendo dal clock dell’oscillatore presente nella scheda e denominato “clk”. Il blocco “WIND ENABLE” crea un’onda quadra che sta al livello alto per 1 minuto ed al livello basso per 3 secondi. Quando l’onda è a livello alto siamo nella fase di acquisizione ed elaborazione dati, invece quando si trova al livello basso siamo nella fase di trasmissione. Quest’onda quadra infatti viene usata sia nel blocco di calcolo dati “WIND CHOOSE” sia in quello di trasmissione “WIND TX”. Al blocco “WIND CHOOSE” arrivano la velocità e la direzione del vento. Nell’arco di 1 minuto esso ne calcolerà la velocità minima, massima e la direzione più frequente. Questi dati, assieme alla temperatura istantanea derivante dal blocco “FREQ TEMP”, entrano nel blocco “WIND BIT_P” che ricostruisce tutto il messaggio da inviare e calcola i bit di parità di riga e di colonna usando i “Codici di ridondanza di blocco”. I 16 blocchi da “CLOCK DIV 1” a “CLOCK DIV 16” servono a creare le 16 portanti partendo da un segnale di clock unico. Le portanti sono semplicemente delle onde quadre che presentano frequenze fra 930 e 2400 Hz e sono i toni audio EEA che verranno inviati alla radio. Nel blocco finale “WIND TX” viene costruito il segnale in uscita denominato “portante”, che sarà inviato alla radio ed anche il segnale “radio_tx” che indica quando l’apparato è in trasmissione. Prima di trasmettere il messaggio vero e proprio viene inviata in uscita una frequenza particolare denominata “portante_V”, cioè “portante a vuoto”. Questa serve solo a mandare la radio LPD, che presenta la funzione VOX, in trasmissione automatica. La “portante a vuoto” ha una frequenza che non viene riconosciuta dal programma Visual Basic che riceve i dati. CLOCK DIV 1 DIV 16

Esempio di codice VHDL: wind_enable In questa slide è possibile vedere un esempio di codice VHDL, nella fattispecie quello che viene implementato nel blocchetto “wind_enable”. Il codice è formato da una prima parte, detta “entity”, di definizione dei segnali di I/O del blocchetto, mentre nella parte successiva, detta “architecture”, vengono esplicitate le elaborazioni da eseguire sui segnali di ingresso per poter arrivare ai segnali in uscita.

Statistiche utilizzo CPLD Risorsa Utilizzo Total logic elements Combinational with no register Register only Combinational with a register 1.122 / 1.270 (88%) 592 32 498 Logic elements by mode normal mode synchronous clear/load mode asynchronous clear/load mode 547 157 245 Total LABs (Logic Array Blocks) 118 / 127 (93%) I/O pins Clock pins 18 / 116 (16%) 1 Maximum fan-out 384 Average fan-out 3,88 Nella presente tabella si possono osservare le statistiche di utilizzo della scheda CPLD. Il dato più significativo è quello dell’uso di macrocelle: 1122 su 1270, praticamente l’88%. In totale vengono usati 18 pins di I/O sui 116 a disposizione. Infine si può notare il fan-out medio di 3.88, che è il numero medio di elementi che vengono collegati in uscita ad un componente logico.

Programma “Anemometro 1.0” in ricezione Uso di Visual Basic 6.0 SP6 File di inizializzazione sensibilità decodifica protocollo di trasmissione Analisi codice Visual Basic: acquisizione e campionatura segnale audio processamento real-time con 2 buffer acquisizione decodifica con FFT a spettro mobile controllo correttezza messaggio con bit di parità di riga e colonna, “Codici di ridondanza di blocco” immissione dati in un database visualizzazione storico nei grafici Applicativo in funzione nella dimostrazione pratica Per la ricezione e la decodifica del messaggio in arrivo via radio è stato scritto, in Visual Basic versione 6.0 con il SP6, un programma denominato “Anemometro 1.0”. L’applicativo alla partenza acquisisce i parametri sulla decodifica insieme alle preferenze dell’utente da un file di inizializzazione modificabile con un normale editor di testi. Infatti è possibile modificare la sensibilità della decodifica, il protocollo di trasmissione. Il programma Visual Basic esegue le seguenti operazioni: acquisizione e campionatura del segnale audio in arrivo dal microfono processamento real-time del segnale usando due buffer con i dati campionati decodifica del tono audio impiegando l’algoritmo ricorsivo FFT (Fast Fourier Transform) a spettro mobile su una finestra rettangolare che si sposta di un campione per volta controllo di correttezza del messaggio decodificato tramite i bit di parità di riga e di colonna che formano i “Codici di ridondanza di blocco” immissione dei dati corretti in un database infine visualizzazione in 3 grafici dello storico giornaliero A fine presentazione assieme al mio collega faremo anche una dimostrazione pratica dove sarà possibile vedere questo programma in esecuzione.

Pubblicazione opzionale dati su Internet Scopo: aumentare bacino d’utenza del servizio Uso del linguaggio di programmazione ASP Webserver IIS ADSL flat servizio di redirect (indirizzo web fisso con IP dinamico) Analisi codice ASP: ricerca dati mediante query SQL nel database condiviso col programma Visual Basic visualizzazione dati giornalieri, ultimi 2 giorni, mensile, annuo query SQL per test diagnostici visualizzazione velocità giornaliera max visualizzazione tabella con i dati visualizzazione grafici con gli storici La parte opzionale, ma non per questo la meno utile, del nostro progetto è la pubblicazione su Internet dei dati decodificati. In questa maniera è possibile aumentare il bacino d’utenza che può fruire del servizio di monitorizzazione del vento. Per questo scopo è stato utilizzato il linguaggio di programmazione ASP. Per poter pubblicare i dati su Internet è indispensabile possedere un PC dove far girare un webserver come IIS Internet Information Services. Inoltre sarebbe consigliabile possedere una linea a banda larga ADSL di tipo flat, con un sevizio di redirect per usufruire di un indirizzo web univoco anche senza un IP fisso. Il programma ASP esegue le seguenti operazioni: 1)ricerca dei dati nel database condiviso col programma Visual Basic mediante query SQL 2)visualizzazione dei dati giornalieri, degli ultimi 2 giorni, di quelli mensili e annui. In più è possibile eseguire delle query SQL per dei test diagnostici 3)visualizzazione della velocità massima giornaliera 4)visualizzazione dei dati in tabella e dei grafici con lo storico

Test e risultati ottenuti sul campo Test in laboratorio con scheda FLEX10K prove blocco per blocco prove con generatori da banco prove con simulatore simwind su porta parallela Test sul campo in loc. Gorello: errore di TX 0,1% Decollo Monte Lignano Lat: N 43°24’17.6” Long: E 11°52’58.2” Alt: 838 m s. l. m. Atterraggio Gorello Lat: N 43°23’55.5” Long: E 11°51’17.8” Alt: 297 m s. l. m. 2,5 Km I test si sono svolti in due fasi. La prima è stata eseguita sfruttando la scheda FPGA FLEX10K presente nel laboratorio di elettronica. All’inizio è stata provata la correttezza del codice VHDL blocco per blocco mediante simulazione. In seguito è stata controllata la correttezza dell’intero progetto generando i segnali in ingresso dell’anemometro sia mediante dei generatori da banco sia tramite un programma scritto in turbo pascal che inviava i segnali tramite la porta parallela di un PC del laboratorio. I test finali sul campo sono stati eseguiti installando l’apparecchio in cima al monte Lignano e ricevendo il segnale col PC in località Gorello situato a 2,5 Km in linea d’aria dalla cima del monte. I risultati ottenuti in due settimane di prove hanno soddisfatto le specifiche, con un errore medio di trasmissione dello 0,1%.

Caratteristiche e requisiti tecnici Tempo fase acquisiz. dati 60 s Tempo fase trasmissione 3 s Numero max di invii per ora 57 invii / ora Velocità max del vento 63,5 Km/h Risoluzione velocità vento 0,5 Km/h Risoluzione direzione ±45 ° Temperatura max 55,5 °C Temperatura min - 8 °C Requisiti PC Pentium III o superiore Scheda audio (line-in o mic) O.S. Windows 98 o superiore Requisiti opzionali ADSL flat Servizio di redirect (no-ip) In questa tabella è possibile vedere le caratteristiche tecniche della stazione anemometrica. La durata di ogni fase di acquisizione ed elaborazione dati è di 60 secondi. La durata di ogni trasmissione è di circa 3 secondi. In un’ora è possibile inviare 57 messaggi completi. La velocità massima del vento rilevabile è di 63,5 Km/h. La risoluzione sulla velocità del vento è di ½ Km/h. La risoluzione sulla direzione del vento è di +-45 °. Il range di temperature rilevabile va da -8°C a 55,5°C. I requisiti del PC dove è in esecuzione il programma Visual Basic in ricezione sono: processore Pentium III o superiore, presenza di una scheda audio con ingresso line-in o per il microfono, sistema operativo Windows 98 o superiore.

Conclusioni Progetto hobbistico open-source non commerciale Fasi del lavoro: scrittura codice VHDL per la trasmissione scrittura codice VB per la ricezione scrittura codice ASP per la pubblicazione su Internet Risultati sul campo soddisfano e superano le specifiche iniziali Ringraziamenti: Franco Languasco per programma open-source Decotoni in Visual Basic Il progetto sviluppato è di tipo hobbistico e open-source, con il codice sorgente a disposizione di tutti. Non era infatti nostra intenzione creare un progetto di tipo commerciale. Il lavoro di questa tesi si può sintetizzare in 3 fasi: scrittura del codice VHDL per la trasmissione dei dati tramite la scheda CPLD scrittura del codice Visual Basic per la ricezione e la memorizzazione dei dati scrittura del codice ASP per la pubblicazione su Internet dei dati I risultati ottenuti sul campo hanno soddisfatto e superato le specifiche fissate inizialmente. Un ringraziamento particolare va a Franco Languasco per il suo programma open-source “Decotoni” in Visual Basic, dal quale ho preso spunto nella stesura del mio programma “Anemometro 1.0”.