Vous êtes sur la page 1sur 11

CAP

ITULO 0. INTRODUCCI

ON
Algo de Historia
La historia de los microcontroladores esta ntimamente relacionada con la historia de los
computadores y su componente mas importante: el microprocesador. Antes de los micro-
procesadores, el dise no de un circuito logico requera de muchos elementos electronicos basados
en transistores, resistencias, etc, lo cual desembocaba en circuitos con muchos ajustes y fallos;
aunque se tuvieron algunos avances con la invencion del circuito integrado y las tecnicas de
baja y media escala de integracion, la cantidad de componentes era considerable (y ni que
hablar de los inicios, con los dise nos con tubos de vaco: la primera computadora programable
ENIAC pesaba 30 toneladas, usaba 800 kilometros de cable, tena 17.000 tubos de vaco,
realizaba 100.000 operaciones por segundo y consuma 150 KWh). El primer microprocesador
lo construyo la empresa Intel, en 1971, con un bus de 4 bits (el 4004) y constaba de 2.300
transistores, y solo al a no anunciaba ya la version de 8 bits, el 8008 (con la increble velocidad
de 740 kHz) con 3.300 transistores. A los pocos a nos, los microprocesadores Z80 de Zilog,
6502 de Motorola y el 8080 de Intel estaban disputandose la supremaca en el mercado. Los
sistemas con microprocesador, si bien redujeron drasticamente la cantidad de componentes de
un circuito, a un requeran demasiado trabajo para construir con ellos sistemas de mediana
complejidad y sobre todo era considerable el espacio ocupado por el circuito impreso y todos
sus componentes (microprocesador, memoria RAM, memoria ROM, etc). Sin embargo el
microprocesador hizo posible el surgimiento de un mercado no despreciable de computadores
personales, cuando a un no se haban consolidado como artculos de consumo masivo y
solo algunos entusiastas de la electronica se atrevan a comprarlo como artculo de lujo para
video-juegos, y/o para dise nar peque nos sistemas de instrumentacion.
Es as como en 1975 aproximadamente, gracias al aumento en la densidad de integracion, la
empresa Intel inicia la difusion de un nuevo circuito para control, medicion e instrumentacion
al que llamaron microcomputador en un solo chip o de manera mas exacta MICROCON-
TROLADOR; la primera referencia comercial que tuvo exito, fue la familia MCS-48 utilizada
en controladores de teclados para el incipiente mercado del matrimonio Microsoft-IBM, el PC
(seg un Wikipedia, de este chip se llegaron a vender varios de miles de millones, solo para
teclados de PCs). Luego Intel evoluciono a la familia 805X, tal vez la mas exitosa familia de
todos los tiempos. Mas adelante ocurrieron algunos eventos que hicieron posible la masicacion
del uso de los microcontroladores: como en 1993, la primera version de microcontrolador con
memoria EEprom (borrable electricamente), el famoso PIC 16x84 por parte de la empresa
Microchip, que eliminaba la necesidad de utilizar lamparas de luz ultravioleta para cambiar el
contenido de la memoria Eprom de programa (esta era la unica opcion que tenan peque nos
desarrolladores para hacer sus dise nos, pues las versiones OTP, de un solo quemado solo tenan
sentido cuando ya el producto estaba terminado); y en ese mismo a no la empresa Atmel
vi
T
e
x
t
o

d
e

P
r
u
e
b
a
CAP

ITULO 0. INTRODUCCI

ON vii
lanza un microcontrolador con memoria Flash, el AT89C51 (una versi on compatible con el
famoso 8051 de Intel), que permite muchos mas ciclos de escritura que la memoria EEProm,
y aumenta la velocidad de acceso. Hoy en da, compa nas tan importantes como INTEL,
ATMEL, MICROCHIP, FREESCALE (MOTOROLA), DALLAS, PHILLIPS, RABBIT,
TEXAS INSTRUMENTS, por solo mencionar algunas, mantienen una fuerte competencia en
innovacion y produccion de microcontroladores.
Pero, Que es un microcontrolador?
Para entender que es un microcontrolador, primero veremos en que consiste un sistema con
microprocesador, pues como ya se menciono un microcontrolador es la integracion en un solo
chip de un sistema con microprocesador, ver gura 1.
(interruptores,
rels, teclado,
ratn, pantalla,
disco, etc.)
Dispositivos
de
entrada
y salida
Microprocesador
CU
ALU
REGS
Memoria
RAM
ROM
EEPROM
Buses Buses
Figura 1: Sistema con microprocesador
En la memoria se almacenan los programas (habitualmente en la memoria ROM), y los datos
que este manipula (memoria RAM). Los puertos son los encargados de la comunicacion con los
dispositivos de entrada y salida. El microprocesador es el dispositivo principal y se encarga de
comunicarse continuamente por medio lneas especializadas (conocidas como buses de datos,
direcciones y de control) con los otros chips como las unidades de memoria ROM, unidades de
memoria RAM, puertos, etc. Cuando se ejecuta un programa, el microprocesador se encarga
de la b usqueda, decodicacion y ejecucion de cada una de las instrucciones almacenadas en
la memoria. Una instruccion indica una operacion simple (operacion de transferencia como:
tomar o llevar datos hacia o desde de la memoria o de los puertos que controlan los dispositivos;
operacion aritmetica como: suma, resta, multiplicacion, etc; operaciones logicas como: and,
or, etc; operaciones que alteran la secuencia de las instrucciones como: saltar a ejecutar otras
instrucciones, retornar de un procedimiento, etc). La velocidad a la cual se ejecuta cada una
de las instrucciones depende de varios aspectos, principalmente de la frecuencia del reloj del
sistema, pero tambien de cuantos ciclos de reloj tome cada instruccion (complejidad en el
dise no de la CPU), tambien depende de que tantos bits pueda transmitir por los buses de
datos en una sola operacion (tama no del bus de datos). Que tan grande puede llegar a ser el
programa depende de cuanta memoria ROM contenga el sistema, pero condicionado al tama no
del bus de direcciones. Cuantos datos puede manipular el sistema (espacio para las variables
del programa), depende de que tan grande pueda llegar a ser la memoria RAM. Y, a cuales
dispositivos se pueda conectar, depende de la cantidad y complejidad de los chips de puertos
que contenga el sistema.
Entonces en un dise no con microprocesador se escoge con cual microprocesador se implemen-
tara el sistema, lo cual determinara la frecuencia maxima de operacion, cuantas instrucciones
ejecutara por segundo y el tama no maximo de la memoria ROM y la memoria RAM. Y de
acuerdo a la aplicacion en particular, se le agrega tanta memoria RAM y memoria ROM como
requiera el sistema (en realidad, se parte de un estimativo de acuerdo a cuantas instrucciones y
que tantos datos contendra el programa que se va a construir para dicha aplicacion). Ademas se
agregaran los puertos necesarios para controlar los dispositivos con los que deseemos comunicar
al sistema. Algunos sistemas con microprocesador pueden llegar a ser modulares en el sentido
de que pueden irse ajustando a diferentes condiciones al agregarle memoria o puertos, etc (por
T
e
x
t
o

d
e

P
r
u
e
b
a
viii
ejemplo un computador personal).
Si bien un sistema con microprocesador puede
dise narse a la medida de cada aplicacion, tiene
la desventaja de que al estar comformado por
componentes que estan encapsulados en chips
diferentes, se ocupa mucho espacio y se consu-
me mayor potencia. Estos son justamente los
inconvenientes que solucionan los microcontro-
ladores al empaquetar todos los componentes en
un solo chip, tal como se muestra en la gura 2.
(interruptores,
rels, teclado,
ratn, pantalla,
disco, etc.)
CPU (micro)
CU
ALU
REGS
Memoria
E/S
Microcontrolador
Figura 2: Sistema con microcontrolador
Debe tenerse en cuenta que incorporar en un solo chip todos los componentes disminuye el
espacio y la potencia consumida, pero por el mismo hecho los recursos internos disponibles
son limitados en cuanto a cantidad y capacidad, si se comparan con los que se podra disponer
en un sistema con microprocesador. Ahora bien, existen en el mercado una gran variedad de
referencias de microcontroladores, cada uno de los cuales tiene ventajas y desventajas que es
necesario identicar a la hora de elegirlo para una aplicacion, por eso es necesario conocer
cuales son las principales caractersticas que deben revisarse para juzgar la conveniencia, o no,
de un microcontrolador en particular.
Nomenclatura
Un microcontrolador se identica por su nombre, el cual esta compuesto por varios factores:
Marca: Fabricante o tipo de microcontrolador (Microchip, PIC, ATMEL, ATMega)
Gama: Escala de microcontroladores (baja, media, alta)
Memoria - Programable: (Tipo de memoria para el area de programa (F Flash, el
micro se puede reprogramar, C el micro solo se programa una vez))
Modelo: Modelo del microcontrolador
Frecuencia. Maxima frecuencia que soporta el microcontrolador usando reloj externo (en
MHz)
Ejemplos: PIC16F628/04 y ATmega16 (todos son reprogramables)
Marca Gama Memoria Programable Modelo Frecuencia
PIC 16 (media) F 628 04
AT (8 bits) media mega 16
Principales Caractersticas de los microcontroladores
La explicacion detallada de algunas de las caractersticas que mencionaremos a continuacion
se veran en captulos posteriores, por lo pronto diremos que incidencia tienen en el dise no de
una aplicacion:
Memoria de Programa: La cantidad de memoria de programa es una medida de que tan
grande puede ser el programa que se va a quemar en el microcontrolador. Aunque nunca se
conoce a priori cual es el tama no de un programa que a un no se ha escrito, con el tiempo se
T
e
x
t
o

d
e

P
r
u
e
b
a
CAP

ITULO 0. INTRODUCCI

ON ix
aprende a establecer un estimativo de acuerdo a la complejidad de la aplicacion. Dentro de las
especicaciones que dan los fabricantes es necesario diferenciar cuando la medida este dada
en bytes o en instrucciones de maquina, pues cuando se da en bytes normalmente aparece
una cantidad mayor si se tiene en cuenta que algunas instrucciones (o en ciertos procesadores
todas) consumen dos y hasta tres bytes. La memoria de programa es no volatil, y puede estar
basada en diferentes tecnologas: Eprom, EEProm, Flash, ROM, OTP. Del primer tipo ya
casi no se encuentran dispositivos, pero por si acaso, indica que el dispositivo debe borrarse
exponiendolo a una fuente de luz ultravioleta (el tiempo de exposicion es de 5 a 15 min). El tipo
de memoria EEprom y Flash indica que es borrable electricamente, o sea que no requiere la
luz ultravioleta, sin embargo son preferibles los dispositivos con memoria Flash pues soportan
mas ciclos de escritura que los dispositivos EEprom, ademas se pueden programar con voltajes
mas bajos (lo cual simplica el dise no del quemador) y se caracteriza por su alta velocidad.
Las versiones ROM y OTP solo se pueden programar una vez, pero tienen la ventaja de que
sus costos son signicativamente mas bajos, la diferencia entre la version ROM y la version
OTP es que los dispositivos con ROM (Read Only Memory) solo pueden ser quemados por la
empresa que los produce (los dise nadores envan el archivo con los codigos de maquina), y la
version OTP (One Time Programable) los programa el mismo dise nador, pero solo una vez.
Estas dos ultimas versiones estan pensadas para cuando ya se tiene un producto terminado y
se quieren abaratar costos. De cada referencia es posible encontrar la version OTP y la version
Eprom o Flash, debe tenerse en cuenta que para el desarrollo se trabaja con la version Flash,
as que si el costo es demasiado bajo, mucho cuidado porque puede estar comprando la version
OTP.
Por ultimo, cabe mencionar que los dispositivos con memoria Flash pueden traer la carac-
terstica de que el programa puede acceder a la memoria de programa para escribir en ella,
lo cual permite que se desarrollen aplicaciones que se modiquen a s mismas (permitiendo
actualizar el software sin siquiera desmontar el chip), utilizando esta caracterstica cada vez es
mas frecuente sistemas de desarrollo basados en BootLoader (peque no programa que permite
descargar otros programas y ejecutarlos, lo cual elimina la necesidad de un circuito quemador
para el desarrollo de aplicaciones).
Memoria RAM: Es una memoria de lectura y escritura, y su tama no nos sirve para
identicar la cantidad de variables puede contener un programa (o que tan grandes pueden
ser los arreglos). Y como casi siempre un programa grande implica mas cantidad de variables,
los microcontroladores tienen una cantidad de memoria RAM proporcional a la cantidad de
memoria de programa. Pero, este es quizas el recurso mas limitante a la hora de dise nar
aplicaciones, para alguien acostumbrado a dise nar aplicaciones para PC, pues en vez de
medirse en Gigabytes se mide en bytes y si mucho llegara al orden de los kilobytes. Dentro de
las especicaciones que entregan los fabricantes, es importante distinguir cuando la cantidad
de memoria incluye la memoria consumida por los registros para el control del hardware, pues
como su nombre lo indica a pesar de ser posiciones de lectura/escritura, no estan disponibles
para que los utilicemos como variables.
Memoria EEprom/Flash de Datos: Si bien la memoria RAM tiene la ventaja de ser de
lectura y escritura, tiene la desventaja de ser volatil (es decir que cuando se interrumpe la
alimentacion sus datos se borran), y en algunas situaciones es conveniente recordar datos entre
las diferentes ejecuciones del programa, como por ejemplo sistemas de claves de acceso, cambios
en conguraciones, etc. (para una aplicacion en PC se recurra a un sistema de archivos).
Para hacerle frente a este tipo de condiciones casi todos los microcontroladores agregan una
peque na cantidad de memoria EEprom o Flash a la cual puede tener acceso el programa
para leer y escribir datos, habitualmente a una velocidad mucho mas baja que a la que se
T
e
x
t
o

d
e

P
r
u
e
b
a
x
puede acceder a la memoria RAM y en un espacio de direcciones diferente al de la memoria
de Programa. Como la memoria RAM, es un recurso muy limitado y se mide en bytes o kilobytes.
Memorias Externas: A pesar de que los microcontroladores estan dise nados precisamente
para aplicaciones en las cuales se piense reducir espacio al no requerir componentes adicionales,
algunas familias de microcontroladores agregan la posibilidad de que se conecten memorias
externas (como es el caso del ATMega 8515) para aumentar el tama no de programa o la
memoria RAM convirtiendo algunos de sus puertos en buses de direcciones o de datos (algunos
fabricantes especican que se puede comportar como microcontrolador o microprocesador).
De esta manera se pueden dise nar sistemas mucho mas complejos sin tener que cambiar al
circuito cada que se quieran realizar cambios signicativos en el hardware. Tambien existen
memorias externas que se pueden controlar por buses seriales I
2
C o SPI, permitiendo
almacenar mayor cantidad de datos sin tener que migrar a otro microcontrolador ni sacri-
cando lneas de puertos para su manejo, la desventaja en este caso sera la velocidad de acceso.
Capacidades de la CPU: A diferencia de las memorias en las cuales la comparacion consiste
simplemente en vericar el tama no, la comparacion entre diferentes CPUs no es tan simple,
pues contiene varios topicos y es precisamente la combinacion de caractersticas la que hace a
un microcontrolador mas eciente o no para cierta aplicacion. Como se menciona mas adelante
la CPU esta ligada a una determinada familia, y por esta razon, habitualmente los desarrollado-
res hacen sus diferentes dise nos en lo posible con microcontroladores que poseen la misma CPU.
El tama no de los datos que viajan a traves de los buses internos del microprocesador y los
datos que pueden acceder a la ALU (Unidad aritmetica logica) con una sola operacion, es el
que permite establecer para que tipo de aplicacion se puede utilizar un microcontrolador, pues
en cierta forma se identica cuan complejo puede llegar a ser el programa (de igual manera el
tama no de las memorias esta condicionado a este tama no). As, existen microcontroladores de
8, 16 y 32 bits (mas adelante se explica en detalle en el apartado de familias).
La velocidad con que se pueden ejecutar las instrucciones depende de las tecnologas con la que
este dise nado un microcontrolador, las mas importantes son las que tienen que ver con como
se comunica con las diferentes memorias (de programa, y de datos) y el tama no del repertorio
de instrucciones que es capaz de ejecutar.
En cuanto a la forma como se comunica con la memoria, se distingue la tecnologa Von
Neumann, en la cual se utiliza un mismo bus para acceder a la memoria RAM, memoria
ROM y a los perifericos y la tecnologa Harvard, en la cual se utiliza un bus separado para
cada tipo de memoria. Las CPUs que implementan tecnologas Harvard pueden ejecutar las
instrucciones con mayor velocidad, pues simultaneamente pueden acceder a la memoria RAM
y a la memoria ROM, algo obviamente imposible en la tecnologa Von Neumann. La velocidad
a la cual ejecuta las instrucciones se conoce como ciclos de maquina, entonces en resumen la
tecnologa Harvard consume menos ciclos de m aquina en la ejecucion de instrucciones que la
tecnologa Von Neumann.
El tama no del repertorio de instrucciones esta ligado ntimamente a cuantos circuitos de
procesamiento internos posee (una medida burda podra ser un circuito por cada instruccion
diferente que puede ejecutar), y a pesar de que a simple vista podra pensarse que es
preferible un microprocesador posea mayor cantidad de instrucciones en realidad surgieron dos
tecnologas seg un el tama no del repertorio de instrucciones, la tecnologa CISC (implementan
gran cantidad de instrucciones) y la tecnologa RISC (implementan pocas instrucciones). En
principio la tecnologa CISC tuvo gran acogida, pero a medida que se fue implementando mas
T
e
x
t
o

d
e

P
r
u
e
b
a
CAP

ITULO 0. INTRODUCCI

ON xi
instrucciones la separacion interna entre los circuitos fue haciendose mas peque na, y esto a su
vez trajo consigo el hecho de que los chips se calentaban mas a mayor frecuencia de operacion,
lo que llevo a la paradoja de que si bien se podan ejecutar instrucciones mas complejas, estas
no podan ejecutarse sino hasta cierto lmite de frecuencia del oscilador. En contra partida,
en los microcontroladores con tecnologa RISC, se pueden ejecutar muy pocas instrucciones,
pero permiten utilizar frecuencias del oscilador mucho mas altas. Para entender este concepto,
pensemos que en alg un programa en el que se calcula el producto de 2 n umeros; cuando se
escribe el programa en ensamblador para un microcontrolador con tecnologa CICS, resulta
que basta con una instruccion MUL AB, pero en un microcontrolador con tecnologa RISC, al
poseer un repertorio de instrucciones tan peque no no tiene una instruccion para implementar
el producto, entonces el programador debe implementarla utilizando instrucciones mas simples
como sumas y corrimientos, por ejemplo con 8 instrucciones. Pero estas 8 instrucciones se
pueden ejecutar con una frecuencia del oscilador 16 veces mayor que la frecuencia del proce-
sador con tecnologa CISC. Entonces, a pesar de que se tienen que escribir mas instrucciones
con el procesador RISC, al poder ejecutarlas a una velocidad mas alta, se podran llegar
ejecutar en menor tiempo que la unica instruccion del procesador CISC. Para el programador
en ensamblador es mas tedioso escribir un programa con tecnologa RISC, pues son programas
mas largos a los equivalentes con tecnologa CISC; sin embargo para el programador en un
lenguaje de alto nivel, el codigo fuente es el mismo, independientemente de si esta escribiendo
un programa para microcontrolador RISC o CISC.
Otra tecnologa que permitio disminuir el tiempo de ejecucion de las instrucciones es el
sistema de pipeline (tubera), termino que genericamente se aplica a un conjunto de elementos
procesadores de datos conectados en serie, en donde la salida de un elemento es la entrada del
siguiente. Mediante este sistema se logran interpretar varias fases de diferentes instrucciones
simultaneamente, de tal suerte que mientras un elemento lee la instruccion de la posicion
de memoria 3, otro elemento esta decodicando la instruccion de la posicion 2, y otro mas
esta ejecutando la instruccion de la posicion 1. (Sin pipeline, un procesador no empieza a ejecu-
tar cada una de las fases de la instruccion siguiente hasta no haber terminado completamente
todas las fases de la instruccion actual).
Control de Perifericos: El factor mas importante a la hora de escoger un microcontrolador
para una aplicacion es que pueda manipular de manera apropiada el hardware al cual se va a
conectar y por esta razon existe una gran variedad de caractersticas que podemos encontrar
en cuanto a control de perifericos por parte de los microcontroladores:
Entradas/Salidas: Todos los microcontroladores tienen puertos para comunicarse de manera
simple con el exterior (sin manejo de protocolo); en ellos se representa el nivel que hay en
algunos pines del microcontrolador, ya sea porque el nivel lo pone el programa (en cuyo caso
se dice que es una salida) o que lo ponga el hardware conectado a el (en este caso se dice
que es una entrada), generalmente en la aplicaci on se dene en un registro de conguracion el
comportamiento del pin, si como salida o como entrada.
Las entradas: de los microcontroladores funcionan a la misma tension que la tension
de alimentacion del mismo, a 5V o a 3V, pero en algunos de los que trabajan a 3V
de alimentacion tambien permiten entradas a 5V. Algunos pines contienen resistencias
de pull up (resistencias conectadas a Vcc) para eliminar la necesidad de conectarlas
externamente.
Las salidas: siguen siendo a la misma tension que la de alimentacion. Ademas pueden
tener salidas especializadas en entregar una corriente de salida importante, entre 10 y
25 mA para atacar directamente a LEDs o displays. Y tambien las hay con salida de
T
e
x
t
o

d
e

P
r
u
e
b
a
xii
colector abierto.
La corriente de salida que puede entregar un puerto hacia la carga con respecto a masa se
llama Sink (corriente con el pin como sumidero) y la corriente que puede suministrar una
salida con respecto al voltaje de alimentacion se llama Source (corriente con el pin como
fuente). Casi todos los microcontroladores pueden entregar mas corriente como sumidero
que como fuente.
Interrupciones externas e internas: Son unos circuitos especiales que permiten atender
de manera mas eciente los eventos externos o internos que se presentan en las diversas
aplicaciones y sin los cuales se torna complejo el dise no e implementacion de los programas .
TIMERs: Los TIMERs o temporizadores son contadores, que sus funciones basicas son la
medida o generacion de eventos basados en el tiempo. Los temporizadores normalmente miden
tiempo relativo al reloj interno del microcontrolador. Los hay de 8 o 16 bits y tpicamente tienen
las funciones de Input Capture (Captura de entrada) y Output Compare (Comparacion de
salida).
Input Capture: Esta funcion permite cronometrar eventos externos para ser referencia-
dos a un contador interno. Se puede medir un periodo de entrada, un ancho de pulso.
Output Compare: Se puede utilizar para realizar un simple retardo, generar interrup-
ciones periodicas, generar frecuencias de salida variables o modulacion de anchos de pulso
(PWM).
PWM (pulse widths modulation - modulacion por ancho de pulso): La modulacion
del ancho de pulso se usa para generar una forma de onda con un periodo jo y el ciclo de
trabajo variable. Los moduladores de ancho de pulso pueden tener diferentes velocidades y
resolucion. La velocidad esta denida por el periodo y la resolucion por el n umero de pasos
discretos del ciclo de trabajo. Un PWM de 8-bits permite especicar el ciclo de servicio en 256
pasos o 2 elevado a la 8.
Un uso com un del modulador del ancho de pulso, es la conversion D/A (de digital a analogico)
usando alg un ltro externo. El voltaje analogico generado es proporcional al ciclo de trabajo.
Teoricamente, un 50 % del ciclo de servicio generara aproximadamente la mitad del voltaje
analogico maximo y un 25 % del ciclo de servicio generara un cuarto del voltaje analogico
maximo. El modulador de ancho de pulso tambien se usa para controlar normalmente un
motor y para controlar la carga de una batera.
ADC (Analogo Digital Converter - Convertidor analogo digital): Todos los Modulos
ADC soportan dos modos de conversion, en modo de conversion continua y en modo de
conversion simple y suelen ser de 8 y 10 bits, aunque en ning un caso son de precision, debido
a que estan hechos con una tecnologa digital.
Solo en el caso de Analog Devices se puede hablar de convertidores A/D de precision, con la
familia de Microconverters, porque estan fabricados a partir de convertidores con tecnologa
analogica que les han integrado un microcontrolador.
UART: Es una interconexion de comunicacion serie, asncrona, full duplex, que tienen
muchos microcontroladores, donde el usuario puede controlar la velocidad de transmision. Las
se nales utilizadas son RxD y TxD. En algunos microcontroladores se permite la comunicacion
a 9 bits lo que permite crear peque nas redes de microcontroladores con hardware/software
realmente simple. Si se colocan circuitos drivers de comunicacion adecuados se pueden hacer
T
e
x
t
o

d
e

P
r
u
e
b
a
CAP

ITULO 0. INTRODUCCI

ON xiii
comunicaciones RS232 o RS485.
SPI: Es una interconexion serie con tres hilos, sncrona y bidireccional. Se utiliza para la
interconexion de microcontroladores y sus perifericos (convertidores A/D, EEproms, drivers de
display, etc) u otros microcontroladores. Utiliza tres se nales: reloj, dato -entrada, dato-salida .
Se ha convertido en estandar de la industria, algunos microcontroladores permiten trabajar en
modo maestro o modo esclavo (de acuerdo a si controlan o no la se nal de reloj).
I
2
C: Es una interconexion serie con dos hilos, sncrona y bidireccional. Se utiliza para la
interconexion de microcontroladores y sus perifericos (convertidores A/D, EEproms, drivers de
display) u otros microcontroladores. Desarrollado por Valvo/Philips.
Utiliza dos se nales: SDA (Serial Data) y SCL (Serial Clock). Soporta el modo multimaster. El
dispositivo puede trabajar como receptor o como transmisor, dependiendo de sus funciones.
Cada dispositivo tiene su propia direccion de 7 bits. Cada direccion consiste com unmente de una
parte ja (4 bits internos del chip) y de una parte de direccion variable (3 pines del dispositivo).
USB (Universal Serial Bus): El Bus Serie Universal USB, es un nuevo estandar de
entrada/salida para perifericos de PC que aporta a los usuarios, conexiones simples, faciles, y
funciones de conectar-y-funcionar (plug and play). Desarrollado inicialmente por un consorcio
de compa nas lderes dentro de la industria del PC, el USB puede acomodar simultaneamente
hasta 127 dispositivos perifericos. Esta funcionalidad es implementada por Microchip en la
serie 18F2550 y el 18F4550 y por ATMEL en la serie AT90USB128
CAN (Controller Area Network): El busCAN desarrollado por Bosch Gmbh en
Alemania, ha sido utilizado principalmente para la comunicacion en automocion, pero tambien
se ha introducido en la industria como un estandar. CAN es un canal de comunicacion serie
multiplexado, en el cual los datos son transferidos entre modulos electronicos distribuidos;
similar al SPI, con un protocolo mucho mas robusto. Este protocolo permite la creacion de
redes dentro de un vehculo o sistema industrial con una gran tolerancia de errores en ambientes
industriales. Esta funcionalidad es implementada por Microchip en la serie PIC18F452 y por
ATMEL en la serie AT90CAN128
Ethernet: La comunicacion tipo Ethernet es compleja, ya que requiere un procesador rapido
y un periferico de comunicacion potente. Motorola ha desarrollado el primer microcontrolador
de 32 bits de bajo costo con Ethernet 10/100 MHz incluido, se denomina Tarifa o MCF5272 y
esta basado en la familia ColdFire. Tambien los microprocesadores de 32 bits de Intel (Pentium y
ARM) y de ST (STPC) contienen este periferico, mientras que ATMEL posee el AT91SAM9260.
Circuito Oscilador: Un microcontrolador es un circuito secuencial sncrono, y por esta
razon necesita un componente que genere pulsos de manera regular, este componente puede
ser externo o interno. Dentro de las especicaciones de los microcontroladores uno de los
principales datos es la maxima frecuencia de operacion, dicho valor sera una medida de que
tantas instrucciones sera capaz de ejecutar en un segundo (se usa el termino MIPS, o millones
de instrucciones por segundo), al inverso de la frecuencia de operacion se le conoce como ciclo
de reloj. Sin embargo para comparar dos microcontroladores de diferente familia, debe tenerse
en cuenta la cantidad de ciclos de reloj que toma un ciclo de maquina (tiempo en que se ejecuta
una parte de las fases de lectura-decodicacion-ejecucion de una instruccion), y la cantidad
promedio de ciclos de maquina que toma una instruccion en la CPU de cada microcontrolador.
Se pueden utilizar resonadores ceramicos y en algunos microcontroladores de 8 bits se permite
T
e
x
t
o

d
e

P
r
u
e
b
a
xiv
tambien usar un R-C (resistencia-condensador) externos o internos (proporcionando de esta
forma dos pines mas de entrada/salida), para aplicaciones de poca precision a muy bajo costo.
La incorporacion de un circuito PLL integrado en el microcontrolador, permite utilizar cristales
de cuarzo para poder generar frecuencias en m ultiplos enteros del cristal de referencia. Por
ejemplo, usando el PLL se puede proporcionar hasta una frecuencia de bus del orden de los MHz
usando un cristal del orden de los kHz de muy bajo costo. Al poder trabajar a frecuencias bajas
se reduce el consumo. El uso del PLL reduce la generacion de ruido (EMI), en comparacion con
los cristales de frecuencias mas altas y no son necesarios los osciladores. De todas maneras se
pueden utilizar igualmente osciladores, para mayor precision. El tipo de oscilador que se utili-
zara en una aplicacion debe escogerse en el momento de quemado (programado) de la aplicacion.
Consumo de Potencia: El consumo en todos los sistemas electronicos es un factor a
tener en cuenta, sobre todo si se aplica a sistemas portatiles alimentados con bateras. Da
a da salen nuevos dispositivos con consumos mas bajos, pero todos los microcontroladores
han a nadido elementos que hacen subir el consumo. La tecnologa Flash permite disminuir
el consumo de los dispositivos. Al poder utilizar un microcontrolador con un oscilador a
cristal de 32kHz baja el consumo, siempre que se programe el PLL interno a frecuencias
bajas. Algunos microcontroladores permiten desconectar perifericos para bajar el consumo,
as por ejemplo, un temporizador tiene un bit de encendido y si no se activa dicho modulo
estara desconectado. Tambien los nuevos microcontroladores poseen instrucciones SLEEP o
WAIT que permiten poner al microcontrolador en estado de espera, desconectando la mayora
de los componentes y dejando activos solo los estrictamente necesarios (TIMERs, y alguna
circuitera de interrupciones). Tambien se tienen familias de microcontroladores que trabajan
con niveles de voltaje de 3V, lo cual obviamente disminuye el consumo. La familia de mas bajo
consumo es la MSP430 de Texas Instruments.
Circuitos de proteccion contra fallas: Desde hace alg un tiempo los microcontroladores
utilizan diversos supervisores del funcionamiento de la CPU, estos circuitos son habilitados o
deshabilitados en el momento de programar el microcontrolador, y algunos requieren un dise no
especial del software:
WDT (Watch Dog Timer):Se denomina Watch Dog Timer o COP (Computer Operating
Properly), a un contador que corre libremente, proporciona proteccion al resetear el siste-
ma si no es borrado dentro de un periodo determinado (este periodo es seleccionable por
hardware-software). Permite a la CPU recuperarse a un estado conocido, despues de eventos
inesperados, como ruido electrico. El programa debe entonces dise narse de tal forma que este
TIMER nunca se rebose, si la aplicacion corre normalmente.
POR (Power On Reset): El power -on reset ocurre cuando una transicion positiva se
detecta en VDD. El Power -On Reset se usa estrictamente para condiciones de desconexiones
de alimentacion y no se debe usar para detectar cualquier perdida en la tension de alimentacion.
Para esto, se debe utilizar un circuito de inhibicion por bajo voltaje (LVI), para detectar
cualquier perdida de tension de alimentacion.
La circuitera de power-on mantiene un retardo (en algunos microcontroladores este tiempo es
programable) para que el oscilador se ponga activo. Si el pin externo de RESET esta a un ni-
vel bajo, y pasa a alto se esperara un retardo, antes de que internamente se ponga en estado alto.
LVI (Low Voltage Inhibit) o Brown-Out: El LVI para proteger el sistema durante una
cada de alimentacion, haciendo un Reset a la CPU cuando la alimentacion cae por debajo
de cierto valor. Cuando el voltaje vuelve a su nivel nominal, la CPU continuara el trabajo. En
T
e
x
t
o

d
e

P
r
u
e
b
a
CAP

ITULO 0. INTRODUCCI

ON xv
algunos sistemas se puede elegir el voltaje de disparo.
Circuitos de proteccion de codigo: Cuando se programa el microcontrolador se puede
especicar que el codigo no pueda ser ledo externamente, y de esta forma se evita que el
programa sea copiado. Sin embargo, se debe tener en cuenta que con esta opcion no existe
forma de validar el codigo con el codigo generado por el compilador, as que habitualmente se
trabaja en la fase de desarrollo con estos bits deshabilitados y solo cuando se tiene el producto
nal para distribuir se activan estos bits. Algunos dispositivos tienen la posibilidad de proteger
solo alguna parte del codigo, y/o proteger tambien la memoria EEprom de datos.
Familias de microcontroladores: Las empresas fabricantes de microcontroladores habitual-
mente desarrollan una serie de microcontroladores basados en un microprocesador o CPU (en
alguna literatura se menciona como n ucleo), a cada uno de ellos se le acondicionan diferentes
cantidades de memoria RAM, memoria ROM, con mas o menos puertos de E/S simple o
con puertos de comunicacion especializado. Al conjunto de microcontroladores que poseen un
mismo n ucleo se le conoce como familia.
De las especicaciones del microcontrolador, el mas preponderante es el que tiene que ver con
la cantidad de bits que puede transmitir en un momento dado. Y de acuerdo al tama no del
bus se tiene la siguiente clasicacion de las familias de microcontroladores:
Gama Baja: Las CPU mas peque nas son de 8 bits y cubren un amplio abanico de
aplicaciones de proposito general, de bajo costo, compactas, pero a la vez potentes. De-
dicados fundamentalmente a tareas de control (electrodomesticos, cabinas telefonicas,
smart-cards, algunos perifericos de ordenadores, etc.). Tambien se usan mucho como pe-
rifericos de otros micros mas grandes.
Gama Media: Las CPU de 16 bits, estan destinadas a aumentar la potencia de calculo,
principalmente, y a aumentar las capacidades de memoria de programa y memoria de
datos, pudiendo expandir el bus externamente. Usados en tareas de control con cierto
grado de procesamiento (control en automovil, telefonos moviles, PDAs,...).
Gama Alta: Las CPU de 32 y 64 bits, estan destinadas a cubrir campos como mul-
timedia, alta capacidad de proceso, as como un mayor direccionamiento. Normalmente
pueden expandir los buses externamente. Usados en aplicaciones como celulares inteligen-
tes, videoconsolas, tablet-pc, etc.
Dise no de sistemas basados en microcontrolador: El dise no de un sistema basado
en microcontrolador parte de escoger el microcontrolador que re una todas las caractersti-
cas internas que requiere la aplicacion, as la cantidad de componentes logicos adicionales
sera mnima (en lo posible ninguno). Pero tambien deben tenerse en cuenta aspectos como:
disponibilidad en el mercado, y costos, pues de nada sirve un microcontrolador con unas muy
buenas caractersticas, si no se consigue en el comercio local (aunque las compras por internet
hacen que cada vez sea mas irrelevante este aspecto), o el precio del producto nal no es
competitivo. Se debe disponer tambien de herramientas de hardware y software necesarias para
desarrollar la aplicacion, es decir contar como mnimo con el circuito quemador, un entorno
de programacion en un lenguaje que se domine, documentacion sobre el hardware interno del
microcontrolador, y si es posible, contar con libreras que permitan el desarrollo rapido de la
aplicacion.
Entornos de programacion y circuitos de quemado: Para poder implementar las
aplicaciones en los microcontroladores es necesario utilizar un entorno de desarrollo integrado
T
e
x
t
o

d
e

P
r
u
e
b
a
xvi
(IDE - o entorno de programacion) en el cual se edita, compila, y depura la aplicacion; en el
apendice A se describen dos de los entornos mas usados para las familias de microcontroladores
analizados en el presente texto: el entorno SourceBoost para los microcontroladores PICs y
el entorno AVR Studio, para los microcontroladores Atmel. Cabe indicar que ademas del
software, es necesario contar con un circuito que permita quemar y/o ejecutar la aplicacion.
Para realizar el proceso de quemado se pueden tener varias opciones: desde programadores
de bajo voltaje que pueden armarse con dos resistencias conectadas al puerto paralelo,
quemadores comerciales que permiten correr paso a paso las aplicaciones para depuracion;
hasta sistemas con BootLoaderque permiten descargar la aplicacion y ejecutarla en el mismo
circuito (eliminando la necesidad de tener un circuito quemador y un circuito de aplicacion).
En internet hay varios sitios especializados donde se pueden comprar estos quemadores, o
proyectos para hacer en casacon los dise nos de circuitos esquematicos y PCB, de quemado
tanto para microcontroladores Atmel como para PICs, e inclusive para los dos tipos, ya sea por
el puerto paralelo, por el puerto serial o los mas modernos que utilizan el puerto USB (por ejem-
plo: feng3.cool.ne.jp/en/pg5v2.html, www.electronickits.com/kit/complete/prog/ck1708.htm,
electronics-diy.com/avr programmer.php, www.al-williams.comapp1.htm). Cualquiera sea la
opcion, se debe tener en cuenta que ademas del circuito se debe contar con el rmwa-
re(termino utilizado para indicar el software interno de una aplicacion con microcontrolador
o con alg un sistema programable) del circuito; y con el software del PC. En la categora de
sistemas con BootLoader, se destaca el sistema Arduino que consiste en un circuito basico con
un microcontrolador AVR (de prestaciones muy similares al ATmega16), y un sistema de
expansion, con conexion USB, a nivel de software se cuenta con un entorno de programacion
muy simple; a partir de dicho sistema se dispone de una serie de circuitos cuyo hardware y
software son de codigo abierto y continuamente salen nuevos productos para este sistema con la
ventaja de disponer de los dise nos de hardware y las libreras con las rutinas basicas de manejo,
ademas de un inteligente sistema de interconexion entre modulos, (tambien existe, aunque
menos difundida una version que trata de emular el arduino utilizando un microcontrolador
de la familia pics 18fxx, llamado picduino). La recomendacion es que se disponga de alg un
circuito de estos para que pueda ver el comportamiento del circuito real (cada vez es mas
com un que solo se llegue a la simulacion en un entorno como el Proteus, pero una simulacion
nunca reemplazara a la aplicacion de verdad y no pocas veces ocurre que en la simulacion
no pueden apreciarse ciertos errores que son evidentes en el sistema real como por ejemplo
parpadeos en sistemas de LEDs, pero curiosamente tambien ocurre lo contrario, algunas veces
la simulacion presenta errores que no ocurren en el sistema real; debe tenerse en cuenta que
estos programas de simulacion no estan completamente terminados y pueden cometer errores
en la interpretacion de como simular alg un componente del hardware que hace parte del
circuito).
T
e
x
t
o

d
e

P
r
u
e
b
a

Vous aimerez peut-être aussi