Microelettronica · 2020. 3. 9. · S. Salvatori – Microelettronica – marzo 2020 – (1 di 48)...
Transcript of Microelettronica · 2020. 3. 9. · S. Salvatori – Microelettronica – marzo 2020 – (1 di 48)...
-
S. Salvatori – Microelettronica – marzo 2020 – (1 di 48)
Microelettronica
Progettazione di sistemi embedded
Introduzione
prof. Stefano Salvatori
Eccetto dove diversamente specificato, i contenuti di questo documento sono rilasciati sotto Licenza Creative Commons Attribuzione 3.0 Italia.
http://creativecommons.org/licenses/by/3.0/it/
-
S. Salvatori – Microelettronica – marzo 2020 – (2 di 48)
Qual è l'obiettivo di questo corso?
Queste lezioni cercheranno di rispondere alla domanda:
“cos'è un microcontrollore?”
ponendo come obiettivo il poterci mettere in condizione di iniziare a progettare su misura applicazioni intelligenti.
L'ideale, alla fine di questo ciclo, è l'aver 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.
-
S. Salvatori – Microelettronica – marzo 2020 – (3 di 48)
Conosco i microcontrollori?
Un microcontrollore è un “computer in miniatura” che possiamo 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.
-
S. Salvatori – Microelettronica – marzo 2020 – (4 di 48)
Sommario
● I sistemi di elaborazione● Cos'è un sistema embedded?● Sistemi embedded a microcontrollore● Design metrics● Il ciclo di progettazione tipico● Perché ARM?
-
S. Salvatori – Microelettronica – marzo 2020 – (5 di 48)
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 ...
-
S. Salvatori – Microelettronica – marzo 2020 – (6 di 48)
Sistemi di elaborazione
– Automotive– Elettronica di consumo– Medicina– Ricerca scientifica– …
● Miliardi di prodotti ogni anno● Circa 50 in ogni abitazione e in un'automobile
-
S. Salvatori – Microelettronica – marzo 2020 – (7 di 48)
Sistemi di elaborazione
● Una breve lista
ABSAuto-focusAvionicaCarica-batteriaCondizionatoriConsole per videogiochiControllo missileControllori di temperaturaDecoder MPEGForno a microondeFotocopiatriciGiocattoli elettroniciLettori CD/DVDLettore impronta digitale
LavastoviglieMacch. a controllo numericoModemRiconoscitori vocaliRouterScannerSistemi audioSistemi di guidaSistemi di sicurezzaSistemi di supporto vitaSistemi medicaliStampantiStazioni base per telefonia cellulareStrumenti elettronici
TelecamereTelefoni cellulariTelefoni cordelessTrasmissioneTelevisioneVideo game portatiliVideocitofoniVideosorveglianzaVideotelefoni ...
-
S. Salvatori – Microelettronica – marzo 2020 – (8 di 48)
Cos'è un sistema 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
da ARM®
http://arm.com/markets/embedded/index.php
-
S. Salvatori – Microelettronica – marzo 2020 – (9 di 48)
Cos'è un sistema embedded?
Noi parleremo di “Sistemi Embedded a Microcomputer”.
Sistema: insieme di componenti tra loro interagenti per svolgere un prefissato lavoro in modo coordinato;
Embedded: letteralmente, “incastonato”, cioè nascosto, inserito all'interno;
Micro: piccolo;Computer: che contiene, cioè, un processore, memoria e mezzi per lo scambio delle informazioni da e verso l'esterno.
Un po' più “accademica”
-
S. Salvatori – Microelettronica – marzo 2020 – (10 di 48)
Cos'è un sistema embedded?
Sinonimo di sistemi embedded è “Cyber-Physical System”, coniato nel 2006 (*).
Infatti i sistemi embedded coniugano la potenza di calcolo di un computer (“intelligenza”) con oggetti fisici.
(*) Helen Gill, National Science Foundation, USA
-
S. Salvatori – Microelettronica – marzo 2020 – (11 di 48)
Cos'è un sistema embedded?
I componenti che si hanno in un sistema a microcontrollore sono:● Software● Hardware di un microcomputer (processore, ROM, RAM)● Circuiti digitali● Circuiti analogici● Componenti meccanici● Sistemi di alimentazione● Sensori● Attuatori
CPU
ROM
RAM
I/O
ADC
DAC
comp.meccanici
sensori
attuatori
-
S. Salvatori – Microelettronica – marzo 2020 – (12 di 48)
Cos'è un sistema embedded?
I sistemi embedded dovono in qualche modo interagire col mondo esterno.
In particolare l'interazione è verso l'uomo e si parla di:
● HCI: human-computer-interface● MMI: man-machine interface
input
output
-
S. Salvatori – Microelettronica – marzo 2020 – (13 di 48)
Cos'è un sistema embedded?
Una calcolatrice, però, ricorda troppo da vicino un computer.
Non dobbiamo confondere i sistemi embedded in generale solo con questo tipo di apparati.
-
S. Salvatori – Microelettronica – marzo 2020 – (14 di 48)
Identificazione dell'hardware
microcontrollori
DigitalSignalProcessors
FPGA
SingleBoardComputer
-
S. Salvatori – Microelettronica – marzo 2020 – (15 di 48)
Noi tratteremo solo sistemi embedded a microcontrollore
Sarà necessario approfondire alcuni argomenti.● Cos'è una CPU● Qual è l'architettura di un sistema a microprocessore● Come viene gestito
l'interfacciamento● Come sviluppare il software
di gestione● ...
CPU
ROM
RAM
I/O
ADC
DAC
comp.meccanici
sensori
attuatori
Sistemi embedded a microcontrollore
-
S. Salvatori – Microelettronica – marzo 2020 – (16 di 48)
Sistemi embedded a microcontrollore
Hardware
PC-desktop
embedded
Sistema Software
firmwa
re
-
S. Salvatori – Microelettronica – marzo 2020 – (17 di 48)
Il lavoro svolto da un sistema embedded a microcontrollore è nettamente distinto da quello di un PC
Reset Reset handler
Inizializzazione del sistema
Codice di startup (in C)
Inizializzaz.hardware Elaborazione
Librerie inruntime
Routine diservizio delleinterruzioni
Sistemi embedded a microcontrollore
-
S. Salvatori – Microelettronica – marzo 2020 – (18 di 48)
Caratteristiche tipiche
● Singola funzionalità– Esegue un unico programma, ripetutamente
● Vincoli molto stringenti– Basso costo, basso consumo, leggero, veloce, …
● Real-time– Generalmente deve reagire all'ambiente esterno– Deve elaborare i risultati in tempo reale senza ritardi
-
S. Salvatori – Microelettronica – marzo 2020 – (19 di 48)
Un esempio: videocamera
Processore CCD Processore pixel
Codec JPEG
D/AA/D
Molt/acc
DMA controller
Memory controller Interfaccia ISA UART Contr. LCD
Contr. display
CCD
Dig
italC
amer
a C
hip
Microcontrollore
-
S. Salvatori – Microelettronica – marzo 2020 – (20 di 48)
Design metrics● Costo unitario
– Costo del singolo pezzo (escl. NRE);● Costo NRE (Non-Recurring Engineering)
– Costo per la progettazione;● Dimensioni
– Spazio fisico dell'apparato;● Prestazioni
– Tempo di esecuzione o trhoughput del sistema;● Consumo
– La potenza dissipata dall'apparato;● Flessibilità
– Abilità di modificare la funzionalità del sistema senza incorrere in un costo eccessivo per NRE.
-
S. Salvatori – Microelettronica – marzo 2020 – (21 di 48)
Design metrics
Dimensioni
Consumo
Costo del progetto
Prestazioni
Costo unitario Flessibilità
-
S. Salvatori – Microelettronica – marzo 2020 – (22 di 48)
Hardware versus software
È necessario coprire entrambe gli aspetti, software e hardware, per ottimizzare il progetto (design metrics)
software
hardware
-
S. Salvatori – Microelettronica – marzo 2020 – (23 di 48)
Ciclo di progettazione
analisiproblema
ingegn.zione
realizz.test.
progettoalto
livello
apertura
SpecificheRequisiti
● Specifiche● Constrain ● Schemi
● Diagr. flusso
● Call-graph● Strutture dati● Interfacce
● HW● SW
ok
revisione
-
S. Salvatori – Microelettronica – marzo 2020 – (24 di 48)
analisiproblema
ingegn.zione
realizz.test.
progettoalto
livello
apertura
SpecificheRequisiti
● Specifiche● Constrain ● Schemi
● Diagr. flusso
● Call-graph● Strutture dati● Interfacce
● HW● SW
ok
revisione
Nella fase di analisi, vengono messi in evidenza i requisiti essenziali sistema dovrà essere dotato.
In genere questo lavoro è svolto insieme al “cliente” in modo da comprendere meglio le sue richieste.
Ciclo di progettazione
Esempio di requisiti: il sistema deve essere portatile, di dimensioni limitate (p.es stare in tasca), ...
-
S. Salvatori – Microelettronica – marzo 2020 – (25 di 48)
analisiproblema
ingegn.zione
realizz.test.
progettoalto
livello
apertura
SpecificheRequisiti
● Specifiche● Constrain ● Schemi
● Diagr. flusso
● Call-graph● Strutture dati● Interfacce
● HW● SW
ok
revisione
I requisiti si tradurranno in una lista di parti HW e SW e principalmente nella stesura di quelle che sono le specifiche del sistema, cioè una lista dettagliata di parametri che il sistema dovrà rispettare.
Oltre alle specifiche, verranno anche definiti i limiti (constrain) entro cui il sistema dovrà operare.
Ciclo di progettazione
Esempio di specifiche: il sistema peserà al massimo X g;
le dimensioni sono Y cm x cm x cm; ...
-
S. Salvatori – Microelettronica – marzo 2020 – (26 di 48)
analisiproblema
ingegn.zione
realizz.test.
progettoalto
livello
apertura
SpecificheRequisiti
● Specifiche● Constrain ● Schemi
● Diagr. flusso
● Call-graph● Strutture dati● Interfacce
● HW● SW
ok
revisione
Durante la fase di analisi vengono elaborate anche altre specifiche:
● Range● Stabilità● Accuratezza● Tempo di risposta● ...
Ciclo di progettazione
-
S. Salvatori – Microelettronica – marzo 2020 – (27 di 48)
analisiproblema
ingegn.zione
realizz.test.
progettoalto
livello
apertura
SpecificheRequisiti
● Specifiche● Constrain ● Schemi
● Diagr. flusso
● Call-graph● Strutture dati● Interfacce
● HW● SW
ok
revisione
Sempre nell'analisi sono individuati limiti entro cui il sistema dovrà operare (constrain):
● Costo● Compatibilità con altri
prodotti● ...
Ciclo di progettazione
-
S. Salvatori – Microelettronica – marzo 2020 – (28 di 48)
analisiproblema
ingegn.zione
realizz.test.
progettoalto
livello
apertura
SpecificheRequisiti
● Specifiche● Constrain ● Schemi
● Diagr. flusso
● Call-graph● Strutture dati● Interfacce
● HW● SW
ok
revisione
Durante la fase di progettazione ad alto livello viene realizzato un modello del sistema.
Il sistema è ridotto in sotto-insiemi.
Durante questa fase si stimano i costi e i tempi di progettazione/realizzazione.
Ciclo di progettazione
-
S. Salvatori – Microelettronica – marzo 2020 – (29 di 48)
analisiproblema
ingegn.zione
realizz.test.
progettoalto
livello
apertura
SpecificheRequisiti
● Specifiche● Constrain ● Schemi
● Diagr. flusso
● Call-graph● Strutture dati● Interfacce
● HW● SW
ok
revisione
Nella fase di ingegnerizzazione viene avviato il vero e proprio lavoro di progettazione (gen. top-down).
Il modello del sistema si traduce nei componenti che serviranno alla realizzazione del sistema.
Viene ideato il SW di gestione.
I “call-graph” sono rappresentazioni grafiche di come i moduli HW/SW sono interconnessi
Ciclo di progettazione
-
S. Salvatori – Microelettronica – marzo 2020 – (30 di 48)
analisiproblema
ingegn.zione
realizz.test.
progettoalto
livello
apertura
SpecificheRequisiti
● Specifiche● Constrain ● Schemi
● Diagr. flusso
● Call-graph● Strutture dati● Interfacce
● HW● SW
ok
revisione
Segue poi la realizzazione del sistema.
Avendo seguito un lavoro di tipo top-down, alcuni sottoinsiemi possono essere realizzati in parallelo.
Il sistema si traduce nell'oggetto fisico.
Ciclo di progettazione
-
S. Salvatori – Microelettronica – marzo 2020 – (31 di 48)
analisiproblema
ingegn.zione
realizz.test.
progettoalto
livello
apertura
SpecificheRequisiti
● Specifiche● Constrain ● Schemi
● Diagr. flusso
● Call-graph● Strutture dati● Interfacce
● HW● SW
ok
revisione
Nella fase di test vengono valutate le prestazioni del sistema e se esso soddisfa le specifiche assegnate.
In questa fase possono essere ripensate certe soluzioni per rendere il sistema migliore (spazio di memoria, velocità, accuratezza, stabilità). Questo è un lavoro di revisione. Tuttavia andrà previsto anche un lavoro di manutenzione.
Ciclo di progettazione
-
S. Salvatori – Microelettronica – marzo 2020 – (32 di 48)
analisiproblema
ingegn.zione
realizz.test.
progettoalto
livello
apertura
SpecificheRequisiti
● Specifiche● Constrain ● Schemi
● Diagr. flusso
● Call-graph● Strutture dati● Interfacce
● HW● SW
ok
revisione
La revisione/manutenzione di un prodotto prevede in generale di ripercorrere il ciclo di progettazione più volte.
Sistemi semplici in genere percorrono il ciclo una sola volta. Per quelli più complessi è necessario rivedere il progetto per ottimizzare il sistema (in termini di consumi, costo, velocità, ...)
Ciclo di progettazione
-
S. Salvatori – Microelettronica – marzo 2020 – (33 di 48)
Richiesta:Sistema per la misura della temperatura ambiente
Requisiti:● Compatto● Portatile
Esempio: apertura
-
S. Salvatori – Microelettronica – marzo 2020 – (34 di 48)
Richiesta:Sistema per la misura della temperatura ambiente
Requisiti: → Specifiche:● Compatto→ dimensioni effettive● Portatile → batteria → peso
Esempio: analisi
-
S. Salvatori – Microelettronica – marzo 2020 – (35 di 48)
Richiesta:Sistema per la misura della temperatura ambiente
Requisiti: → Specifiche:● Compatto→ dimensioni effettive● Portatile → batteria → peso
● Intervallo: da -40 °C a +40°C● Risoluzione: 0.1°C● Accuratezza iniziale: 1°C
Esempio: analisi
-
S. Salvatori – Microelettronica – marzo 2020 – (36 di 48)
Richiesta:Sistema per la misura della temperatura ambiente
Requisiti: → Specifiche: constrain:● Compatto→ dimensioni effettive costo● Portatile → batteria → peso
● Intervallo: da -40 °C a +40°C● Risoluzione: 0.1°C● Accuratezza iniziale: 1°C
Esempio: analisi
-
S. Salvatori – Microelettronica – marzo 2020 – (37 di 48)
Elaboriamo un primo modello del sistema
Con questo modello riusciamo a definire come si muove il flusso di informazioni nel sistema → data-flow graphIn questo modello inseriamo le specifiche
Esempio: progetto ad alto livello
sensore condiz.analogico ADC
HWSW
ADCdriver
TimerISR
Timer
LCDdriver LCD
temperatura-40–+40 °C
corrente233–313
μA
tensione0–3 V 0–1023 0–1023
1 s
numero -400–+400
Caratteri -40.0–+40.0 °C
-
S. Salvatori – Microelettronica – marzo 2020 – (38 di 48)
ADCdriver
LCDdriver
Call-graph
Esempio: ingegnerizzazione
ADCHW
HWSW
main
Timerdriver
TimerHW
TimerISR
LCDHW
-
S. Salvatori – Microelettronica – marzo 2020 – (39 di 48)
La scelta per il corso:SoC - ARM®
-
S. Salvatori – Microelettronica – marzo 2020 – (40 di 48)
Perché ARM?
http://arm.com/index.php
http://arm.com/index.php
-
S. Salvatori – Microelettronica – marzo 2020 – (41 di 48)
Prodotti basati su ARM
mobile home
embedded enterprise
ARM
file:///home/stefo/Documenti/Didattica/RomaTre/2019-2020/Microelettronica/lezioni/video/2_Introduzione/riferimenti/ARM%20Mobile%20Powered%20Products.pdffile:///home/stefo/Documenti/Didattica/RomaTre/2019-2020/Microelettronica/lezioni/video/2_Introduzione/riferimenti/ARM%20Home%20Powered%20Products.pdffile:///home/stefo/Documenti/Didattica/RomaTre/2019-2020/Microelettronica/lezioni/video/2_Introduzione/riferimenti/ARM%20Embedded%20Powered%20Products.pdffile:///home/stefo/Documenti/Didattica/RomaTre/2019-2020/Microelettronica/lezioni/video/2_Introduzione/riferimenti/ARM%20Enterprise%20Powered%20Products.pdf
-
S. Salvatori – Microelettronica – marzo 2020 – (42 di 48)
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.
-
S. Salvatori – Microelettronica – marzo 2020 – (43 di 48)
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.● ….. Oggi ARM è semplicemente ARM®
-
S. Salvatori – Microelettronica – marzo 2020 – (44 di 48)
Storia di ARM
-
S. Salvatori – Microelettronica – marzo 2020 – (45 di 48)
Processori ARM
-
S. Salvatori – Microelettronica – marzo 2020 – (46 di 48)
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.
-
S. Salvatori – Microelettronica – marzo 2020 – (47 di 48)
Ecosistema
➢ 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.
Questa “filosofia” porta a un potenziamento
-
S. Salvatori – Microelettronica – marzo 2020 – (48 di 48)
ARM Connected Community
Diapositiva 1Diapositiva 2Diapositiva 3Diapositiva 4Diapositiva 5Diapositiva 6Diapositiva 7Diapositiva 8Diapositiva 9Diapositiva 10Diapositiva 11Diapositiva 12Diapositiva 13Diapositiva 14Diapositiva 15Diapositiva 16Diapositiva 17Diapositiva 18Diapositiva 19Diapositiva 20Diapositiva 21Diapositiva 22Diapositiva 23Diapositiva 24Diapositiva 25Diapositiva 26Diapositiva 27Diapositiva 28Diapositiva 29Diapositiva 30Diapositiva 31Diapositiva 32Diapositiva 33Diapositiva 34Diapositiva 35Diapositiva 36Diapositiva 37Diapositiva 38Diapositiva 39Diapositiva 40Diapositiva 41Diapositiva 42Diapositiva 43Diapositiva 44Diapositiva 45Diapositiva 46Diapositiva 47Diapositiva 48