Sei sulla pagina 1di 69

MICROCONTROLADORES

SEMINARIO
DISEÑO DE SISTEMAS CON
MICROPROCESADOR
– 1 MICROCONTROLADORES
» 1.1 ¿Qué es un microcontrolador?
» 1.2 Las aplicaciones
» 1.3 Tipos de microcontroladores
– 2 El mercado de los microcontroladores
» 2.1 Mercado
» 2.2 Aplicaciones Industriales
» 2.3 ¿Qué microcontrolador usar?
» 2.4 Los fabricantes de uP y uC.
– 3 Características de los microcontroladores
» 3.1 Técnicas de fabricación
» 3.2 Tipo de arquitectura
» 3.3 Opciones avanzadas de memoria
» 3.4 Alimentación y bajo voltaje
» 3.5 Entradas y Salidas
» 3.6 Interrupciones
» 3.7 Seminario
Características especiales de los uC.
sobre Microcontroladores 2
– 4. Los microcontroladores más conocidos

– 5. Lenguajes de programación para


microcontroladores
» 5.1 Lenguaje ensamblador
» 5.2 Interpretes
» 5.3 Compiladores
» 5.4 Lógica multivaluada y Redes
Neuronales

– 6. Herramientas de desarrollo.
» 6.1 Simuladores.
» 6.2 Debuggers Residentes.
» 6.3 Emuladores.

Seminario sobre Microcontroladores 3


– 1.1 ¿Qué es un microcontrolador?
– Hubo un tiempo en que los sistemas de control se hacían
exclusivamente con componentes discretos lógicos, eran
cajas grandes, pesadas (antes incluso eran diseños
analógicos más grandes aún y más complejos).
– Después se utilizaron microprocesadores y el sistema de
control entero podía encajar dentro de una tarjeta de
circuito impreso. Esto es común todavía, Vd. puede
encontrar muchos sistemas impulsados por uno de los
muchos microprocesadores comúnes (incluso Zilog Z80,
Intel 8088, Motorola 6809, y otros).
– Como el proceso de miniaturización siguió continuando,
todos los componentes que se requieren para un sistema de
control se construyó dentro de un chip, nació el
microcontrolador.
– Un microcontrolador es un circuito integrado que
incluye todos (o casi) los componentes necesarios para
tener un sistema de control completo.
Seminario sobre Microcontroladores 4
• Los microcontroladores son "la solución en
un chip", incluyen típicamente:

 CPU
 RAM
 EPROM/PROM/ROM
 I/O (input/output) - serie y paralelo
 Temporizadores/Contadores
 Sistema de interrupciones.
• Los modelos más potentes incluyen además :
» Sistemas auxiliares (A/D, D/A, dsp ..)

Seminario sobre Microcontroladores 5


– 1.2 Las aplicaciones
• Los microcontroladores frecuentemente se
encuentran en:
– Aparatos electrodomésticos:
» Microondas, Hornos, Frigoríficos
» Televisión ,Vídeos, Equipos sonido
– Equipos informáticos
» Impresoras, Copiadoras láser, Módems, Unidades de
disco..
– Automóviles
» Mando de sistemas del automóvil
(ABS,Inyeccion,Encendido..),
Diagnósticos,Climatizador
– Mando medioambiental
» Invernadero, Fábrica, Casa
– Instrumentación, Sistemas aerospaciales ..
Seminario sobre Microcontroladores 6
– Los microcontroladores se usan típicamente donde la
potencia de procesamiento no es importante, aunque
alguien podría encontrar atractiva la idea de controlar un
horno microonda con un sistema Unix..
– Los sistemas basados en microprocesador y los
microcontroladores se usan extensivamente en robótica.
En esta aplicación, muchas tareas específicas podrían estar
distribuidas entre un gran número de controladores dentro
de un sistema. Estos pequeños controladores pueden estar
comunicados con un procesador central (o micro / mini /
mainframe), este habilitaría la información para ser
procesado por la computadora central, o para ser pasado a
otros controladores en el sistema.
– Una aplicación especial de los microcontroladores es la
captura de datos: Temperatura, humedad, lluvia, etc.
– El tamaño de los microcontroladores es pequeño y
consumen muy poco, esto los hace ideales para sistemas
portátiles y autónomos.
Seminario sobre Microcontroladores 7
– 1.3 Tipos de microcontroladores
• Los hay de 4, 8, 16, y 32 bits de ancho de palabra.

 Existen Microcontroladores/Procesadores
especializados para:

 Comunicaciones
 Manejo del teclado
 Procesamiento de la señal
 Proceso vídeo
 Otras tareas.

Seminario sobre Microcontroladores 8


– 2.1 Mercado
– Venta mundial de microcontroladores (en
kmillones de dólares)
» '93 '94 '95 '96 '97 '98 '99 '00
– 4bits 1,6 1,7 1,8 1,8 1,8 1,8 1,8 1,7
– 8-bit 3,7 4,6 5,6 6,5 7,5 8,4 9,2 9,7
– 16-bit 0,4 0,8 1,1 1,6 2,1 2,9 3,6 4,4
– A la vista de estas cifras podemos observar que
los microcontroladores son un gran negocio,
estamos hablando de billones!!.
– Esta es la razón de que los fabricantes de
circuitos integrados estén potenciando los
microcontroladores de 8 bits.
Seminario sobre Microcontroladores 9
– 2.2 Aplicaciones Industriales
– El mercado de automóvil es sector que más
microcontroladores compra.
– Varias familias de microcontroladores se desarrollaron
específicamente para aplicaciones del automóvil,
posteriormente se modificaron para otras aplicaciones.
– El sector del automóvil es exigente. Los circuitos
electrónicos deben operar bajo temperaturas extremas y
deben resistir las vibraciones, interferencias y ruidos
eléctricos (EMI).
– La electrónica empleada debe ser fiable, pues un fallo
puede provocar un accidente, pero debido a la
competencia, el precio de estos circuitos es bajo.
– El automóvil no es el único mercado que está creciendo.
DataQuest dice que en cada casa de los países
desarrollados hay 35 microcontroladores. Para el año
2000, ese número crecerá a 240.
Seminario sobre Microcontroladores 10
– 2.3 ¿Qué microcontrolador usar?
• Para decidir el tipo de dispositivo a utilizar para
llevar a cabo un proyecto, hemos de considerar lo
siguiente:
– ¿Puedo obtener ayuda cuando tenga problemas?
– ¿Qué herramientas de desarrollo están disponibles y
cuanto cuestan?.
– ¿Que clase de documentación tengo disponible (manuales
de referencia, notas de aplicación, libros)
– ¿Tiene el fabricante disponibles para ese microcontrolador
dispositivos periféricos (conversores A/D, memoria,
reguladores de tensión)?
– ¿Disponen de microcontroladores OTM, grabables por
máscara, EPROM, de esa misma familia?

Seminario sobre Microcontroladores 11


- 2.4 Los Fabricantes de uP y uC
• MICROPROCESADORES M$ • MICROCONTROLADORES

• Posición 1995 1994 • Posición 1995 1994


• 1 1 Intel $10,800  1 1 Motorola $1,781
• 2 3 AMD 881 992 $1,511
• 3 2 Motorola 781 827  2 2 NEC 1,421 1,208
• 4 11 IBM 468 297  3 4 Mitsibishi 945 708
• 5 6 TI 219 202  4 3 Hitachi 899 782
• 6 4 Cyrix 210 240  5 5 Intel 835 605
• 7 5 Hitachi 188 66  6 6 TI 807 534
• 8 7 NEC 100 82  7 8 Philips 524 345
• 9 8 LSI Lógica 58 51  8 7 Matsushita 500 413
• 10 10 IDT 45 25  9 10 AT&T 492 275
 10 9 Toshiba 400 328

Seminario sobre Microcontroladores 12


• 3 CARACTERISTICAS DE LOS
MICROCONTROLADORES
– 3.1 Técnicas de fabricación
• CMOS - Semiconductor de Oxido de Metal
Complementario
» Este es el nombre de la técnica con que se fabrican la
mayoría (sino todos) los microcontroladores.
– Los dispositivos CMOS tienen las siguientes
características:
» Consumen muy poca corriente y pueden ser
alimentados por baterías durante mucho tiempo.
» El reloj del sistema puede detenerse y ponerse el
dispositivo "en modo sueño" para bajar más aún su
consumo.
» CMOS tiene una alta inmunidad al ruido eléctrico
Seminario sobre Microcontroladores 13
– 3.1 Técnicas de fabricación (continúa)
• PMP - (National Semiconductor)
– PMP es un proceso de implantación de alta-energía que
permite que el microcontrolador ROM pueda ser
programado después de la metalización final.
– Normalmente la programación de dispositivos ROM se
lleva a cabo en el segunda metalización con otras nueve o
diez capas encima. Esto significa que el modelo de ROM
debe especificarse pronto en el proceso de la producción, y
los dispositivos para pruebas no estarán disponibles hasta
seis a ocho semanas.
– Sin embargo, con PMP, los troqueles pueden fabricarse
totalmente a través de metalizacion (sólo las capas del
pasivación necesita ser agregada). Esto significa que el
microcontrolador ROM pueda estar programado en
sólo dos semanas.

Seminario sobre Microcontroladores 14


– 3.2 Tipos de arquitectura
• Arquitectura Von-Neuman
– Los uC. Von-Neuman tienen un solo bus de datos por el
cual circulan instrucciones y datos.
– Las instrucciones del programa y los datos se guardan
conjuntamente en una memoria común.
– Cuando la CPU se dirige a la memoria principal, primero
saca la instrucción y después saca los datos necesarios
para ejecutarla, esto retarda el funcionamiento de la CPU.
• Arquitectura Harvard
– Los uC. Harvard tienen separados el bus de datos y el bus
de instrucción. Esto permite el proceso paralelo:
» Cuando una instrucción esta siendo "captada", la
instrucción actual está utilizando el bus de datos.
» Una vez que la instrucción actual está finalizada, la
siguiente instrucción está disponible dentro de la
CPU. Este procedimiento de trabajo permite una
Seminario
ejecución mássobrerápida.
Microcontroladores 15
– CISC
– Casi todos los microcontroladores actuales, tienen en un
juego de instrucciones complejo y amplio (CISC:
Complex Instruction Set Computer).
– El conjunto de instrucciones típico de un microcontrolador
es de más de 80, algunas de estas instrucciones son muy
potentes y otras son especializadas para una tarea
concreta.
– Unas instrucciones acceden a ciertos espacios de dirección
o registros, otras no, otras instrucciones tienen modos de
direccionamiento único y específico, es decir, el conjunto
de instrucciones es bastante heterogéneo.
» La ventaja de la arquitectura CISC es que algunas
instrucciones son "cuasi- macros" ya que son tan
potentes que equivalen a muchas instrucciones
simples

Seminario sobre Microcontroladores 16


– RISC
– La tendencia actual en la industria de los
microcontroladores es la de tener un juego de
instrucciones reducido (RISC: Reduced Instruction Set
Computers).
– Al tener menos instrucciones, el chip es más pequeño, más
sencillo, más rápido (al ser más simples las conexiones
internas dentro del circuito, existen menos inductancias y
capacitancias parásitas con lo que se puede aumentar la
frecuencia de reloj) además tiene un consumo menor.
– Entre algunos de los rasgos típicos de un procesador de
RISC están:
» El juego de instrucciones es ortogonal (simetricas),
esto simplifica el proceso de programación, pues cada
instrucción puede operar con cualquier registro y usar
cualquier modo de direccionamiento, las instrucciones
no tienen combinaciones especiales, excepciones ni
restricciones.
Seminario sobre Microcontroladores 17
– SISC
– Realmente, un microcontrolador podría llamarse
ordenador con juego de instrucciones específicas (SISC:
Specific Instruction Set Computer ).
– En la realidad la idea original que hay detrás de un
microcontrolador es superar las limitaciones de la CPU ,
permitiendo tener un ordenador completo, con memoria,
entrada/salida, interrupciones etc.
– Al contrario del juego de instrucciones de propósito
general que tienen los microprocesadores (8085, 8088.
68000, 32032), el juego de instrucciones de los
microcontroladores se diseñó para el propósito específico
de control:
» Las instrucciones de entrada/salida son eficaces y
sencillas
» Instrucciones específicas de operación con bit
» Instrucciones adecuadas para operaciones con tablas
de datos
Seminario sobre Microcontroladores 18
– Los microcontroladores vienen ahora con una
series de características que son de una gran
ayuda al ingeniero de control:

 Temporizadores.
 Cronómetros "perro guardián".
 Circuitos para "dormir/despertar" al microcontrolador.
 Modos potentes de direccionamiento de entrada/salida.
 Circuitos conversores analógico/digital etc.

• Estas nuevas características específicas para control


son cada vez más numerosas y vienen incorporadas
sin aumento de precio en los nuevos dispositivos.

Seminario sobre Microcontroladores 19


– 3.3 Opciones avanzadas de Memoria
• EEPROM - Memoria (solo de lectura) Programable
y Borrable Eléctricamente.
– Muchos microcontroladores tienen incorporada una
cantidad limitada de memoria EEPROM dentro del chip,
el objetivo es tener una pequeña cantidad de memoria
donde poner una serie de parámetros que puedan ser
cambiados si la aplicación lo necesita.
– Este tipo de memoria es relativamente lenta, y el número
de veces que se puede borrar/grabar está limitado.
• FLASH (EPROM)
– Las memorias FLASH son mejores que las EEPROM
cuando tenemos que almacenar el programa de control en
una memoria no volátil.
– Estas memorias son más rápidas que las memoria
EEPROM y permiten más ciclos de borrado/grabación.
Seminario sobre Microcontroladores 20
• Memoria RAM con pila
– Son útiles cuando tenemos un programa de gran tamaño,
es mucho más rápida que la memoria no volátil, no hay
límite en el número de veces que puede ser grabada, así, es
perfecta en aplicaciones donde se cambien cantidades
grandes de datos frecuentemente.
• Memoria "Field programming/reprogramming"
– Este tipo de memoria no volátil permite ser reprogramada
en el sitio sin quitar el microcontrolador del sistema que
controla.
– Una aplicación típica de esta memoria es el sector del
automóvil, pues podemos reprogramar el microcontrolador
"in situ". Por ejemplo cambiando los parámetros de la
inyección electrónica para adaptar el motor a normas de
emisión de humos, o ponerlo a punto después de un
periodo de desgaste.
– Se podría remotamente actualizar su módem de Vfast a
V.34.
Seminario sobre Microcontroladores 21
• Memoria OTP - One Time Programmable
– Un OTP es una memoria PROM (memoria programable
de solo lectura). Una vez la grabamos con un grabador de
EPROM normal, esta no puede modificarse ni borrarse.
– Este tipo de memorias se utiliza para hacer series
pequeñas de producción (para probar el código de
programa) antes de fabricar grandes tiradas de
microcontroladores con memorias ROM de máscara.
– Como los ciclos de desarrollo de productos son cada vez
más cortos, es interesante para los fabricantes de
microcontroladores ofrecer OTPs como una opción.
– Las memorias de ROM de máscara son interesantes
cuando se necesitan un gran número de unidades y
estemos seguros de que el programa va a ser el definitivo,
pero el tiempo de entrega es de 8 a 44 semanas (una
eternidad en algunos sectores).

Seminario sobre Microcontroladores 22


• Protección del software
– O por encriptacion o protección del fusible, el software
programado es protegido contra personal desautorizado
(ingeniería inversa, modificaciones, piratería, etc.).
– Ésta es sólo una opción en OTPs y dispositivos de ventana
(EPROM).
– En Dispositivos ROM de máscara, la seguridad no se
necesita - la única manera de leer su código sería rasgar el
microcontrolador, y examinar con un microscopio
electrónico.
– Cuando le encargamos a un fabricante de
microcontroladores nuestro microcontrolador de ROM de
máscara ellos tienen que probarlo para asegurarse que se
programa correctamente.
– Para ello deben poder leer desde fuera de la ROM y
compararlo al código que Vd. les envió. Este modo de
funcionamiento es conocido como modo de prueba.
– En modo de prueba se puede leer cualquier dispositivo.
Seminario sobre Microcontroladores 23
– 3.4 Funcionamiento de la alimentación y
bajo voltaje
• ¿Ahora, por qué están bajando los voltajes
REALMENTE en circuitos integrados CCI? Paul K.
Johnson (de Hewlett-Packard) explica:
– Hay unas reglas interesantes de dedo pulgar con respecto a
los transistores:
» La cantidad de potencia que disipan es proporcional a
su tamaño.
» Su retraso de propagación es proporcional a su
tamaño.
» Su costo es proporcional al cuadrado de su tamaño.
– Si se hace un transistor más pequeño, usted mejora el
consumo, velocidad, y el costo. El único inconveniente es
que son más complicados y difíciles de fabricar.
– Menos calor por transistor implica menos tensión (3,3 v)
Seminario sobre Microcontroladores 24
• Protección de Brownout
– Protección de Brownout normalmente es un circuito que
protege contra sobretensiones de alimentación.
• Idle/Halt /Wakeup
– El dispositivo puede ponerse en el modo de Ocioso/Parada
(IDLE /HALT) por medio del software.
– En estos modos de funcionamiento, en la memoria RAM
no se pierde ni ningún otro dato.
– En modo Idle (ocioso), todas las actividades se detienen
excepto:
» La circuitería de oscilador de asociada
» La lógica del perro guardián
» El amonestador del reloj
» El cronómetro ocioso (un cronómetro corriente libre)

Seminario sobre Microcontroladores 25


• Idle/Halt /Wakeup (continuación I)
– Los requisitos de consumo en este modo son típicamente
alrededor del 30% de potencia en funcionamiento normal,
de este modo de funcionamiento se sale por un estímulo:
» Interrupción desde un temporizador
» Puerto serie
» Un contador/temporizador "ocioso", puede despertar
periódicamente al microcontrolador para verificar si
todo funciona correctamente, después el chip vuelve a
dormirse.
» El modo Idle (ocioso) es sumamente útil para captura
de datos en un sitio remoto, el microprocesador se
despierta a intervalos regulares, toma sus medidas,
almacena o envía sus datos y vuelve a dormirse.
» En modo de Parada (Halt), todas las actividades se
detienen (incluso los cronómetros y contadores). La
única manera de despertarse es por una interrupción
(como un puerto de I/O) (Teclados portátiles).
Seminario sobre Microcontroladores 26
– 3.5 ENTRADAS y SALIDAS
• UART
– Un UART (Unidad Universal de Transmisión Recepción
Asíncrona) es un dispositivo adaptador del puerto serie
para comunicaciones asíncronas.
• USART
– Un USART (Unidad Universal de Transmisión Recepción
Síncrona y Asíncrona) es un adaptador del puerto de serie
para comunicaciones asíncronas o síncronas.Los
dispositivos que usan un USART son típicamente más
rápidos (tanto como 16 veces) que con un UART.
• SPI (Motorola)
– Un SPI (interface periférica de serie) es un puerto de serie
síncrono.
• SCI (serial communications interface)
– Un SCI es un UART reforzado (puerto de serie asíncrono).
Seminario sobre Microcontroladores 27
• I2C bus - Inter-Integrated Circuit bus (Philips)
– El I2C bus es un bus de 2 hilos de interface serie
desarrollado por PHILIPS. Se desarrolló para unir
aplicaciones de 8 bits y es muy usado en electrónica de
consumo, automóvil e industrial. Este bus puede
comunicar además distintos periféricos.
– El I2C bus es una interface de red de dos hilos, multi-
maestro, multi-esclavo con detección de colisión. Pueden
existir hasta 128 dispositivos en la red y pueden estar a
una distancia de hasta 10 metros.
– Cada nodo (microcontrolador o periférico) puede iniciar
un mensaje, y transmitir o recibir datos.
– Las dos líneas de la red consiste en una línea de datos serie
y una línea de reloj.
– Cada nodo de la red tiene una única dirección que
acompaña cualquier mensaje pasado entre nodos, como
solo se necesitan dos cables es facil interconectar los
distintos dispositivos.
Seminario sobre Microcontroladores 28
• MICROWIRE/PLUS (National Semiconductor)
– MICROWIRE/PLUS es una interface de comunicaciones
serie síncrona bi-direccional. La usan los dispositivos
fabricados por la compañía National Semiconductor
(microcontroladores, conversores A/D, drivers de displays,
EEPROMS, etc.).

• CAN & J1850


– CAN (Controller Area Network) es un sistema de
cableado que fue desarrollado conjuntamente entre BOSH
e INTEL para el cableado de automóviles, es el sistema de
cableado estándar multiplexado que se usa en la actualidad
en la industria del automóvil.

Seminario sobre Microcontroladores 29


– Conversión Analógica Digital (A/D)
– Ha sido un componente típicamente externo, convierten
tensión analógica a su valor digital, se utiliza para
adquisición de datos del mundo analógico, (temperatura,
humedad, etc.) dependiendo del tipo de sensor conectado.
• Existen varios tipos de conversores A/D:
– Conversores A/D de aproximaciones sucesivas, es el
más común y se usa en la mayoría de los
microcontroladores. En esta técnica, el conversor obtiene
un bit en cada comparación (comenzando por el bit más
significativo) y mira en la siguiente comparación si es
mayor o menor.:
» Toma siempre la misma cantidad de tiempo para cada
muestra
» Es muy común
» Es un sistema barato. Si embargo es lento, para cada
bit se necesita al menos un ciclo de reloj
Seminario sobre Microcontroladores 30
– Conversores A/D Delta -Sigma- Este tipo de conversor
A/D se encuentra dentro de la gama alta de los DSP
(procesadores digitales de la señal).
» Este conversor tiene unas excelentes prestaciones a
un precio relativamente barato.
– Conversores A/D FLASH Esta es la arquitectura básica
de los conversores A/D más rápidos, la ventaja de estos
conversores es que la conversión la realizan en un ciclo de
reloj, pero tienen una serie de desventajas:
» Para tener un conversor A/D con una resolución de 8
bits, se necesitan 256 comparadores!!
» Para tener un conversor A/D con una resolución de 10
bits, se necesitan 1024 comparadores!!
» Para hacer funcionar todos estos circuitos, se necesita
mucha corriente eléctrica, y por encima de 10 bits, el
nº de comparadores que salen no son manejables.

Seminario sobre Microcontroladores 31


– Conversores D/A (Digitales/Analógicos)
– Sirven para sacar una tensión analógica a partir de un
valor digital, un ejemplo
» En un sistema de 8 bits alimentado con una tensión
de 5 voltios, el número 50 sería convertido a una
tensión analógica de 0.9765 voltios
» (50/256 * 5 voltios)= 0.9765 voltios
– Conversor D/A con Modulador de anchura de Pulso.
Esta técnica es usada frecuentemente en este tipo de
conversores. Un tren de pulsos se genera regularmente
hacia un filtro paso bajo para generar una tensión
proporcional al "duty cicle" (ancho del pulso o tiempo que
está a nivel alto la señal durante cada ciclo de pulso).
– Contador de pulsos.
– Un contador de pulsos es un contador de eventos. Cada
pulso incrementa el registro contador, almacenando el
número de veces que ha ocurrido un evento.
Seminario sobre Microcontroladores 32
– Entrada de Captura
– Sirve para medir intervalos de tiempo (o frecuencias) entre
eventos, copiando el valor de un temporizador de
funcionamiento libre en un registro específico cuando
ocurre el evento.

– Comparador.
– A veces se colocan uno o más comparadores estándar
dentro del microcontrolador. Estos comparadores
funcionan como comparadores normales con la
característica principal de que los valores de entrada y de
salida están disponibles en el bus de datos.

Seminario sobre Microcontroladores 33


– Microcontroladores con circuitos analógicos
incorporados
– Vivimos en un mundo analógico donde la información que
vemos, oímos, procesamos, intercambiamos unos con
otros y trabajan los sistemas mecánicos y electrónicos es
siempre analógica (presión, temperatura, corriente, flujos
de aire y de líquidos son magnitudes analógicas).
– Estas señales pueden ser digitalizadas, almacenadas y
transmitidas, pero la interface de entrada y de salida es
siempre analógica.
– Los microcontroladores con electrónica analógica
incorporada se están demandando más cada día en
aplicaciones como:
» Telecomunicaciones de alta velocidad
» Procesamiento de señal en tiempo real
» Sistemas de control Industrial
» Sistemas para automóviles
Seminario sobre Microcontroladores 34
– 3.6 Las interrupciones
• Transferencia de E/S por Consulta de estado
(Polling)
– La consulta de estado no es una característica de los
microcontroladores, es lo que uno tiene que hacer si el
microcontrolador elegido no tiene interrupciones.
– La consulta de estado es una técnica software en la que el
microcontrolador pregunta constantemente al periférico si
necesita ser atendido. El periférico pone un flag a 1
cuando tiene un dato preparado para transferir al
microcontrolador, este flag es leído por el
microcontrolador en la siguiente consulta de estado.
Podemos controlar varios periféricos usando esta técnica,
hemos de consultar dichos periféricos secuencialmente y
el microcontrolador saltará a diferentes rutinas de entrada
salida dependiendo de qué flag se ha puesto a uno.

Seminario sobre Microcontroladores 35


– Interrupciones.
– Al contrario de la técnica anterior (Polling) en la que el
procesador está continuamente preguntando a los
periféricos (temporizadores /UARTS / Conversores A/D /
Componentes externos) cuando tienen un dato disponible
para hacer la transferencia de entrada salida (y perdiendo
la mayoría del tiempo en preguntar), una técnica más
eficiente es dejar a los periféricos comunicar cuando
deben ser atendidos:
– El procesador puede estar ejecutando su programa
principal, y solo responderá a los periféricos cuando ellos
lo necesiten. Cuando el procesador recibe una
interrupción, abandona el programa principal, identifica al
periférico que ha producido la interrupción y ejecuta la
subrutina de atención a la interrupción adecuada, para
después volver al programa principal.

Seminario sobre Microcontroladores 36


– La ventaja de las interrupciones, comparadas con la
consulta de estado, es la velocidad de respuesta a un
evento externo, además se reduce la cantidad de software
(y tiempo de proceso) añadido al programa principal para
preguntar constantemente a los periféricos si necesitan
atención.
– La mayoría de los microcontroladores tienen al menos una
interrupción externa, esta puede ser seleccionable entre
flanco de subida, de bajada o nivel.
– Disparo de Interrupciones por Flanco: No depende del
tiempo que está activada la señal de interrupción, pero es
susceptible a los "glitches" (picos de interferencias).
– Disparo de Interrupciones por Nivel: Tienen que estar a
nivel alto (o bajo) durante un tiempo determinado, pero no
es susceptible a los "glitches".
– Los microcontroladores de 4 bits tienen al menos un
sistema de interrupciones no vectorizado.
– Los microcontroladores de 8, 16 y 32 bits tienen un
sistema de interrupciones
Seminario vectorizadas con una jerarquía 37
sobre Microcontroladores
de prioridad.
– Interrupciones Enmascarables:
• Una interrupción enmascarable es aquella que se
puede habilitar o inhibir, sin embargo las
interrupciones no enmascarables no se pueden
inhibir y siempre hay que atenderlas.
• La ventaja de las interrupciones enmascarables es
que vd. puede desactivar una interrupción en
particular (por ejemplo la UART) durante un
instante crítico. Entonces las interrupciones
enmascaradas serán ignoradas. Muchos
microcontroladores (y microprocesadores) tienen
algún tipo de Habilitador Global de Interrupciones
(GIE= Global Interrupt Enable) que permite inhibir
todas las interrupciones enmascarables de una vez.

Seminario sobre Microcontroladores 38


– Interrupciones Vectorizadas
– Cuando se recibe una interrupción hemos de localizar al
periférico que demanda atención, esto lo podemos hacer al
comienzo de la subrutina de atención a la interrupciónes
preguntando uno por uno a los periféricos hasta saber cual
a producido la interrupción, esto es muy lento, pero tiene
sus ventajas:
– El programador decide la prioridad, pues el periférico más
importante para la aplicación lo verificamos en primer
lugar y así sucesivamente.
– Por el contrario con las interrupciones vectorizadas, el
periférico directamente nos indica a través del bus de
datos (con un direccionamiento indirecto a memoria
llamado "vector de interrupción") donde comienza su
subrutina particular de atención a la interrupción, es decir
se identifica.

Seminario sobre Microcontroladores 39


– 3.7 Características Especiales de los
microcontroladores
• Temporizador Watchdog ("Perro guardian")
– Un temporizador perro guardián soluciona de una manera
elegante la recuperación del sistema ante un problema.
– Por ejemplo si un programa entra en un bucle infinito, o si
un fallo de hardware le impide funcionar, entonces el
temporizador de perro guardián reseteará el sistema en un
intervalo predeterminado.
– El problema puede continuar existiendo, pero al menos
tenemos una vía de solución (podriamos reiniciar el
sistema en un modo de funcionamiento mínimo o
auxiliar).
– Esta característica es muy útil para sistemas desatendidos.

Seminario sobre Microcontroladores 40


– Procesadores digitales de señal DSP (Digital
Signal Processors)
– Los DSPs ejecutan algoritmos matemáticos-intensivos
repetitivos. Hoy, muchas aplicaciones requieren
microcontroladores y DSPs trabajando conjuntamente, y
los fabricantes han respondido introduciendo
microcontroladores con DSP incorporado.
– La cosa más básica que un DSP hará es un MACC
(Multiplique y Acumule). El número de trozos de los datos
que un DSP puede Multiplicar y Acumular determinará el
rango dinámico (y por consiguiente la aplicación).
– Bits Fixed/Floating Dynamic Range
Typical Application
– 8 Fixed 48 dB Telephone-quality voice
– 16Fixed 96 dB Compact disk (marginal)
– 24 Fixed 144 dB Compact disk

Seminario sobre Microcontroladores 41


– Monitor de reloj (Clock Monitor)
– Un monitor de reloj puede apagar el microcontrolador
(manteniéndolo en reset) si la entrada de reloj es muy
lenta, esto puede activarse bajo control de software.
– Cargador del programa residente (Resident
program loader)
– Al arrancar, el microcontrolador carga automáticamente el
programa a ejecutar por un puerto serie o paralelo,
podemos cambiar el programa las veces que queramos y
desde un lugar remoto, ideal para sistemas distribuidos y
para probar nuevos programas y prototipos eliminando el
ciclo borrado/grabado típico con EPROMs.

Seminario sobre Microcontroladores 42


– MONITOR
– Un monitor es un programa instalado previamente en el
microcontrolador que permite desarrollos básicos y
capacidades de debugger (depuración de programas).
Suelen incluir:
– Carga ficheros objeto en la memoria RAM.
– Ejecución de los programas cargados.
– Podemos examinar y modificar registros y memoria.
– Desensamblado de código máquina.
– Podemos poner puntos de Ruptura.
– Ejecución de programas paso a paso.
– Los programas monitor pueden comunicarse con un PC,
con lo que muchas funciones del programa monitor
pueden ser ejecutadas en el PC con el microcontrolador
apagado.
– Esto simplifica el programa monitor que debe ser cargado
en el microcontrolador y que en ocasiones se limita a
recibir el programa y ejecutarlo (transmitido desde el PC),
Seminario sobre Microcontroladores 43
• 4 Los microcontroladores más
conocidos
– Los microcontroladores más conocidos se
describen a continuación.
– Una pregunta común "¿Qué microcontrolador
debo usar?".
– El mejor consejo es elegir un chip del que
podamos disponer todas las herramientas de
desarrollo a un precio abordable, y además
buena documentación. A nivel de experimentar
en casa, el Intel 8051, Motorola 68HC11 o
Microchip PIC son una buena elección.
Seminario sobre Microcontroladores 44
• 8048 (Intel)
• El abuelo de todos ellos, el primer microcontrolador,
todo comenzó aquí, aunque un antiguo y un poco
obsoleto (para los estándar de hoy en día), es aún
muy popular debido a su bajo precio, disponibilidad
y un enorme rango de herramientas de desarrollo.
• Tiene arquitectura de Harvard modificada con
programa ROM en chip con una memoria RAM de
64 a 256 bytes adicionales en el chip.La entrada
salida tiene su propio espacio de memoria.

Seminario sobre Microcontroladores 45


– 8051 (Intel y otros)
– El 8051, pertenece a la segunda generación de
microcontroladores Intel, ha marcado muchas de las
características que tienen los microcontroladores en la
actualidad.
– Tiene un diseño un poco raro, pero es muy potente y
sencillo de programar (una vez que se conoce).
– Su arquitectura es Hardvard Modificada con espacio de
direcciones separadas para memoria de programa y
memoria de datos.
– La memoria de programa puede llegar hasta 64k, la parte
baja (4k o 8k dependiendo del modelo) está dentro del
chip.
– El 8051 puede direccionar hasta 64k de memoria de datos
externa, y solo puede acceder a ella mediante
direccionamiento indirecto.
– El 8051 tiene 128 bytes (256 bytes para el 8052) de
memoriaSeminario
RAM dentro del chip donde se encuentran:
sobre Microcontroladores 46
– 8051 (Intel y otros) continuación
– El 8051 tiene 128 bytes (256 bytes para el 8052) de
memoria RAM dentro del chip donde se encuentran:
» Un Número de registros de función especiales
(SFR=Special function Registers).
» La Entrada/Salida se encuentra mapeada también en
este espacio de memoria.
– El 8051 es un "procesador booleano". Pues tiene
instrucciones que pueden manejar bits desde cualquier
sítio (RAM, acumulador, registros de E/S, etc.), puede
hacer operaciones lógicas con dichos bits y ejecutar saltos
relativos basados en dichos resultados.
– Existe infinidad de software, comercial y libre, para este
microcontrolador.
– Muchos fabricantes hacen cientos de variantes diferentes
del 8051 para cualquier aplicación.

Seminario sobre Microcontroladores 47


– 80c196 (MCS-96)
– La tercera generación de microcontroladores Intel, el
80C196 es un procesador de 16 bits. Originalmente
fabricado en tecnología NMOS (8096), ahora está
disponible principalmente en CMOS. Intel Corp. Ha
introducido recientemente una versión del doble de
velocidad (50 MHz) del 80C196.
– Sus características son:
» Multiplicador y divisor hardware, 6 modos de
direccionamiento.Alta velocidad de E/S.
» Conversor A/D.
» Canal de comunicaciones Serie.
» Hasta 40 puertos de E/S.
» 8 Controladores de interrupción programables.
» Modulador de anchura de pulso PWM (para
conversión D/A)., Temporizador Watchdog.
Seminario sobre Microcontroladores 48
– 80186,80188 (Intel)
– Estos chips son, fundamentalmente, la versión en
microcontrolador del 8086 y del 8088 (del famoso IBM
PC).
– El chip tiene:
» 2 Canales de DMA (acceso directo a memoria)
» 2 Contadores/temporizadores.
» Controlador de interrupción programable.
» Refresco de RAM dinámica.
» Hay versiones de bajo consumo, con puerto serie y
más.
» Una de las mayores ventajas de estos dispositivos es
que se pueden utilizar herramientas de desarrollo
estándar para PC (Compliladores, ensambladores,
etc.).
» Estos chips tienen la misma arquitectura básica que el
8088 original usado en el IBM PC.
Seminario sobre Microcontroladores 49
– 80386 EX Intel
– El 80386 EX es por supuesto un 386 vestido de
microcontrolador, dentro del chip existen:
– Entrada/Salida serie.
– Manejo de la alimentación del chip.
– DMA (Acceso directo a memoria)
– Contadores/Temporizadores.
– Circuito de refresco para memória DRAM.
– La potencia de un 386.
– Una de las mayores ventajas de estos dispositivos es que
se pueden utilizar herramientas de desarrollo estandar para
PC (Compliladores, ensambladores, etc.).
– Si usted está acostumbrado a trabajar con herramientas de
desarrollo para PC, el tiempo de aprendizaje será mucho
más corto, pues estos chips tienen la misma arquitectura
básica que el 8088 original usado en el IBM PC.
Seminario sobre Microcontroladores 50
– 65C02/W65C816S/W65C134S WDC
(Western Design Center )
– El Western Design Center Inc. es el dueño original y
diseñador del microprocesador 65C02 de 8-bit que se usó
en el Apple original.
– Para el ordenador Commodore y el Atari WDC desarrollo
el microprocesador 65C816 de 16 bits.

• El W65C816S es un microcontrolador con un


65C02 dentro.
• El W65C134S es un microcontrolador hecho con un
65C816.

Seminario sobre Microcontroladores 51


• MC14500 (Motorola)

– Este es un chip que todo el mundo debería


conocer (está fuera de producción)

 Encapsulado de 16 patillas
 Ancho de palabra de 1 bit!.
 Procesador RISC con un juego de 16 instrucciones.
 Un solo modo de direccionamiento.
 Es un poco raro y limitado.

Seminario sobre Microcontroladores 52


– 68HC05 (Motorola)

• Está basado en el antiguo 6800, tiene arquitectura


Von-Neuman donde las instrucciones, datos,
entrada/salida y temporizadores ocupan un mismo
espacio de memoria.
• El puntero de pila tiene un ancho de palabra de 5
bits, lo que limita la pila a 32 posiciones, algunos
modelos incluyen:
– Conversor A/D.
– Sintetizador PLL.
– E/S serie.

Seminario sobre Microcontroladores 53


– 68hc11 (Motorola y Toshiba)
– El popular 68HC11 es un poderoso microcontrolador de
Motorola de 8 bits con las siguientes características:
– Direcciones de 16 bits.
– Juego de instrucciones similar a la familia 68xx. (6801,
6805, 6809)
– Tiene un único espacio de memoria principal donde están
las instrucciones, datos, E/S, y temporizadores.
– Dependiendo de las versiones pueden tener:
» Memoria EEPROM, Memoria OTPROM.
» Memoria RAM.
» Entradas/Salidas digitales.Temporizadores.
» Generadores PWM (modulación de anchura de pulso).
» Contadores.Puerto de Comunicaciones síncronas y
asíncronas.
Seminario sobre Microcontroladores 54
– PIC (MicroChip)
– La mayoría de la gente cree que la línea de
microcontroladores PIC es de reciente introducción en el
mercado. Sin embargo eran populares hace 20 años.
– Los microcontroladores PIC fueron los primeros
microcontroladores RISC, RISC generalmente implica que
la simplicidad de diseño permite añadir más carcaterísticas
a bajo precio y la línea PIC nó es una excepción.
– Aunque tiene pocas instrucciones (33 instrucciones el
16C5X mientras que el Intel 8048 tiene más de 90), la
línea PIC tiene las características siguientes:
– Buses de instrucciones y datos separados (arquitectura
Harvard) lo que permite el acceso simultáneo a las
instrucciones y a los datos, y el solapamiento de algunas
operaciones para incrementar las prestaciones de proceso

Seminario sobre Microcontroladores 55


– PIC (MicroChip) continuación I
– El beneficio de su diseño tan sencillo es que :
» El chip es pequeño
» Pocas patillas.
» Muy bajo consumo.
– Los microcontroladores PIC están ganando popularidad
debido a su bajo costo, pequeño tamaño y a su bajo
consumo pueden ser usados en áreas en las que antes se
pensaba que eran inapropiados.
– Existen 3 líneas
» PIC16C5X
» PIC16CXX
» PIC17CXX
– La linea 16C5X es la línea descendiente del diseño
original PIC, está limitada y se ha quedado obsoleta con la
línea 16CXX.
Seminario sobre Microcontroladores 56
– PIC (MicroChip) continuación II

– La línea 16CXX es el corazón de la familia PIC hoy en


día, mejoran las prestaciones de la línea anterior y son más
flexibles mientras permanecen las características de
velocidad y sencillez, además existe una amplia gama de
caracaterísticas y precios.
– La línea 17CXX es más ambiciosa hacen cosas que las
16CXX no pueden hacer, pero el campo de aplicación está
por determinar.
– Los databook de Microchip para microcontroladores PIC
tienen una documentación completa de la manera de
programarlos que otros fabricantes solo suministran a
clientes especiales.

Seminario sobre Microcontroladores 57


– COP400 Familia (National Semiconductor)
– La familia C0P400 es un microcontrolador de 4 bit
P2CMOS que ofrece desde 512 hasta 2K de ROM y desde
32x4 hasta 160x4 de memoria RAM.
– El encapsulado varía desde 20 hasta 28 patillas
(DIP/SO/PLCC).
– Incluye:
» Interface de comunicaciones serie Microwire
» Temporizadores, Contadores.
» Tensión de funcionamiento desde 2,3 hasta 6 voltios.
» Soporte OTP
– Lejos de la vieja tecnología, los microcontroladores de 4
bits tienen un importante mercado y tienen más
aplicaciones que nunca.
– Estos dispositivos son muy versátiles, hay más de 60
diferentes.
Seminario sobre Microcontroladores 58
– COP800 Familia (National Semiconductor)
– La familia COP800 Basic es un microcontrolador de 8 bits
totalmente estático, fabricado usando puertas "double
metal silicon" de tecnología microCMOS.
– Este microcontrolador de bajo costo contiene:
» Temporizadores. Lógica de Interrupción.
» Memoria ROM. Memoria RAM. Entrada/Salida
» Memoria de E/S mapeada. Entrada/Salida serie
Microwire.
» UART Muchos temporizadores/Contadores de 16 bits.
Interrupciones vectorizadas.Comparador.
» Temporizador WATCHDOG. Monitor de reloj.
» Conversor A/D de 8 canales. Protección Brownout.
» Modo halt. Modo Idle. Pines de E/S con capacidad de
corriente de hasta 15mA. Tensión de alimentación
desde 2.5 hasta 6 V. Las Instrucciones tienen
capacidad de manejo de bits
Seminario sobre Microcontroladores 59
5 LENGUAJES DE PROGRAMACIÓN
PARA MICROCONTROLADORES

– 5.1 LENGUAJE ENSAMBLADOR


– El lenguaje máquina es la representación del programa tal
como la entiende el microcontrolador.
– El lenguaje ensamblador es una representación
alfanumérica del lenguaje máquina, lo que facilita su
lectura.Cada instrucción en lenguaje ensamblador
corresponde a una instrucción en código máquina (sin
tener en cuenta macros ni directivas).
– Un programa en lenguaje ensamblador es rápido y corto.
Esto es porque el programador genera el código más
óptimo posible, el programador se adapta al
microcontrolador. Programando en ensamblador Vd.
aprenderá la arquitectura y estructura del chip
Seminario sobre Microcontroladores 60
– 5.2 Intérpretes
• Un Intérprete es un lenguaje traductor de alto nivel
(próximo al lenguaje natural) a código máquina.
• El Intérprete está residente en el microcontrolador.
Ejecuta el programa leyendo cada sentencia en alto
nivel una a una y traduciéndolas y ejecutándolas
(traduce y ejecuta al mismo tiempo).
• Los dos intérpretes más populares que hay para
microcontroladores son el BASIC y el FORTH.
– El BASIC es conocido por su sencillez, legibilidad y por
supuesto porque todo el mundo ha programado en BASIC
alguna vez que otra.. Una idea común es que el BASIC
(interpretado) es lento, esto puede ser mejorado usando
diferentes técnicas.

Seminario sobre Microcontroladores 61


– El FORTH tiene muchos fans debido a su velocidad (se
aproxima al lenguaje ensamblador) y su afinidad para
construir un sistema con partes reemplazables de software.
» Muchos sistemas FORTH vienen con un programa
monitor que transforma su PC en un sistema de
desarrollo.
» Puede ser difícil escribir en FORTH (sino se tiene
experiencia con él) e incluso es duro de leer. Sin
embargo, es muy útil y productivo como lenguaje
para control de sistemas y para robótica.
– Una cosa interesante de los Intérpretes es que se puede
construir y desarrollar un programa interactívamente. Vd.
escribe primero un trozo pequeño de programa y a
continuación puede probarlo para ver inmediatamente
cómo funciona. Cuando los resultados son satisfactorios,
vd. puede agregar entonces las partes adicionales que
necesite y así consecutivamente.
Seminario sobre Microcontroladores 62
– 5.3 Los Compiladores
– Un compilador es un lenguaje de alto nivel que combina la
programación fácil de un intérprete con una grán
velocidad de proceso. Esto se hace traduciendo todo el
programa de alto nivel directamente a código máquina. El
código máquina se pasa a una memoria EPROM o se
carga en la memoria RAM del microcontrolador. El
microcontrolador entonces ejecuta el programa traducido
directamente, sin haberlo interpretado primero.

– Los compiladores más conocidos para microcontroladores


son "C", BASIC compilado y el "PL/M" de Intel,
Módula-2 tiene también un seguimiento relativo debido a
su eficiente código y alta productividad. Para grandes
chips algunos programadores siguen programando en
ADA (16 bits o más).

Seminario sobre Microcontroladores 63


– Era lógico que debido a su popularidad y su lentitud, el
BASIC apareciera en su versión compilada. Unas cuantas
compañías suministran BASIC compilado para alguno de
los microcontroladores más conocidos. La velocidad de
ejecución se incrementa drásticamente.
– Aunque el FORTH interpretado se acerca (y a veces
sobrepasa) la velocidad de muchos compiladores, el
FORTH compilado se usa cada día más.
– El lenguaje C es ahora el lenguaje elegido por todo el
mundo. El C lo usan desde el más pequeño
microcontrolador hasta la más potente supercomputadora
CRAY. Aunque un programa en C puede ser en algunas
ocasiones un poco tedioso de leer (debido al estilo de
programación conciso seguido por muchos programadores
de C), es una herramienta de desarrollo poderosa y
flexible.

Seminario sobre Microcontroladores 64


• Aunque el C es un lenguaje de alto nivel,
permite al programador un acceso a la
estructura del microcontrolador, registros,
bits etc. Existen muy buenos (y
económicos) compiladores de C disponibles
para los microcontroladores más conocidos.
Este lenguaje es ampliamente usado para la
programación de microcontroladores, está
disponible fácilmente, y produce un código
eficiente rápico y compacto.

Seminario sobre Microcontroladores 65


• 6 HERRAMIENTAS de
DESARROLLO
– 6.1 Simuladores
– Un simulador ejecuta su programa de microcontrolador en
un ordenador (como su PC). Se puede ejecutar el
programa paso a paso y ver exactamente qué pasa según el
programa se ejecuta
– Vd. puede ver y modificar el contenido de los registros,
memoria, variables y ver como responde el programa.
Elimina (o al menos retarda) el ciclo borrado/programado
de la EPROM en el desarrollo de programas de
microcontrolador.
– Se puede aprender experimentando con pequeños trozos
de código y observar en pantalla los resultados.

Seminario sobre Microcontroladores 66


– Un simulador no soporta interrupciones reales, y funciona
a una velocidad mucho más lenta que el microcontrolador
simulado.
– Algunos fabricantes tienen un cruce entre simulador
software y emulador hardware -"Hardware simulator". Es
una pieza que encaja en su tarjeta de microcontrolador (lo
sustituye físicamente) pero funciona mucho más lento.
(National Semiconductor y Philips).
– 6.2 Debuggers residentes
– Un debbuger residente corre su programa dentro del
propio microcontrolador, al mismo tiempo muestra el
progreso de depuración en una máquina host (como por
ejemplo un PC).
– Tiene las mismas características que un simulador normal,
con la ventaja adicional de que el programa corre en un
microcontrolador real.

Seminario sobre Microcontroladores 67


– Un debbuger residente, roba los siguientes recursos al
microcontrolador:
» Un puerto de comunicaciones, para comunicarse con
el host.
» Una interrupción, para generar programas paso a
paso.
» Una cierta cantidad de memoria para almacenar el
programa residente.
– 6.3 Emuladores
– Si se dispone de dinero, este es el equipo para desarrollar
su sistema.
– Un emulador es un sofisticado dispositivo que sustituye al
microcontrolador al mismo tiempo que está captando
información.
– Hemos de retirar el microcontrolador de la placa y poner
en su lugar el emulador.
Seminario sobre Microcontroladores 68
– Hemos de retirar el microcontrolador de la placa y poner
en su lugar el emulador.
– Nos dá total información sobre lo que está pasando en la
realidad, y no roba ningún recurso a la tarjeta que está
analizando.
– El emulador puede venir con su propio display o
conectado a un PC.

Seminario sobre Microcontroladores 69

Potrebbero piacerti anche