Anda di halaman 1dari 13

1 Conceptos introductorios a los microcontroladores

Es un circuito integrado programable que contiene todos los componentes de un computador.


Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido
tamao, suele ir incorporado en el propio dispositivo al que gobierna. Esta ltima
caracterstica es la que le confiere la denominacin de controlador incrustado (embedded
controller).
El microcontrolador es un computador dedicado. En su memoria slo reside un programa
destinado a gobernar una aplicacin determinada; sus lneas de entrada/salida soportan el
conexionado de los sensores y actuadores del dispositivo a controlar, y todos los recursos
complementarios disponibles tienen como nica finalidad atender sus requerimientos. Una
vez programado y configurado el microcontrolador solamente sirve para gobernar la tarea
asignada.
Un microcontrolador es un computador completo, aunque de limitadas prestaciones, que est
contenido en el chip de un circuito integrado y se destina a gobernar una sola tarea. El nmero
de productos que funcionan en base a uno o varios microcontroladores aumenta de forma
exponencial.
Los electrodomsticos de lnea blanca (lavadoras, hornos, lavavajillas, etc.) y de lnea marrn
(televisores, vdeos, aparatos musicales, etc.) incorporan numerosos microcontroladores.
Igualmente, los sistemas de supervisin, vigilancia y alarma en los edificios utilizan estos
chips. Tambin se emplean para optimizar el rendimiento de ascensores, calefaccin, aire
acondicionado, alarmas de incendio, robo, etc.
El esquema general bsico de un
microcomputador. Se compone de tres
bloques fundamentales: la CPU (Central
Processing Unit), la memoria, y la
entrada y salida. Los bloques se conectan
entre s mediante grupos de lneas
elctricas denominados buses. Los buses
pueden ser de direcciones (si transportan
direcciones de memoria o de entrada y
salida), de datos (si transportan datos o instrucciones) o de control (si transportan seales de
control diversas).

1.1 Diferencia entre Microprocesador, Microcomputadora y


Microcontrolador.
La CPU es el "cerebro" del microcomputador y acta bajo el control del programa
almacenado en la memoria. La CPU se ocupa bsicamente de traer las instrucciones del
programa desde la memoria, interpretarlas y hacer que se ejecuten. La CPU tambin incluye
los circuitos para realizar operaciones aritmticas y lgicas elementales con los datos
binarios, en la denominada Unidad Aritmtica y Lgica (ALU: Arithmetic and Logic Unit).
En un microcomputador, la CPU no es otra cosa que el microprocesador, el circuito
integrado capaz de realizar las funciones antes mencionadas. Un microcontrolador es un

microcomputador realizado en un circuito integrado (chip). Histricamente, los


microcontroladores aparecieron con posterioridad a los microprocesadores y han tenido
evoluciones independientes.
Los microprocesadores se han desarrollado fundamentalmente orientados al mercado de los
ordenadores personales y las estaciones de trabajo, donde se requiere una elevada potencia
de clculo, el manejo de gran cantidad de memoria y una gran velocidad de procesamiento.
Un parmetro importante en los microprocesadores es el tamao de sus registros internos
(8, 16, 32 64 bits), que determina la cantidad de bits que pueden procesar simultneamente.
Los microcontroladores se han desarrollado para cubrir las ms diversas aplicaciones. Se
usan en automocin, en equipos de comunicaciones y de telefona, en instrumentos
electrnicos, en equipos mdicos e industriales de todo tipo, en electrodomsticos, en
juguetes, etc.
El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso
(UCP), tambin llamada procesador, de un computador. La UCP est formada por la Unidad
de Control, que interpreta las instrucciones, y el Camino de Datos, que las ejecuta.
Las patitas de un microprocesador sacan al exterior las lneas de sus buses de direcciones,
datos y control, para permitir conectarle con la Memoria y los Mdulos de E/S y configurar
un computador implementado por varios circuitos integrados. Se dice que un
microprocesador es un sistema abierto porque su configuracin es variable de acuerdo con la
aplicacin a la que se destine.
Un microprocesador es un sistema abierto con el que puede construirse un computador con
las caractersticas que se desee, acoplndole los mdulos necesarios.
Un microcontrolador es un sistema cerrado que contiene un computador completo y de
prestaciones limitadas que no se pueden modificar.

1.2 Caractersticas y aplicaciones de los microcontroladores.


Hay varias caractersticas que son deseables en un microcontrolador:
l. Recursos de entrada y salida. Se requiere hacer nfasis en los recursos de entrada y de
salida del dispositivo, tales como el manejo individual de lneas de entrada y salida, el manejo
de interrupciones, seales analgicas, etc.
2. Espacio optimizado. Se trata de tener en el menor espacio posible, y a un coste
razonable, los elementos esenciales para desarrollar una aplicacin. Debido a las
dimensiones de su encapsulado.

3. El microcontrolador idneo para una aplicacin. Se procura que el diseador


disponga del microcontrolador hecho a la medida de su aplicacin. Con el hardware
requerido (ms o menos memoria, ms o menos dispositivos de entrada y salida, etc.)
4. Seguridad en el funcionamiento del microcontrolador. Un componente comn en los
microcontroladores y que contribuye a una operacin segura es el perro guardin (WDT:
Watchdog Timer), dispositivo que no existe en los ordenadores personales.
5. Bajo consumo. Dado que hay muchas aplicaciones donde se desea utilizar bateras
como fuente de alimentacin, es altamente deseable que el microcontrolador consuma
poca energa. Tambin interesa que el microcontrolador consuma muy poco cuando no
est realizando ninguna accin.
6. Proteccin de los programas frente a copias. Se trata de proteger la informacin
almacenada en la memoria, es decir, el programa de la aplicacin, contra lecturas furtivas
de la memoria del microcontrolador. Los microcontroladores disponen de mecanismos
que les protegen de estas acciones.
Los microcontroladores se han desarrollado para cubrir las ms diversas aplicaciones. Se
usan en automocin, en equipos de comunicaciones y de telefona, en instrumentos
electrnicos, en equipos mdicos e industriales de todo tipo, en electrodomsticos, en
juguetes, etc.
Los microcontroladores estn concebidos fundamentalmente para ser utilizados en
aplicaciones puntuales, es decir, aplicaciones donde el microcontrolador debe realizar un
pequeo nmero de tareas, al menor costo posible.
En estas aplicaciones, el microcontrolador ejecuta un programa almacenado
permanentemente en su memoria, el cual trabaja con algunos datos almacenados
temporalmente e interacta con el exterior a travs de las lneas de entrada y salida de que
dispone. El microcontrolador es parte de la aplicacin: es un controlador incrustado o
embebido en la aplicacin (embedded controller). En aplicaciones de cierta envergadura
se utilizan varios microcontroladores, cada uno de los cuales se ocupa de un pequeo grupo
de tareas.

1.3 Tipos de arquitecturas computacionales.


1.3.1 Arquitecturas von Neumann y Harvard
En la memoria de un ordenador, un microcomputador o un microcontrolador, se almacenan
instrucciones y datos. Las instrucciones deben pasar secuencialmente a la CPU para su
descodificacin y ejecucin, en tanto que algunos datos en memoria son ledos por la CPU y
otros son escritos en la memoria desde la CPU. Puede intuirse que la organizacin de la
memoria y su comunicacin con la CPU son dos aspectos que influyen en el nivel de
prestaciones del ordenador.
Las arquitecturas von Neumann y Harvard son modelos generales del hardware de los
ordenadores que representan dos soluciones diferentes al problema de la conexin de la CPU
con la memoria y a la organizacin de la memoria como almacn de instrucciones y datos.
La arquitectura von Neumann toma el nombre del matemtico John von Neumann que
propuso la idea de un ordenador con el programa almacenado (stored-program computer). J.
von Neumann trabaj en el equipo de diseadores de la computadora ENIAC (Electronic

Numerical Integrator and Calculator) diseada en la Universidad de Pennsylvania durante


la Segunda Guerra Mundial.
El trmino arquitectura Harvard se debe al nombre del lugar donde Howard Aiken dise
los ordenadores Mark 1, 11, 111 y IV. Estos ordenadores fueron los primeros en utilizar
memorias separadas para instrucciones y datos, una concepcin diferente al ordenador de
programa almacenado. La arquitectura von Neumann utiliza una memoria nica para
instrucciones y datos. Esto significa que con un mismo bus de direcciones se localizan
(direccionan) instrucciones y datos y que por un nico bus de datos transitan tanto
instrucciones como datos. La misma seal de control que emite la CPU para leer un dato,
sirve para leer una instruccin. No hay seales de control diferentes para datos e
instrucciones. Debe quedar claro que aunque se use memoria ROM para almacenar el
programa y RAM para los datos, para la CPU no hay tal distincin, sino que ROM y RAM
forman un conjunto nico (una memoria de lectura y escritura) para el cual la CPU emite
seales de control, de direccin y de datos.
La arquitectura Harvard utiliza memorias separadas para instrucciones y datos. En este caso
la memoria de programa (que almacena instrucciones) tiene su bus de direcciones (de
instrucciones), su propio bus de datos (ms bien es un bus de instrucciones) y su bus de
control. Por otra parte, la memoria de datos tiene sus propios buses de direcciones, datos y
control, independientes de los buses de la memoria de programa. La memoria de programa
es slo de lectura, mientras que en la de datos se puede leer y escribir.
La arquitectura von Neumann requiere menos lneas que la Harvard para conectar la CPU
con la memoria, lo cual significa una conexin ms simple entre ambas. Pero con esta
arquitectura es imposible manipular simultneamente datos e instrucciones, debido a la
estructura de buses nicos, algo que s es posible en la arquitectura Harvard, que tiene buses
separados. Esto confiere a la arquitectura Harvard la ventaja de una mayor velocidad de
ejecucin de los programas.

Arquitecturas (a) van Neumann y (b) Harvard. La arquitectura van Neumann utiliza una memoria
nica que se conecta a la CPU mediante los buses de direcciones (BDIR), datos (BDAT) y control
(BCON). La arquitectura Harvard utiliza memorias separadas para instrucciones y datos, las cuales
se conectan a la CPU mediante los buses de direcciones de instrucciones (BDIR-I) y de direcciones
de datos (BDIR-D), los buses de instrucciones (BINST) y de datos (BDAT) y los buses de control de
instrucciones (BCON-I) y de datos (BCON-D).

En los microcomputadores, la CPU es un circuito integrado: el microprocesador. La


arquitectura von Neumann requiere menos terminales en el microprocesador que la
arquitectura Harvard. Esta fue una razn decisiva para que desde sus inicios los
microcomputadores basados en un microprocesador se hayan diseado utilizado casi
exclusivamente la arquitectura von Neumann. En los microcontroladores la situacin es
diferente. Al estar todos los componentes del sistema dentro del circuito integrado,
desaparece la necesidad de minimizar el nmero de terminales de la CPU, de modo que en

ellos ha predominado la arquitectura Harvard. Los microcontroladores PIC son un ejemplo


de sistemas con arquitectura Harvard.
1.3.2 Arquitecturas CISC y RISC
CISC (Complex Instruction Set Computer) y RISC (Reduced Instruction Set Computer) son
dos modelos generales de ordenadores, desde el punto de vista de la concepcin de su
repertorio de instrucciones, lo cual repercute directamente sobre la arquitectura de la CPU.
Un ordenador CISC tiene un repertorio de instrucciones complejo y un ordenador RISC tiene
un repertorio de instrucciones reducido.
Al aparecer los microprocesadores y los microcontroladores, la tendencia inicial fue
proveerlos de un repertorio de instrucciones lo ms potente posible, de modo que el modelo
predominante fue el CISC. La complejidad de las instrucciones fue en aumento; en un mismo
repertorio haba instrucciones que hacan operaciones muy simples, como por ejemplo mover
un dato desde la memoria al acumulador, junto a otras que efectuaban operaciones tan
complejas como mover una cadena de datos de un lugar a otro en la memoria.
Las instrucciones tenan diferente longitud y los modos de direccionamiento se hicieron cada
vez ms elaborados. Este aumento en la complejidad de las instrucciones se reflej, por
supuesto, en la complejidad del hardware de la CPU, en el que se haca necesario dedicar un
gran espacio del circuito integrado a la descodificacin y ejecucin de las instrucciones.
En la arquitectura RISC, la CPU dispone de un repertorio corto de instrucciones sencillas.
Cada instruccin puede realizar una operacin muy simple, como mover un dato entre la
CPU y la memoria, pero a alta velocidad. Se puede lograr que todas las instrucciones tengan
la misma longitud. Hay pocos modos de direccionamiento de los datos y son aplicables a
todas las celdas de la memoria de datos. La complejidad de la CPU disminuye, de modo que
es fcil aumentar la frecuencia del oscilador de la CPU y con ello la velocidad de las
instrucciones. Como tienen menos transistores, son ms baratas de disear y producir. Desde
mediados del octavo decenio del siglo XX, sta ha sido la tendencia predominante en el
diseo de microprocesadores y microcontroladores. Los microcontroladores PIC son un
ejemplo de dispositivos con arquitectura RISC.

1.4 Tipos de Microcontroladores y sus fabricantes.


Los microcontroladores de un mismo tipo forman una familia, que se caracteriza, en general,
por tener la misma CPU y ejecutar el mismo repertorio de instrucciones. Es lo que se conoce
como "ncleo" (core) del microcontrolador. Los miembros de una familia de
microcontroladores tienen el mismo ncleo, pero se diferencian en la entrada y salida y en la
memoria. Por ejemplo, todos los microcontroladores de la familia del 8051 (MCS51) tienen
una CPU semejante, con un grupo de registros comunes a todos los miembros de la familia,
y ejecutan el mismo repertorio de instrucciones. En cambio, los distintos miembros de la
familia tienen puertos de entrada y salida y memoria diferentes, en cantidad y tipo.
Los microprocesadores y microcontroladores se fabrican como circuitos integrados
independientes (stand-alone devices), que contienen exclusivamente al microcontrolador o
microprocesador. Pero tambin el ncleo del procesador puede estar embebido (embeddedprocessor core) en un circuito integrado de alta escala de integracin, cuya funcin es, en
general, configurable por el usuario. Tal es el caso de los denominados Dispositivos Lgicos
Programables (PLD: Programmable Logic Devices), entre los que estn los FPGA (Field

Programmable Gate Array). Los PLD en general y los FPGA en particular, son circuitos de
alta escala de integracin que disponen de un conjunto de elementos, cuya interconexin es
programable por el usuario. Uno de estos elementos puede ser el ncleo de un
microcontrolador o un microprocesador, cuya conexin a cierta cantidad de memoria y a
dispositivos de entrada y salida disponibles en el PLD, es programable por el usuario. As se
puede configurar un microcontrolador "a la medida" de la necesidad de la aplicacin, con la
ventaja de ser compatible con un microprocesador o un microcontrolador "estndar", como
el 8051 o un PIC, pues tiene su mismo ncleo.
Hay un nmero elevado de compaas que fabrican microcontroladores y microprocesadores
en alguna de las formas mencionadas anteriormente. A continuacin se presenta una relacin
de fabricantes de microcontroladores y microprocesadores ( o de dispositivos que utilizan la
arquitectura de un determinado microcontrolador o microprocesador), con el correspondiente
comentario acerca de los dispositivos que fabrica.
Actel. FPGA con ncleos 8051 y ARM7.
Advanced Micro Devices (AMD). Microprocesadores compatibles con xx86.
Altera. FPGA con ncleos Nios 11.
Analog Devices. Arquitecturas para procesamiento digital de seales basadas en
ncleos 8052, ARM7 y otros procesadores.
Applied Micro Circuits Corp. (AMCq. Arquitecturas basadas en el microprocesador
PowerPC.
ARC Intemational. Arquitecturas basadas en los procesadores ARC 600, ARC 700,
etc.
ARM. Arquitecturas basadas en los ncleos de los procesadores ARM7, ARM9, ARMlO,
etc.
Atmel. Arquitecturas basadas en Marc 4, A VR, 8051, ARM7, ARM9, ARMll,
PowerPCySPARC.
Broadcom. Procesadores para redes de datos y comunicaciones con arquitectura MIPS.
Cambridge Consultants. Arquitecturas basadas en los ncleos de los procesadores XAPl,
XAP2 y XAP3.
Cavium Networks. Arquitecturas basadas en MIPS.
Cirrus Logic. Arquitecturas basadas en ARM.
Cradle Technologies. Procesadores digitales de seales: CT3400 y CT3600.
Cyan Technology. Microcontrolador eCOClk.
Cybernetic Micro Systems. ASICs con microcontrolador P-51.
Cypress Microsystems. Dispositivos con arquitectura PSoC (Programmable System-onChip).
Dallas Semiconductor. Microcontroladores compatibles con 8051.
EM Microelectronics. Microcontroladores EM6812 de muy bajo consumo.
Freescale Semiconductor (procede de Motorola). Microcontroladores de las familias
68HC05, 68HC08, 68HC11, 68HC12 y 68HC16. Procesadores digitales de seales (DSP:
Digital Signa[ Processor). Procesadores ColdFire y PowerQuicc con ncleo PowerPC.
. Fujitsu Microelectronics America. Microcontroladores FR80, MB9140x, F2MC-8FX,
etc.
Goal Semiconductor. Arquitecturas basadas en 8051.
Hyperstone. Procesadores digitales de seales El-32XSR/XSRU, HyNet32S, etc.
Holtek Semiconductor. Microcontrolador HT8.

Infineon Technologies (antes Siemens). Microcontroladores C500, C800, C166,


TriCore, etc.
lnfrant Technologies. Microcontroladores para redes de datos.
Integrated Device Technology (IDT). Procesadores para comunicaciones de datos basados
en arquitectura MIPS.
Intel. Microcontroladores de las familias MCS51, MCS151, MCS251, MCS96, MCS296,
etc. Microprocesadores xx86, IXP4xx, etc.
Microchip Technology. Microcontroladores PIC (PICmicro) y controladores digitales de
seales dsPIC.
MIPS Technologies. Procesadores MIPS (Microprocessor without Interlocked
Pipeline Stages).
National Semiconductor. Microcontroladores COP8, CR16 y microprocesadores
NS32000.
NEC Electronics America. Microcontroladores 78KO, V850 y otros.
NetSilicon. Procesadores basados en ncleos ARM7 y ARM9.
NXP (antes Philips Semiconductors). Microcontroladores con ncleo 8051, ARM7 y
ARM9.
Oki Semiconductor. Microcontroladores con ncleo ARM.
PMC-Sierra. Procesadores basados en MIPS.
Rabbit Semiconductor. Procesadores Rabbit 2000 y 3000.
Renesas Tech. Corp. (antes Hitachi). Microcontroladores R8, H8 y otros.
Sharp Microelectronics. Microcontroladores BlueStreak con ncleo ARM7 y ARM9.
Silicon Laboratories. Microcontroladores con ncleo 8051.
Silicon Storage Technology. Microcontroladores con ncleo 8051.
STMicroelectronics. Microcontroladores con ncleos 8051 y ARM7.
Texas Instruments (TI). Procesadores digitales de seales TMS370 y TMS470,
microcontroladores MSP430.
Toshiba America Electronic Components. Microcontroladores CISC y RISC.
Ubicom. Microcontroladores SX, IP2000 e IP3000.
Xemics. Microcontroladores con ncleo CoolRISC.
Xilinx. FPGA con ncleos PowerPC.
ZiLOG. Microcontroladores de 8 bits con arquitecturas Z8 y Z80.

2 Arquitectura interna de un microcontrolador


Un microcontrolador posee todos los componentes de un computador, pero con unas
caractersticas fijas que no pueden alterarse. Las partes principales de un microcontrolador
son:
1. Procesador
2. Memoria no voltil para contener el programa
3. Memoria de lectura y escritura para guardar los datos
4. Lneas de EIS para los controladores de perifricos:
a) Comunicacin paralelo
b) Comunicacin serie
c) Diversas puertas de comunicacin (bus l2C, USB, etc.)
5. Recursos auxiliares:
a) Circuito de reloj
b) Temporizadores
c) Perro Guardn (watchdog)
d) Conversores AD y DA
e) Comparadores analgicos
f) Proteccin ante fallos de la alimentacin
g) Estado de reposo o de bajo consumo

2.1 Componentes del Microcontrolador


Un microcontrolador combina los recursos fundamentales disponibles en un
microcomputador, es decir, la unidad central de procesamiento (CPU), la memoria y los
recursos de entrada y salida, en un nico circuito integrado.

Los microcontroladores disponen de un oscilador que genera los pulsos que sincronizan todas
las operaciones internas. El oscilador puede ser del tipo RC, aunque generalmente se prefiere
que est controlado por un cristal de cuarzo (XTAL) debido a su gran estabilidad de
frecuencia. La velocidad de ejecucin de las instrucciones del programa est en relacin
directa con la frecuencia del oscilador del microcontrolador.

Igual que en un microcomputador, la CPU es el "cerebro" del microcontrolador.


Esta unidad trae las instrucciones del programa, una a una, desde la memoria donde estn
almacenadas, las interpreta (descodifica) y hace que se ejecuten. En la CPU se incluyen los
circuitos de la ALU para realizar operaciones aritmticas y lgicas elementales con los datos
binarios. La CPU de un microcontrolador dispone de diferentes registros, algunos de
propsito general y otros para propsitos especficos. Entre estos ltimos estn el Registro
de Instruccin, el Acumulador, el Registro de Estado, el Contador de Programa, el Registro
de Direcciones de Datos y el Puntero de la Pila. El Registro de Instruccin (RI) almacena la
instruccin que est siendo ejecutada por la CPU. El RI es invisible para el programador.
El Acumulador (ACC: Accumulator) es el registro asociado a las operaciones aritmticas y
lgicas que se pueden realizar en la ALU. En cualquier operacin, uno de los datos debe estar
en el ACC y el resultado se obtiene en el ACC. El ACC no existe en los microcontroladores
PIC, que tienen en cambio el registro W (Working Register), con caractersticas muy
parecidas a las del ACC.
El Registro de Estado (STATUS) agrupa los bits indicadores de las caractersticas del
resultado de las operaciones aritmticas y lgicas realizadas en la ALU. Entre estos
indicadores estn el signo el resultado (si es positivo o negativo), si el resultado es cero, si
hay acarreo o prstamo, el tipo de paridad (par o impar) del resultado, etc.
El Contador de Programa (PC: Program Counter) es el registro de la CPU donde se
almacenan direcciones de instrucciones. Cada vez que la CPU busca una instruccin en la
memoria, el PC se incrementa, apuntando as a la siguiente instruccin. En un instante de
tiempo dado, el PC contiene la direccin de la instruccin que ser ejecutada a continuacin.
Las instrucciones de transferencia de control modifican el valor del PC.
El Registro de Direcciones de Datos (RDD) almacena direcciones de datos situados en la
memoria. Este registro es indispensable para el direccionamiento indirecto de datos en la
memoria. El RDD toma diferentes nombres segn el microcontrolador. En los PIC, el RDD
es el registro FSR (File Select Register).
El Puntero de la Pila (SP: Stack Pointer) es el registro que almacena direcciones de datos en
la pila. En el captulo 4 se estudian con detalle la pila y el registro SP. Los microcontroladores
PIC carecen de registro SP.
La memoria del microcontrolador es el lugar donde son almacenadas las instrucciones del
programa y los datos que manipula. En un microcontrolador siempre hay dos tipos de
memoria: la memoria RAM (Random Access Memory) y la memoria ROM (Read On.ly
Memory). La memoria RAM es una memoria de lectura y escritura, que adems es voltil,
es decir, pierde la informacin almacenada cuando falta la energa que alimenta la memoria.
La memoria ROM es una memoria de solo lectura y no voltil. Las diferentes tecnologas
para realizar las memorias de solo lectura (ROM, EPROM, EEPROM, OTP, FLASH) se
estudian en el captulo 3. Tanto la memoria RAM como las memorias ROM son de acceso
aleatorio, pero la costumbre ha dejado el nombre de RAM para las memorias de lectura y
escritura. El trmino "acceso aleatorio" se refiere a que el tiempo necesario para localizar un
dato no depende del lugar de la memoria donde est almacenado. En las memorias de acceso
secuencial, en cambio, cuando ms alejado est un dato de la posicin a la que se ha accedido
por ltima vez, ms se tarda en localizarlo.
La memoria ROM se usa para almacenar permanentemente el programa que debe ejecutar el
microcontrolador. En la memoria RAM se almacenan temporalmente los datos con los que
trabaja el programa. Un nmero creciente de microcontroladores dispone de alguna memoria

no voltil de tipo EEPROM para almacenar datos fijos o que slo sean cambiados
espordicamente.
La cantidad de memoria ROM disponible es normalmente muy superior a la cantidad de
memoria RAM. Esto obedece a dos razones: la primera es que la gran mayora de las
aplicaciones requieren programas que manejan pocos datos; entonces basta una memoria
RAM en la que se pueda almacenar algunas decenas de datos. La segunda razn es que la
memoria RAM ocupa mucho ms espacio en el circuito integrado que la memoria ROM, de
modo que es mucho ms costosa que sta.
La entrada y salida es particularmente importante en los microcontroladores, pues a travs
de ella el microcontrolador interacciona con el exterior. Forman parte de la entrada y salida
los puertos paralelo y serie, los temporizadores y la gestin de las interrupciones. El
microcontrolador puede incluir tambin entradas y salidas analgicas asociadas a
convertidores A/D y D / A. Tienen particular importancia los recursos que garantizan un
funcionamiento seguro del microcontrolador, como el denominado perro guardin.
Los puertos paralelos se organizan en grupos de hasta 8 lneas de entradas y salidas digitales.
Normalmente es posible manipular individualmente las lneas de los puertos paralelos. Los
puertos serie pueden ser de varios tipos, segn la norma de comunicacin que implementen:
RS-232C, I2C, USB, Ethernet, etc.
Un requisito general para que un microcontrolador se pueda utilizar en un gran nmero de
aplicaciones es que tenga muchos recursos de entrada y salida. Este requisito est relacionado
con el nmero de terminales del circuito integrado. A la vez se desea tener esos recursos en
un circuito integrado lo ms pequeo posible. Si cada bloque de entrada y salida tuviera
terminales exclusivos en el microcontrolador, posiblemente no alcanzaran los terminales o
habra que fabricar microcontroladores con muy pocos recursos de entrada y salida, en contra
del inters general. La solucin para este problema es que un nmero importante de
terminales del circuito integrado sean compartidos por unidades de entrada y salida
diferentes. Es decir, un mismo terminal puede estar conectado internamente a ms de un
bloque de entrada y salida. Por ejemplo, las lneas de entrada y salida de un puerto serie
pueden ser parte de las lneas de un puerto paralelo, etc.

2.1.1 El procesador
La necesidad de conseguir elevados rendimientos en el procesamiento de las instrucciones
ha desembocado en el empleo generalizado de procesadores de arquitectura Harvard frente a
los tradicionales que seguan la arquitectura de von Neumann. Esta ltima se caracterizaba
porque la CPU (Unidad Central de Proceso) se conectaba con una memoria nica, donde
coexistan datos e instrucciones, a travs de un sistema de buses.

En la arquitectura Harvard son independientes la memoria de instrucciones y la memoria de


datos y cada una dispone de su propio sistema de buses para el acceso. Esta dualidad, adems

de propiciar el paralelismo, permite la adecuacin del tamao de las palabras y los buses a
los requerimientos especficos de las instrucciones y de los datos. Tambin la capacidad de
cada memoria es diferente

El procesador de los modernos microcontroladores responde a la arquitectura RISC


(Computadores de Juego de Instrucciones Reducido), que se identifica por poseer un
repertorio de instrucciones mquina pequeo y simple, de forma que la mayor parte de las
instrucciones se ejecuta en un ciclo de instruccin.
Otra aportacin frecuente que aumenta el rendimiento del computador es el fomento del
paralelismo implcito, que consiste en la segmentacin del procesador (pipe-line),
descomponindolo en etapas para poder procesar una instruccin diferente en cada una de
ellas y trabajar con varias a la vez.
El alto rendimiento y elevada velocidad que alcanzan los modernos procesadores, como el
que poseen los microcontroladores PIC, se debe a la conjuncin de tres tcnicas:
- Arquitectura Harvard
- Computador tipo RISC
- Segmentacin
2.1.2 Memoria de programa
El microcontrolador est diseado para que en su memoria de programa se almacenen todas
las instrucciones del programa de control. No hay posibilidad de utilizar memorias externas
de ampliacin. Como el programa a ejecutar siempre es el mismo, debe estar grabado de
forma permanente. Los tipos de memoria adecuados para soportar esta funcin admiten cinco
versiones diferentes:
ROM con mscara: En este tipo de memoria el programa se graba en el chip durante el
proceso de su fabricacin mediante el uso de mscaras. Los altos costes de diseo e
instrumental slo aconsejan usar este tipo de memoria cuando se precisan series muy grandes.
EPROM: La grabacin de esta memoria se realiza mediante un dispositivo fsico gobernado
desde un computador personal, que recibe el nombre de grabador. En la superficie de la
cpsula del microcontrolador existe una ventana de cristal por la que se puede someter al
chip de la memoria a rayos ultravioletas para producir su borrado y emplearla nuevamente.
Es interesante la memoria EPROM en la fase de diseo y depuracin de los programas, pero
su coste unitario es elevado.
OTP (Programable una vez): Este modelo de memoria slo se puede grabar una vez por
parte del usuario, utilizando el mismo procedimiento que con la memoria EPROM.
Posteriormente no se puede borrar. Su bajo precio y la sencillez de la grabacin aconsejan
este tipo de memoria para prototipos finales y series de produccin cortas.

EEPROM: La grabacin es similar a las memorias OTP y EPROM, pero el borrado es mucho
ms sencillo al poderse efectuar de la misma forma que el grabado, o sea, elctricamente.
Sobre el mismo zcalo del grabador puede ser programada y borrada tantas veces como se
quiera, lo cual la hace ideal en la enseanza y en la creacin de nuevos proyectos. El fabuloso
PIC16C84 dispone de 1 K palabras de memoria EEPROM para contener instrucciones y
tambin tiene algunos bytes de memoria de datos de este tipo para evitar que cuando se retira
la alimentacin se pierda informacin.
Aunque se garantiza 1.000.000 de ciclos de escritura/borrado en una EEPROM, todava su
tecnologa de fabricacin tiene obstculos para alcanzar capacidades importantes y el tiempo
de escritura de las mismas es relativamente grande y con elevado consumo de energa.
FLASH: Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar
en circuito al igual que las EEPROM, pero suelen disponer de mayor capacidad que estas
ltimas. El borrado slo es posible con bloques completos y no se puede realizar sobre
posiciones concretas. En las FLASH se garantizan 1.000 ciclos de escritura-borrado.
Son muy recomendables en aplicaciones en las que sea necesario modificar el programa a lo
largo de la vida del producto, como consecuencia del desgaste o cambios de piezas, como
sucede con los vehculos. Por sus mejores prestaciones est sustituyendo a la memoria
EEPROM para contener instrucciones. De esta forma Microchip comercializa dos
microcontroladores prcticamente iguales, que slo se diferencian en que la memoria de
programa de uno de ellos es tipo EEPROM y la del otro tipo Flash. Se trata del PIC 16C84 y el
PIC 16F84, respectivamente. En la actualidad Microchip tiene abierta una lnea de PIC con memoria
Flash cada vez ms extensa y utilizada.

2.1.3 Memoria de datos


Los datos que manejan los programas varan continuamente, y esto exige que la memoria que
les contiene debe ser de lectura y escritura, por lo que la memoria RAM esttica (SRAM) es
la ms adecuada, aunque sea voltil.
Hay microcontroladores que tambin disponen como memoria de datos una de lectura y
escritura no voltil, del tipo EEPROM. De esta forma, un corte en el suministro de la
alimentacin no ocasiona la prdida de la informacin, que est disponible al reiniciarse el
programa. El PIC16C84, el PIC16F83 y el PIC16F84 disponen de 64 bytes de memoria
EEPROM para contener datos.
La memoria tipo EEPROM y la tipo Flash pueden escribirse y borrarse elctricamente. Sin
necesidad de sacar el circuito integrado del zcalo del grabador pueden ser escritas y
borradas numerosas veces.
2.1.4. Lneas de E/S para los controladores de perifricos
A excepcin de dos patitas destinadas a recibir la alimentacin, otras dos para el cristal de
cuarzo, que regula la frecuencia de trabajo, y una ms para provocar el Reset, las restantes
patitas de un microcontrolador sirven para soportar su comunicacin con los perifricos
externos que controla.
Las lneas de E/S que se adaptan con los perifricos manejan informacin en paralelo y se
agrupan en conjuntos de ocho, que reciben el nombre de Puertas. Hay modelos con lneas
que soportan la comunicacin en serie; otros disponen de conjuntos de lneas que
implementan puertas de comunicacin para diversos protocolos, como el I2C, el USB, etc.
2.1.5. Recursos auxiliares

Segn las aplicaciones a las que orienta el fabricante cada modelo de microcontrolador,
incorpora una diversidad de complementos que refuerzan la potencia y la flexibilidad del
dispositivo.
Entre los recursos ms comunes se citan a los siguientes:
a) Circuito de reloj, encargado de generar los impulsos que sincronizan el funcionamiento
de todo el sistema.
b) Temporizadores, orientados a controlar tiempos.
c) Perro Guardin (watchdog), destinado a provocar una reinicializacin cuando el
programa queda bloqueado.
d) Conversores AD y DA, para poder recibir y enviar seales analgicas.
e) Comparadores analgicos, para verificar el valor de una seal analgica.
f) Sistema de proteccin ante fallos de la alimentacin.
g) Estado de Reposo, en el que el sistema queda congelado y el consumo de energa se
reduce al mnimo.

2.2 Registros internos.


Un parmetro importante en los microprocesadores es el tamao de sus registros internos
(8, 16, 32 64 bits), que determina la cantidad de bits que pueden procesar simultneamente.
2.3 Tipos y distribucin de las memorias internas.

2.4 Perifricos internos.

2.5 Las instrucciones del microcontrolador