Que es un microcontrolador
Los microcontroladores estn conquistando el mundo. Estn
presentes en nuestro trabajo, en nuestra casa y en nuestra
vida, en general. Se pueden encontrar controlando el
funcionamiento de los ratones y teclados de los computadores,
en los telfonos, en los hornos microondas y los televisores de
nuestro hogar. Pero la invasin acaba de comenzar y el siglo
XXI ser testigo de la conquista masiva de estos diminutos
computadores, que gobernarn la mayor parte de los aparatos
que fabriquemos y usamos los humanos.
Controlador y microcontrolador
Recursos comunes
Al estar todos los microcontroladores en un solo circuito
integrado, su estructura fundamental y sus caractersticas
bsicas son muy parecidas. Todos deben disponer de los
bloques esenciales Procesador, memoria de datos y de
instrucciones, lneas de E/S, oscilador de reloj y mdulos
controladores de perifricos. Sin embargo, cada fabricante
intenta enfatizar los recursos ms idneos para las aplicaciones
a las que se destinan preferentemente.
Arquitectura bsica
Aunque inicialmente todos los microcontroladores adoptaron
la arquitectura clsica de von Neumann, en el momento
presente se impone la arquitectura Harvard.
El procesador o CPU
Memoria
2. OTP
3 EPROM
4 EEPROM
5 FLASH
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.
Recursos especiales
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.
Temporizadores o "Timers".
Perro guardin o "Watchdog".
Proteccin ante fallo de alimentacin o "Brownout".
Estado de reposo o de bajo consumo.
Conversor A/D.
Conversor D/A.
Comparador analgico.
Modulador de anchura de impulsos o PWM.
Puertos de comunicacin.
Temporizadores o "Timers"
Comparador analgico
Puertos de comunicacin
Herramientas de desarrollo
Las herramientas de desarrollo estn formadas por un
conjunto de programas e interfaces que permiten realizar los
proyectos de la forma ms eficiente posible.
Paquetes IDE
Qu microcontrolador emplear?
Elegir un tipo o familia de microcontroladores
A la hora de decidirse en terminos generales sobre que tipo o
familia de microcontroladores emplear hay que tener en cuenta
varios factores, como por ejemplo:
Experiencia previa
Documentacin existente
Herramientas de desarrollo disponibles y su precio
Precio del microcontrolador
ARQUITECTU
FABRICANTE FAMILIA IDE
RA
CISC 8 bits
ADUC8xx -
8051
Analog Device www.analog.com
RISC 32 bits
ADUC7xx -
ARM7
prog.
CISC 8 bits
AT89xxx independient
8051
es
prog.
Atmel www.atmel.com TS87xxx CISC 8 bits independient
es
AVR RISC 8 bits AVR studio
RISC 16 bits
AT91xxx -
ARM7/9
RISC 32 bits
EP73xxx -
ARM7
Cirrus Logic www.cirrus.com
RISC 32 bits
EP93xxx -
ARM9
CISC 8 bits
Cygnal www.silabs.com C8051F -
8051
CISC 8 bits
HC05 -
6800
CISC 8 bits Code
HC08
6809 Warrior
CISC 8 bits
HC11 -
6809
HC12 CISC 16 bits -
Freescale Code
HCS12 CISC 16 bits
(Motorola) www.freescale.com Warrior
HC16 CISC 16 bits -
56800 CISC 16 bits -
CISC 32 bits
68K -
68000
ColdFire CISC 32 bits -
RISC 32 bits
MAC7100 -
ARM7
F2MC-8 CISC 8 bits -
Fujitsu www.fujitsu.com F2MC-16 CISC 16 bits -
FR RISC 32 bits -
CISC 8 bits
C5xxx -
8051
CISC 8 bits
C8xxx -
8051
Infineon www.infineon.com
C16xxx CISC 16 bits -
XC16xxx CISC 16 bits -
TCxxx CISC 32 bits -
CISC 8 bits
Intel www.intel.com MCS251 -
8051
MCS96/296 CISC 16 bits -
CISC 8 bits
DS80Cxxx -
8051
CISC 8 bits
DS83Cxxx -
Maxim (Dallas) www.maxim-ic.com 8051
CISC 8 bits
DS89Cxxx -
8051
MAXQ RISC 16 bits -
PIC
10,12,14,16,17, RISC 8 bits MPLAB
Microchip www.microchip.com 18
dsPIC RISC 16 bits MPLAB
COP8xxx CISC 8 bits Webench
NS (NATIONAL
SEMICONDUCTOR) www.national.co CR16Cxxx CISC 16 bits -
m
CP3000 RISC 16 bits -
CISC 8 bits
P8xxx -
8051
Philips www.semiconductors.philips.co
Xaxxx CISC 16 bits -
m
RISC 32 bits
LPC2xxx -
ARM7
Rabbit Rabbit2000 CISC 8 bits -
Semiconductor www.rabbitsemiconduct
or.com Rabbit3000 CISC 8 bits -
Facilidad de uso.
Gran cantidad de informacin disponible en libros, revistas
e Internet.
Herramientas de desarrollo muy asequibles.
Bajo precio y fcil disponibilidad.
CISC - RISC
Los procesadores se agrupan hoy en dos familias, la ms antigua y comn de las cuales es la "CISC"
o "Complex Instruction Set Computer": computador de set complejo de instrucciones. Esto
corresponde a procesadores que son capaces de ejecutar un gran nmero de instrucciones pre-
definidas en lenguaje de mquina (del orden del centenar).
Desde hace unos aos se fabrican y utilizan en algunas mquinas procesadores "RISC" o "Reduced
Instruction Set Computer", es decir con un nmero reducido de instrucciones. Esto permite una
ejecucin ms rpida de las instrucciones pero requiere compiladores (o sea traductores
automticos de programas) ms complejos ya que las instrucciones que un "CISC" podra admitir
pero no un "RISC", deben ser escritas como combinaciones de varias instruciones admisibles del
"RISC". Se obtiene una ganancia en velocidad por el hecho que el RISC domina instrucciones muy
frecuentes mientras son operaciones menos frecuentes las que deben descomponerse.
Procesadores CISC
60s...IBM 360;
Procesadores RISC
RISC = Reduced Instruction Set Computer
objetivo de 1 instruccin/ciclo
Ejemplos
CSIC RISC
Introduccin:
Los inicios de la tecnologa RISC tambin surgen en el ambiente acadmico, ya que en 1980, la
Universidad de Berkeley (California), el Dr. David A. Patterson inici un proyecto denominado RISC
I, que obtuvo resultados en tan solo 19 meses, seguido por RISC II, SOAR (Smalltalk on a RISC) y
SPUR (Symbolic Processing on a RISC). El resultado directo, adems de la educacin en la
ingeniera y los fundamentos del diseo de microprocesadores, fue la creacin de una mquina
que fuese capaz de mayores velocidades de ejecucin a menores velocidades de reloj y que
requiriese menores esfuerzos de diseo.
Por otro lado, durante las pasadas dcadas, el multiproceso, como medida de incrementar
drsticamente las prestaciones de los sistemas a un coste razonable, se ha visto reducido al
mbito de los computadores de "alto nivel", en parte debido a los bajos niveles de integracin del
silicio, y a la falta de software que facilitase la ejecucin paralela de las aplicaciones.
Las ventajas de los procesadores RISC, especialmente las ligadas a los sistemas abiertos (lase
UNIX), los hacen plataformas ideales para explorar los puntos fuertes de los sistemas
multiprocesadores.
Tecnologa RISC:
La comparacin que antes hemos realizado entre CISC y RISC es algo simple, ya que no es slo una
cuestin de diferencias en el conjunto de instrucciones, puesto que es fundamental resaltar el
mejor uso y aprovechamiento de los recursos del silicio, es decir, menor tiempo de diseo y
empleo de menor nmero de transistores, lo que redunda en menor nmero de errores de diseo
y menor tiempo de ejecucin para instrucciones individuales.
Las caractersticas comunes a todos los procesadores RISC, fuente de sus capacidades de altas
prestaciones, son:
5. Ejecucin en conductos (pipelined). Las instrucciones simples, de formato fijo y ciclo nico
permiten que las diferentes etapas de los ciclos de ejecucin (bsqueda o fetch, descodificacin,
ejecucin, y escritura del resultado o result write-back) para instrucciones mltiples, se puedan
realizar simultneamente, de un modo ms simple y eficaz.
Conceptos de multiproceso:
No es un concepto nuevo, ya que los "minicomputadores" construidos por compaas como NCR,
Sequent y Stratus, ya empleaban varios nodos de proceso como alternativas econmicas a otros
productos de otras compaas. Sin embargo, aquellos sistemas an duplicaban recursos caros del
sistema, como memoria y dispositivos de entrada/salida, y por tanto, confinaban a los sistemas
multiprocesador al mundo de los sistemas de alto nivel.
Para lograrlo, es necesario modificar varias facetas del sistema operativo, la organizacin del
cdigo de las propias aplicaciones, as como los lenguajes de programacin.
Es difcil dar una definicin exacta de un sistema multiprocesador, aunque podemos establecer
una clasificacin de los sistemas de procesadores en:
SISD o secuencia nica de instrucciones y datos (Single Instruction, Single Data): una sola
secuencia de instrucciones opera sobre una sola secuencia de datos (caso tpico de los
ordenadores personales).
SIMD o secuencia nica de instrucciones y mltiple de datos (Single Instruction, Multiple Data):
una sola secuencia de instrucciones opera, simultneamente, sobre mltiples secuencias de datos
(array processors).
MISD o mltiples secuencias de instrucciones y nica de datos (Multiple Instruction, Single Data):
mltiples secuencias de instrucciones operan, simultneamente, sobre una sola secuencia de
datos (sin implementaciones tiles actualmente).
El sistema en que la memoria est conectada a los nodos de proceso establece el primer nivel de
distincin entre diferentes sistemas multiprocesador:
Los sistemas de memoria multinivel (cach) son un esfuerzo para evitar el nmero de peticiones
realizadas por cada CPU al bus. Los caches son pequeas y rpidas (y por tanto caras) memorias,
que hacen de tampn (buffer) entre la CPU y la memoria externa, para mantener los datos y/o
instrucciones. Se basan en el principio de la "localidad", lo que significa que, dada la fundamental
naturaleza secuencial de los programas, los siguientes datos o instrucciones requeridas, estarn
localizadas inmediatamente a continuacin de las actuales.
Los datos contenidos en la memoria cach se organizan en bloques denominados lneas. Las lneas
son cargadas en el cach como copias exactas de los datos situados en la memoria externa. Para
referenciar a los datos de la memoria cach, se emplean marcas (tags) que identifican a cada lnea.
Las marcas o tags emplean una porcin de la direccin fsica de los datos, para compararla con la
direccin fsica solicitada por la CPU. Cuando existe una coincidencia exacta de la direccin y de
otros cualificadores (estado, privilegio, contexto, etc.), se dice que ha tenido lugar un acierto (hit)
de cach; en caso contrario, tiene lugar un fallo (miss) del cach, y en ese caso, los datos han de
ser recuperados desde la memoria.
El empleo de memoria cach se ha popularizado, como medida para acelerar el tiempo de acceso
a la memoria principal, incluso en los sistemas monoprocesador, evitando as, segn se
incrementa la velocidad de los propios procesadores, aumentar la velocidad de dicha memoria, y
por tanto encarecer el sistema.
La forma en que la memoria es actualizada por los caches locales puede tener un gran impacto en
las prestaciones de un sistema multiprocesador. Bsicamente hay dos mtodos:
1. Escritura continua (write-through). Requiere que todas las escrituras realizadas en el cach
actualicen asimismo los datos de la memoria principal. De esta forma, la memoria principal
siempre tiene la ltima copia de los datos, y por tanto no hay nunca ninguna incoherencia con el
cach. El inconveniente es que se producen frecuentes accesos a memoria, especialmente
superfluos cuando el software est modificando las mismas secciones de datos repetidamente
(por ejemplo ejecutando bucles).
a. Escritura radiada (write-broadcast), que requiere que la CPU que modifica los datos
compartidos actualice los otros caches, para lo cual escribe en el bus la direccin de los datos, y los
datos mismos, de modo que todos los dispositivos interesados (otras CPUs) los capturen. Esto
asegura que cada lnea de cach en el sistema es una copia exacta de las dems.
b. Escritura invalidada (write-invalidate), impide a una CPU modificar los datos compartidos en su
cach hasta que otros caches han invalidado sus copias. En cuanto otros caches invalidan sus
lneas, el cach modificado tiene la nica copia; de este modo, se garantiza que un slo cach
escribe una lnea compartida en un momento dado. Tiene la ventaja de conservar el ancho de
banda del bus ya que los datos modificados no tienen que ser enviados a otros caches.
Ambos sistemas requieren que los caches sean capaces de identificar peticiones en el bus que
afecten a sus datos, lo que se realiza con una tcnica conocida como "sondeo del bus" (bus
snooping). Cada cach compara las direcciones de las peticiones en el bus compartido con los
datos en su propio cache, usando las marcas (tags).
Este sistema requiere un acceso concurrente a las marcas (tags) del cach por parte del bus del
sistema y del bus del procesador. Sin dicho acceso concurrente, el procesador no podra acceder al
cach durante las operaciones de sondeo del bus (que tienen que tener prioridad de acceso a las
marcas, para poder mantener la coherencia del cach). El resultado son frecuentes atascos del
procesador y consecuentemente, bajo rendimiento.
A su vez, hay varios protocolos asociados con el sondeo del bus para el movimiento de los datos y
los mensajes entre los caches:
2. Intervencin directa de los datos (direct data intervention). Los datos son suministrados
directamente por la 2 CPU a la 1. Este mecanismo es aplicable fundamentalmente a los sistemas
con sistemas de cache de copia posterior (copy-back). Aunque pueden evitar muchos ciclos
comparados con la intervencin indirecta, la memoria principal permanece inconsistente con el
cach, y debe de ser actualizada cuando la lnea de cach es vaciada.
3. Reflexin a memoria (memory reflection) con intervencin directa. La memoria captura los
datos que han sido depositados en el bus, mientras son enviados a la CPU solicitante. Si la lnea de
cach no ha sido modificada antes de que tenga lugar la ltima transaccin de intervencin de
datos, no es necesario escribir a la memoria, con lo que se conserva el ancho de banda. Esta
actualizacin del cache solicitante y la memoria puede tener lugar en un mismo y nico ciclo de
reloj.
PRINCIPALES FABRICANTES Y SUS PROCESADORES
FABRICANTE
PROCESADOR
TENDENCIA
SUN
SPARC
RISC
SILICON GRAPHICS
MIPS
RISC
MOTOROLA
POWER
RISC
HEWLETT PACKARD
PA
RISC
DEC
ALPHA
RISC
INTEL
PENTIUM
CISC ~ RISC
Los procesadores RISC ofrecen peor soporte para los lenguajes de alto nivel o HLL (High Level
Language) que lo CISC. Esta creencia se argumenta en que un conjunto de instrucciones de "alto
nivel" (CISC) es mejor soporte para lenguajes de alto nivel. Sin embargo, la caracterstica
fundamental de los lenguajes de alto nivel, implica que el programador slo interacciona con el
ordenador a travs del propio lenguaje de alto nivel (programacin, depuracin, mensajes del
sistema, etc.), por lo que todos los problemas a "bajo nivel", deben de ser transparentes y
desconocidos para el. Por ello, son de nulas consecuencias para el programador y los lenguajes de
alto nivel, como se implementan las funciones, en funcin del tipo de CPU.
Es ms complicado escribir compiladores RISC que CISC. Dado que los procesadores CISC tienen un
mayor nmero de instrucciones y modos de direccionamiento, existen por tanto ms formas de
hacer la misma tarea, lo que puede confundir tanto al compilador como al que lo escribe. Por ello,
subjetivamente es posible escoger una forma de hacerlo poco adecuada, por el tipo de
instrucciones o por el tiempo de ejecucin que requieren. En cambio, en un procesador RISC, hay
menos opciones, por lo que el compilador es ms simple, aunque se genere, habitualmente, un
20-30% ms cdigo; a cambio, se consigue un incremento de la velocidad de hasta un 500%.
Resumiendo:
El tiempo de diseo de estos productos se reduce sensiblemente, lo que disminuye su coste final,
y por tanto, se incrementan sus expectativas, al poder llegar al mercado en un tiempo ms
adecuado, y con menos posibilidades de errores.
Adems, son globalmente ms eficaces, de menores dimensiones y ms bajo consumo, ofreciendo
siempre claras ventajas tcnicas frente a los ms avanzados CISC.
Esta claro que el futuro pertenece a los RISC y a los sistemas multiprocesador, a no ser que la fsica
y la electrnica logren superar las barreras tecnolgicas para incrementar muy por encima de las
cotas actuales, las velocidades y prestaciones de una nica CPU.
Tambin cabe esperar, y por que no, la pronta aparicin de otras tecnologas que compitan con
CISC y RISC.