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)