UNICUSANO LAB - INGEGNERIA E RICERCA
I.P. A CURA DELL’UNIVERSITÀ NICCOLÒ CUSANO E DI SPORTNETWORK
Cosa sono questi
microcontrollori?
I laboratori di ingegneria dell’Università Niccolò Cusano spiegano i compiti dei sistemi miniaturizzati fondamentali per l’elettronica
I
n un precedente articolo abbiamo accennato alla ECU, Electronic Control Unit, di un’auto, ossia la “centralina elettronica”. Le auto moderne impiegano una grandissima varietà di sistemi elettronici, tra cui la ECU. Tra i diversi componenti elettronici, si sarà certamente sentito parlare di microcontrollori utili al sistema di chiusura centralizzata, di antifurto, oppure dedicati alla climatizzazione, ai sistemi alloggiati nel cruscotto, ecc. Ecco alcune pillole che ci faranno capire un po’ di più di cosa si tratta. Un microcontrollore è un chip in cui sono integrate una (in alcuni casi due) CPU, Central Processing Unit, una memoria RAM, una memoria non volatile di tipo flash e diverse periferiche. In pratica, un microcontrollore è un computer miniaturizzato. Esistono però sostanziali differenze. Un computer ha una capacità di calcolo notevole, se la confrontiamo a quella di un microcontrollore. Quest’ultimo è in grado di eseguire le sole operazioni aritmetiche di addizione, sottrazione, moltiplicazione e divisione. L’elaborazione che un microcontrollore tipicamente esegue è molto semplice e il suo punto di forza sta proprio nell’essere in grado di eseguire milioni di istruzioni al secondo per cui può apparire “intelligente” (mentre invece lo dovremmo definire semplicemente uno “scemo, veloce”). Un’altra differenza sostanziale sta nel lavoro che viene svolto. Un applicativo per un computer, in genere, inizia in un certo istante e dopo un certo periodo di tempo ha un termine. Viceversa, un microcontrollore deve eseguire un lavoro ripetitivo ogni volta che viene alimentato e il programma che esegue non deve mai essere interrotto (a meno che non venga tolta l’alimentazione). Si pensi ad esempio al sistema di controllo per airbag. Non è pensabile che la CPU possa smettere di controllare lo stato dei sensori: verrebbe meno la sicurezza del sistema.
Il programma che il microcontrollore esegue è memorizzato nella sua memoria flash. Nel momento in cui esso viene alimentato, automaticamente riceve un impulso di reset. Le prime istruzioni che esso esegue sono proprio quelle relative alla routine di reset. Una operazione fondamentale che deve essere svolta riguarda l’accensione del segnale di clock, il segnale periodico che scandisce il tempo per il sistema: una sorta di metronomo. Successivamente il microcontrollore esegue una sezione di programma che riguarda l’inizializzazione in cui vengono abilitate tutte le periferiche utili al suo lavoro specifico. Per esempio vengono attivati i timer, i convertitori analogico-digitali che gli consentiranno di acquisire lo stato dei sensori, le interfacce di comunicazione se il suo stato deve essere inviato a un altro dispositivo, ecc. Finalmente esso comincia ad eseguire il cosiddetto “ciclo infinito” del programma: la sequenza di istruzioni che riguardano il vero e proprio lavoro. Per esempio interrogherà lo stato di diversi sensori o dispositivi di input, attuerà lo stato di altri dispositivi, risponderà prontamente a richieste prioritarie provenienti dall’esterno, ecc. Veniamo a una curiosità. Intuendo come opera, sorge immediatamente una do-
manda: essendo del tutto autonomo, come fa un microcontrollore a uscire da una condizione di stallo? Siamo abituati a condizioni di stallo per i computer. Ne usciamo premendo il tasto di reset. Per un microcontrollore, invece, non potrà mai essere l’utente ad avviare il reset ma l’operazione dovrà svolgersi autonomamente. Per questo tutti i microcontrollori integrano un timer speciale, denominato watchdog, un vero e proprio “cane da guardia”. All’inizializzazione, il programma abilita il watchdog a un prefissato valore (la lunghezza della catena del cane da guardia). Durante lo svolgimento del ciclo infinito il timer avanza (il cane da guardia si allontana dalla cuccia). Giunto in fondo al ciclo di lavoro, il watchdog viene però reinizializzato (il cane da guardia viene riportato nella sua cuccia). Se per qualche motivo il lavoro del micro si blocca (per esempio un sensore non invia dati o una periferica non risponde), il watchdog avanzerà fino al conteggio limite (il cane giunge al cancello e abbaia!). Questa condizione provocherà un reset del sistema, così come si sarebbe fatto con un intervento umano. Il lavoro del micro potrà quindi ricominciare daccapo. A cura di Stefano Salvatori prof. associato di Elettronica Università Niccolò Cusano