IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di...

23
IL MICROCONTROLLORE ST6 HARDWARE

Transcript of IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di...

Page 1: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

IL MICROCONTROLLORE ST6

HARDWARE

Page 2: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

EVOLUZIONE TECNOLOGICA E MICROPROCESSORI

Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

In un unico circuito integrato sono realizzate tutte le funzioni tipiche di un sistema a microprocessore realizzato su scheda:

– unità centrale

– memorie RAM e ROM

– porte di ingresso/uscita

– timer

– convertitore A/D

– UART

– ……..

Page 3: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

VANTAGGI

maggiore flessibilità del sistema per impieghi nei più

svariati campi applicativi

maggiore efficienza delle istruzioni create apposta

per svolgere operazioni specifiche

semplificazione nella scrittura dei programmi

Page 4: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

BLOCCHI FUNZIONALI TIPICI (1)

un’unità centrale di elaborazione (CPU), che ha lo scopo di eseguire le istruzioni del programma contenuto nella memoria

una memoria ROM o EPROM in cui viene memorizzato il programma specifico per una particolare applicazione, con capacità da 1024 a 4096 byte;

una memoria RAM in cui vengono memorizzate le variabili e i dati risultanti dall’elaborazione del programma

Page 5: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

BLOCCHI FUNZIONALI TIPICI (2)

un certo numero di linee di ingresso e uscita,

raggruppate normalmente il gruppi di otto, che

costituiscono le porte di I/O e che consentono al

microcontrollore di comunicare con il mondo esterno

uno o più convertitori analogico/digitali

uno o più timer in grado di funzionare sia come

temporizzatori che come contatori

un’interfaccia seriale (RS232, I2BUS o di altro tipo)

un generatore di segnale PWM (Pulse Width

Modulation)

Page 6: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

ARCHITETTURA MICRO ST6

Page 7: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

MODELLI DISPONIBILI

dispositivi equipaggiati con EPROM, contraddistinti dalla lettera E (ST62Exx), normalmente utilizzati durante la fase di messa a punto del software, o per la realizzazione di prototipi

dispositivi OTP (One Time Programmable), contraddistinti dalla lettera T (62Txx) usati per la realizzazione di piccole serie

dispositivi equipaggiati con ROM (nessuna lettera di riconoscimento), usati per grandi serie

Page 8: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

PIEDINATURA ST6 (1)

VDD VSS. Vengono connessi rispettivamente al positivo dell’alimentazione e alla massa. La tensione di alimentazione deve essere compresa tra 3 e 6 volt.

OSCin e OSCout: sono connessi internamente all’oscillatore integrato nel chip. Tra questi due piedini può essere collegato un cristallo di quarzo, un risonatore ceramico o un segnale di clock esterno.

RESET: attivo al livello basso, viene usato per inizializzare il microcontrollore e per fare in modo che l’esecuzione del programma parta dalla prima istruzione.

TEST. Per il normale funzionamento del microcontrollore questo piedino deve essere collegato a VSS.

Page 9: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

PIEDINATURA ST6 (2) NMI. Ingresso per l’Interrupt non mascherabile, sensibile al

fronte di discesa (Normalmente collegato a VDD tramite una resistenza di pull-up)

TIMER. E’ il piedino di I/O del timer. PA0 ÷ PA3, PA4 ÷ PA7. Queste 8 linee sono organizzate come

una porta di I/O (PORT A). PB0 ÷ PB7. Queste 8 linee sono organizzate come una porta di

I/O (PORT B). PC4 ÷ PC7. Queste 4 linee sono organizzate come una porta di

I/O (PORT C).

Ciascuna linea di una porta può essere configurata, sotto il controllo del software, per funzionare come ingresso o come uscita, secondo varie modalità.

Page 10: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

PIEDINATURA ST6 (3)

Page 11: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

ORGANIZZAZIONE DELLA MEMORIA

La MCU (MicroController Unit) funziona utilizzando tre spazi di memoria

Spazio di programma: fisicamente implementato in una memoria ROM o EPROM. – Contiene le istruzioni che devono essere eseguite, le costanti usate, i

vettori (indirizzi) definiti dall’utente e un certo numero di locazioni riservate (non utilizzabili dall’utente).

– Viene indirizzato mediante il registro contatore di programma (Program Counter - PC) a 12 bit.

Spazio dei dati: ospita tutti i dati necessari per l’elaborazione del programma utente e comprende:– le risorse della RAM

– l’unità centrale del microcontrollore

– i registri dei dispositivi periferici

– i dati di sola lettura, come le costanti e le tabelle, che sono memorizzati nella ROM (o EPROM).

Page 12: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

ORGANIZZAZIONE DELLA MEMORIA (1)

ROM dei dati: Tutti i dati di sola lettura vengono ospitati dalla memoria ROM che contiene quindi:

– il codice del programma che deve essere eseguito

– le costanti e le eventuali tabelle di consultazione richiesti dalla particolare applicazione.

Le locazioni di memoria contenute nello spazio dei dati, nelle quali vengono allocate le costanti e le tabelle di consultazione, possono essere pensate come una finestra a 64 bit attraverso cui è possibile accedere ai dati memorizzati nella ROM.

Page 13: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

ORGANIZZAZIONE DELLA MEMORIA (2)

RAM dei dati: comprende

– 60 byte di RAM

– l’accumulatore A

– I registri per l’indirizzamento indiretto X e Y

– i registri per l’indirizzamento diretto corto V e W

– i registri dei dati e i registri di controllo relativi alle porte di I/O

– il registro delle opzioni di interruzione

– il registro per l’indirizzamento dei dati nella ROM.

Page 14: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

ORGANIZZAZIONE DELLA MEMORIA (3)

Spazio dello Stack

Lo Stack è costituito da sei registri a 12 bit che vengono

utilizzati per memorizzare gli indirizzi di ritorno dalle

subroutine normali e da quelle che gestiscono gli eventi

connessi alle interruzioni.

Page 15: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

ARCHITETTURA UNITA’ CENTRALE

Page 16: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

NUCLEO E CONTROLLER

Il nucleo della CPU ST6 può essere pensato come un’unità centrale indipendente che comunica con la memoria, con i dispositivi di ingresso/uscita e con i dispositivi periferici dedicati, integrati nello stesso chip, mediante tre bus interni: quello dei dati, quello degli indirizzi e quello di controllo.

il nucleo della CPU è collegato direttamente ai dispositivi periferici dedicati mediante un bus seriale e, indirettamente, per le operazioni connesse alla richiesta di interruzioni, attraverso i registri di controllo.

l’unità di controllo (Controller) è collegata esternamente ai circuiti dell’oscillatore e del reset.

Page 17: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

I REGISTRI DELLA CPU

La CPU ST6 possiede sei registri e tre coppie di flag.

Accumulatore A: è un registro a otto bit di utilizzo generale. Viene usato in tutte le operazioni logiche e matematiche e nella manipolazione dei dati.

Registri per l’indirizzamento indiretto X e Y: vengono usati principalmente come puntatori a locazioni di memoria nello spazio dei dati (anche per uso generale)

Registri per l’indirizzamento diretto corto V e W: vengono usati per memorizzare un byte nel modo di indirizzamento corto (anche per uso generale)

Registro contatore di programma PC (Program Counter): è un registro a 12 bit che contiene l’indirizzo, nella ROM, dell’istruzione successiva a quella in corso di esecuzione.

Page 18: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

I FLAG DELLA CPU ST6

La CPU dell’ST6 rende disponibili tre coppie di flag.

Ciascuna coppia di flag è associata a uno dei tre modi di funzionamento della CPU:

– modo normale

– modo Interrupt

– modo Interrupt non mascherabile.

Ogni coppia di flag è costituita da un flag di zero ( Z ) e da un flag di carry ( C ).

– la prima coppia, CN-ZN, viene utilizzata nel modo di funzionamento normale

– la seconda coppia, CI-ZI, viene utilizzata nel modo Interrupt

– la terza coppia, CNMI-ZNMI, nel modo Interrupt non mascherabile.

Page 19: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

I FLAG DI CARRY E DI ZERO

Il flag di carry C viene posto a 1 se si verifica un riporto (carry) o un prestito (borrow) nel corso dell’esecuzione di un’operazione aritmetica; in caso contrario viene posto a 0.

Il valore del flag C viene inoltre posto uguale al valore del bit testato nel corso dell’esecuzione di un’istruzione di test di un singolo bit.

Il flag C viene anche utilizzato nelle operazioni di scorrimento e rotazione all’interno dei registri.

Il flag di zero Z viene posto a 1 se il risultato dell’ultima operazione aritmetica o logica è stato zero, in caso contrario viene posto a 0

Page 20: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

LO STACK DELLA CPU ST6 (1)

Lo Stack della CPU dell’ST6 è implementato come una

struttura hardware di tipo LIFO

È costituito da sei locazioni di RAM a 12 bit che non

appartengono allo spazio dell’area dati della RAM e che

formano sei livelli.

Page 21: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

LO STACK DELLA CPU ST6 (2)

Quando si verifica una chiamata a subroutine o una richiesta

di interruzione, avviene che:

– il contenuto della locazione di ciascun livello viene trasferito nel livello

immediatamente superiore

– il contenuto del PC viene trasferito nel primo livello.

Quando vengono eseguite le istruzioni RET di ritorno da una

subroutine o RETI di ritorno da subroutine di gestione di

un’interruzione, avviene che:

– il contenuto della locazione del primo livello viene trasferito nel PC

– il contenuto di ciascuna delle locazioni degli altri livelli viene trasferito

nella locazione del livello immediatamente inferiore.

Page 22: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

LO STACK DELLA CPU ST6

• Poiché l’accumulatore e gli altri registri allocati nello spazio dei dati non vengono memorizzati nello Stack, la loro gestione deve essere effettuata all’interno delle subroutine che li utilizzano.

• Nel caso in cui vengano eseguite più di sei chiamate nidificate a subroutine, lo Stack rimane nella posizione più "bassa"; conseguentemente l’ultimo indirizzo di ritorno viene perduto.

Page 23: IL MICROCONTROLLORE ST6 HARDWARE. EVOLUZIONE TECNOLOGICA E MICROPROCESSORI Un singolo chip di silicio contiene centinaia di migliaia o milioni di transistori.

A cura di Gianfranco Cametti