L' Intel 8051 è un microcontrollore 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 '80 e i primi '90, ma oggigiorno è stata ampiamente sorpassata da una vasta gamma di dispositivi 8051-compatibili, più veloci e/o funzionali, prodotti da più di 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. La designazione ufficiale di Intel per la famiglia 8051 di microcontrollori è MCS 51.

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

la famiglia originale di Intel fù prodotta utilizzando tecnologia NMOS, ma le versioni successive, identificate da una lettera C nel loro nome (es., 80C51) usavano tecnologia CMOS ed erano più efficenti dal punto di vista energetico dei loro predecessori NMOS. Ciò li rese più adatti per l'uso su dispositivi a batteria.

Applicazioni e funzioni importanti

 
Microarchitettura i8051.
  • è provvisto di (CPU, RAM, ROM, I/O, interrupt logici, timer, ecc.) su chip
  • ALU a 8-bit, Registri e Accumulatori; Ciò rende l'Intel 8051 un microcontrollore a 8-bit
  • Bus dati a 8-bit - è possibile accedere a dati di 8 bit in un'unica operazione
  • Bus indirizzi a 16-bit - Può indirizzare 216 locazioni di memoria - 64 kiB (65536 locazioni) indipendenti su RAM e ROM
  • RAM integrata - 128 bytes (memoria dati)
  • ROM integrata - 4 kiB (memoria programma)
  • Quattro porte dati di I/O orientate al byte
  • UART (porta seriale)
  • Due contatori a 16-bit/timers
  • Due livelli di priorità degli interupt
  • Modalità di risparmio energetico

Una caratteristica particolarmente utile dell'8051 è la possibilità di elaborare booleani a livello di bit con logica booleana, direttamente e in modo efficiente su registri interni e RAM. Questa caratteristica ha contribuito a cementare la popolarità delll'8051 in applicazioni di controllo industriale. Un'altra caratteristica apprezzata è la presenza di quattro gruppi separati di registri, che possono essere usati per ridurre drasticamente le latenze degli interrupt se comparato con i più comuni metodi di immagazzinamento del contesto degli interupt su una pila.

Le UARTs dell'8051 rendono semplice l'uso del chip come interfaccia per comunicazioni seriali. I pin esterni possono essere configurati per connettersi ai registri shifter interni in differenti maniere, è possibile anche utilizzare i temporizzatori interni, permettendo connessioni seriali in un buon numero di modi diversi, sia sincrono che asincrono. Alcuni modi non consentono le comunicazioni con componenti esterni. è possibile pure un modo compatibile con una comunicazione RS-485 su più punti, ma la vera forza dell'8051 è la sua capacità di integrazione su sistemi con protocolli ad-hoc già esistenti (ad esempio, pilotare dispositivi controllati con una connessione seriale).

Una volta che una UART, e un temporizzatore se necessario, è stata configurata, il programmatore deve solo scrivere una semplice routine di interrupt per riempire il registro shifter di invio ogni volta l'ultimo bit shiftato è inviato tramite la UART e/o riempie lo spazio vuoto nel registro shifte del destinatario. Il programma principale allora effettua letture e scritture seriali semplicemente leggendo e scrivendo dati a 8-bit sugli stacks.

8051 based microcontrollers typically include one or two UARTs, two or three timers, 128 or 256 bytes of internal data RAM (16 bytes of which are bit-addressable), up to 128 bytes of I/O, 512 bytes to 64 kB of internal program memory, and sometimes a quantity of extended data RAM (ERAM) located in the external data space. The original 8051 core ran at 12 clock cycles per machine cycle, with most instructions executing in one or two machine cycles. With a 12 MHz clock frequency, the 8051 could thus execute 1 million one-cycle instructions per second or 500,000 two-cycle instructions per second. Enhanced 8051 cores are now commonly used which run at six, four, two, or even one clock per machine cycle, and have clock frequencies of up to 100 MHz, and are thus capable of an even greater number of instructions per second. All SILabs, some Dallas and a few Atmel devices have single cycle cores.

Even higher speed single cycle 8051 cores, in the range 130 MHz to 150 MHz, are now available in internet downloadable form for use in programmable logic devices such as FPGAs, and at many hundreds of MHz in ASICs, for example the netlist from www.e8051.com. Top clock speed 8051 cores reach over 200 MHz in today's FPGA technologies - as an example www.dcd.pl.

Common features included in modern 8051 based microcontrollers include built-in reset timers with brown-out detection, on-chip oscillators, self-programmable Flash ROM program memory, bootloader code in ROM, EEPROM non-volatile data storage, I²C, SPI, and USB host interfaces, PWM generators, analog comparators, A/D and D/A converters, RTCs, extra counters and timers, in-circuit debugging facilities, more interrupt sources, and extra power saving modes.

Programmazione

Diversi compilatori C sono disponibili per l' 8051, la maggior parte dei quali presenta estensioni che permettono al programmatore di specificare dove ciascuna variabile dovrebbe essere allocata nei suoi sei tipi di memoria, e fornisce l'accesso a specifiche caratteristiche hardware dell'8051 come banchi di registri multipli istruzioni per la manipolazione dei bits. Altri linguaggi di alto livello come Forth, BASIC, Pascal/Object Pascal, PL/M e Modula 2 sono disponibili per l' 8051, ma sono meno diffusi rispetto C e assembly.

 
Intel 8031 processors

Il predecessore dell' 8051, l' 8048, fù utilizzato nella tastiera del primo IBM PC, dove convertiva la pressione di un tasto sulla tastiera in un flusso dati seriale che era inviato all'unità primaria del computer. L' 8048 e i suoi derivati sono ancora in uso Template:As of in alcuni modelli di tastiere semplici.

L' 8031 era una versione ritagliata dell'originale Intel 8051 che non conteneva nessuna memoria di programma interna (ROM). Per usare questo chip una ROM esterna contenente il programma che l'8031 avrebbe dovuto estrarre ed eseguire, doveva essere aggiunta.

L' 8052 era una versione potenziate dell'originale 8051 che implementava 256 bytes di RAM interna invece di 128 bytes, 8 kiB di ROM invece di 4 kiB, e un terzo temporizzatore a 16-bit. L' 8032 aveva le stesse caratteristiche eccetto la memoria programma ROM interna. L' 8052 e 8032 sono considerati ampiamente obsoleti perchè queste caratteristiche e altre sono incluse in tutti i moderni microcontrollori basati su 8051.

Riferimenti

  • (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

Template:Intel controllers

Template:8bitMCUs

(EN) Denis Howe, Intel 8051, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL