Clase02 Microcontroladores
Clase02 Microcontroladores
Clase02 Microcontroladores
Facultad de Ingeniería
Instituto de Computación
Contenido
• Microcontroladores
• Características del hardware
• Arquitectura
• Desarrollo de software
Microcontroladores
• Introducción
• En nuestras vidas
• Tipos de microcontroladores
• Arquitecturas de procesadores
• Memorias
Introducción (1/5)
• Un microcontrolador es un sistema
autocontenido donde el microprocesador,
soporte, memoria y entrada/salida se
presentan dentro de un mismo integrado.
Control
Power Power
Store
Input &
I/O Ports
Reset
Reset Output
Control Processor
Pins
Clock &
Clocking
Timing RAM
Introducción (4/5)
• Características
– Fáciles de utilizar.
– Bajo costo.
– Flexibles.
– Confiables.
– Debido a su tamaño puede incluirse dentro
del dispositivo que gobierna.
Introducción (5/5)
• Firmware
– Rutinas de software almacenadas en
memoria ROM.
– Software que se encuentra embebido en
un dispositivo de hardware.
– Es una combinación de software y
hardware.
Sistema embebido
• Es una combinación de hardware, software y elementos
mecánicos diseñados para realizar una tarea específica.
• En general, son programados por los fabricantes una única
vez.
• Ejecutan sólo un programa.
• Específicos para una tarea por lo que son optimizados para
la misma.
• Interactuan con el entorno
– Directamente sensando y controlando señales sobre el cable.
– Comunicándose con el entorno o otros dispositivos.
– Interacciones en tiempo real y con restricciones.
– Bajo consumo para mantener la batería.
Aspectos que afectan al diseño
• Capacidad de procesamiento
• Memoria
• Cantidad de unidades a producir
• Consumo de energía
• Costo de desarrollo (hard y soft)
• Vida útil
• Confiabilidad
Rendimiento
• Eléctrico • Computacional
– Consumo – Velocidad de reloj
– Voltaje – MIPS
– Inmunidad al ruido – Latencia
– Sensibilidad – Throughput
System on chip (SOC)
• Se refiere a integrar todos los
componentes de un computador u otro
dispositivo electrónico en un chip.
• La principal diferencia con un uC es la
memoria disponible.
• En general, los SOC corren sistemas
operativos tradicionales.
En nuestras vidas
• Televisión
• Equipo de audio
• Control remoto
• Microondas
• Teléfono
• Autos
• PC
• Teclados
Tipos de Microcontroladores
• Los microcontroladores se pueden
clasificar en:
– Microcontroladores embebidos de 8 bits.
– Microcontroladores de 16-32 bits
– Procesadores de señales digitales (DSP)
Microcontroladores de 8 bits (1/2)
• Disponen de:
– Reset
– Reloj
– Procesador
– Memoria ROM para el programa e interfaz de programación
– Memoria RAM para variables.
– I/O Pins.
• Adicionalmente pueden incluir:
– Capacidad de debugging
– Interrupciones
– I/O analógica
– Comunicación serial y/o paralela
– Interfaz con memoria
Microcontroladores de 16-32 bits
• No disponen de memoria en el chip.
• Ejemplo: Intel 80186, incluye controladores
de interrupciones y DMA.
I/O Ports
Power Power Input &
Processor Output
Reset Pins
Reset
Control Control Store
Addr
Memory (ROM)
Clock & Data
Clocking External
Timing Ctrl Variable
Interface Memory
(RAM)
Procesador de señales digital
• Es una categoría relativamente nueva
de microprocesadores.
• El objetivo de los DSP es tomar un
señal analógica y calcular una
respuesta apropiada.
• Ejecutan a gran velocidad para permitir
el control en tiempo real.
Fabricantes
• Intel
– 8048
– 8051 (Intel y Otros)
– 80186, 80186 y 80386 EX.
• Microchip
– PIC
• Motorola
– 68HC11 (Motorola y Toshiba)
– 683xx
• Atmel
– AVR
Arquitectura de Procesadores
• CPU
• CISC vs RISC
• Harvard vs Princeton
• Modo de acceso a los datos
• Ciclo de instrucción
CPU
• Es el corazón del microcontrolador.
• Operación
– Obtiene una instrucción de memoria
– Decodifica la instrucción
– Ejecuta la instrucción
• Incluye:
– Registros
– ALU
– Unidad de control
– Interconexión
CISC vs RISC
• CISC Complex Instruct Set Computers
• RISC Reduced Instruct Set Computers
• Características de CISC
– Gran número de instrucciones.
– Instrucciones útiles para el programador.
Hardvard vs Princeton
• Princeton (Von
Neumann)
– Memoria común para
almacenar el programa y
las variables.
– Permite la ejecución de
código automodificable.
– Un único bus entre la
CPU y la memoria.
Harvard vs Princeton
• Harvard
– Ejecuta las
instrucciones en
menor cantidad de
ciclos por instrucción,
pues logra un
paralelismo a nivel de
instrucción mayor
– Cada palabra (datos
e instrucción) tiene
un tamaño adecuado.
Modo de acceso a los datos
• Clasificación
– Pila
– Acumulador
– Registro – Memoria
– Registro – Registro
Ciclo de instrucción (1/2)
Ciclo de instrucción (2/2)
Tipos de memorias
• Memoria de programa
• Memoria de variables
• Stack
• Registros de E/S
• Memoria Externa
Memoria de programa
• Se utiliza para almacenar el programa y
no varia durante la ejecución del
mismo.
• Tipos
– ROM con máscaras.
– PROM (OTP).
– EPROM.
– EEPROM y Flash.
Memoria de variables
• Poca memoria (cientos de bytes).
• Es una gran diferencia al momento de
programar.
• Debe tenerse mucho cuidado con el
recurso memoria al momento de
desarrollar la aplicación
Stack
• Se utiliza para realizar llamadas a
rutinas y almacenar variables locales.
• Puede ser implementado y soportado
por el microcontrolador.
Registros de E/S
• Son los componentes más utilizados del
microcontroladores .
• Los microcontroladores disponen de
registros para controlar los dispositivos
de E/S.
• Espacios
– E/S mapeada en memoria.
– Mapa E/S y mapa de memoria.
Memoria Externa
• Permite agregar memoria al
microcontrolador.
• Métodos
– Controlar la memoria a través de E/S
– Controlar la memoria a través de una
interfaz de memoria.
Características del hardware
• Presentación del • Subrutinas
dispositivo • Interrupciones
• Tecnologías de chips
• Timers
• Reset
• E/S Digital
• Alimentación
• Comunicación
• Reloj del sistema
• E/S Analógica
• Contador de programa
• Unidad aritmética y • Dispositivos esclavos
lógica • Programación
• Protección ante fallas • Debug
• Modo bajo consumo
Presentación del dispositivo (1/2)
• Editor
• Compilador
• Ensamblador IDE
• Simulador
• Emulador
• Programador
Herramientas y entornos de
desarrollo (2/6)
• Assembler
– Instrucciones assembler.
– Directivas
– Debe estar bien comentado
Herramientas y entornos de
desarrollo (5/6)
• RTOS
– Multitasking
– Scheduling
– Context Switching
– Respuestas en tiempo a eventos del mundo.
– Comunicación entre procesos.
– Stack TCP/IP
– Ejemplos: Salvo, FreeRTOS, µC/OS, ...
Programación
• Metodología de trabajo
– Programar en assembler o lenguaje de alto
nivel.
– Generar el contenido de la ROM.
– Grabar en la ROM el programa.
– Verificar el contenido de la ROM.
• Programación en el sistema (ISP).
• Protección del Programa.
Debug
• Quemar y validar.
• Emuladores por software.
• Osciloscopio.
• Analizadores lógicos.
• ICE, remplazan al µC en el circuito.
• ICD, algunos µC proporcionan una
interfaz para debug.
•
Preguntas