IL MICROCONTROLLORE ST6
HARDWARE
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
– ……..
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
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
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)
ARCHITETTURA MICRO ST6
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
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.
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à.
PIEDINATURA ST6 (3)
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).
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.
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.
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.
ARCHITETTURA UNITA’ CENTRALE
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.
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.
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.
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
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.
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.
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.
A cura di Gianfranco Cametti