68HC11: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(30 versioni intermedie di 17 utenti non mostrate)
Riga 1:
FamigliaLa sigla '''68HC11''' identifica una famiglia di [[microcontrollori]] ad [[8 bit]] introdotti da [[Motorola]] a partire dal [[1985]]. Attualmente prodottoProdotto da [[Freescale]], la sua [[CPU]], ad architettura [[CISC]], è un’evoluzioneun'evoluzione del [[Motorola 6800]]. Realizzato con la tecnologia High Speed [[CMOS|C-MOS]] (HCMOS), è stato il primo microcontrollore ad incorporare un banco di [[EEPROM]] (dalla versione A8).
[[File:68HC11 Block Diagram.jpg|thumb|right|68HC11 Diagramma a Blocchi]]
La produzione è iniziata con la versione A0 (MC68HC11A0), che poteva funzionare con un [[Clock|clock]] massimo di 2 Mhz MHz. Nel tempo sono state realizzate numerose versioni, con più o meno risorse, in termini di memoria e periferiche. Tutte le versioni attualmente in produzione tollerano una frequenza massima di clock di 3 Mhz MHz (tranne la versione F1, che arriva a 4 Mhz MHz), con un ciclo di bus di 333 ns minimo (250 ns per la versione F1).
==Caratteristiche generali==
 
==Caratteristiche generali==
===CPU===
Il suo [[Instruction set|set di istruzioni]] è compatibile in avanti con il 6800, con l’aggiuntal'aggiunta del registro indice Y (le istruzioni che usano il registro Y hanno lo stesso codice operativo ([[opcode]]) del registro X, precedute dal byte 0x18). Dispone di 2 accumulatori ad 8 bit (registri A e B) che possono essere usati insieme come un accumulatore a [[16 bit]] (registro D), due registri indice a 16 bit X e Y, un puntatore allo [[Stack pointer|stack]] (SP), un [[registro di stato]], ''condition code'' ad 8 bit (CCR) e il [[program counter]]. Può eseguire moltiplicazioni 8 x 8 bit (A x B), con 16-bit di risultato, divisioni frazionali e intere a 16 bit. Una parte di istruzioni a 16 bit utilizzano i registri A e B come un unico accumulatore a 16 bit (D) per le operazioni di confronto (in più, i registri X e Y possono essere confrontati anche con operandi a 16-bit in memoria), di addizione, di sottrazione e di spostamento, è inoltre possibile sommare l'accumulatore B ai registri indice X o Y. Sono state aggiunte operazioni di ''bit test and jump'', eseguendo una funzione logica AND tra operandi, che modifica il condition code (CCR), ma lascia invariati gli operandi. L'architettura del 68HC11 supporta 5 modalità di indirizzamento delle istruzioni: immediato, diretto, esteso, indicizzato, inerente e relativo. Le istruzioni di ''Stop'' e ''Wait'' sospendono l'esecuzione del programma, forzando uno stato di basso consumo (''low power-stand by''), in attesa di [[reset]] o [[interrupt]].
 
===Modi di funzionamento===
Le diverse versioni del 68HC11 hanno un differente numero di porte esterne, etichettate in ordine alfabetico. La versione più comune ha cinque porte, A, B, C, D, ed E, ma alcune hanno un minimo di 3 porte (versione D3). Ogni porta è dia 8 bit, tranne D, che è dia 616 bit (in alcune varianti del chip, anche D haè a 8 bit). Il 68HC11 può essere utilizzato con programma interno e [[RAM]] interna (da 1 a 768 byte) o una memoria esterna fino a 64 kilobyte. Con memoria esterna, B e C sono usate come bus indirizzi e dati. In questo modo, la porta C è multiplata per trasportare sia il byte inferiore del bus indirizzi che i dati. Le porte sono multifunzione, a seconda della modalità impostata. Le modalità configurabili sono 4:
* Single-chip
* Expanded-multiplexed
Riga 13 ⟶ 14:
* Bootstrap
 
In modalità ''single-chip'' tutte le porte sono utilizzabili come linee di [[I/O]] e le risorse di memoria sono solo quelle interne. Nella modalità ''expanded-multiplexed'' le porte CB e DC assumono la funzione di bus dati/indirizzi per l’accessol'accesso a poco meno di 64 Kb di spazio esterno d’indirizzamentod'indirizzamento, altre due linee sono dedicate rispettivamente alai segnalesegnali di R/W (''read/write'') e AS (''address strobe''), quest’ultimoquest'ultimo necessario per il multiplexing del bus dati con gli 8 bit più bassi del bus indirizzi, che condividono gli stessi pin. La modalità di ''test'' è utilizzata principalmente per scopo di test durante la produzione. La modalità di ''bootstrap'' è una variante di quella ''single-chip''; al reset si attiva un particolare firmware che consente di caricare e avviare un programma nella Ram interna, tramite l’interfaccial'interfaccia seriale.
 
===Periferiche===
Le periferiche integrate nel 68HC11 sono:
 
* SCI - ''Serial Communication Interface'' - asincrona, con un [[Baud rate|baud-rate]] impostabile da pochi baud fino a 250000 baud (versione F1).
* [[SPI]] - ''[[Serial Peripheral Interface]]'' - sincrona, con una frequenza massima di 2 Mhz MHz (versione F1).
* 16 bit ''System timer'' con 3 canali di ''input capture'', 5 di ''output compare'' e un ''Pulse accumulator'' a 8 bit
* Circuito di ''Real-Time Interrupt''
* Timer di COP (''Computer Operating Properly'') - [[watchdog]]
* [[Convertitore A/D]] a 8 bit e 8 ingressi multiplati
* 512256 byte di RAM (768 nella versione E9)
* 512 byte di [[EEPROM]] (assente in alcune versioni)
* 8 Kb di [[Read Only Memory|ROM]]/[[EPROM]] (20 Kb nella versione E9, assente in alcune versioni)
* 38 linee di [[I/O]] ''general-purpose'', di cui 15 bidirezionali, 11 solo in ingresso e 12 solo in uscita
 
===Interrupts===
Il 68HC11 dispone di 18 vettori di [[interrupt]] e 3 di [[reset]], questi ultimi generabili dal COP ''watchdog'' e dalla condizione di ''slow clock'', oltre che dall'esterno; il reset generato da cause interne, viene forzato anche verso l'esterno.
[[File:Ic-photo-Motorola--MC68HC11A1FN--(68HC11-MCU).png|thumb|right|68HC11 nel package 52pin52-pin [[PLCC]] ]]
 
===Buffalo===
Dalla versione A8 è presente unil [[firmware]] di un [http://en.wikipedia.org/wiki/Machine_code_monitor[monitor (informatica)|monitor]] (o ''bootloader''), chiamato ''Buffalo'' (“''Bit User Fast Friendly Aid to Logical Operation''“ è il [[prompt]] visualizzato al suo avvio), che consente di effettuare il caricamento di programmi in Ram e il [[debug]] on-chip, tramite l’interfaccial'interfaccia seriale asincrona. Le sue caratteristiche sono:
* Caricamento del [[codice eseguibile]] in memoria, da porta SCI, nel formato [[s-record]]
* Avvio del codice eseguibile
* Inserimento e rimozione di [[Breakpoint|breakpointsbreakpoint]]s
* Esecuzione di singole istruzioni ([[single step]])
* Ispezione e modifica di aree di memoria e registri interni
* Ispezione di parti di programma tramite un [[disassembler]] incorporato
* Scrittura o modifica di linee di programma, grazie ad un [[assembler]] incorporato.
 
==Applicazioni==
Il 68HC11 è utilizzato per lettori di codici a barre, telefoni, macchine fotografiche, strumenti musicali, elettrodomestici, scrittori di Key Card, apparecchiature elettromedicali e di misura, robotica amatoriale, automotive e molti altri [[sistemi embedded]]. Con un ciclo macchina di 333 nSec (a 3  MHz di clock), è in grado di eseguire mezzo milione di istruzioni al secondo, consumando pochi mA. Non sono poche le applicazioni complesse chebasate sul 68HC11, ricorrono alla tecnica di [[bank switching]], per aumentare la memoria programma indirizzabile.
 
Il suo progetto si è dimostrato talmente innovativo, da essere ancora prodotto ed utilizzato, dopo più di un quarto di secolo, il che lo colloca tra i microcontrollori più diffusi nel mondo.
 
==Fonti==
*[ {{cita web |1=http://www.68bits.com |2=M68HC11 Reference Manual] |accesso=15 novembre 2018 |urlarchivio=https://web.archive.org/web/20171110031827/http://www.68bits.com/# |dataarchivio=10 novembre 2017 |urlmorto=sì }}
 
== Altri progetti ==
==Riferimenti esterni==
{{interprogetto}}
 
==RiferimentiCollegamenti esterni==
*[ {{cita web|url=http://www.freescale.com/webapp/sps/site/taxonomy.jsp?nodeId=01624684498635 |titolo=Freescale 68HC11 (Legacy) Part Info]}}
*[http://www.evbplus.com/ Wytec 68HC11 Development Board]
* {{cita web|http://www.clear.rice.edu/elec201/Book/6811_asm.html|68HC11 Assembly}}
*[http://www.gmvhdl.com/hc11core.html A fully synthesizable VHDL implementation of the HC11 CPU]
* {{cita web|http://www.ele.uri.edu/courses/ele205/6811-Instructions/index.html|68HC11 Instruction Set}}
*[http://www.dcd.pl/ipcore/90/d68hc11e/ Digital Core Design 68HC11E - HDL IP Core]
*[ {{cita web|http://www.aspisys.com/asm11.htm |Win/Linux-based freeware cross-assembler]}}
*[http://www.dcd.pl/ipcore/89/d68hc11f/ Digital Core Design 68HC11F - HDL IP Core]
*[ {{cita web|http://www.aspisys.com/f1.htm |4MHz-bus 68HC11F1-based board]}}
*[http://www.dcd.pl/ipcore/88/d68hc11k/ Digital Core Design 68HC11K - HDL IP Core]
*[http://www.aspisys.com/asm11.htm Win/Linux-based freeware cross-assembler]
*[http://www.aspisys.com/f1.htm 4MHz-bus 68HC11F1-based board]
 
{{Controllo di autorità}}
{{Portale|informatica|ingegneria}}
 
[[Categoria:MicroprocessoriMicrocontrollori]]
 
[[ar:فريسكيل 68HC11]]
[[de:Motorola 68HC11]]
[[en:Freescale 68HC11]]
[[es:Motorola 68HC11]]
[[fr:Freescale 68HC11]]
[[ja:Freescale 68HC11]]
[[th:Freescale 68HC11]]
[[tr:68HC11]]