1
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
GENERALIDADES
Qu es un microcontrolador?
Se puede considerar como un computador en un chip
Orientado al control de procesos
Tpicamente incorpora:
CPU (Central Processing Unit). Microprocesador
RAM (Random Access Memory)
EPROM/PROM/ROM (Erasable/Programmable/Read Only Memory)
E/S (entrada/salida) - serie y paralelo
Temporizadores
Controlador de interrupciones
...
3
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
GENERALIDADES
Clasificacin:
Por su funcin:
- Propsito general:
CPU+Memoria+E/S+.... y
juego de instrucciones no especficas
- Especializados:
Arquitectura e instrucciones orientadas hacia algn
tipo de aplicaciones concretas:
Comunicaciones, manejo de teclados, DSP,
procesamiento de video .....
Por su longitud de palabra:
4, 8 ,16, 32 y 64 bits
4
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
GENERALIDADES
5
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
GENERALIDADES
6
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
GENERALIDADES
Ejemplos de aplicacin de los C en funcin de la
longitud de palabra:
BITS Aplicaciones Ejemplos Fabricantes
16 Mayor velocidad en operaciones 80186 Intel, AMD
aritmticas 8096 Intel
Manejo de grandes volmenes de datos
DSP TMS 320 Texas
Industria del automvil, grandes H8/300 Hitachi
perifricos
32 Manejo de grandes cantidades de datos I860 Intel
Gran capacidad de direccionamiento I960 Intel
Impresoras Lser, intrpretes PostScript 68300 Motorola
Pantallas grficas de muy alta resolucin 340X0 National
64 Controladores TCP/IP, buses, etc
TX4927 Toshiba
7
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
EL MERCADO DE LOS C
10000
Ventas de microcontroladores en millones de dolares
9000
8000
7000
6000
5000
4000
3000 8-bit
2000 4-bit
1000
16-bit
0
90 91 92 93 94 95 96 97 98 99
Ventas de microcontroladores en millones de unidades
3000
2500
2000
1500
1000 4-bit
500
8-bit
16-bit
0
90 91 92 93 94 95 96 97 98 99
8
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Tcnicas de fabricacin
CMOS: Complementary Metal Oxide Semiconductor
La mayora de los C se fabrican en esta tecnologa
Menor consumo (favorecen alimentacin a bateras)
Mayor inmunidad al ruido
Son chips casi o totalmente estticos (no necesidad de refresco) :
el reloj puede ser ralentizado o detenido: sleep mode
9
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Arquitectura
Von-Neuman
Un nico bus de datos para datos e instrucciones.
Programa y datos se almacenan en la misma memoria principal.
Primero se busca la instruccin y a continuacin el dato
correspondiente: dos bsquedas consecutivas
Limita el ancho de banda
10
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Arquitectura
Harvard
Bus de datos y bus de instrucciones separados.
Permite bsquedas de instrucciones y datos simultneas: pre-
bsqueda de la siguiente instruccin en paralelo con acceso a los
datos de la instruccin en ejecucin
Permite anchos de bus distintos para datos e instrucciones
Mayor velocidad de ejecucin
MEMORIA MEMORIA
Instrucciones CPU datos
PROGRAMA DATOS
11
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Arquitectura
CISC (Complex Instruction Set Computer)
Muchas instrucciones diferentes (sobre 80). Potentes y
especializadas, algunas requieren muchos ciclos de ejecucin.
Facilita la programacin.
Cdigo muy compacto
Mayora de los fabricantes. Ejem. Motorola
RISC (Reduced Instruction Set Computer)
Pocas instrucciones muy sencillas. Ejecucin rpida
La sencillez de las instrucciones permite liberar rea de silicio para
implementar caractersticas que mejoren las prestaciones.
Chips ms baratos, de menor consumo, de menos pines.
Tendencia actual de la industria. Ejem. Microchip
SISC (Specific Instruction Set Computer)
Juego instrucciones especfico que potencia una aplicacin
concreta: facilidad y eficiencia en E/S, manipulacin de bits, etc
12
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
MEMORIA
EEPROM (Electrically Erasable Programable Read Only Memory)
Los C pueden tener pequeas cantidades de esta memoria para
almacenar un limitado nmero de parmetros que no cambian
frecuentemente
Lenta, nmero de ciclos lectura/escritura limitado
FLASH
Mejor solucin que la EEPROM cuando se requiere grandes
cantidades de memoria no voltil
Ms rpida, mayor nmero de ciclos lectura/escritura
RAM esttica con batera
Mucho ms rpida y sin limitacin de ciclos lectura/
escritura
Grandes cantidades de memoria no voltil de acceso rpido (datos
o aplicaciones de grandes prestaciones)
13
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Mscara Memorias
Memoria ROM
Programada durante el proceso de fabricacin por el fabricante
Interesante en produccin de grandes cantidades que no se van a modificar
Largo tiempo de obtencin del producto (de 8 a 44 semanas)
OTP (One Time Programmable)
Es un dispositivo PROM. En realidad una EPROM sin ventana de borrado.
Una vez que el programa ha sido grabado no puede ser borrado ni modificado
Alternativa a la mscara ROM para series pequeas.
Programables por el usuario
Reprogramacin
El uso de EPROM, EEPROM, EPROM y FLASH para la memoria de
programa facilita el desarrollo y puesta a punto de dispositivos
El uso de EEPROM, EPROM y FLASH permite la reprogramacin del C sin
extraerlo del sistema que controla
Actualizacin de nuevas versiones o eliminacin de errores
14
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Memorias
ROM EEPROM
OTP FLASH RAM
EPROM RAM con batera
EEPROM
FLASH
15
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Alimentacin
Bajo voltaje
Normalmente alimentacin a 5V
La incorporacin de los C a nuevos segmentos conlleva la necesidad
de alimentacin a 3V (2 bateras de 1,5v).
Tendencia tecnolgica: transistores ms pequeos (menos consumo,
ms rpidos y baratos) que facilita la reduccin de la tensin de
alimentacin y favorece el aumento en la densidad de integracin.
Proteccin Brownout
Detecta si la alimentacin disminuye por debajo de un valor lmite
(tensin de brownout, VBDD) y deja al C en estado reset hasta que la
alimentacin vuele a tomar valores permitidos.
Puede ser interno al chip o un circuito de control externo.
16
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Alimentacin
IDLE/HALT/Wakeup
Modos de bajo consumo, manteniendo valores de registros, memoria y
salidas
En modo IDLE:
Se para la CPU (salvo algunos recursos como osciladores internos,
el watchdog , timer asociado al wakeup)
El consumo se reduce en un 30%
El micro se despierta (wakeup) con una interrupcin externa o
interna (timers) o con el RESET
Otra posibilidad es que se realice un despertar cada cierto
intervalo de tiempo mediante un timer especfico del C.
HALT:
se para todo (CPU, timers, perifricos), el C se despierta slo con
una interrupcin externa o RESET
El consumo se reduce tpicamente a corrientes menores de 1A.
17
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Entradas / salidas
UART: Universal Asynchronous Receiver Transmitter
SCI: Serial Comunication Interface (UART mejorada).
SPI: Serial Periferal Interface (Motorola). E/S serie sncrona.
USART: Universal Synchronous/Asynchronous Receiver Transmiter
Ms rpida (unas 16 veces) que la UART
I2C: Inter-Integrated Circuit bus (Philips)
Bus serie de dos hilos
Multi-master, multi-slave, deteccin de colisiones. 128 dispositivos,
10 metros
Microwire/Plus. Comunicaciones serie entre dispositivos (displays,
conversores de datos, EEPROM,..) de National
CAN: Controller Area Network (Bosch, Intel). Cableado de automviles
J1850 (Society of Automotive Engineers). Estndar americano para
cableado de automviles
18
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Conversin Analgico-Digital
En general del tipo de aproximaciones sucesivas
Normalmente 8 10 bits
Conversin Digital-Analgica
No suele estar implementada en los C
PWM: Pulse Width Modulator. Se usa como tcnica de conversin
D/A + circuitera exterior (filtro paso bajo)
Contadores de pulsos
Cada pulso/evento incrementa un registro acumulador indicando el
nmero de veces que ha sucedido un evento
Comparadores.
Comparador analgico basado en un AO
Algunos C pueden incluir un mdulo de tensin de referencia
Moduladores de anchura de pulsos (PWM)
Proporcionan una salida de impulsos de anchura variable
19
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Interrupciones
Desde los perifricos: timers, UARTS, A/D, E/S paralelo, componentes
externos.
Interrupciones enmascarables, se pueden activar y desactivar. Bien con
carcter general (GIE, Global Interrupt Enable) o algun tipo de
interrupcin en particuar (por ejemplo la UART)
Interrupciones vectorizadas: una direccin de salto para cada
interrupcin
Prioridades
20
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
CARACTERSTICAS
Caractersticas especiales
Watchdog timer
Si el programa no reinicializa el watchdog antes de un cierto
tiempo, ste procede a hacer el RESET del sistema
Monitor del reloj
Circuito que detecta si el reloj funciona demasiado despacio y
genera un RESET
21
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
EJEMPLOS DE C
8051 (Intel)
Bus de 8 bits de datos
Puede direccionar 64K de programa (los 4K 8K bajos pueden residir
en chip) y 64K de memoria de datos externa. 128 bytes de RAM interna
+ registros especiales. E/S direccionadas en espacio propio.
Bus de direcciones de 16 bits
Gran potencia en instrucciones de bit
Timers y puertos serie (no A/D ni PWM)
8048 serie baja
80c196 de 16 bits
80186: microcontrolador con un 8086 como ncleo (PC XT)
22
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
EJEMPLOS DE C
68HC11 (Motorola)
Arquitectura Von Neuman (datos, programa, E/S, timers comparten el
mismo espacio de memoria)
Bus de 8 bits de datos, 16 bits de direcciones
Pueden tener: EEPROM/OTPROM, RAM, E/S digitales, timers, A/D,
PWM, acumuladores de pulsos, comunicacin serie sncrona y
asncrona
Serie baja 68HC05
683xx: microcontrolador con un 68xxx como ncleo
23
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
EJEMPLOS DE C
68HC08 (Motorola)
Arquitectura Von Neuman (datos, programa, E/S, timers comparten el
mismo espacio de memoria)
Bus de 8 bits de datos, 16 bits de direcciones
Pueden tener: ROM/FLASH, RAM, E/S digitales, timers, A/D, PWM,
acumuladores de pulsos, comunicacin serie sncrona y asncrona
Existen elementos de la familia con USB, IIC
Hasta 60K de Flash, hasta 2K de RAM
24
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
EJEMPLOS DE C
PIC (MicroChip)
Arquitectura Harvard (direccionamiento separado para datos e
instrucciones)
solapamiento de instrucciones
Primer microcontrolador RISC
16Fxx principal lnea de la casa
35 instrucciones
8 bits de datos
14 bits de instruccin (hasta 8K instrucciones)
Pueden tener: EEPROM/OTPROM, RAM, E/S digitales, timers,
A/D, PWM, acumuladores de pulsos, comunicacin serie sncrona y
asncrona
25
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
LENGUAJES DE PROGRAMACIN
Ensamblador
Permiten el uso eficiente de los recursos
Lenguajes de alto nivel
Desarrollo ms rpido, mantenimiento menos costoso
Programas menos eficientes
Mayor ocupacin en memoria
Ejem: C (permite el acceso a los recursos hardware), BASIC,
ADA, etc.
26
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
LENGUAJES DE PROGRAMACIN
Uso de C y Ensamblador
Programacin en C Fuente Fuente C
Ensamblador
Puesta a punto de la lgica
Ensamblador Compilador
del programa Cruzado Cruzado
27
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
HERRAMIENTAS DE DESARROLLO
Simuladores
Un simulador ejecuta un programa de un microcontrolador en un
computador de propsito general (p.e. un PC)
Los contenidos de la memoria y registros pueden ser observados y
alterados
No soporta interrupciones reales ni (generalmente) hardware adicional
La velocidad de ejecucin es menor que en el C
28
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
HERRAMIENTAS DE DESARROLLO
Debuggers residentes
Se ejecutan en el C. Permiten visualizar la ejecucin desde un
terminal o un computador
Utiliza recursos del C (un puerto de comunicacin, una interrupcin y
memoria) y ralentiza la ejecucin (acceso a memoria y registros y
comunicacin)
Visualizacin y actualizacin de memoria, breakpoints, ...
29
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO
MICROCONTROLADORES
HERRAMIENTAS DE DESARROLLO
30
SISTEMAS ELECTRNICOS AVANZADOS. ING. TC. INDUSTRIAL ELECTRNICO