Intel 8051: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1:
[[File:KL Intel P8051.jpg|right|thumb|Microcontrollore Intel P8051.]]
[[File:SAB-C515-LN.jpg|thumb|SAB-C515-LN della Infineon è basato sull' 8051]]
L' '''Intel 8051''' è un [[microcontrollore]] a 8 [[bit]] su singolo chip basato su [[architettura Harvard]], prodotto da [[Intel]] nel 1980 come processore per [[Sistema embedded|sistemi integrati]]. La versione originale di Intel era popolare negli [[anni 1980|anni ottanta]] e i primi [[anni 1990|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 Semiconductors|NXP]] (precedentemente [[Philips]] Semiconductor), Nuvoton (precedentemente [[Winbond]]), [[ST Microelectronics]], [[Silicon Laboratories]] (precedentemente Cygnal), [[Texas Instruments]] e [[Cypress Semiconductor]].
 
Riga 7:
== Applicazioni e funzioni importanti ==
[[File:Intel_8051_arch.svg|right|thumb|Microarchitettura i8051.]]
Il chip dell' 8051 integrava tutte le funzionalità seguenti:
* [[Central processing unit|CPU]] a 8 bit
* Registri, accumulatore e unità aritmetico-logica [[ALU]] a 8 bit
Riga 20:
* Modalità di risparmio energetico
 
Una caratteristica particolarmente utile dell' 8051 era la possibilità di elaborare direttamente e in modo efficiente [[Variabile booleana|variabili booleane]] a un solo bit, sui registri interni e RAM. Questa caratteristica ha contribuito a consolidare la popolarità delll' 8051 in applicazioni di controllo industriale. Un'altra caratteristica apprezzata era 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 degli interrupt su uno [[stack]].
 
Le porte seriali dell' 8051 rendevano semplice l'uso del chip come interfaccia di comunicazione. Era 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 era in grado di comunicare secondo i protocolli seriali più diffusi, in particolare era supportata anche una modalità compatibile con il protocollo [[EIA-485|RS-485]] per comunicazioni multipunto. Questa capacità di interfacciamento verso altri dispositivi rendeva l' 8051 particolarmente adatto per applicazioni di tipo embedded.
 
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.
 
I microcontrollori 8051 includono tipicamente uno o due UARTs, due o tre temporizzatori, 128 o 256 bytes di RAM interna (16 byte indirizzabili), fino a 128 bytes di I/O, da 512 bytes a 64 kB di memoria programmi interna, a volte, un quantitativo di RAM estesa (ERAM - Extended RAM) situato nella memoria esterna. L'originale core 8051 gira a 12 cicli di clock per ciclo macchina, eseguendo la maggior parte delle istruzioni in uno o due cicli macchina. Con una frequenza clock di 12 Mhz, l' 8051 potrebbe quindi eseguire un milione istruzioni (che richiedono 1 ciclo macchina) per secondo o 500,000 istruzioni (che richiedono 2 cicli macchina) per secondo. Il rinnovato 8051 è comunemente utilizzato, il quale gira a sei, quattro, due, o addirittura un clock per ciclo macchina, e ha una frequenza di clock di 100Mhz, ed è quindi in grado anche di eseguire un maggior numero di istruzioni al secondo. Tutti i SILabs, alcuni Dallas e pochi Atmel sono provvisti di un singolo ciclo macchina per core.
 
Velocità ancora più elevata negli 8051 a singolo ciclo macchina, la gamma da 130Mhz a 150Mhz, sono ora disponibili su internet in forma scaricabile per la programmazione logica di dispositivi quali FPGA, e per centinaia di Mhz in ASTCs, per sempio, la netlist da www.e8051.com. la velocità massima di clock degli 8051 raggiunge più di 200Mhz grazie alla tecnologia FPGA odierna - per esempio www.dcd.pl
 
Caratteistiche cumuni inclusi nei moderni microcontrollori basati sull' 8051 comprendono reset timers integrati con brown-out detection, oscillatori on-chip, Flash rom auto-programmabile, codice di avvio nella ROM (bootloader), EEPROM non-volatile, I²C, SPI, host interfaccia usb, generatori PWM, extra contatori e temporizzatori, utility di debugging in-circuit, altri interrupt sources, e extra power saving modes.
 
== Programmazione ==
Oltre alla programmazione in linguaggio [[assembler]] nativo, erano disponibili anche diversi compilatori [[C (linguaggio di programmazione)|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 (linguaggio)|Pascal]]/[[Object Pascal]], [[PL/M]] e [[Modula 2]].
 
== Processori correlati ==
[[File:INTEL8031AH.png|thumb|right|Processore Intel 8031]]
Il predecessore dell' 8051, l' '''8048''', fu utilizzato nella tastiera del primo [[IBM PC|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.
Riga 45:
L' '''8052''' era una versione potenziata dell'originale 8051 che implementava 256 byte di RAM interna invece di 128 byte, 8kB di ROM invece di 4kB e un terzo timer a 16 bit.
 
L' '''8032''' era una versione ridotta dell' 8052 priva ROM interna (similmente a quanto succedeva con l' ''8031'' rispetto all' ''8051'').
 
Infine, l' ''8752'' (similmente all' 8751 rispetto l' 8051) conteneva 8kB di EEPROM invece che ROM