I sistemi embedded rivestono una porzione sempre più cospicua della
progettazione elettronica attuale; essi costituiscono l'espressione della crescente
applicazione dell'elettronica in oggetti di uso comune e in applicazioni industriali.
Il più delle volte, questo tipo di sistemi sono pensati e creati per agire in
modo "invisibile" agli occhi di chi ne beneficia, da cui deriva l'aggettivo
<<embedded>> (incapsulato).
Un moderno sistema embedded si basa su elettronica di tipo
digitale, che si interfaccia con il mondo fisico mediante circuiteria analogica.
Insieme, queste due costituiscono ciò che viene designato hardware
del sistema. Con l'accresciuta complessità di questi sistemi, sempre più spesso
viene inclusa anche una porzione di codice operativo, che ne costituisce la
sezione software (o firmware).
La tipica caratteristica di un sistema embedded è quella
di essere creato per svolgere un insieme di compiti specifici, con determinate
prestazioni e un certo livello di affidabilità. Non è raro, comunque, nella
moderna offerta di questo tipo di prodotti, trovare piattaforme che permettano
una configurazione delle funzioni implementate a bordo.
Di solito, quando si pensa alla configurabilità, ci si riferisce ad una personalizzazione
di funzioni software; tuttavia con i continui miglioramenti che l'industria
elettronica propone nel campo di dispositivi come le FPGA, si può puntare ad
un ulteriore grado di personalizzazione che includa anche le funzionalità hardware.
Questa tesi si colloca nell'ambito di un più ampio e complesso
lavoro di riprogettazione di una centralina di controllo di tipo PC104
denominata EKU e giunta, al momento della stesura di questo documento,
alla sua versione 2.1. Si tratta essenzialmente di un sistema embedded basato
su FPGA e DSP, indirizzato alla realizzazione di controlli digitali con un occhio
di riguardo alla riconfigurabilità e a problemi di Tempo Reale.
Tale piattaforma di controllo va gerarchicamente a collocarsi
tra il macchinario da controllare (PLANT) e l'interfaccia utente che
ne permette l'utilizzo (HMI), e costituisce il trait d'union
dei due sistemi. Abbiamo, sulla stessa scheda, una macchina di calcolo spiccatamente
sequenziale e scritta su silicio, quale il DSP, e un dispositivo che è -per
sua stessa natura- propenso alla realizzazione di hardware parallelo e riprogrammabile
come l'FPGA; tale accostamento è il punto d'arrivo di una ricerca di compromesso
(trade-off) tra prestazioni e flessibilità d'applicazione.
Nell'ambito di una simile ricerca, nasce il desiderio di muoversi verso una
soluzione sempre più riprogrammabile e personalizzabile dall'utente finale;
ciò è ottenibile dando sempre maggior centralità a un dispositivo come l'FPGA.
Tale strategia è avvalorata dal continuo miglioramento in termini di prestazioni
e di razionalizzazione dei consumi che i costruttori di FPGA apportano ad ogni
nuova generazione dei loro prodotti. Che il gap tra implementazione
ASIC e riprogrammabile si stia assottigliando è un fatto, e ciò lascia intravedere
che il prossimo stadio evolutivo delle schede di controllo come la EKU, possa
essere una soluzione in cui il classico DSP "hard" venga completamente
soppiantato da una sua versione "soft" scritta su FPGA.
Ciò che muove la nostra progettazione è la ricerca di maggior
configurabilità nella nuova scheda di controllo; oltre a questo, siamo interessati
a migliorare in modo mirato alcune performance. La chiave per ottenere tutto
ciò è un hardware fatto su misura, ed è per questo che il grande attore della
nuova EKU è l'FPGA.
Tra le diverse opportunità delineatesi per perseguire l'obiettivo,
è stata presa la decisione di portare avanti lo studio di fattibilità di una
soluzione basata, appunto, su FPGA, con l'aggiunta del soft-processor NIOS II.
Si è resa necessaria una breve analisi sulle esigenze addotte dal nuovo processore
e l'osservazione delle possibilità offerte dal mercato; in considerazione di
questo, si è reso opportuno un upgrade dei componenti più importanti nell'architettura
generale della scheda.
Per proseguire nella nostra progettazione abbiamo compiuto
un ulteriore passo di avvicinamento alla realizzazione in hardware dell'oggetto
in esame. Ciò ci ha portato alla prototipazione del sistema studiato; i prototipi
ottenuti sono serviti anche alla verifica, tramite misure, delle stime effettuate
in precedenza. I risultati di queste rilevazioni hanno dimostrato che esiste
la possibilità di implementare controlli a performance elevate su una scheda
basata su FPGA e NIOS II.
La prototipazione ha incluso, oltre alla valutazione mirata delle performance,
anche la vera e propria costruzione di tutti gli elementi necessari al funzionamento
di parti della EKU.
Tra questi, citiamo quelli da noi portati in essere nel corso del lavoro di
tesi:
il riadattamento del codice sorgente, relativo ad una parte del sistema
operativo, in modo da renderlo eseguibile su NIOS II;
la sezione di acquisizione Analogico/Digitale;
la sezione di conversione Digitale/Analogico;
Oltre a verificare la fattibilità di queste realizzazioni, abbiamo potuto saggiare
le difficoltà che possono presentarsi lungo il percorso tra il progetto su carta
ed il prototipo funzionante.
In conclusione del nostro lavoro di tesi, si può affermare
che la configurazione di scheda di controllo che abbiamo sperimentato, con l'FPGA
che riveste il ruolo principale accollandosi anche i compiti dell'attuale DSP,
è ben promettente per un aggiornamento del sistema di controllo EKU 2.1. Infatti
le prestazioni risultano soddisfacenti nei campi a cui eravamo più interessati
ed esiste un effettivo miglioramento delle possibilità di personalizzazione
dell'hardware.
Gli sviluppi futuri del nostro lavoro dovrebbero avere come
primo obiettivo il completamento e l'unione dei prototipi già sviluppati, continuando
a raccogliere dati sulle loro prestazioni, ed il prosieguo del lavoro di prototipazione,
andando a realizzare tutte le rimanenti funzioni della EKU 2.1.
Ultimate queste, si potranno esplorare nuove funzionalità, resesi disponibili
grazie alla grande configurabilità di questa architettura, come ad esempio la
possibilità di realizzare un calcolatore di tipo multicore, includendo più NIOS II
sulla stessa FPGA. Dovessero tutte queste prove e verifiche soddisfare le esigenze
di una scheda di controllo degna di rimpiazzare proficuamente la EKU 2.1, si
potrebbe passare alla progettazione del layout vero e proprio dell'intera scheda,
quindi alla sua produzione.