Microcontrolador

De Viquipèdia
Dreceres ràpides: navegació, cerca
Microcontrolador Motorola 68HC11 i xips de suport

Un microcontrolador (abreviat µC, uC o MCU) és un petit ordinador en un sol circuit integrat especialitzat a controlar equips electrònics, i inclou una CPU, una petita quantitat de memòria, unitats d' E/S (Entrada/Sortida) i sol portar memòria FRAM, NOR flash o una ROM per a guardar 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 mixta, 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 rep una interrupció, això fa que el seu consum sigui gairebé nul.

Història[modifica | modifica el codi]

La institució Smithsonian diu que el primer microprocessador va ser creat per Gary Boone i Michael Cochran en 1971. El resultat del seu treball va ser el TMS 1000, va començar a estar disponible comercialment en 1974. Combinava: memòria de lectura, memòria de lectura/escriptura, processador i rellotge en un únic xip amb la finalitat de ser utilitzat en sistemes encastats.

En 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 a milions de teclats d'ordinador, i a moltes altres aplicacions. En aquell moment el president d'Intel, Luke J. Valenter, va declarar que el microcontrolador va ser una de les tecnologies d'èxit fins a la data i va expandir el pressupost per a la divisió que s'encarregava del microcontrolador en un 25%.

La majoria de microcontroladors tenien dues variants. Una era la que permetia la re programació de la EPROM. Incorporava una petita finestra per on, si s'exposava a llum ultraviolada, aconseguíem esborrar el contingut de la memòria del programa. L'altre 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 d'embolcalls ceràmics amb unes finestres de quartz, fent-les significativament més cares que les que no es poden esborrar.

En 1993 es va introduir les EEPROM. Aquesta memòria permetia esborrar ràpidament el contingut de la memòria elèctricament sense necessitat del car encapsulat de les EPROM, permetent un ràpid prototipatge i una ràpida programació.

El preu dels microcontroladors s'ha abaratit al llarg del temps. Si es compren en gran quantitats, un microcontrolador de 8-bits pot arribar a costar menys de 0.25 USD, i alguns 32-bits sobre 1 USD.

Quantitats[modifica | modifica el codi]

En 1997 es van vendre més de 2.000 milions de microcontroladors de 8 bits. En 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 al 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% en 2010 i un 12% en 2011.

Característiques[modifica | modifica el codi]

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 memòria de lectura-escriptura per a dades, memòria de només lectura per emmagatzemar el programa, memòria flash per emmagatzemament 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 les aplicacions típiques per les que es programen. Consumeixen poca energia (miliwatts o fins i tot microwatts), i en general mantenen la funcionalitat mentre esperen un esdeveniment com prémer un botó o una interrupció. El consum d'energia en estat inactiu (rellotge de la CPU i perifèrics desactivats) pot ser de només nanowatts, sent ideals per 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, i això és tot.

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 convertidors d'analògic a digital (CAD), temporitzadors, UARTs i 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. Degut al fet que s'utilitza força lloc 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[modifica | modifica el codi]

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[modifica | modifica el codi]

L'arquitectura Von Neumann utilitza el mateix dispositiu d'emmagatzematge tant per a les instruccions com per a les dades, sent 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ó els 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 se li 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: memòria de dades (típicament algun tipus de SRAM) i memòria de programes (ROM, PROM, EEPROM, flash o d'un altre tipus no volàtil). En aquest cas l'organització és diferent a 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[modifica | modifica el codi]

L'altra variant és l'arquitectura Harvard, i per excel·lència la utilitzada en supercomputadors, en els microcontroladors, i 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 a cadascuna d'elles 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 que consum moltes línies d' I/S del processador; pel que en sistemes on el processador està situat en el seu propi encapsulat, nomes 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 al seu correcte funcionament.

Processador en detall[modifica | modifica el codi]

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 realitzar 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 un molt especial, alguna cosa no creat fins avui: el primer microprocessador integrat.

L'Intel 4004 va sortir al mercat en 1971, é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 què 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 gens d'especial en un microprocessador; la meravella està en què la combinació adequada dels codis d'entrada, la seva execució seqüencial, poder saltar cap enrere o avanci 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 contemplades en els simples codis bàsics.

Avui estem acostumats als sistemes amb microprocessadors, però en el llunyà 1971 aquesta era una forma de pensar una mica diferent i fins a escandalosa, a tal punt que Busicom, l'empresa que va encarregar els xips a Intel, no es va mostrar interessada en l'invent, per la qual cosa Intel ho va comercialitzar per a uns altres que van mostrar interès; la resta és història: una revolució sense precedents en l'avanç tecnològic de la humanitat.

És lògic pensar que l'invent del microprocessador integrat no va ser una revelació divina per als seus creadors, sinó que es va sustentar en els avanços, existents fins al moment, en el camp de l'electrònica digital i les teories sobre computació. Però sense cap dubte va ser la gota que va satisfer la copa de la revolució cientificotècnica, perquè va permetre desenvolupar aplicacions impensades o accelerar algunes ja encaminades.

Ara començarem a veure com és que està fet un processador, no serà una explicació massa detallada perquè des de la seva invenció aquest ha tingut importants revolucions pròpies, però hi ha aspectes bàsics que no han canviat i que constitueixen la base de qualsevol microprocessador. En la Figura 'Esquema d'un microcontrolador' podem veure l'estructura típica d'un microprocessador, amb els seus components fonamentals, és clar que cap processador real s'ajusta exactament a aquesta estructura, però així i tot ens permet conèixer cadascun dels seus elements bàsics i les seves interrelacions.

Registres[modifica | modifica el codi]

Són un espai de memòria molt reduït però necessari per a qualsevol microprocessador, d'aquí es prenen les dades per a diverses operacions que ha de realitzar la resta dels circuits del processador. Els registres serveixen per emmagatzemar els resultats de l'execució d'instruccions, carregar dades des de la memòria externa o emmagatzemar-los en ella.

Encara que la importància dels registres sembli trivial, no ho és en absolut. De fet una part dels registres, la destinada a les dades, és la que determina un dels paràmetres més importants de qualsevol microprocessador. Quan sentim que un processador és de 4, 8, 16, 32 o 64 bits, ens estem referint a processadors que realitzen les seves operacions amb registres de dades d'aquesta grandària, i per descomptat, això determina moltes de les potencialitats d'aquestes màquines.

Mentre major sigui el nombre de bits dels registres de dades del processador, majors seran les seves prestacions, quant a poder de còmput i velocitat d'execució, ja que aquest paràmetre determina la potència que es pot incorporar a la resta dels components del sistema, per exemple, no té sentit tenir una ALU de 16 bits en un processador de 8 bits.

D'altra banda un processador de 16 bits, pot ser que faci una suma de 16 bits en un sol cicle de màquina, mentre que un de 8 bits haurà d'executar diverses instruccions abans de tenir el resultat, encara que tots dos processadors tinguin la mateixa velocitat d'execució per a les seves instruccions. El processador de 16 bits serà més ràpid perquè pot fer el mateix tipus de tasques que un de 8 bits, en menys temps.

Unitat de control[modifica | modifica el codi]

Aquesta unitat és de les més importants en el processador, en ella recau la lògica necessària per a la descodificació i execució de les instruccions, el control dels registres, la ALU, els busos i quanta cosa més es vulgui ficar en el processador.

La unitat de control és un dels elements fonamentals que determinen les prestacions del processador, ja que el seu tipus i estructura, determina paràmetres tals com el tipus de conjunt d'instruccions, velocitat d'execució, temps del cicle de màquina, tipus de busos que pot tenir el sistema, maneig d'interrupcions i un bon nombre de coses més que en qualsevol processador van a parar a aquest bloc.

Per descomptat, les unitats de control, són l'element més complex d'un processador i normalment estan dividides en unitats més petites treballant de conjunt. La unitat de control agrupa components tals com la unitat de *descodificació, unitat d'execució, controladors de memòria cache, controladors de busos, controlador d'interrupcions, pipelines, entre altres elements, depenent sempre del tipus de processador.

Unitat aritmètico-lògica[modifica | modifica el codi]

Com els processadors són circuits que fan bàsicament operacions lògiques i matemàtiques, se li dedica a aquest procés una unitat completa, amb certa independència. Aquí és on es realitzen les sumes, restes, i operacions lògiques típiques de l'àlgebra de Boole.

Actualment aquest tipus d'unitats ha evolucionat molt i els processadors més moderns tenen diverses ALU, especialitzades en la realització d'operacions complexes com les operacions en coma flotant. De fet en molts casos li han canviat el seu nom pel de “coprocessador matemàtic”, encara que aquest és un terme que va sorgir per donar nom a un tipus especial de processador que es connecta directament al processador més tradicional.

El seu impacte en les prestacions del processador és també important perquè, depenent de la seva potència, tasques més o menys complexes, poden fer-se en temps molt curts, com per exemple, els càlculs en coma flotant.

Busos[modifica | modifica el codi]

Són el mitjà de comunicació que utilitzen els diferents components del processador per intercanviar informació entre si, eventualment els busos o una part d'ells estaran reflectits en els pins de l'encapsulat del processador.

En el cas dels microcontroladors, no és comú que els busos estiguin reflectits en l'encapsulat del circuit, ja que aquests es destinen bàsicament a les I/S de propòsit general i perifèrics del sistema.

Existeixen tres tipus de busos:

  • Adreça: S'utilitza per seleccionar al dispositiu amb el qual es vol treballar o en el cas de les memòries, seleccionar la dada que es desitja llegir o escriure.
  • Dades: S'utilitza per moure les dades entre els dispositius de maquinari (entrada i sortida).
  • Control: S'utilitza per gestionar els diferents processos d'escriptura lectura i controlar l'operació dels dispositius del sistema.

Conjunt d'instruccions[modifica | modifica el codi]

Encara que no aparegui en l'esquema, no podíem deixar al conjunt o repertori d'instruccions fora d'aquesta festa, perquè aquest element determina el que pot fer el processador.

Defineix les operacions bàsiques que pot realitzar el processador, que conjugades i organitzades formen el que coneixem com a programari. El conjunt d'instruccions són com les lletres de l'alfabet, l'element bàsic del llenguatge, que organitzades adequadament permeten escriure paraules, oracions i quan programa se li ocorri.

Existeixen dos tipus bàsics de repertoris d'instruccions, que determinen l'arquitectura del processador: CISC i RISC.

CISC, de l'anglès Complex instruction set computing, Computadora de Conjunt d'Instruccions Complex. Els microprocessadors CISC tenen un conjunt d'instruccions que es caracteritza per ser molt ampli i que permeten realitzar operacions complexes entre operands situats en la memòria o en els registres interns. Aquest tipus de repertori dificulta el paral·lelisme entre instruccions, per la qual cosa en l'actualitat, la majoria dels sistemes CISC d'alt rendiment, converteixen les instruccions complexes en diverses instruccions simples del tipus RISC, cridades generalment microinstruccions.

Dins dels microcontroladors CISC podem trobar a la popular família Intel 8051 i la Z80, encara que actualment existeixen versions CISC-RISC d'aquests microcontroladors, que pretenen aprofitar els avantatges dels processadors RISC alhora que es manté la compatibilitat cap enrere amb les instruccions de tipus CISC.

RISC, de l'anglès Reduced Instruction Set Computer, Computadora amb Conjunt d'Instruccions Reduït. Se centra en l'obtenció de processadors amb les següents característiques fonamentals:

  • Instruccions de grandària fixa.
  • Poques instruccions.
  • Només les instruccions de càrrega i emmagatzematge accedeixen a la memòria de dades.
  • Nombre relativament elevat de registres de propòsit general.

Una de les característiques més destacables d'aquest tipus de processadors és que possibiliten el paral·lelisme en l'execució, i redueixen els accessos a memòria. És per això que els processadors més moderns, tradicionalment basats en arquitectures CISC implementen mecanismes de traducció d'instruccions CISC a RISC, per aprofitar els avantatges d'aquest tipus de processadors.

Els processadors dels microcontroladors PIC són de tipus RISC.

Memòria[modifica | modifica el codi]

Anteriorment havíem vist que la memòria en els microcontroladors ha d'estar situada dins del mateix encapsulat, això és així la majoria de les vegades, perquè la idea fonamental és mantenir el gruix dels circuits del sistema dins d'un sol integrat.

En els microcontroladors la memòria no és abundant, aquí no trobarà Gigaoctets de memòria com en les computadores personals. Típicament la memòria de programes no excedirà de 16 K-localitzacions de memòria no volàtil (flash o eprom) per contenir els programes.

La memòria RAM està destinada a l'emmagatzematge d'informació temporal que serà utilitzada pel processador per realitzar càlculs o un altre tipus d'operacions lògiques. A l'espai d'adreces de memòria RAM se situen a més els registres de treball del processador i els de configuració i treball dels diferents perifèrics del microcontrolador. És per això que en la majoria dels casos, encara que es tingui un espai d'adreces d'una grandària determinada, la quantitat de memòria RAM que disposa el programador per emmagatzemar les seves dades és menor que la que pot adreçar el processador.

El tipus de memòria utilitzada en les memòries RAM dels microcontroladors és SRAM, la qual cosa evita haver d'implementar sistemes de refrescament com en el cas de les computadores personals, que utilitzen gran quantitat de memòria, típicament alguna tecnologia DRAM. A pesar que la memòria SRAM és més costosa que la DRAM, és el tipus adequat per als microcontroladors perquè aquests posseeixen petites quantitats de memòria RAM.

En el cas de la memòria de programes s'utilitzen diferents tecnologies, i l'ús d'una o una altra depèn de les característiques de l'aplicació a desenvolupar, a continuació es descriuen les cinc tecnologies existents, que major utilització tenen o han tingut:

  • Màscara ROM. En aquest cas no es “grava” el programa en memòria sinó que el microcontrolador es fabrica amb el programa, és un procés similar al de producció dels CD comercials mitjançant masterització. El cost inicial de produir un circuit d'aquest tipus és alt, perquè el disseny i producció de la màscara és un procés costós, no obstant això, quan es necessiten diversos milers o fins i tot centenars de milers de microcontroladors per a una aplicació determinada, com per exemple, algun electrodomèstic, el cost inicial de producció de la màscara i el de fabricació del circuit es distribueix entre tots els circuits de la sèrie i, el cost final d'aquesta, és bastant menor que el dels seus semblants amb un altre tipus de memòria.
  • Memòria PROM (Programmable Read-Only Memory) també coneguda com a OTP (One Estafi Programmable). Aquest tipus de memòria, també és coneguda com a PROM o simplement ROM. Els microcontroladors amb memòria OTP es poden programar una sola vegada, amb algun tipus de programador. S'utilitzen en sistemes on el programa no requereixi futures actualitzacions i per a sèries relativament petites, on la variant de màscara sigui molt costosa, també per a sistemes que requereixen serialización de dades, emmagatzemats com a constants en la memòria de programes.
  • Memòria EPROM (Erasable Programmable Read Only Memory). Els microcontroladors amb aquest tipus de memòria són molt fàcils d'identificar perquè el seu encapsulat és de ceràmica i porten damunt una finestreta de vidre des de la qual pot veure's l'hòstia de silici del microcontrolador. Es fabriquen així perquè la memòria EPROM és reprogramable, però abans ha d'esborrar, i per a això cal exposar-la a una font de llum ultraviolada, el procés d'enregistrament és similar a l'empleat per a les memòries OTP. En aparèixer tecnologies menys costoses i més flexibles, com les memòries EEPROM i FLAS, aquest tipus de memòria han caigut en desús, s'utilitzaven en sistemes que requereixen actualitzacions del programa i per als processos de desenvolupament i posada a punt.
  • Memòria EEPROM (Electrical Erasable Programmable Read Only Memory). Van ser el substitut natural de les memòries EPROM, la diferència fonamental és que poden ser esborrades elèctricament, per la qual cosa la finestreta de cristall de quars i els encapsulats ceràmics no són necessaris. En disminuir els costos dels encapsulats, els microcontroladors amb aquest tipus de memòria es van fer més barats i còmodes per treballar que els seus equivalents amb memòria EPROM. Una altra característica destacable d'aquest tipus de microcontrolador és que va ser en ells on van començar a utilitzar-se els sistemes de programació en el sistema que eviten haver de treure el microcontrolador de la targeta que ho allotja per fer actualitzacions al programa.
  • Memòria flash. En el camp de les memòries reprogramables per a microcontroladors, són l'últim avanç tecnològic en ús a gran escala, i han substituït als microcontroladors amb memòria EEPROM. Als avantatges de les memòries flash se li addicionen la seva gran densitat respecte a les seves predecessores el que permet incrementar la quantitat de memòria de programes a un cost molt baix. Poden a més ser programades amb les mateixes tensions d'alimentació del microcontrolador, l'accés en lectura i la velocitat de programació és superior, disminució dels costos de producció, entre unes altres.

El més habitual és trobar que la memòria de programes i dades està situada tota dins del microcontrolador, de fet, actualment són pocs els microcontroladors que permeten connectar memòria de programes en l'exterior de l'encapsulat. Les raons per a aquestes “limitacions” estan donades perquè l'objectiu fonamental és obtenir la major integració possible i connectar memòries externes consumeix línies d'I/S que són un dels recursos més preuats dels microcontroladors.

Malgrat l'anterior existeixen famílies com la Intel 8051 els microcontroladors de la qual tenen la capacitat de ser expandits en una variada gamma de configuracions per a l'ús de memòria de programes externa. En el cas dels PIC, aquestes possibilitats estan limitades només a alguns microcontroladors de la gamma alta, la Figura 5 mostra algunes de les configuracions per a memòria de programa que podem trobar en els microcontroladors. La configuració (a) és la típica i podem trobar-la gairebé en el 100% dels microcontroladors. La configuració (b) és poc freqüent i generalment s'aconsegueix configurant al microcontrolador per sacrificar la memòria de programes interna, no obstant això l'Intel 8031 és un microcontrolador sense memòria de programes interna. La configuració (c) és la que es troba habitualment en els microcontroladors que tenen possibilitats d'expandir la seva memòria de programes com alguns PIC de gamma alta.

Quan es requereix augmentar la quantitat de memòria de dades, el més freqüent és col·locar dispositius de memòria externa en forma de perifèrics, d'aquesta forma es poden utilitzar memòries RAM, FLASH o fins i tot discos durs com els dels ordinadors personals, mentre que per als càlculs i altres operacions que requereixin emmagatzematge temporal de dades s'utilitza la memòria RAM interna del microcontrolador. Aquesta forma d'expandir la memòria de dades està determinada, en la majoria dels casos, pel tipus de repertori d'instruccions del processador i perquè permet un elevat nombre de configuracions diferents, a més del consegüent estalvi de línies d'I/S que s'aconsegueix amb l'ús de memòries amb busos de comunicació seriï.

Perifèrics[modifica | modifica el codi]

Quan observem l'organització bàsica d'un microcontrolador, assenyalem que dins d'aquest se situen un conjunt de perifèrics. A continuació descriurem alguns dels perifèrics que amb més freqüència trobarem en els microcontroladors .

Entrades i sortides de propòsit general[modifica | modifica el codi]

També coneguts com a ports d'E / S, generalment agrupades en ports de 8 bits de longitud, permeten llegir dades de l'exterior o escriure en ells des de l'interior del microcontrolador, el destí habitual és el treball amb dispositius simples com relés, LED, o qualsevol una altra cosa que li passi al programador.

Alguns ports d'E / S tenen característiques especials que li permeten manejar sortides amb determinats requeriments de corrent, o incorporen mecanismes especials d'interrupció per al processador.

Típicament qualsevol pin d'E / S pot ser considerada E / S de propòsit general, però com els microcontroladors no poden tenir infinits pins, ni tan sols tots els pins que vulguem, les E / S de propòsit general comparteixen els pins amb altres perifèrics. Per utilitzar un pin amb qualsevol de les característiques a ell assignades hem de configurar mitjançant els registres destinats a ells.

Temporitzadors i comptadors[modifica | modifica el codi]

Són circuits sincrònics per al recompte dels polsos que arriben al seu poder per aconseguir l'entrada de rellotge. Si la font d'un gran recompte és l'oscil·lador intern del microcontrolador, és comú que no tinguin un pin associat, i en aquest cas treballen com a temporitzadors. D'altra banda, quan la font de comptatge és externa, llavors tenen associat un pin configurat com a entrada, aquest és la manera comptador.

Els temporitzadors són un dels perifèrics més habituals en els microcontroladors i s'utilitzen per a moltes tasques, com per exemple, el mesurament de freqüència, implementació de rellotges, per al treball de conjunt amb altres perifèrics que requereixen una base estable de temps entre altres funcionalitats. És freqüent que un microcontrolador típic incorpori més d'un temporitzador / comptador i fins i tot alguns tenen arranjaments de comptadors. Com veurem més endavant aquest perifèric és un element gairebé imprescindible i és habitual que tinguin associada alguna interrupció. Les mides típiques dels registres de recompte són 8 i 16 bits, podent trobar dispositius que només tenen temporitzadors d'una grandària o amb més freqüència amb ambdós tipus de registre de recompte.

Convertidor analògic/digital[modifica | modifica el codi]

Com és molt freqüent el treball amb senyals analògics, aquestes han de ser convertides a digital i per això molts microcontroladors incorporen un convertidor analògic-digital, el qual s'utilitza per a prendre dades de diverses entrades diferents que es seleccionen mitjançant un multiplexor.Les resolucions més freqüents són 8 i 10 bits, que són suficients per a aplicacions senzilles. Per a aplicacions en control i instrumentació estan disponibles resolucions de 12bit, 16bit i 24bit.6 També és possible connectar un convertidor extern, en cas de necessitat.

Ports de comunicació[modifica | modifica el codi]

Port sèrie Aquest perifèric està present en gairebé qualsevol microcontrolador, normalment en forma de UART (Universal Asynchronous Receiver Transmitter) o USART (Universal Synchronous Asynchronous Receiver Transmitter) depenent de si permeten o no la manera sincrònica de comunicació. El destí comú d'aquest perifèric és la comunicació amb un altre microcontrolador o amb un PC i en la majoria dels casos cal afegir circuits externs per completar la interfície de comunicació. La forma més comuna de completar el port sèrie és per comunicar-ho amb un PC mitjançant la interfície EIA-232 (més coneguda com RS-232), és per això que moltes persones es refereixen a la UART o USART com a port sèrie RS-232, però això és un error, ja que aquest perifèric es pot utilitzar per interconnectar dispositius mitjançant altres estàndards de comunicació. En aplicacions industrials s'utilitza preferiblement RS-485 per les seves superior abast en distància, velocitat i resistència al soroll.


SPI Aquest tipus de perifèric s'utilitza per comunicar al microcontrolador amb altres microcontroladors o amb perifèrics externs connectats a ell, per mitjà d'una interfície molt senzilla. Hi ha només un node controlador que permet iniciar qualsevol transacció, la qual cosa és un desavantatge en sistemes complexos, però la seva senzillesa permet l'aïllament galvànic de forma directa per mitjà de optoacopladors.


I2C Compleix les mateixes funcions que la SCI, però requereix menys senyals de comunicació i qualsevol node pot iniciar una transacció. És molt utilitzat per connectar les targetes gràfiques de les computadores personals amb els monitors, perquè aquests últims informin de les seves prestacions i permetre l'autoconfiguració del sistema de vídeo.


USB Els microcontroladors són els que han permès l'existència d'aquest sistema de comunicació. És un sistema que treballa per polling (monitoratge) d'un conjunt de perifèrics intel·ligents per part d'un amo, que és normalment un computador personal. Cada mode intel·ligent està governat inevitablement per un microcontrolador.

Ethernet És el sistema més estès en el món per a xarxes d'àrea local cablejades. Els microcontroladors més poderosos de 32 bits s'usen per implementar perifèrics prou poderosos com perquè puguin ser accedits ​​directament per la xarxa. Molts dels encaminadors casolans de petites empreses estan construïts en base a un microcontrolador que fa del cervell del sistema.


Can Aquest protocol és del tipus CSMA / CD amb tolerància a elevats voltatges de manera comuna i orientat al temps real. Aquest protocol és l'estàndard més important en la indústria automotriu (OBD). També s'usa com a capa física del "field bus" per al control industrial.


Altres ports de comunicació Hi ha una enorme quantitat d'altres busos disponibles per a la indústria automotriu (linbus) o de mitjans audiovisuals com el I2S, IEEE 1394. És usuari se'ls trobarà quan treballi en alguna àrea especialitzada.


Comparadors Són circuits analògics basats en amplificadors operacionals que tenen la característica de comparar dues senyals analògics i donar com a sortida els nivells lògics '0' o '1' en dependència del resultat de la comparació. És un perifèric molt útil per a detectar canvis en senyals d'entrada de les que només ens interessa conèixer quan està en un rang determinat de voltatge.


Modulador d'ample de polsos Els PWM (Pulse Width Modulator) són perifèrics molt útils sobretot per al control de motors, però hi ha un grup d'aplicacions que poden realitzar-se amb aquest perifèric, dins de les quals podem citar: inversió DC / AC per UPS, conversió digital analògica D / A, control regulat de llum (dimming) entre d'altres.


Memòria de dades no volàtil Molts microcontroladors han incorporat aquests tipus de memòria com un perifèric més, per a l'emmagatzematge de dades de configuració o dels processos que es controlen. Aquesta memòria és independent de la memòria de dades tipus RAM o la memòria de programes, en la qual s'emmagatzema el codi del programa a executar pel processador del microcontrolador.

Molts dels microcontroladors PIC, inclouen aquest tipus de memòria, típicament en forma de memòria EEPROM, fins i tot alguns d'ells permeten utilitzar part de la memòria de programes com memòria de dades no volàtil, de manera que el processador té la capacitat d'escriure en la memòria de programes com si aquesta fos un perifèric més.

Famílies de microcontroladors[modifica | modifica el codi]

Els microcontroladors més comuns en us són:

Empresa 8 bits 16 bits 32 bits
Atmel AVR (mega i tiny), 89Sxxxx familia similar 8051 SAM7 (ARM7TDMI), SAM3 (ARM Cortex-M3), SAM9 (ARM926), AVR32
Freescale
(abans Motorola)
68HC05, 68HC08, 68HC11, HCS08 68HC12, 68HCS12, 68HCSX12, 68HC16 683xx, PowerPC, ColdFire
Holtek HT8
Intel MCS-48 (família 8048)
MCS51 (família 8051)
8xC251
MCS96, MXS296 x
National Semiconductor COP8 x x
Microchip Família 10f2xx Família 12Cxx Família 12Fxx, 16Cxx y 16Fxx 18Cxx y 18Fxx PIC24F, PIC24H y dsPIC30FXX,dsPIC33F amb motor dsp integrat PIC32
NXP Semiconductors
(abans Philips)
80C51 XA Cortex-M3, Cortex-M0, ARM7, ARM9
Renesas
(abans Hitachi, Mitsubishi i NEC)
78K, H8 H8S, 78K0R, R8C, R32C/M32C/M16C RX, V850, SuperH, SH-Mobile, H8SX
STMicroelectronics ST 62, ST 7 STM32 (ARM7)
Texas Instruments TMS370 MSP430 C2000, Cortex-M3 (ARM), TMS570 (ARM)
Zilog Z8, Z86E02

Vegeu també[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Microcontrolador Modifica l'enllaç a Wikidata

Referències[modifica | modifica el codi]

  1. Vienna University of Technology, Introduction To Microcontrollers (Gunther Gridling, Bettina Weiss), 26 de febrer de 2007
  2. Augarten, Stan (1983). The Most Widely Used Computer on a Chip: The TMS 1000. State of the Art: A Photographic History of the Integrated Circuit. New Haven y New York: Ticknor & Fields. ISBN 0-89919-195-9. Consultatel 2 de març de 2012.
  3. http://archive.computerhistory.org/resources/access/text/Oral_History/102658328.05.01.acc.pdf Oral History Panel on the Development and Promotion of the Intel 8048 Microcontroller, Computer History Museum oral history, 2008, consultat el 28 de juny de 2011, pàgina 4
  4. http://microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2018&mcparam=en013082
  5. "Atmel’s Self-Programming Flash Microcontrollers" de Odd Jostein Svendsli 2003

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Microcontrolador