Intel 8051

microcontrollore
Versione del 21 mag 2009 alle 19:18 di Superspritz (discussione | contributi) (Ripristino alla versione 24156509 datata 2009-05-21 14:41:18 di L736E tramite popup)

L'Intel 8051 è un microcontrollore a 8 bit su singolo chip basato su architettura Harvard, prodotto da Intel nel 1980 come processore per sistemi integrati. La versione originale di Intel era popolare negli anni ottanta e i primi anni novanta ma è stata in seguito ampiamente sorpassata da una vasta gamma di dispositivi 8051-compatibili, più veloci e/o funzionali, prodotti da oltre 20 aziende indipendenti come Atmel, Infineon Technologies (precedentemente Siemens AG), Maxim Integrated Products (tramite la sua sussidiaria Dallas Semiconductor), NXP (precedentemente Philips Semiconductor), Nuvoton (precedentemente Winbond), ST Microelectronics, Silicon Laboratories (precedentemente Cygnal), Texas Instruments e Cypress Semiconductor.

Microcontrollore Intel P8051.
SAB-C515-LN della Infineon è basato sull' 8051

La designazione ufficiale di Intel per la famiglia 8051 di microcontrollori è MCS 51. La prima versione fu prodotta utilizzando tecnologia NMOS mentre le versioni successive, identificate da una lettera C nel loro nome (es., 80C51) usavano tecnologia CMOS ed erano quindi più efficenti dal punto di vista energetico dei loro predecessori NMOS. Ciò li rendeva particolarmente adatti per l'uso su dispositivi a batteria.

Applicazioni e funzioni importanti

 
Microarchitettura i8051.

Il chip dell'8051 integrava tutte le funzionalità seguenti:

  • CPU a 8 bit
  • Registri, accumulatore e unità aritmetico-logica ALU a 8 bit
  • bus dati a 8 bit
  • Bus indirizzi a 16 bit (spazio indirizzabile complessivo: 216 = 64kB (65536 locazioni) indipendenti su RAM e ROM
  • RAM integrata - 128 byte (memoria dati)
  • ROM integrata - 4kB (memoria programma)
  • Quattro porte dati di I/O orientate al byte
  • UART (porte seriali) di tipo sincrono e asincrono
  • Due contatori/timer a 16 bit
  • Gestore di interrupt a due livelli di priorità
  • Modalità di risparmio energetico

Una caratteristica particolarmente utile dell'8051 è la possibilità di elaborare direttamente e in modo efficiente variabili booleane a un solo bit, sui registri interni e RAM. Questa caratteristica ha contribuito a consolidare la popolarità dell'8051 in applicazioni di controllo industriale. Un'altra caratteristica apprezzata è la presenza di quattro gruppi separati di registri di contesto, usati per ridurre drasticamente le latenze degli interrupt rispetto ai metodi tradizionali di immagazzinamento del contesto su stack.

Le porte seriali dell'8051 rendono semplice l'uso del chip come interfaccia di comunicazione. È infatti possibile configurare la modalità di connessione tra i pin esterni e i registri a scorrimento interni, collegandoli anche ai timer interni, ottenendo così il supporto di diverse modalità di comunicazione seriale, di tipo sia sincrono che asincrono. Il chip è in grado di comunicare secondo i protocolli seriali più diffusi, in particolare era supportata anche una modalità compatibile con il protocollo RS-485 per comunicazioni multipunto. Questa capacità di interfacciamento verso altri dispositivi rende l'8051 particolarmente adatto per applicazioni di tipo embedded.

La gestione delle UART è particolarmente semplice, in quanto alla fine di una trasmissione o di una ricezione è possibile generare un interrupt, con la possibilità di agganciarlo anche a una temporizzazione opzionale.

La versione originale dell'8051 ha un ciclo macchina pari a 12 cicli di clock. Dato che la maggior parte delle istruzioni richiedono uno o due cicli macchina, usando un clock a 12 Mhz l'8051 è in grado di eseguire in un secondo fino a un milione di istruzioni da un ciclo macchina al secondo e fino a cinquecentomila istruzioni da due cicli macchina. Le ultime versioni dell'8051 hanno ridotto drasticamente il numero di cicli di clock per ciclo macchina, fino ad arrivare a un ciclo macchina per ciclo di clock, come avviene nei modelli prodotti da SILabs, da alcuni Dallas e da qualche Atmel: a una frequenza di clock di 100MHz la CPU risulta quindi particolarmente efficiente, altra caratteristica fondamentale per le applicazioni di tipo embedded. Grazie all'impiego di tecnologie FPGA, gli ultimi modelli di 8051 sono in grado di lavorare a una frequenza di clock pari a 200MHz.

I modelli più recenti di microcontrollore basati su 8051 hanno esteso anche le funzionalità del chip, aumentando il numero di sorgenti di interrupt, estendendo le funzionalità accessorie quali il numero di timer e contatori, e integrando ulteriori funzioni: oscillatori interni, memorie non volatili programmabili (flash EPROM, EEPROM), ROM con bootloader per un avvio velocizzato, dispositivi avanzati di comunicazione seriale sincrona (I2C, SPI), gestori di interfaccia USB, modalità di basso consumo e risparmio energetico, meccanismi di autodiagnostica eccetera.

Programmazione

Oltre alla programmazione in linguaggio assembler nativo, erano disponibili anche diversi compilatori C, completi di estensioni per il controllo dell'allocazione delle variabili nei vari tipi di memoria e per l'accesso alle caratteristiche hardware specifiche dell' 8051, come ad esempio i banchi di registri per le variabili a singolo bit. Erano inoltre disponibili compilatori e interpreti di altri linguaggi di alto livello come Forth, BASIC, Pascal/Object Pascal, PL/M e Modula 2.

Processori correlati

 
Processore Intel 8031

Il predecessore dell'8051, l'8048, fu utilizzato nella tastiera del primo PC IBM, dove il suo compito era l'invio della codifica dei tasti verso l'unità primaria del computer. L'8048 e i suoi derivati sono ancora in uso in alcuni modelli di tastiere semplici.

L'8031 era una versione ridotta dell'8051 priva ROM interna. Per usare questo chip, era quindi obbligatorio l'uso di una memoria programma esterna contenente il programma eseguibile.

L'8751 era una versione leggermente potenziata dell'8051 contenente 4kB di EEPROM al posto della ROM.

Sono state prodotte anche versioni denominate 8052, 8032 e 8072, caratterizzate tutte dalla presenza di un terzo timer e di una capacità doppia di RAM/ROM/EEPROM.

Bibliografia

  • (English) William Payne, Embedded Controller Forth for the 8051 Family (hardcover), Elsevier, December 19, 1990, p. 528, ISBN 978-0125475709. Lingua sconosciuta: English (aiuto); Formato sconosciuto: hardcover (aiuto)

Collegamenti esterni