E tirar fuori qualche volta l'intelligenza, come le gambe, per sgranchirla?
MICROPROCESSORI E MICROCONTROLLORI
… studiare, studiare ed ancora studiare,
è il solo modo di capire quanto possa
essere grande sia la propria ignoranza!
I MICROCONTROLLORI
Il microcontrollore è un sistema a microprocessore completo e
integrato su un unico chip.
È conosciuto anche come dispositivo SOC (System On Chip) o
single chip.
Il microcontrollore è la forma più diffusa di microprocessore e si
trova embedded in moltissime applicazioni.
A differenza del microprocessore, che è adatto per un uso più
generale, il microcontrollore, che ha un’autosufficienza funzionale, è
idoneo per una specifica applicazione.
Si compone delle seguenti parti, come nella sottostante figura.
•
un datapath costituito da:
– ALU;
– registri generali;
– decoder per le istruzioni;
– eventuale controllore di interrupt;
•
una RAM per i dati;
•
una ROM che può essere PROM, EPROM, EEPROM o Flash per il codice;
•
una serie di porte di I/O standard;
•
una USART e/o una UART;
•
eventuali interfacce seriali speciali, che potrebbero essere bus I²C, SPI, CAN, LIN;
•
timer/counter;
•
comparatori;
•
amplificatori operazionali;
•
eventuali ADC e DAC multicanale;
•
eventuale PWM.
Il dispositivo non necessita di ulteriore memoria esterna, quindi ha a disposizione un elevato
numero di piedini per gli I/O.
Ha una capacità di calcolo molto limitata e quindi le sue prestazioni rispetto al micropro-
-cessore sono più basse.
Normalmente eseguono sempre lo stesso firmware per tutto il loro funzionamento.
•
Vantaggi:
– facilità di progettazione e montaggio, non è necessario progettare e montare una
motherboard poiché il micro contiene tutto a bordo, anche il circuito che genera il clock;
– dimensioni del sistema digitale ridotto;
– meno componenti e quindi più affidabilità;
– consumi di potenza ridotti;
– interferenze elettromagnetiche ridotte;
– compito facilitato per l’utente, è sufficiente programmarlo;
– può essere riconvertito in un’altra applicazione cambiando semplicemente il
programma;
– possibilità di rendere intelligente una qualsiasi periferica e di comunicare dati con
un elaboratore centrale;
– la maggior parte dei microcontrollori ha la possibilità di garantire la protezione dalla
lettura.
•
Svantaggi:
– potenza di calcolo limitata;
– scarsa flessibilità.
Nella sottostante tabella, sono riportate le caratteristiche architetturali richieste a un
microcontrollore. Dalla tabella emerge che le richieste si traducono in ridotte dimensioni
fisiche del sistema digitale e ridotto set di istruzioni.
I dispositivi sono utilizzati in tutte le applicazioni di tipo stand alone e in particolare:
• elettrodomestici;
• telefoni cellulari, calcolatrici, registratori;
• tastiere, modem, ecc.;
• automobili, in una sola macchina ce ne possono essere anche centinaia;
• settore industriale, controllo velocità, assi dei motori, regolatori PID e ON/OFF
Caratteristiche dell’architettura richieste a un microcontrollore
Embebbed
Processor
System
Requirement
Feature
Benefit
Microcontroller
Efficiently Resolve
Complex
Conditional Control
Situations
I/O control
I/O ports with bit-level
control
Efficient control of external devices
Direct interface to actuators, switches,
digital status signals
Peripherical
communications
Serial ports: SPI, I2C,
microwire, UART, CAN
Hardware support for expansion &
external device networking and
communications
Precision control of
motors and actuators
Sophisticated timers and
PWM peripherals
Low software Overhead
Quickly resolve complex
software program control
flow
Conditional jumps Bit test
instructions Interrupt
priority control
Efficiently implement control
oriented algoritms
Fast response to external
events
External interrupts with
multiple priority levels
Program control immediately
redirected on event occurrence with
minimal overhead
Conversion of sensor data
Analog-to-Digital (A/D)
converters
Hardware support for external sensors
Da un punto di vista costruttivo il microcontrollore è implementato con una tecnologia
HCMOS che consente un basso assorbimento sia statico sia dinamico perché il clock può
essere variato da valori molto bassi a valori molto alti.
Nei microprocessori invece non è possibile diminuire la frequenza del clock al di sotto di un
certo valore.
Parametri caratteristici:
• architettura;
• set di istruzioni;
• dispositivi di I/O;
• frequenza di clock;
• formato del dato;
• consumo di potenza.
L’architettura può essere classica di von Neumann ovvero di Harvard.
L’architettura di von Neumann è implementata in micro di fascia bassa poiché presenta
notevoli svantaggi.
L’architettura Harvard, tenendo separati il codice e i dati, consente una diminuzione dei
tempi di esecuzione.
Può essere realizzata in due modi differenti:
•
nell’architettura scalare i due spazi (di indirizzamento e bus) sono effettivamente
separati;
•
nell’architettura moderna superscalare la separazione si ferma a livello della L1 (cache
di primo livello), la memoria è poi condivisa;esternamente a livello di L2 (cache di
secondo livello) e memoria centrale gli spazi sono condivisi.
I microcontrollori possono essere CISC e RISC.
I CISC sono caratterizzati da un codice compatto e da un tempo di esecuzione di tipo
deterministico.
La frequenza di clock non è molto elevata e il CPI > 1.
Un esempio di questo tipo è 8051 della Intel.
I RISC hanno prestazioni migliori, infatti hanno un clock più alto e il CPI = 1.
L’architettura di tipo pipelined e superscalare comporta un tempo di esecuzione delle
istruzioni difficilmente predicibile in quanto dipendente dal branch prediction, dall’ese-
-cuzione speculativa e dall’out-of-order.
Un micro di questo tipo è l’ARM.