introduzione ai microcontrollori - poloprato.unifi.it · microcontrollori workshop 08/06/2011...

27
Introduzione ai Microcontrollori Workshop 08/06/2011 Dott.Ing.Marco Frosini – Qprel srl Dott.Ing.Lorenzo Giardina – Qprel srl Slide 1 di 27

Upload: vunhan

Post on 20-Feb-2019

229 views

Category:

Documents


0 download

TRANSCRIPT

Introduzione ai Microcontrollori

Workshop 08/06/2011

Dott.Ing.Marco Frosini – Qprel srlDott.Ing.Lorenzo Giardina – Qprel srl

Slide 1 di 27

L'elettronica digitale PRIMA dei microcontrollori

Logic Family

EPROM

CPLD

Elemento base: Transistor

Slide 2 di 27

L'elettronica digitale PRIMA dei microcontrollori

Scheda RAM 64KB

Centralina auto: ECU

Fibre-optic ring network Olivetti

Slide 3 di 27

Esigenze tecniche e di mercato

Reti logiche Logiche programmabili Controlli digitali e

analogici

Le richieste di flessibilità e integrazione hanno generato la necessità di dover raggruppare:

Parallelismo delle operazioni Numero delle variabili di controllo Velocità di risposta Modularità del sistema Affidabilità del controllo Flessibilità dei componenti

Riduzione dimensioni, riduzione costi, flessibilità, programmabilità

Slide 4 di 27

Esigenze tecniche e di mercatoIl microprocessore diventa indispensabile quando il numero

delle variabili da controllare diventa elevato

Comunica con l'esterno solo mediante porte di input/output Esegue esclusivamente operazioni logiche, aritmetiche e di controllo Elabora sia dati prodotti internamente che provenienti da dispositivi esterni Totalmente dipendente da elementi periferici Non presenta elementi per la memorizzazione permanente dei dati

Slide 5 di 27

Esigenze tecniche e di mercato

Il microcontrollore racchiude tutte le caratteristiche del microprocessore aggiungendo le possibilità di:

Comunicazione diretta con dispositivi esterni integrando periferiche interne

Memorizzazione di dati o programmi Effettuare operazioni di controllo, ricezione ed elaborazione

segnali

In generale non necessitano ulteriori aggiunte di memoria RAM oltre a quella integrata

Eseguono esclusivamente le operazioni legate al firmware con il quale sono stati programmati

Slide 6 di 27

Microcontrollore e microprocessore

Microcontrollore: Microprocessore

Linee I/O

Memoria Flash

Convertirore A/D

Timer

USART

SPI

PWM

...

Microprocessore: Unità di calcolo

Unità di controllo

Memoria istruzioni e calcolo

Slide 7 di 27

Microcontrollore e microprocessoreIl microcontrollore è un'estensione del microprocessore, le sue

caratteristiche lo avvicinano molto ad un computer completo

Microcontrollore: Frequenza clock: oltre 1 GHz

Numero bit: 8/16/32

Ridotto set di istruzioni

Watt minimi dissipati: 0,001

Pezzi venduti annui: 11000*106

Prezzo USD: 0,5

Microprocessore: Frequenza clock: oltre 3 GHz

Numero bit: 32/64

Elevati set di istruzioni

Watt minimi dissipati: 50

Pezzi venduti annui: 1000*106

Prezzo USD: 50

Slide 8 di 27

Microcontrollore: vantaggi

L'integrazione delle periferiche su un singolo chip porta vantaggi legati a:

Minor numero di dispositivi discreti per la realizzazione di un sistema

Dimensioni ridotte del sistema Costi inferiori Sistema nel complesso più affidabile Protezione dalle copiature Risparmio energetico Riprogrammabilità del sistema Comunicazione diretta con altri sistemi

Slide 9 di 27

Microcontrollore: svantaggi

Gli svantaggi legati all'integrazione su singolo chip sono: Potenza di calcolo limitata Assenza di FPU (Floating Point Unit) nella maggioranza dei

dispositivi Gestione dati limitata NECESSITA' di utilizzare più microcontrollori simultaneamente

per la realizzazione dello stesso progetto

Slide 10 di 27

Microcontrollore

In definitiva il microcontrollore è un “sistema” a microprocessore realizzato con una logica di ottimizzazione del rapporto prezzo/prestazioni.

A differenza del microprocessore ha un esteso campo di impiego che può spaziare dai più semplici oggetti di utilizzo quotidiano a complesse architetture in ambito medicale e industriale.

Ha una capacità di calcolo relativamente limitata ed esegue esclusivamente una serie di operazioni contenuta all'interno del programma o firmware caricato nella memoria

Slide 11 di 27

Microcontrollore: architetture

I microcontrollori si distinguono tra loro per: Set di istruzioni: CISC/RISC Organizzazione della memoria: Van Neumann/Harward Frequenza di clock Numero di dispositivi di I/O e di periferiche intergrate Consumo Numero di bit: 4/8/16/32

Il numero di bit rappresenta la dimensione massima del dato gestibile in un unico ciclo macchina. Rappresenta inoltre solitamente la dimensione dei singoli registri e del bus dati

Slide 12 di 27

Microcontrollore: Architettura

Architettura Harvard

Architettura Van Neumann

Non è raro trovare architetture miste e/o evoluzioni delle due

Slide 13 di 27

Caratteristiche:Van Neumann vs Harvard

Van Neumann– Adottata in microcontrollori di fascia bassa– Svantaggi legati all'utilizzo di un'unica memoria sia per le

variabili volatili sia per il codice del programma

Harvard– Separazione dei bus per i dati e gli indirizzi– Vantaggi legati all'accesso contemporaneo a codice e dati

o a più dati, diminuendo i tempi di esecuzione

Slide 14 di 27

Microcontrollore: Architettura

Slide 15 di 27

Microcontrollore: periferiche

Periferiche bidirezionali di I/O

Convertitori ADC e DAC multicanale

UART Asynchronous Receiver Transmitter

Bus (SPI, I2C, CAN, LIN, USB) interfacciamento protocolli standard

Timer, Contatori, Comparatori PWM modulazione segnale di

uscita

Slide 16 di 27

Microcontrollore: periferiche

La gestione delle periferiche è regolata mediante i registri interni del microcontrollore. Ogni locazione di memoria del registro è associata ad un significato specifico per la periferica.

Esempio:

Ogni PIN di una porta può essere configurato sia come ingresso che come uscita mediante il registro DDRx

Di conseguenza e possibile assegnare un valore alto o basso allo stesso pin mediante il registro PORTx

Slide 17 di 27

Confronto famiglie microcontrolloriAtmel Xmega(ATxmega256A3B)

Arch. 8 bit

256Kbyte flash

4 Mbyte EEPROM

64 pin

Max Freq. 32MHz

12 bit ADC / DAC

7 timer/counters (16 bit)

6 USART

Max Current: 15mA

Prezzo unitario: 5€

Atmel ATtiny (ATtiny13A)

Arch. 8 bit

1 Kbyte flash

64 byte EEPROM

8 pin

Max Freq. 9MHz

10 bit ADC / DAC

1 timer/counters (8 bit)

Max Current: 5mA

Prezzo unitario: 0,3€

Atmel AT91(AT91SAM9263)

Arch. 32 bit

External flash

324 pin

Max Freq. 240MHz

TFT/STN LCD controller

Audio controller

USB host e device

10/100Mbit Ethernet

SD/MMC interface

Max Current: 70mA

Prezzo unitario: 12€

Slide 18 di 27

Applicazioni quotidiane

ATtiny13a(avr 8 bit low cost)

ATxmega(avr 8 bit Hi-end)

AT91SAM(arm9 32bit)

Slide 19 di 27

Scheda di esempio

Slide 20 di 27

Programmazione

La programmazione del microcontrollore può avvenire mediante scheda di programmazione come: AVRProg, AVRDragon, STK, ...

SPI: Serial Peripheral Interface

MOSI: Master Out Slave In

MISO: Master In Slave Out

SCLK: Serial Clock

SS: Slave Select

JTAG: protocollo standard di test funzionale che permette di effettuare debug sul firmware

Slide 21 di 27

Programmazione

La programmazione può avvenire anche tramite una normale interfaccia seriale (es: RS-232). Il programma viene memorizzato in una specifica area di memoria del microcontrollore definita bootloader.

Il microcontrollore all'avvio esegue le istruzioni contenute in questa area di memoria

Slide 22 di 27

Linguaggi di programmazione

- Tutti i microcontrollori/microprocessori per poter funzionare eseguono del “codice macchina” ASSEMBLER→

- Scrivere direttamente in ASSEMBLER è molto faticoso e poco conveniente, oggi ci sono strumenti molto efficienti che permettono di tradurre codice di alto livello in “codice macchina”

COMPILATORI→

Slide 23 di 27

Linguaggi di programmazione

- I linguaggi di programmazione oggi più usati sono:

1) C/C++2) Pascal3) Basic

Esempio tipico della struttura di un ambiente di sviluppo:

Slide 24 di 27

- Su microcontrollori capaci di integrare un sistema operativo e possibile utilizzare qualsiasi tipo di linguaggiodi programmazione.

Ambiente di sviluppo

Per lo sviluppo di un primo esempio di firmware utilizzeremo il software AVR Studio 5.

L'esempio in linguaggio C mostra come utilizzare le periferiche di GPIO di un microcontrollore ATxmega.

1. Avviare AVRStudio 5 ed aprire il progetto gpio_example

Slide 25 di 27

Esempio GPIO

2. Aggiungere alla funzione main il codice per settare PC0, PC1 e PC2 come PIN di uscita:

PORTC.DIR |= 1 << PORTC.PIN0CTRL | 1 << PORTC.PIN1CTRL | 1 << PORTC.PIN2CTR

3. Aggiungere il livello logico di PC0, PC1 e PC2:PORTC.OUTSET |= 1 << PORTC.PIN0CTRL; //Scrive 1 su PC0

PORTC.OUTSET &= ~(1 << PORTC.PIN0CTRL); //Scrive 0 su PC0

0 0 0 0 0 1 1 1

0 0 0 0 0 1 0 1

Slide 26 di 27

Esempio GPIO4. Aggiungere un lampeggio del led su PC1

5. Impostare PA2 come PIN di ingresso con PULLUP

6. Accendere il led su PC2 quando il tasto su PA2 viene premuto

Slide 27 di 27