Microelettronica Corso di progettazione su SoC ARM: Introduzione Stefano Salvatori Università degli Studi Roma Tre ([email protected]) Università degli Studi Roma Tre Microelettronica 2013 Microprocessori e microcontrollori Il termine “microprocessore” è oggi di uso comune e diffuso. Ad esso associamo le macchine di calcolo di cui, sappiamo, esso rappresenta il “cervello”. Ma cosa dire di un microcontrollore? abbiamo idea in quale ambito esso possa trovare applicazione? Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 2 ? Con il corso si cercherà di dare una risposta a domande di questo tipo: cos’è un microcontrollore? dove trova applicazione? ma, soprattutto: sono in grado di progettare un sistema basato su microcontrollore? Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 3 ? Dove troviamo un microprocessore? Dove troviamo un microcontrollore? Conosco apparati che basino il loro funzionamento su un microcontrollore? Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 4 Cos'è un microcontrollore? Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 5 Cos'è un microcontrollore? E’ un sistema che rispecchia l’architettura di un computer (CPU, memorie, I/O) Ha una modesta capacità di calcolo ma esegue le istruzioni piuttosto rapidamente Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 6 System on a Chip I moderni microntrollori rientrano nella categoria dei SoC, System on a Chip. Nel chip è integrato una CPU (core) e diversi blocchi dalla funzionalità specifica: RAM e ROM; porte di interfacciamento (GPIO); ADC e DAC; hardware per la comunicazione: UART BUS I2C, SPI, USB, CAN, LIN … Dispositivi per lo sviluppo ISP, In System Programmable ICE, In System Emulator Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 7 Applicazioni Con un microcontrollore possiamo realizzare sistemi che in logica cablata richiederebbero molto tempo sia per la progettazione che la realizzazione Viene impiegato in applicazioni “embedded” stand-alone Molto del lavoro di progettazione riguarda la definizione del firmware Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 8 Dove troviamo un microcontrollore? 1 10 9 8 11 12 1 2 3 7 6 5 4 ci svegliamo al suono di una radiosveglia: è il primo microntrollore con cui veniamo a contatto 2 impostiamo la temperatura ambiente su un termostato Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 9 Dove troviamo un microcontrollore? 3 10 9 prepariamo la colazione utilizzando il forno a microonde 4 8 11 12 1 2 3 7 6 5 4 inseriamo l’antifurto 5 rispondiamo al telefono Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 10 Dove troviamo un microcontrollore? 6 comandiamo l’apertura dell’automobile 7 10 9 8 11 12 1 2 3 7 6 5 4 e quella del cancello 8 oppure obliteriamo un biglietto Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 11 Dove troviamo un microcontrollore? 9 guidiamo … 10 9 8 10 11 12 1 2 3 7 6 5 4 e giungiamo sul posto di lavoro 11 o di studio Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 12 Dove troviamo un microcontrollore? 12 facciamo una pausa … 10 9 8 13 Università degli Studi Roma Tre 11 12 1 2 3 7 6 5 4 con gli amici Microelettronica 2012 Stefano Salvatori 13 Dove troviamo un microcontrollore? 14 preleviamo dei soldi al bancomat 10 9 8 15 11 12 1 2 3 7 6 5 4 o andiamo alla Posta Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 14 Dove troviamo un microcontrollore? torniamo a casa e guardiamo un po’ di TV, oppure vediamo un DVD, … # Università degli Studi Roma Tre 10 9 8 Microelettronica 2012 11 12 1 2 3 7 6 5 4 Stefano Salvatori 15 Dove troviamo un microcontrollore? a fine giornata avremo preso contatto anche con un centinaio di apparati basati su microcontrollori altri esempi: ascoltare musica usare una calcolatrice usare la lavatrice o la lavastoviglie ma anche il frigo o il condizionatore una fotocopiatrice un digital photo frame un giocattolo … Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 16 Dove troviamo un microcontrollore? in un'automobile trovano posto decine di microcontrollori Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 17 Dove troviamo un microcontrollore? … non in tutte Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 18 Obiettivi del corso Cosa è un microcontrollore progettare su misura applicazioni intelligenti trasferimento di tecnologia • conoscenza • competenza • progetti basati su microcontrollore Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 19 Corso: architettura ARM Generalità e cenni storici del processore ARM • • • Generalità sui microprocessori: MU0 Il set di istruzioni MU0 Architettura RISC Organizzazione dei registri interni • • Stato ARM e stato Thumb Registri generali e di stato in modalità ARM e Thumb Concetto di pipeline • • Eccezioni • • • Panoramica delle istruzioni ARM Istruzioni per la gestione di stack Istruzioni e salti condizionali • Origine delle eccezioni e modalità di gestione delle eccezioni Vettori di interrupt e priorità • • • Organizzazione delle memorie: little e big-endian Il modello di indirizzamento standard di memoria in ARM Comportamento dello stack • AMBA, ASB, AHB, APB • Interfaccia JTAG Memorie Set di struzioni • pipeline a 3 stadi in ARM7TDMIS Rischi delle pipeline Architetture di bus Sistemi di debug Organizzazione ARM7TDMI Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 20 Corso: LPC2103 e periferiche Introduzione Memoria di sistema VIC PL190 Il controllo di sistema nel μC LPC2103 Mappa e impostazione dei pin Porte di input/output Conversione A/D e D/A ADC Università degli Studi Roma Tre UART, I2C, SPI Timer Real Time Clock Watchdog Memoria Flash Embedded ICE Lo standard I2C Collegamento seriale SPI LCD standard HD44780 Microelettronica 2012 Stefano Salvatori 21 Corso: esercitazioni con l'LPC2103 Compilazione, upload, debug di un progetto uso di GPIO • • comando di un LED on/off lettura di un tasto Gestione di tasto con interrupt acquisizione da ADC Gestione timer Gestione LCD RTC programmabile Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 22 Modalità d'esame 1. Sviluppo di un progetto con LPC2103: a. stesura della documentazione b. allestimento del prototipo c. uso degli strumenti di sviluppo d. progettazione del software e. debugging e collaudo 2. Colloquio: processore ARM Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 23 Riferimenti S. Furber “ARM, system-on-chip architecture” 2° ed., Addison Wesley S. Salvatori, “Introduzione alla progettazione con gli LPC2000”, Aracne ed. NXP, “UM10161 LPC2101/02/03 User Manual”, “LPC2101/02/03 datasheet”, www.nxp.com T. Martin, “The insider’s guide to the NXP ARM7-based microcontrollers”, www.hitex.co.uk ARM Limited “ARM7TDMI-S Technical Reference Manual”, r4p3, http://infocenter.arm.com Lucidi e materiale vario: ☞ www.ssalvatori.altervista.org Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 24 La prossima volta: Portare una pen-memory di almeno 4 GiB per installare la live GNU/Linux e la toolchain per lo sviluppo dei progetti Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 25 Domande Stefano Salvatori (st. 50 - lab. 132) ☞ 0657337091 [email protected] Università degli Studi Roma Tre Microelettronica 2012 Stefano Salvatori 26