Corso introduttivo di progettazione di sistemi embedded

Progettazione di sistemi Embedded
Corso introduttivo di progettazione di sistemi embedded
A.S. 2013/2014
proff. Nicola Masarone e Stefano Salvatori
Eccetto dove diversamente specificato, i contenuti di questo documento sono rilasciati sotto Licenza Creative Commons Attribuzione 3.0 Italia.
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (1 di 25)
Qual è l'obiettivo di questo corso?
Questo Corso cercherà di rispondere alla domanda:
“cos'è un microcontrollore?”
e si pone come obiettivo quello di mettere in condizione i singoli studenti di
poter iniziare a progettare su misura applicazioni intelligenti.
A differenza di altri corsi, alla fine di questo avrete ottenuto un vero e
proprio trasferimento di tecnologie con l'acquisizione di conoscenze e
competenze di base utili ad avviare un lavoro personale per lo sviluppo di
progetti di sistemi embedded a microcontrollore.
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (2 di 25)
Conosco i microcontrollori?
Un microcontrollore è un computer in miniatura che
potete trovare in ogni genere di oggetti.
Quanti microcontrollori usiamo ogni giorno?
Un dispositivo equipaggiato di tasti, led, display o
altoparlante, è probabile che abbia anche un
microcontrollore.
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (3 di 25)
Sommario
●
I sistemi di elaborazione
●
Cos'è un sistema embedded?
●
Design metrics
●
Hardware e software
●
Perché ARM?
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (4 di 25)
Sistemi di elaborazione
●
I sistemi di elaborazione si trovano ovunque
●
Molti di noi pensano subito a computer di tipo desktop
●
–
PC
–
Laptop
–
Mainframe
–
Server
–
...
Ci sono però altri tipi di sistemi di elaborazione
–
Molti di uso comune ...
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (5 di 25)
Sistemi di elaborazione
–
Automotive
–
Elettronica di consumo
–
Medicina
–
Ricerca scientifica
–
…
●
Miliardi di prodotti ogni anno
●
Circa 50 in ogni abitazione e in un'automobile
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (6 di 25)
Sistemi di elaborazione
●
Una breve lista
ABS
Auto-focus
Avionica
Carica-batteria
Condizionatori
Console per videogiochi
Controllo missile
Controllori di temperatura
Decoder MPEG
Forno a microonde
Fotocopiatrici
Giocattoli elettronici
Lettori CD/DVD
Lettore impronta digitale
Lavastoviglie
Telecamere
Macch. a controllo numerico
Telefoni cellulari
Modem
Telefoni cordeless
Riconoscitori vocali
Trasmissione
Router
Televisione
Scanner
Video game portatili
Sistemi audio
Videocitofoni
Sistemi di guida
Videosorveglianza
Sistemi di sicurezza
Videotelefoni
Sistemi di supporto vita
...
Sistemi medicali
Stampanti
Stazioni base per telefonia cellulare
Strumenti elettronici
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (7 di 25)
Cos'è un sistemi embedded?
●
Si definiscono "embedded" tutte le applicazioni che
usano un microcontrollore quale processore principale e
qualunque applicazione basata su microprocessore che
non sia già coperta da altre aree. Ad esempio, nella
prima categoria rientrano gli elettrodomestici, sistemi di
condizionamento, piattaforme di misurazione intelligenti,
controllori per touch-screen, controllori per sensori e
motori dove i processori sono il cuore della soluzione...
http://arm.com/markets/embedded/index.php
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (8 di 25)
Cos'è un sistema embedded?
Sistema
Hardware
Software
PC-desktop
embedded
if rm
w
e
r
a
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (9 di 25)
Lavoro di un sistema embedded
●
Reset
Il lavoro svolto da un sistema embedded a microcontrollore
è nettamente distinto da quello di un PC
Reset handler
Inizializzazione
del sistema
Codice di
startup (in C)
Inizializzaz.
ell'hardware
Elaborazione
Librerie in
runtime
Routine di
servizio delle
interruzioni
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (10 di 25)
Caratteristiche tipiche
●
Singola funzionalità
–
●
Vincoli molto stringenti
–
●
Esegue un unico programma, ripetutamente
Basso costo, basso consumo, leggero, veloce, …
Real-time
–
Generalmente deve reagire all'ambiente esterno
–
Deve elaborare i risultati in tempo reale senza ritardi
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (11 di 25)
Un esempio: videocamera
CCD
Processore CCD
Processore pixel
D/A
A/D
Codec JPEG
Microcontrollore
DMA controller
Memory controller
Contr. display
Interfaccia ISA
UART
Contr. LCD
DigitalCamera Chip
Molt/acc
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (12 di 25)
Design metrics
●
Costo unitario
–
●
Costo NRE (Non-Recurring Engineering)
–
●
Tempo di esecuzione o trhoughput del sistema;
Consumo
–
●
Spazio fisico dell'apparato;
Prestazioni
–
●
Costo per la progettazione;
Dimensioni
–
●
Costo del singolo pezzo (scl. NRE);
La potenza dissipata dall'apparato;
Flessibilità
–
Abilità di modificare la funzionalità del sistema senza incorrere in un
costo eccessivo per NRE.
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (13 di 25)
Design metrics
Consumo
Prestazioni
Dimensioni
Costo unitario
Flessibilità
Costo del progetto
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (14 di 25)
Hardware versus software
●
È necessario coprire entrambe gli aspetti, software e
hardware, per ottimizzare il progetto (design metrics)
software
hardware
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (15 di 25)
Identificazione dell'hardware
Digital
Signal
Processors
microcontrollori
Single
Board
Computer
FPGA
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (16 di 25)
Perché ARM?
http://arm.com/index.php
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (17 di 25)
Prodotti basati su ARM
mobile
home
ARM
embedded
enterprise
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (18 di 25)
Storia di ARM
●
●
anni ’80, Università di Berkeley e Stanford (CA- USA): nasce il concetto di
RISC, Reduced Instruction Set Computer. RISC I, sviluppato in un anno
da studenti della Berkeley
anni ’80, Acorn Computer Ltd (Cambridge, UK)
–
forte posizione nel mercato britannico (microcomputer BBC, basato sul
6502). Il punto di forza del 6502 era la velocità di risposta agli interrupt;
–
migliorare la risposta a interrupt, senza trovare soluzione con i uP CISC
disponibili;
–
La Acorn decide allora di sviluppare un proprio uP pur non avendo la
sufficiente forza lavoro e la competenza su progettazione ASIC;
–
La soluzione RISC I appare la soluzione vincente:
●
●
la semplice architettura del RISC supera i limiti progettuali;
la semplicità, inoltre, soddisfa il vincolo di velocità di risposta agli interrupt.
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (19 di 25)
Storia di ARM
●
●
●
1983, Acorn: nasce ARM, Acorn RISC Machine
1985: l’ARM diventa il componente centrale della produzione
Acorn
1990: nasce la ARM Ltd, Advanced RISC Machine, come società
autonoma. Vende IP (fabless);
●
1991: ARM introduce ARM6;
●
1993: ARM7;
●
1997: ARM9TDMI;
●
2004: nuova famiglia: Cortex. Cortex-M3;
●
2008: oltre 1010 uP ARM sono stati consegnati agli oltre 200 partner della
ARM Ltd. (10MLD / 18 anni ~ 20 processori ogni secondo !)
●
2009: Cortex-M0, processore di altissimo rendimento energetico.
●
…..
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (20 di 25)
Storia di ARM
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (21 di 25)
Processori ARM
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (22 di 25)
Ecosistema
●
Cosa rende speciale l'architettura ARM rispetto a un'architettura
proprietaria?
–
●
A parte la tecnologia, l'ecosistema che si sviluppa intorno ad ARM
gioca il ruolo predominante
Oltre a lavorare a stretto contatto con coloro che producono e
commercializzano dispositivi e apparati basati su ARM,
–
ARM lavora con tutti coloro che provvedono all'ecosistema di
supporto per tali dispositivi e che sviluppano:
●
●
●
●
●
●
compilatori;
sistemi operativi;
tool di sviluppo;
corsi e supporto alla progettazione;
rete di distribuzione;
ricerca.
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (23 di 25)
Ecosistema
Questa “filosofia” porta a un
potenziamento
➢
Scelte:
➢
➢
➢
➢
➢
➢
➢
maggiori per i microcontrollori;
maggiori su sistemi di sviluppo;
più alto numero di schede di sviluppo;
maggiore supporto su progetti open
source;
maggiore supporto su OS;
maggiori soluzioni in ambito software.
Scambio di conoscenza
➢
➢
➢
➢
➢
risorse su internet;
ampia comunità;
forum tecnici;
seminari (anche su web);
supporto.
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (24 di 25)
ARM Connected Community
Corso introduttivo di progettazione di sistemi embedded – gennaio 2014 – (25 di 25)