Home
Accesso / Registrazione
 di 

Corso di programmazione per microcontrollori ST626X. Quarta parte 2/4

ST626X Corso di programmazione per microcontrollori ST626X

Microcontrollori ST626x corso di programmazione. Continuiamo l'analisi con il piedino siglato NMI, Not Maskable Interrupt o interruzione non mascherabile.

Il pin TEST non viene mai utilizzato nel normale funzionamento e deve rimanere sempre collegato con la massa. Questo piedino viene usato esclusivamente dalla scheda di programmazione dell’ST626X Starter Kit per il trasferimento dei comandi dal PC al micro (programmazione) o dal micro al PC (lettura della memoria). Continuiamo l’analisi con il piedino siglato NMI, Not Maskable Interrupt o interruzione non mascherabile. Vedremo in seguito che l’utilizzo di questo pin è indispensabile per molte applicazioni, ma prima di procedere alla sua descrizione facciamo una premessa per comprendere il significato di interruzione (interrupt).

st626x_schema_blocchi_alu

Con tale termine indichiamo un evento che interrompe il normale flusso di funzionamento del micro per deviarlo in una seconda direzione. Sappiamo che la CPU processa le istruzioni seguendo esattamente il loro ordine cronologico quello cioè con cui sono state “scritte” e memorizzate. Ne deriva che per poter gestire istantaneamente e in qualsiasi punto del programma un evento esterno o interno è necessario interrompere il programma principale per passare ad uno secondario specifico per quel tipo di evento. Il programma secondario viene chiamato subroutine di interrupt seguito dal nome di colui che l’ha causato, ad esempio subroutine di interrupt del timer se la causa è il timer, o dell’ADC se la causa è il convertitore analogico digitale, oppure del pin NMI se appunto la causa è una variazione dell’ingresso presente su tale pin.

La famiglia di microcontrollori ST626X è molto completa da questo punto di vista con ben 5 diversi livelli di interrupt. Ogni periferica interna, compresa quella di interfaccia e quindi le relative linee di I/O, possono generare una interruzione di tipo mascherabile. Ciò vuol dire che le interruzioni possono essere, in funzione della specifica applicazione, gestite o ignorate (mascherate) dal programma. Al contrario l’interruzione causata dal piedino NMI viene sempre gestita: essa interrompe e devia sempre il programma allo scopo di ottenere una risposta immediata (in tempo reale) all’evento.

st626x_interruzioni_mascherabile

Concludiamo la descrizione dei pin con quello siglato TIMER che come si intuisce fa capo al temporizzatore interno al micro ST6. Questo piedino può essere utilizzato come ingresso per far partire il conteggio della periferica timer, oppure come uscita per attivare un dispositivo esterno allo scadere del tempo impostato nel timer.

LA CPU

Terminata la panoramica esterna dei microcontrollori ST6260 e ST6265 non ci resta che passare al loro interno per vedere cosa realmente contengono. La CPU (Central Processor Unit) rappresenta per il micro l’unità di elaborazione principale, non per niente essa contiene il “core” del micro che in inglese significa centro, anima o anche, in senso ovviamente figurato, cuore. Il suo compito è di leggere, interpretare ed eseguire le istruzioni presenti nella memoria programma.

Per poter svolgere questi compiti la CPU deve essere collegata alle altre periferiche da un bus bidirezionale, deve contenere una unità matematica che chiamiamo ALU (Arithmetic Logic Unit), deve poter disporre di un contatore di programma (Program Counter), di un registro detto di “stack”, di un registro accumulatore e, infine, dei “flag”. Bene, possiamo affermare che nei nuovi micro della SGS-Thomson tutte queste cose ci sono e sono anche potenti e complete. Vediamo dunque di approfondire il significato delle unità presenti nella CPU partendo dal Program Counter. Esso, come specificato dal nome che lo identifica, contiene l’indirizzo del byte di memoria programma in cui è scritta l’istruzione da eseguire.

configurazioni_linee_ingresso-uscita_st626x

Il program counter viene copiato o meglio salvato nello stack quando la CPU abbandona la normale sequenza di istruzioni, quella cronologica, e si sposta in un altro punto della memoria programma. Per intenderci, questo tipo di salvataggio viene eseguito quando la CPU non processa l’istruzione successiva a quella conclusa. Vedremo, durante l’analisi di applicazioni software, che l’esecuzione di un programma non è sempre cronologico ma anzi vi sono molti “spostamenti” da una parte all’altra della memoria programma.

Alcuni di essi non necessitano del salvataggio del program counter, altri (le subroutine e gli interrupt) utilizzano invece lo stack. Nel primo caso lo spostamento avviene senza che poi ci sia la necessità di ritornare nella posizione abbandonata, nel secondo caso una particolare istruzione può riportare la CPU all’istruzione successiva a quella che ha causato lo spostamento.

schema_blocchi_linea_ingresso-uscita

Dal numero di program counter che possiamo salvare deriva il numero di spostamenti consecutivi che si possono eseguire. Nei microcontrollori della famiglia ST626X esistono sei livelli di stack, ciò significa che possiamo eseguire un numero massimo di spostamenti consecutivi uguale a sei, quantità più che sufficiente anche per le applicazioni più complesse.

Il kit è disponibile da Futura Elettronica

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 1 utente e 41 visitatori collegati.

Utenti online

Ultimi Commenti