You are on page 1of 9

1.1.

- Componentes de un microcontrolador
1.1. El procesador
Es el elemento ms importante del microcontrolador y determina sus principales
caractersticas, tanto a nivel hardware como software. Se encarga de direccionar la
memoria de instrucciones, recibir el cdigo OP de la instruccin en curso, su
decodificacin y la ejecucin de la operacin que implica la instruccin, as como la
bsqueda de los operandos y el almacenamiento del resultado. Existen tres orientaciones
en cuanto a la arquitectura y funcionalidad de los procesadores actuales.
1.1.1. CISC
Un gran nmero de procesadores usados en los microcontroladores estn basados en la
filosofa CISC (Computadores de Juego de Instrucciones Complejo). Disponen de ms de
80 instrucciones mquina en su repertorio, algunas de las cuales son muy sofisticadas y
potentes, requiriendo muchos ciclos para su ejecucin. Una ventaja de los procesadores
CISC es que ofrecen al programador instrucciones complejas que actan como macros,
es decir, que si las tuvisemos que implementar con instrucciones bsicas, sera muy
complicado.
1.1.2. RISC
Tanto la industria de los computadores comerciales como la de los microcontroladores
estn decantndose hacia la filosofa RISC (Computadores de Juego de Instrucciones
Reducido). En estos procesadores el repertorio de instrucciones mquina es muy
reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo.
La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del
procesador.
1.1.3. SISC
En los microcontroladores destinados a aplicaciones muy concretas, el juego de
instrucciones, adems de ser reducido, es especfico, o sea, las instrucciones se adaptan
a las necesidades de la aplicacin prevista. Esta filosofa se ha bautizado con el nombre
de SISC (Computadores de Juego de Instrucciones Especfico).
1.2. Memoria
En los microcontroladores la memoria de instrucciones y datos est integrada en el propio
chip. Una parte debe ser no voltil, tipo ROM, y se destina a contener el programa de
instrucciones que gobierna la aplicacin. Otra parte de memoria ser tipo RAM, voltil, y
se destina a guardar las variables y los datos.
Hay algunas peculiaridades que diferencian a los microcontroladores de los computadores
personales:
No existen sistemas de almacenamiento masivo como disco duro o disquetes. Como el
microcontrolador slo se destina a una tarea en la memoria ROM, slo hay que almacenar
un nico programa de trabajo.
La RAM en estos dispositivos es de poca capacidad pues slo debe contener las
variables y los cambios de informacin que se produzcan en el transcurso del programa.
Por otra parte, como slo existe un programa activo, no se requiere guarda r una copia del
mismo en la RAM pues se ejecuta directamente desde la ROM.
Los usuarios de computadores personales estn habituados a manejar Megabytes de
memoria, pero, los diseadores con microcontroladores trabajan con capacidades de
ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512
bytes.
Segn el tipo de memoria ROM que dispongan los microcontroladores, la aplicacin y
utilizacin de los mismos es diferente. Se describen las cinco versiones de memoria no
voltil que se pueden encontrar en los microcontroladores del mercado.
1.2.1. ROM con mscara
Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin
del chip. Si tenemos idea de cmo se fabrican los circuitos integrados, sabremos de
donde viene el nombre. Estos se fabrican en obleas que contienen varias decenas de
chips. Estas obleas se fabrican a partir de procesos fotoqumicos, donde se impregnan
capas de silicio y oxido de silicio, y segn convenga, se erosionan al exponerlos a la luz.
Como no todos los puntos han de ser erosionados, se sita entre la luz y la oblea una
mascara con agujeros, de manera que donde deba incidir la luz, esta pasar. Con varios
procesos similares pero ms complicados se consigue fabricar los transistores y diodos
micromtricos que componen un chip. Ahora ya sabes de donde viene la mscara y no te
acostars sin saber una cosa ms. El elevado coste del diseo de la mscara slo hace
aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se
precisan cantidades superiores a varios miles de unidades.
1.2.2. OTP
El microcontrolador contiene una memoria no voltil de slo lectura programable una sola
vez por el usuario.
OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip
mediante un sencillo grabador controlado por un programa desde un PC. La versin OTP
es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la
construccin de prototipos y series muy pequeas. Tanto en este tipo de memoria como
en la EPROM, se suele usar la encriptacin mediante fusibles para proteger el cdigo
contenido.
1.2.3. EPROM
Los microcontroladores que disponen de memoria EPROM (Erasable Programmable
Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza,
como en el caso de los OTP, con un grabador gobernado desde un PC. Si,
posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su
superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos.
Las cpsulas son de material cermico y son ms caros que los microcontroladores con
memoria OTP que estn hechos con material plstico.
1.2.4. EEPROM, E2PROM o E2PROM
Se trata de memorias de slo lectura, programables y borrables elctricamente EEPROM
(Electrical Erasable Programmable Read OnIy Memory). Tanto la programacin como el
borrado, se realizan elctricamente desde el propio grabador y bajo el control programado
de un PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. No disponen
de ventana de cristal en la superficie. Los microcontroladores dotados de memoria
EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se
quiera sin ser retirados de dicho circuito. Para ello se usan "grabadores en circuito" que
confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el
programa de trabajo. El nmero de veces que puede grabarse y borrarse una memoria
EEPROM es finito, por lo que no es recomendable una reprogramacin continua. Son
muy idneos para la enseanza y la Ingeniera de diseo. Se va extendiendo en los
fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los
circuitos programables para guardar y modificar cmodamente una serie de parmetros
que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es
relativamente lenta, como ya veremos ms adelante.
1.2.5. FLASH
Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar.
Funciona como una ROM y una RAM pero consume menos y es ms pequea. A
diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y
de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la
EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms
veloz y tolera ms ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy
tiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados
en circuito, es decir, sin tener que sacar el circuito integrado de la tarjeta. As, un
dispositivo con este tipo de memoria incorporado al control del motor de un automvil
permite que pueda modificarse el programa durante la rutina de mantenimiento peridico,
compensando los desgastes y otros factores tales como la compresin, la instalacin de
nuevas piezas, etc. La reprogramacin del microcontrolador puede convertirse en una
labor rutinaria dentro de la puesta a punto.
1.3. Puertas de Entrada y Salida
Las puertas de Entrada y Salida (E/S) permiten comunicar al procesador con el mundo
exterior, a travs de interfaces, o con otros dispositivos. Estas puertas, tambin llamadas
puertos, son la principal utilidad de las patas o pines de un microprocesador. Segn los
controladores de perifricos que posea cada modelo de microcontrolador, las lneas de
E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control.
1.4. Reloj principal
Todos los microcontroladores disponen de un circuito oscilador que genera una onda
cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la
sincronizacin de todas las operaciones del sistema. Esta seal del reloj es el motor del
sistema y la que hace que el programa y los contadores avancen.
Generalmente, el circuito de reloj est incorporado en el microcontrolador y slo se
necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia
de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos
pasivos o bien un resonador cermico o una red R-C.
Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las
instrucciones pero lleva aparejado un incremento del consumo de energa y de calor
generado.
1.5. Recursos especficos
Cada fabricante oferta numerosas versiones de una arquitectura bsica de
microcontrolador. En algunas ampla las capacidades de las memorias, en otras incorpora
nuevos recursos, en otras reduce las prestaciones al mnimo para aplicaciones muy
simples, etc. La labor del diseador es encontrar el modelo mnimo que satisfaga todos
los requerimientos de su aplicacin. De esta forma, minimizar el coste, el hardware y el
software. Los principales recursos especficos que incorporan los microcontroladores son:
1.5.1. Temporizadores o Timers
Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de
acontecimientos que suceden en el exterior (contadores).
Para la medida de tiempos se carga un registro con el valor adecuado y a continuacin
dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o
algn mltiplo hasta que se desborde y llegue a 0, momento en el que se produce un
aviso. Cuando se desean contar acontecimientos que se materializan por cambios de
nivel o flancos en alguna de los pines del microcontrolador, el mencionado registro se va
incrementando o decrementando al ritmo de dichos impulsos. Con el fin de aclarar que es
un registro, anticipamos que es un valor numrico en una posicin fija de memoria. Un
ejemplo: esto es igual que el segundero de un reloj digital, este va aumentando hasta que
llega a 60 segundos, pero en la pantalla pone 00, esto quiere decir que se desborda. Pero
cuando cambia da un aviso y se incrementan los minutos. En este ejemplo, el registro es
el segundero.
1.5.2. Perro guardin o Watchdog
Cuando el computador personal se bloquea por un fallo del software u otra causa, se
pulsa el botn del reset y se reinicia el sistema. Pero un microcontrolador funciona sin el
control de un supervisor y de forma continua las 24 horas del da. El Perro Guardin
consiste en un contador que, cuando llega al mximo, provoca un reset automticamente
en el sistema.
Se debe disear el programa de trabajo que controla la tarea de forma que resetee al
Perro Guardin de vez en cuando antes de que provoque el reset. Si falla el programa o
se bloquea (si cae en bucle infinito), no se refrescar al Perro guardin y, al completar su
temporizacin, provocar el reset del sistema.
1.5.3. Proteccin ante fallo de alimentacin o Brownout
Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentacin
(VDD) es inferior a un voltaje mnimo (brownout). Mientras el voltaje de alimentacin sea
inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar
normalmente cuando sobrepasa dicho valor. Esto es muy til para evitar datos errneos
por transiciones y ruidos en la lnea de alimentacin
3.4. Estado de reposo o de bajo consumo
Son abundantes las situaciones reales de trabajo en que el microcontrolador debe
esperar, sin hacer nada, a que se produzca algn acontecimiento externo que le ponga de
nuevo en funcionamiento. Para ahorrar energa, los microcontroladores disponen de una
instruccin especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo
consumo, en el cual los requerimientos de potencia son mnimos. En dicho estado se
detiene el reloj principal y se congelan sus circuitos asociados. Al activarse una
interrupcin ocasionada por el acontecimiento esperado, el microcontrolador se activa y
reanuda su trabajo. Para hacernos una idea, esta funcin es parecida a la opcin de
Suspender en el men para apagar cualquier computadora.
3.5. Conversor A/D (CAD)
Los microcontroladores que incorporan un Conversor A/D (Analgico/Digital) pueden
procesar seales analgicas, tan abundantes en las aplicaciones. Suelen disponer de un
multiplexor que permite aplicar a la entrada del CAD diversas seales analgicas desde
las patillas del circuito integrado.
3.6. Conversor D/A (CDA)
Transforma los datos digitales obtenidos del procesamiento del computador en su
correspondiente seal analgica que saca al exterior por una de los pines del chip.
Existen muchos circuitos que trabajan con seales analgicas.
3.7. Comparador analgico
Algunos modelos de microcontroladores disponen internamente de un Amplificador
Operacional que acta como comparador entre una seal fija de referencia y otra variable
que se aplica por una de los pines de la cpsula. La salida del comparador proporciona un
nivel lgico 1 0 segn una seal sea mayor o menor que la otra. Tambin hay modelos
de microcontroladores con un mdulo de tensin de referencia que proporciona diversas
tensiones de referencia que se pueden aplicar en los comparadores.
3.8. Modulador de anchura de impulsos o PWM
Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen
al exterior a travs de los pines del encapsulado.
3.9. Puertos digitales de E/S
Todos los microcontroladores destinan parte de su patillaje a soportar lneas de E/S
digitales. Por lo general, estas lneas se agrupan de ocho en ocho formando Puertos.
Las lneas digitales de las Puertos pueden configurarse como Entrada o como Salida
cargando un 1 o un 0 en el bit correspondiente de un registro destinado a su
configuracin.
3.10. Puertas de comunicacin
Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros
dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de
redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos
modelos disponen de recursos que permiten directamente esta tarea, entre los que
destacan:
UART, adaptador de comunicacin serie asncrona. (Ejemplo: Puerto Serie)
USART, adaptador de comunicacin serie sncrona y asncrona
Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores.
USB (Universal Serial Bus), que es un moderno bus serie para los PC.
Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips.
CAN (Controller Area Network), para permitir la adaptacin con redes de conexionado
multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de
dispositivos en automviles. En EE.UU. se usa el J185O.
Tanto el I2C en televisores, como el Bus CAN en automviles, fueron diseados para
simplificar la circuitera que supone un bus paralelo de 8 lneas dentro de un televisor, as
como para librar de la carga que supone una cantidad ingente de cables en un vehculo.

REGISTROS INTERNOS
La CPU de un microcontrolador contiene cinco registros tal como se lo presenta en la
Figura 2.1. Los registros de la CPU son registros de memoria que se alojan dentro del
microprocesador (no son parte del mapa de memoria).

Figura 2.1.- Registros del CPU de un microcontrolador
2.7.1. Acumulador (A)
El acumulador (Figura 2.2) es un registro de propsitos generales de 8 bits usado para
almacenar operandos, resultados de clculos aritmticos, y de manipulacin de datos.
Adems, es directamente accesible a la CPU para operaciones no aritmticas. El
acumulador es usado durante la ejecucin de un programa donde el contenido de alguna
posicin de memoria es cargado en el acumulador. Tambin, la instruccin almacenar
(sta) causa que el contenido del acumulador sea almacenado en alguna posicin de
memoria preestablecida.

Figura 2.2.- Registro acumulador

2.7.2. Registro ndice (H:X)
El registro ndice (Figura 2.3) es el registro utilizado para todas las operaciones indexadas
(con y sin offset) que posee el CPU. Tiene 16 bits de longitud, formado por una parte
"baja" (el byte de menor peso) denominado "X" y una parte alta (el byte de mayor peso)
denominado "H". Estos registros se encuentran concatenados para formar un nico
registro H:X. Esto permite direccionamientos indexados de hasta 64 Kbytes de espacio de
memoria.
En el registro ndice puede utilizarse la parte baja ("X"), en los distintos modos de
direccionamiento. Solo se debe tener en cuenta que cuando en una instruccin con
direccionamiento indexado, se menciona el registro "X", en realidad se est haciendo
mencin al registro concatenado H:X de 16 bits de largo, por lo que deber ponerse a
cero (forzar el valor $00) la parte superior del registro ndice, o sea "H", para guardar total
compatibilidad con la familia HC705 (cuyo registro ndice es de 8 bits). De esta forma,
cuando se utilice el registro ndice, el contenido del mismo ser $00xx, donde "xx"
contendr el valor del registro "X" propiamente dicho.

Figura 2.3.- Registro ndice

2.7.3. Puntero de Pila (SP)
El puntero de pila (SP) como se observa en la Figura 2.4, es un registro de 16 bits que
contiene la direccin del prximo lugar en la pila (Stack). Es el registro utilizado por el
CPU para mantener en orden (guardar y rescatar los datos en RAM) los registros
principales del CPU ante una excepcin en la secuencia del programa, como lo son los
saltos a sub-rutinas y los distintos pedidos de interrupcin.
Durante un Reset, el puntero de pila, es preseteado a $00FF. La instruccin Reset Stack
Pointer (RSP), cambia el byte menos significativo a $FF y no afecta al byte ms
significativo.
El puntero de pila es decrementado cuando un dato es almacenado (Push) dentro de la
pila e incrementado cuando un dato es recuperado (Pull) desde la pila. La localizacin de
la pila es arbitraria, y puede ser "re-ubicada" en cualquier parte de la memoria RAM.
Moviendo el puntero fuera de la pgina 0 ($0000 a $00FF) libera el espacio del
direccionamiento directo. Para una operacin correcta, el puntero de pila debe apuntar
solamente posiciones de RAM, aunque por su longitud, pueda "barrer" todo el espacio de
memoria del MCU. Gracias a esta caracterstica, en los modos de direccionamiento con el
SP (Stack Pointer) con 8 bits de offset y 16 bits de offset, el puntero de pila (SP) puede
funcionar como un segundo registro ndice de 16 bits o bien para acceder a datos en la
pila. El uso del SP como un segundo registro ndice, es muy utilizado en los compiladores
de lenguaje de alto nivel como los compiladores "C" y otros.

Figura 2.4.- Puntero de pila
2.7.4 Contador de Programa (PC)
El Contador de Programa (PC), es el registro utilizado por el CPU para mantener el
control de las direcciones de las prximas instrucciones a ser ejecutadas. Este registro
tiene una longitud de 16 bits, y tiene la ventaja de poder moverse entre $0000 y $FFFF.
De esta forma, el PC puede moverse por los 64 Kbytes de espacio de memoria (salvo en
los Microcontroladores que tienen memoria menor a 64 Kbytes).
Durante el Reset, el contador de programa (PC) se carga con la direccin contenida en el
"vector de reset" que para el MC68HC908 se encuentra en la posicin $FFFE y $FFFF.
La direccin contenida en el vector, es la direccin de la primera instruccin a ser
ejecutada despus de salir del estado de RESET.
2.7.5. Registro de Cdigo de Condicin (CCR)
El registro de cdigo de condicin contiene una mscara de interrupcin y cinco
indicadores de estado que reflejan el resultado de operaciones aritmticas y de otro tipo
efectuadas por el CPU con anterioridad.
Los cinco flags (banderas) son, Desborde overflow (V), semi-acarreo (H), mscara de
interrupcin (I), negativo (N), cero (Z) y acarreo / prstamo (C).
Luego de un reset los flags tomarn los siguientes valores: V = x; H = x; I = 1; N = x; Z = x;
C = x; donde x es un valor indeterminado.

Figura 2.5. Registro de cdigo de condicin.

2.7.5.1. Flag V (Bit de Desborde)
Es utilizado en chequeos de operaciones aritmticas signadas. El CPU pone en 1 el bit
de desborde cuando ocurre un desborde por complemento a Dos en una operacin
aritmtica con signo. Las instrucciones de salto condicionales signados como BGT, BGE,
BLE, y BLT usan este bit de desborde.
2.7.5.2. Flag H (semi-acarreo)
El bit es Seteado si un carry (acarreo) ocurre desde el bit 3 al bit 4, se utiliza en
operaciones aritmticas BCD.
2.7.5.3. Flag I (Mascara Global de Interrupciones)
Cuando est seteada, deshabilita las interrupciones del CPU.
2.7.5.4. Flag N (Negativo)
Seteado, si el bit 7 est seteado en el Acumulador.
2.7.5.5. Flag Z (cero)
Este bit es seteado si todos los bits en el Acumulador son ceros.
2.7.5.6. Flag C (acarreo / prstamo).
Seteado si se produce un carry o borrow durante una operacin.

You might also like