miniatura|Microcontrolador Motorola 68HC11 i xips de suport Un microcontrolador (abreujat µC, uC o MCU) és un petit ordinador en un sol circuit integrat especialitzat a controlar equips electrònics, que inclou una CPU (unitat central de processament), una petita quantitat de memòria, unitats d'E/S (Entrada/Sortida) i acostuma a portar una memòria FRAM, NOR flash o una ROM per guardar-hi el programa.
Els microcontroladors van ser dissenyats per a aplicacions per a sistemes encastats, en contraposició als microprocessadors utilitzats en els ordinadors personals per a aplicacions d'ús general. Gràcies a la seva mida i cost reduït, fan que siguin ideals per al control digital de molts dispositius. També són comuns els microcontroladors de senyal mixt, perquè poden integrar components analògics necessaris per controlar sistemes electrònics no digitals.
Alguns microcontroladors utilitzen paraules de quatre bits i operen amb una freqüència de rellotge tan baixa com 4 kHz per aconseguir un consum baix. Generalment també tenen la capacitat de quedar-se en un estat de repòs fins que reben una interrupció, això fa que el seu consum sigui gairebé nul.
Història La institució Smithsonian diu que el primer microprocessador va ser creat per Gary Boone i Michael Cochran el 1971. El resultat de la seva feina va ser el TMS 1000, que va començar a estar disponible comercialment el 1974. Combinava una memòria de lectura, una memòria de lectura i escriptura, un processador i un rellotge en un únic xip amb la finalitat de ser utilitzat en sistemes encastats.
Com a resposta a l'existència del TMS 1000, Intel va desenvolupar l'Intel 8048, que combinava RAM i ROM en el mateix xip. Aquest xip va trobar el seu lloc en milions de teclats d'ordinador i moltes altres aplicacions. En aquell moment, el president d'Intel, Luke J. Valenter, va declarar que el microcontrolador era una de les tecnologies d'èxit fins a la data i va incrementar en un 25% el pressupost per a la divisió que s'encarregava del microcontrolador.
La majoria de microcontroladors tenien dues variants. Una era la que permetia la reprogramació de l'EPROM (Erasable Programmable Read-Only Memory). Incorporava una petita finestra mitjançant la qual, si s'exposava a la llum ultraviolada, s'aconseguia esborrar el contingut de la memòria del programa. L'altra variant era la PROM, que era exactament del mateix tipus de memòria però no permetia esborrar el contingut de la memòria del programa. Les versions que es podien esborrar requerien embolcalls ceràmics amb unes finestres de quars, i això les feia significativament més cares que les que no es podien esborrar.
El 1993 es van introduir les EEPROM. Aquesta memòria permetia esborrar ràpidament el contingut de la memòria elèctricament sense necessitat del cap encapsulat de les EPROM, la qual cosa permetia un ràpid prototipatge i una ràpida programació.
El preu dels microcontroladors s'ha abaratit al llarg del temps. Si se'n compren grans quantitats, un microcontrolador de 8 bits pot arribar a costar menys de 0,25 dòlars nord-americans (USD), i alguns de 32 bits, al voltant d'1 dòlar.
Quantitats El 1997 es van vendre més de 2.000 milions de microcontroladors de 8 bits. El 2002 aproximadament el 55% de totes les CPU que es van vendre a tot el món van ser microcontroladors de 8 bits, i segons Semico el 2006 es van vendre al voltant de 4.000 milions de microcontroladors. Actualment, Semico ha manifestat que el mercat de MCU ha crescut un 36-,5% el 2010, i un 12% el 2011.
Característiques Emfatitza l'alta integració, en contrast amb un microprocessador que només conté una CPU. A més de les típiques operacions lògiques i aritmètiques d'un microprocessador de propòsit general, un microcontrolador integra elements addicionals com la memòria de lectura-escriptura per a dades, la memòria només de lectura per emmagatzemar el programa, memòria flash per a emmagatzematge permanent, perifèrics, i interfícies d'entrada sortida (Ports, I2C, SPI...). A velocitats com 32 kHz, els microcontroladors operen a velocitats molt baixes en comparació amb els microprocessadors, tot i que això és adequat per a les aplicacions típiques per a les quals es programen. Consumeixen poca energia (miliwatts o fins i tot microwatts), i en general mantenen la funcionalitat mentre esperen un comandament com ara prémer un botó o una interrupció. El consum d'energia en estat inactiu (amb el rellotge de la CPU i els perifèrics desactivats) pot ser de només nanowatts, tret que els converteix en ideals per a aplicacions de baix consum i bateria duradora. Encara que n'hi ha de la mida d'un segell de correus, el normal és que siguin encara més petits, ja que, lògicament, formen part del dispositiu que controlen.
Un microcontrolador difereix d'una CPU normal en el fet que és més fàcil convertir-lo en un ordinador en funcionament, amb un mínim de xips externs de suport. La idea és que el circuit integrat s'encasti en el dispositiu, connectat a la font d'energia i d'informació que necessiti, sense que calgui res més.
Per exemple, un microcontrolador típic disposa d'un generador de rellotge integrat (clock) i una petita quantitat de memòria RAM i ROM/EPROM/EEPROM. Això significa que per a fer-lo funcionar, tot el que es necessita són uns pocs programes de control i un cristall de sincronització. Els microcontroladors generalment també disposen d'una gran varietat de dispositius d'entrada/sortida, com els convertidors d'analògic a digital (CAD), els temporitzadors, UARTs i els busos d'interfície en sèrie especialitzats, com I2C i CAN. Normalment, aquests dispositius integrats poden ser controlats per instruccions de processadors especialitzats. Els microcontroladors moderns sovint inclouen un llenguatge de programació integrat, com el BASIC, que s'utilitza amb freqüència per a aquest propòsit.
Els microcontroladors negocien la velocitat i la flexibilitat per a facilitar el seu ús. A causa del fet que utilitza força espai en el xip per a incloure funcionalitat, com els dispositius d'entrada/sortida o la memòria que inclou el microcontrolador, s'ha de prescindir d'altres tipus de circuit.
Arquitectures Bàsicament existeixen dues arquitectures de computadors, i per descomptat, estan presents al món dels microcontroladors: Von Neumann i Harvard. Es diferencien en la forma de connexió de la memòria al processador i en els busos que cadascuna necessita.
Arquitectura Von Neumann L'arquitectura Von Neumann utilitza el mateix dispositiu d'emmagatzematge tant per a les instruccions com per a les dades, i és la que s'utilitza als ordinadors personals perquè permet estalviar una bona quantitat de línies d'I/S, que són bastant costoses. També aquesta organització estalvia als dissenyadors de plaques mare una bona quantitat de problemes i redueix el cost d'aquest tipus de sistemes.
En un ordinador personal, quan es carrega un programa en memòria, a aquest s'assigna un espai d'adreces de la memòria que es divideix en segments, dels quals típicament tendirem els següents: codi (programa), dades i pila. És per això que podem parlar de la memòria com un tot, encara que existeixin diferents dispositius físics en el sistema (disc dur, memòria RAM, memòria flash, unitat de disc òptic...).
En el cas dels microcontroladors, existeixen dos tipus de memòria ben definides: la memòria de dades (típicament algun tipus de SRAM) i la memòria de programes (ROM, PROM, EEPROM, flash o d'un altre tipus no volàtil). En aquest cas l'organització és diferent de les de l'ordinador personal, perquè hi ha circuits diferents per a cada memòria i normalment no s'utilitzen els registres de segments, sinó que la memòria està segregada i l'accés a cada tipus de memòria depèn de les instruccions del processador.
A pesar que en els sistemes integrats amb arquitectura Von Neumann la memòria estigui segregada, i existeixin diferències pel que fa a la definició tradicional d'aquesta arquitectura; els busos per accedir a tots dos tipus de memòria són els mateixos, del processador solament surten el bus de dades, el d'adreces, i el de control. Com a conclusió, l'arquitectura no ha estat alterada, perquè la forma en què es connecta la memòria al processador segueix el mateix principi definit en l'arquitectura bàsica.
Algunes famílies de microcontroladors com la Intel 8051 i la Z80 implementen aquest tipus d'arquitectura, fonamentalment perquè era la utilitzada quan van aparèixer els primers microcontroladors.
Arquitectura Harvard L'altra variant és l'arquitectura Harvard, i és, per excel·lència, la que s'utilitza en supercomputadors, en els microcontroladors, i en els sistemes integrats en general. En aquest cas, a més de la memòria, el processador té els busos segregats, de manera que cada tipus de memòria té un bus de dades, un d'adreces i un de control.
L'avantatge fonamental d'aquesta arquitectura és que permet adequar la grandària dels busos a les característiques de cada tipus de memòria; a més, el processador pot accedir-hi a cadascuna de forma simultània, la qual cosa es tradueix en un augment significatiu de la velocitat de processament. Típicament els sistemes amb aquesta arquitectura poden ser dues vegades més ràpids que sistemes similars amb arquitectura Von Neumann.
El desavantatge està en el fet que consumeix moltes línies d'E/S del processador; pel que en sistemes on el processador està situat en el seu propi encapsulat, només s'utilitza en supercomputadors. No obstant això, en els microcontroladors i altres sistemes integrats, on usualment la memòria de dades i programes comparteixen el mateix encapsulat que el processador, aquest inconvenient deixa de ser un problema seriós i és per això que trobem l'arquitectura Harvard en la majoria dels microcontroladors.
Per això és important recordar que un microcontrolador es pot configurar de diferents maneres, sempre que es respecti la grandària de memòria que aquest requereixi per a funcionar correctament.
Processador en detall En els anys 1970, l'electrònica digital no estava suficientment desenvolupada, però dins de l'electrònica ja era una especialitat consagrada. Per aquell temps les computadores es dissenyaven perquè realitzessin algunes operacions molt simples, i si es volia que aquestes màquines poguessin fer coses diferents, era necessari fer canvis bastant significatius al maquinari.
A principis de la dècada de 1970, una empresa japonesa li va encarregar a una jove companyia nord-americana que desenvolupés un conjunt de circuits per produir una calculadora de baix cost. Intel es va dedicar de ple a la tasca i entre els circuits encarregats va desenvolupar-ne un de molt especial, una cosa que encara no s'havia creat fins aleshores: el primer microprocessador integrat.
L'Intel 4004 va sortir al mercat en 1971, i és una màquina digital sincrònica complexa, com qualsevol altre circuit lògic seqüencial sincrònic. No obstant això, l'avantatge d'aquest component està en el fet que allotja internament un conjunt de circuits digitals que poden fer operacions corrents per al càlcul i processament de dades, però des d'una òptica diferent: les seves entrades són una sèrie de codis ben definits, que permeten fer operacions de caràcter específic el resultat del qual està determinat pel tipus d'operació i els operands involucrats.
Vist així, no hi ha res d'especial en un microprocessador; la meravella està en el fet que la combinació adequada dels codis d'entrada, la seva execució seqüencial, poder saltar cap enrere o avançar en la seqüència de codis sobre la base de decisions lògiques o ordres específiques, permet que la màquina realitzi un munt d'operacions complexes, no incloses en els simples codis bàsics.