Professional Documents
Culture Documents
Sistema Embebido
Un sistema embebido (anglicismo "embedded") o empotrado es un sistema de
computacin diseado
para
realizar
una
o
algunas
pocas
funciones
dedicadas frecuentemente en un sistema de computacin en tiempo real . Al contrario de
lo que ocurre con los ordenadores de propsito general (como por ejemplo
una computadora personal o PC) que estn diseados para cubrir un amplio rango de
necesidades, los sistemas embebidos se disean para cubrir necesidades especficas. En
un sistema embebido la mayora de los componentes se encuentran incluidos en la placa
base (la tarjeta de vdeo , audio, mdem , etc.).
Y tambin lo que es un microcontrolador:
Fabricantes de microcontroladores
INTEL 8048 8051 80C196 80386
MOTOROLA 6805 68HC11 68HC12
HITACHI HD64180
PHILIPS 8051 (si es el de Intel)
SGS-THOMSON ST62XX
NATIONAL Semiconductor COP400 COP800
ZILOG Z8 Z86XX
TEXAS INSTRUMENT TMS370
TOSHIBA 68HC11 (si, el de Motorola)
MICROCHIP serie PIC
ATMEL 8051 - AT91SAM - AVR - AVR32
La familia PIC se divide en cuatro gamas, gamas que podemos llamar mini, baja, media y
alta. Las principales diferencias entre estas gamas radica en el nmero de instrucciones y
su longitud, el nmero de puertos y funciones, lo cual se refleja en el encapsulado, la
complejidad interna y de programacin, y en el nmero de aplicaciones
Los modelos 12C5xx pertenecen a esta gama, siendo el tamao de las instrucciones de 12
bits; mientras que los 12C6xx son de la gama media y sus instrucciones tienen 14 bits. Los
modelos 12F6xx poseen memoria Flash para el programa y EEPROM para los datos.
Algunos modelos disponen de conversores Analgico/Digital de 8 bits incorporados.
La gama baja o bsica consiste en una serie de PIC de recursos limitados, pero con
una de la mejores relaciones coste/prestaciones de la familia. Sus versiones estn
encapsuladas con 18 y 28 patitas y pueden alimentarse a partir de una tensin de
2,5 V, lo que les hace ideales en las aplicaciones que funcionan con pilas teniendo
en cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz). Tienen un repertorio
de 33 instrucciones cuyo formato consta de 12 bits. Al igual que todos los
miembros de la familia PIC16/17, los componentes de la gama baja se caracterizan
por poseer los siguientes recursos: Sistema Power On Reset, Perro guardin
(Watchdog o WDT), Cdigo de proteccin, etc.
Microcontroladores de 8 bits
Disponen de:
Reset
Reloj
Procesador
Memoria ROM para el programa e interfaz de programacin
Memoria RAM para variables.
I/O Pins.
Adicionalmente pueden incluir:
Capacidad de debugging
Interrupciones
I/O analgica
Comunicacin serial y/o paralela
Interfaz con memoria
Familias Intel:
podemos mencionar como referencia histrica, a la familia MCS-48 compuesta
principalmente por el 8048AH.
Los microcontroladores de esta familia poseen una CPU de 8 bits, 27 lneas de Entrada /
Salida, un Temporizador / contador (Timer /Counter) programable. Dependiendo del
modelo
(8050, 8049,8048) poseen respectivamente 256, 128 o 64 bytes de RAM esttica. Existen
en versiones ROM, EPROM, Flash.
Alguno de los microcontroladores, no poseen memoria para almacenamiento de cdigo
ejecutable, entonces se reservan algunas lneas de Entrada / Salida para armar los tres
buses necesarios (direcciones, datos y control), de esta forma el programa puede ser
almacenado en cualquier memoria internas (ROM, EPROM, E2PROM, FLASH, NVRAM,
etc.) y accedido por estos buses.
Ms recientemente encontramos a la familia MCS-51, quizs la ms prolfica en su
momento, ya que un gran nmero de fabricantes de hardware y software implementaron
sistemas sobre la base de esta familia de microcontroladores y una gran cantidad de
herramientas de desarrollo como compiladores de lenguaje C, simuladores, emuladores
en tiempo real3 ICEs (In Circuit Emulators), etc. Debido a que este apunte est orientado
en particular al estudio de esta familia, no la trataremos en detalle por ahora, lo que
podemos agregar es que no existe compatibilidad con su antecesor (MCS-48) a nivel
software o hardware, si bien existe algunos programas (bastante primitivos, por cierto)
para convertir cdigo de MCS-48 a MCS-51.
Caractersticas
| Beneficios |
de entrada/salida paralelas de propsito general (P0, P1, P2 y P3) y una lgica de control
de interrupcin con cinco fuentes de interrupciones. Al lado de la RAM interna, el 8031
tiene varios Registros de Funciones especiales (SFR) (Special Function Registers) que son
para control y registros de datos. Los SFRs tambin incluyen el registro acumulador, el
registro B, y el registro de estado de programa (Program Status Word)(PSW), que
contienen los Flags del CPU.
Bloques separados de memoria de cdigo y de datos se denomina como la Arquitectura
Harvard. El 8051 tiene dos seales de lectura separadas, los pines RD(P3.7, pin 17) y
PSEN(pin 29).
El primero es activado cuando un byte va ser ledo desde memoria de datos externo; el
otro, cuando un byte va ser ledo desde memoria de programa externo. Ambas de estas
seales son seales activas en nivel bajo.
Familias Motorola:
Al igual que en el campo de los microprocesadores, existe una batalla comercial y un
mercado que se reparten fundamentalmente entre Intel y Motorola en lo que a
Microcontroladores se refiere. Motorola posee una familia de microcontroladores 6805
de bajo costo, muy popular y con el que tambin se han desarrollado infinidad de
aplicaciones y herramientas, quizs con ms variedad de integrantes en su familia que los
Intel. Esta familia cuenta con versiones ROM, EPROM, E2PROM y flash.
Una de las particularidades de esta familia es que sus integrantes son autocontenidos, es
decir que se debern utilizar exclusivamente los recursos internos ya que no disponen de
buses de expansin y por ende no pueden conectarse memorias ni de datos ni de
programa externas.
Otra familia importante y ms reciente es la de los Microcontroladores 68HC11,
razonablemente compatible con sus antecesores, incorporando a diferencia que sus
hermanos menores, conversores A/D multiplexados, versiones OTP (One Time
Programmable), mayor cantidad de memoria para programas y datos, circuito de
Watchdog4, ms cantidad de temporizadores y ms funcionales, etc.
La familia Motorola 68HC11 (abreviado HC11 o 6811) es una familia de
microcontroladores de Motorola, derivada del microprocesador Motorola 6800. Los
microcontroladores 68HC11 son ms potentes y costosos que los de la familia 68HC05 y se
utilizan en mltiples dispositivos empotrados. El ms ocupado de 32 bits es:
El Freescale ColdFire es un microprocesador de arquitectura de 68k fabricado para
desarrollo de sistemas integrados por Freescale (anteriormente el sector dedicado a
semiconductores de Motorola).
menudo poco silicio para implementarse, as que pueden ser observadas fcilmente en un
FPGA o en una forma multinucleo. La densidad del cdigo es similar al RISC; la densidad
creciente de la instruccin es compensada requiriendo ms de las instrucciones primitivas
de hacer una tarea.
Nmero de operandos
El conjunto de instrucciones puede ser clasificado por el nmero mximo de operandos
explcitamente especificados en las instrucciones. (en los ejemplos que siguen, a, b y c se
refieren a celdas de memoria, mientras que reg1 y sucesivos se refieren a los registros de
la mquina).
0-operando, tambin llamada mquina de pila: todas las operaciones aritmticas se
ejecutan en la parte superior de una o dos posiciones de la pila, push y pop son las
instrucciones utilizadas para acceder a la memoria: push a, push b, add, pop c.
1-operando (mquinas de una direccin), tambin llamadas mquinas de acumulador,
incluida en la mayora de las primeras computadoras y muchos microcontroladores
pequeos: la mayora de instrucciones especifican un operando explcito a la derecha (un
registro, una posicin de memoria, o una constante) y un operando a la izquierda: load a,
add b, store c.
2-operando la mayora de las mquinas CISC y RISC entran en esta categora: CISC load
a, reg1, add reg1, b; store reg1, c RISC - cargas que requieren la memoria explcita, las
instrucciones seran: load a,reg1; load b,reg2; add reg1,reg2; store reg2,c
3-operando, permite una mejor reutilizacin de los datos: CISC - bien una sola instruccin:
add a, b, c, o ms generalmente: move a,reg1; add reg1,b,c como la mayora de las
mquinas se limitan a dos operandos de memoria. RISC - Debido a la gran cantidad de bits
necesarios para codificar los tres registros, este esquema no suele estar disponible en los
procesadores RISC con pequeas instrucciones de 16 bits: load a,reg1; load b,reg2; add
reg1+reg2->reg3; store reg3,c;
ms operandos, algunas mquinas CISC permiten una variedad de modos de
direccionamiento que permiten ms de 3 operandos (registros o accesos a memoria),
como el VAX "POLY", instruccin de evaluacin de polinomi
Las caractersticas que se pretende que tenga un conjunto de instrucciones son cuatro,
principalmente:
Eficiente: Que permita alta velocidad de clculo sin exigir una elevada complejidad
en su UC y ALU y sin consumir excesivos recursos (memoria), es decir, debe
cumplir su tarea en un tiempo razonable minimizando el uso de los recursos.
Se puede comprobar que para que un conjunto de instrucciones sea completo solo se
necesitan cuatro instrucciones:
-> escritura
-> mover a la izquierda una posicin y leer
-> mover a la derecha una posicin y leer
-> parar
En esta idea se basan las arquitecturas RISC, no obstante, con este conjunto no se puede
conseguir la eficiencia del repertorio de instrucciones por lo que en la prctica el conjunto
suele ser ms amplio en aras de conseguir un mejor rendimiento, tanto en uso de recursos
como en consumo de tiempo.
Tipos de instrucciones y ejemplos
Instrucciones aritmticas: Son efectuadas por la ALU y suelen cambiar los flags o
indicadores de condicin.
Nemotcnicos ms frecuentes:
add: Suma.
subtract: Resta.
multiply: multiplica.
divide: divide.
-> Pueden tener instrucciones para tratar con nmeros en BCD e incluyen operaciones en
coma flotante, lo cual se identifica con una 'f' antes del nombre del nemotcnico como por
ejemplo:
fabsolute
Nemotcnicos ms frecuentes:
compare: Resta los dos operandos pero no almacena el resultado, solo modifica
los flags.
Nemotcnicos ms frecuentes:
Nemotcnicos ms frecuentes:
Nemotcnicos ms frecuentes:
halt: Detiene la ejecucin del programa hasta que una interrupcin arranca otro
programa.
test and set: Se utiliza para la implementacin de la exclusin mutua, esto es, que
un procesador no pueda acceder a un determinado recurso que est siendo usado
por otro procesador en ese mismo momento.
Se usan como semforos, esto es, se declara una variable entera que tendr el valor 0 si el
recurso esta libre y 1 si est siendo utilizado, de manera que si un procesador comprueba
y el semforo est en 1 tendr que esperar hasta que este cambie a 0. (1 = s.rojo y 0 =
s.verde).
El lenguaje ensamblador
En el lenguaje ensamblador el programador utiliza instrucciones simblicas en lugar de
instrucciones de mquina y nombres descriptivos para los elementos de datos y para las
localidades de memoria. Usted escribe un programa en ensamblador de acuerdo con un
conjunto estricto de reglas que despus utiliza el programa traductor de ensamblador
para convertir el programa ensamblador en cdigo mquina.
Existen 2 clases de lenguajes de programacin: de alto nivel y de bajo nivel. Los
programadores que escriben en un lenguaje de alto nivel (como C y Pascal), codifican
comandos poderosos, cada uno de los cuales puede generar muchas instrucciones en
lenguaje de mquina. Por otro lado, los programadores que escriben en un lenguaje
ensamblador de bajo nivel codifican instrucciones simblicas, cada una de las cuales
genera una instruccin en lenguaje mquina. A pesar del hecho de que codificar en un
lenguaje de alto nivel es ms productivo, algunas ventajas de codificar en lenguaje
ensamblador son:
LENGUAJE ENSAMBLADOR
1.- Instruccin, tal como MOV y ADD, que el ensamblador traduce a cdigo
objeto
2.- Directiva, que indican al ensamblador que realice una accin especfica,
como definir un elemento de dato.
CONJUNTO DE INSTRUCCIONES EN LENGUAJE ENSAMBLADOR
ACALL
Llamar Absoluto
AADIR
Aadir Acumulador
ADDC
AJMP
Salto Absoluto
ANL
ANL bits
CJNE
CLR A
Borrar Acumulador
Poco CLR
Claro bits
CPL A
Complementar Acumulador
Poco CPL
Poco Complemento
DA
Diciembre
Disminuye el Registro
DIV
DJNZ
INC
Incrementa el Registro
JB
JBC
JC
JMP @
JNB
JNC
JNZ
JZ
LCALL
Long Call
LJMP
Salto de longitud
MOV
Poco MOV
Poco Move
MOVC
MOVX
MUL
NOP
No Operacin
ORL
ORL bits
POP
Pop De Pila
PUSH
Empuje en la pila
RET
Regresa de la subrutina
RETI
Regreso de la interrupcin
RL
RLC
RR
RRC
SETB
Bit Set
SJMP
Corto Jump
SUBB
SWAP
XCH
Tipo Bytes
XCHD
Dgitos Tipo
XRL
OR exclusivo
??
Instruccin Indefinido
Eficiencia de tamao
Flexibilidad
Por otro lado, al ser un lenguaje ms primitivo, el Ensamblador tiene ciertas desventajas respecto
a los lenguajes de alto nivel:
Tiempo de programacin
Falta de portabilidad
Velocidad
El proceso de traduccin que realizan los intrpretes, implica un proceso de cmputo adicional al
que el programador quiere realizar. Por ello, nos encontraremos con que un intrprete es siempre
ms lento que realizar la misma accin en Lenguaje Ensamblador, simplemente porque tiene
el costoadicional de estar traduciendo el programa, cada vez que lo ejecutamos.
De ah nacieron los compiladores, que son mucho ms rpidos que los intrpretes, pues hacen la
traduccin una vez y dejan el cdigo objeto, que ya es Lenguaje de Mquina, y se puede ejecutar
muy rpidamente. Aunque el proceso de traduccin es ms complejo y costoso que el de
ensamblar un programa, normalmente podemos despreciarlo, contra las ventajas de codificar el
programa ms rpidamente.
Sin embargo, la mayor parte de las veces, el cdigo generado por un compilador es menos
eficiente que el cdigo equivalente que un programador escribira. La razn es que el compilador
no tiene tanta inteligencia, y requiere ser capaz de crear cdigo genrico, que sirva tanto para un
programa como para otro; en cambio, un programador humano puede aprovechar las
caractersticas especficas del problema, reduciendo la generalidad pero al mismo tiempo, no
desperdicia ninguna instruccin, no hace ningn proceso que no sea necesario.
Para darnos una idea, en una PC, y suponiendo que todos son buenos programadores, un
programa para ordenar una lista tardar cerca de 20 veces ms en Visual Basic (un intrprete), y 2
veces ms en C (un compilador), que el equivalente en Ensamblador.
Por ello, cuando es crtica la velocidad del programa, Ensamblador se vuelve un candidato lgico
como lenguaje.
Ahora bien, esto no es un absoluto; un programa bien hecho en C puede ser muchas veces ms
rpido que un programa mal hecho en Ensamblador; sigue siendo sumamente importante la
eleccin apropiada de algoritmos y estructuras de datos. Por ello, se recomienda buscar optimizar
primero estos aspectos, en el lenguaje que se desee, y solamente usar Ensamblador cuando se
requiere ms optimizacin y no se puede lograr por estos medios.
Tamao
Por las mismas razones que vimos en el aspecto de velocidad, los compiladores e intrpretes
generan ms cdigo mquina del necesario; por ello, el programa ejecutable crece. As, cuando es
importante reducir el tamao del ejecutable, mejorando el uso de la memoria y teniendo tambin
beneficios en velocidad, puede convenir usar el lenguaje Ensamblador. Entre los programas que es
crtico el uso mnimo de memoria, tenemos a los virus y manejadores de dispositivos (drivers).
Muchos de ellos, por supuesto, estn escritos en lenguaje Ensamblador.
Flexibilidad
Las razones anteriores son cuestin de grado: podemos hacer las cosas en otro lenguaje, pero
queremos hacerlas ms eficientemente. Pero todos los lenguajes de alto nivel tienen limitantes en
el control; al hacer abstracciones, limitan su propia capacidad. Es decir, existen tareas que la
mquina puede hacer, pero que un lenguaje de alto nivel no permite. Por ejemplo, en Visual Basic
no es posible cambiar la resolucin del monitor a medio programa; es una limitante, impuesta por
la abstraccin del GUI Windows. En cambio, en ensamblador es sumamente sencillo, pues
tenemos el acceso directo al hardware del monitor.
Tiempo de programacin
Al ser de bajo nivel, el Lenguaje Ensamblador requiere ms instrucciones para realizar el mismo
proceso, en comparacin con un lenguaje de alto nivel. Por otro lado, requiere de ms cuidado por
parte del programador, pues es propenso a que los errores de lgica se reflejen ms fuertemente
en la ejecucin.
Por todo esto, es ms lento el desarrollo de programas comparables en Lenguaje Ensamblador que
en un lenguaje de alto nivel, pues el programador goza de una menor abstraccin.
Programas fuente grandes
Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente,
requerimos ms instrucciones primitivas para describirprocesos equivalentes. Esto es una
desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce
la productividad de los programadores.
Peligro de afectar recursos inesperadamente
Tenemos la ventaja de que todo lo que se puede hacer en la mquina, se puede hacer con el
Lenguaje Ensamblador (flexibilidad). El problema es que todo error que podamos cometer, o
todo riesgo que podamos tener, podemos tenerlo tambin en este Lenguaje. Dicho de otra forma,
tener muchopoder es til pero tambin es peligroso.
En la vida prctica, afortunadamente no ocurre mucho; sin embargo, al programar en este
lenguaje vern que es mucho ms comn que la mquina se "cuelgue", "bloquee" o "se le vaya el
avin"; y que se reinicialize. Por qu?, porque con este lenguaje es perfectamente posible (y
sencillo) realizar secuencias de instrucciones invlidas, que normalmente no aparecen al usar un
lenguaje de alto nivel.
En ciertos casos extremos, puede llegarse a sobrescribir informacin del CMOS de la mquina (no
he visto efectos ms riesgosos); pero, si no la conservamos, esto puede causar que dejemos de
"ver" el disco duro, junto con toda su informacin.
Falta de portabilidad
Como ya se mencion, existe un lenguaje ensamblador para cada mquina; por ello,
evidentemente no es una seleccin apropiada de lenguaje cuando deseamos codificar en una
mquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras. Si
bien esto es un problema general a todos los lenguajes, es mucho ms notorio en ensamblador: yo
puedo reutilizar un 90% o ms del cdigo que desarrollo en "C", en una PC, al llevarlo a una
RS/6000 con UNIX, y lo mismo si despus lo llevo a una Macintosh, siempre y cuando est bien
hecho y siga los estndares de "C", y losprincipios de la programacin estructurada. En cambio, si
escribimos el programa en Ensamblador de la PC, por bien que lo desarrollemos y muchos
estndares que sigamos, tendremos prcticamente que reescribir el 100 % del cdigo al llevarlo a
UNIX, y otra vez lo mismo al llevarlo a Mac.
Descripcin
AF
AF
BC
BC
DE
DE
HL
HL
AF
A alternativo.
AF
F alternativo.
BC
B alternativo.
BC
C alternativo.
DE
D alternativo.
DE
E alternativo.
HL
H alternativo.
HL
L alternativo.
Xh
IX
Xl
IX
Yh
IY
Yl
IY
"IR"
Registro de interrupcin.
"IR"
Registro de refresco.
PC
SP
Contador de la pila.
A parte de esos, tiene otro dos que son bolanos (1 slo bit), llamados iff0 y iff1 (y al menos otro
registro interno de 8 bits para clculos internos suyos).
Los registros con un <> son alternativos. Digamos que estn en el banquillo esperando que salga
del juego su homlogo para entrar l. No se les puede acceder directamente (habra ms
jugadores de los reglamentarios), pero siempre se puede hacer el cambio (aqu son ilimitados).
Siempre que se produce uno de stos cambios, se intercambia un registro de 16 bits enterito. No
vale cambiar slo uno de 8.
Xh, Yh, Xl, Yl son los registros de 8 bits que conforman IX e IY. Oficialmente, las instrucciones que
operan sobre ellos estn indocumentadas, pero me parece una tontera el no hablar de ellos
desde el principio.
PC contiene el "contador del programa", es decir, la direccin de memoria en la cual
el procesador leer su prxima instruccin
Modos de direccionamiento
Se les llama modos de direccionamiento a las distintas formas de combinar los operadores segn
el acceso que se hace a memoria.
Dicho de otra manera, un modo de direccionamiento ser una forma de parmetro para las
instrucciones. Una instruccin que lleve un parmetro, por lo tanto, usar un modo de
direccionamiento, que depender de cmo direccionar (accesar) al parmetro; una instruccin
de dos parmetros, combinar dos modos de direccionamiento.
Modo registro
Modo inmediato
Tiene dos operandos: un registro y una constante que se usa por su valor.
El valor constante no se tiene que buscar en memoria, pues ya se obtuvo al hacer el "fetch" de la
instruccin.
Por tanto, es rpido aunque no tanto como el modo registro; requiere ir al BIU por el dato.
Modo directo
Modo indirecto
Formato:
[
BX o BP
+ SI o DI (opcionales)
+ constante (opcional)
]
BX o BP indica una localidad base de la memoria
A partir de BX o BP, se puede tener un desplazamiento variable y uno constante
La diferencia es el segmento sobre el que trabajan por defecto:
BX por defecto en el segmento de datos
BP por defecto en el segmento de pila.
Puertos de comunicacin.
Puerto serie
Este perifrico est presente en casi cualquier microcontrolador, normalmente en forma
de UART (Universal Asynchronous Receiver Transmitter) o USART (Universal Synchronous
Asynchronous Receiver Transmitter) dependiendo de si permiten o no el modo sincrnico
de comunicacin.
USB
Los microcontroladores son los que han permitido la existencia de este sistema de
comunicacin. Es un sistema que trabaja por polling (monitorizacin) de un conjunto de
perifricos inteligentes por parte de un amo, que es normalmente un computador
personal. Cada modo inteligente est gobernado inevitablemente por un
microcontrolador.
Temporizadores y contadores
Son circuitos sincrnicos para el conteo de los pulsos que llegan a su poder para conseguir
la entrada de reloj. Si la fuente de un gran conteo es el oscilador interno del
microcontrolador es comn que no tengan un pin asociado, y en este caso trabajan como
temporizadores. Por otra parte, cuando la fuente de conteo es externa, entonces tienen
asociado un pin configurado como entrada, este es el modo contador.
Los temporizadores son uno de los perifricos ms habituales en los microcontroladores y
se utilizan para muchas tareas, como por ejemplo, la medicin de frecuencia,
implementacin de relojes, para el trabajo de conjunto con otros perifricos que
requieren una base estable de tiempo entre otras funcionalidades. Es frecuente que un
microcontrolador tpico incorpore ms de un temporizador/contador e incluso algunos
tienen arreglos de contadores. Como veremos ms adelante este perifrico es un
elemento casi imprescindible y es habitual que tengan asociada alguna interrupcin. Los
tamaos tpicos de los registros de conteo son 8 y 16 bits, pudiendo encontrar dispositivos
que solo tienen temporizadores de un tamao o con ms frecuencia con ambos tipos de
registro de conteo.
Conversor analgico/digital
Como es muy frecuente el trabajo con seales analgicas, stas deben ser convertidas a
digital y por ello muchos microcontroladores incorporan un conversor analgico-digital, el
cual se utiliza para tomar datos de varias entradas diferentes que se seleccionan mediante
un multiplexor.
Las resoluciones ms frecuentes son 8 y 10 bits, que son suficientes para aplicaciones
sencillas. Para aplicaciones en control e instrumentacin estn disponibles resoluciones de
12bit, 16bit y 24bit.Tambin es posible conectar un convertidor externo, en caso de
necesidad.
5.4 APLICACIONES DE LOS MICROCONTROLADORES
Cada vez existen ms productos que incorporan un microcontrolador con el fin de aumentar sustancialmente
sus prestaciones, reducir su tamao y coste, mejorar su fiabilidad y disminuir el consumo. Algunos fabricantes
de microcontroladores superan el milln de unidades de un modelo determinado producidas en una semana.
Este dato puede dar una idea de la masiva utilizacin de estos componentes. Los microcontroladores estn
siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno
microondas, frigorficos, televisores, computadoras, impresoras, mdems, el sistema de arranque de nuestro
automovil,
etc.
Y
otras
aplicaciones
con
las
que
seguramente
no
estaremos
tan
familiarizados
como instrumentacin electrnica, control de sistemas en una nave espacial, etc. Una aplicacin tpica podra
emplear varios microcontroladores para controlar pequeas partes del sistema. Estos pequeos controladores
podran comunicarse entre ellos y con un procesador central, probablemente ms potente,
para compartir la informacin y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier
PC