Clase02 Microcontroladores

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 65

Taller de Firmware

Introducción a los 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 microprocesador (µP) es una CPU en un


solo circuito integrado.
• Un computador es una CPU, más memoria y
puertos de E/S.
• Un sistema computador es un computador
más periféricos.
• Un microcontrolador (µC) es un sistema
computador en un solo integrado orientado a
aplicaciones de control.
Introducción (2/5)
Introducción (3/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)

• Todos los recursos necesarios están


incluidos en el chip.
• Solo necesitan alimentación y reloj.
• Proporcionan control e interfaz con
dispositivos externos de manera
económica y programable.
Microcontroladores de 8 bits (2/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)

• El encapsulado protege el chip del polvo,


temperatura, humedad y golpes.
• Características
– Costo
– Tamaño
– Calidad
• Tipos
– Plásticos
– Cerámicos
Presentación del dispositivo (2/2)
Tecnologías de chips
• La mayoría de los microcontroladores
están construidos con tecnología
CMOS (Complementary Metal Oxide
Semiconductor).
Alimentación
• Minimizar el consumo de corriente es un
tema a tener en cuenta.
• Hay que tener en cuenta el consumo:
– Del microcontrolador en modo normal.
• Depende de la frecuencia y del voltaje proporcionado.
– Del microcontrolador en modo sleep.
– Del los dispositivos conectados a la E/S.
• Particular de cada aplicación.
• Pueden gestionarse adecuadamente los dispositivos.
Reset
• Permite llevar al microcontrolador a un
estado conocido. Inicializando todos los
componentes del µC.
• POR.
• BOR.
Reloj del sistema
• Los µC están diseñados para ejecutar con
poco soporte externo para el reloj del
sistema.
• Los µCs corren en el entorno de las decenas
de megahetz.
• Existen diversos métodos para proporcionarle
el reloj al µC:
– Usando un cristal
– Resonador cerámico
– Oscilador RC
– Ninguno.
Contador de programa
• Permite conocer que instrucción está
ejecutando el µC.
• El módulo PC debe tener
– Entradas
• Carga en paralelo (datos y control)
• Incrementar
• Reset
– Salida
Unidad aritmética y lógica
• Circuito combinatorio encargado de
ejecutar las operaciones aritméticas y
lógicas, como ser:
– Suma, Resta e Identidad
– and, or, not, desplazamientos y rotaciones.
Protección ante fallas
• Watch Dog Timer
– Es utilizado para prevenir caídas del software.
– En entornos con ruido eléctrico, puede ocurrir que
el PC del µC se vea afectado y éste comience a
ejecutar en un lugar indeterminado.
– El circuito WDT se encarga de resetear el µC si el
registro WD se desborda.
• Protección ante caídas en la alimentación.
Modo bajo consumo
• En caso que no sea necesario ejecutar
procesamiento es posible indicar al µC
que se duerma reduciendo el consumo
del sistema.
Subrutinas
• Instrucción call.
– Soporte de hardware para el stack
– Software
• Pasaje de parámetros
– Stack (variables locales)
– Memoria
– Registros
Interrupciones
• Esqueleto de
Manejador
– Salvar el contexto.
– Aviso al controlador y al
dispositivo que es
atendido.
– Atender al dispositivo.
– Restaurar el contexto
– Retornar de la
interrupción
Timers
• Se utiliza para trabajar con eventos de
tiempo.
• Contadores: cuentan acontecimientos
que suceden en el exterior.
• Temporizadores: controlan períodos de
tiempo.
E/S Digital
• La comunicación del µC con el mundo
se da a través de sus pines de E/S.
• Estos pines son compartidos con
módulos del µC.
• Pueden configurarse con entrada o
salida.
Comunicación
• Serial o paralela.
• Síncrona o asíncrona.
• Redes de dispositivos.
E/S Analógica
• En el mundo las cosas no son solo
blancas y negras.
• Conversión
– ADC, es utilizado para procesar las
entradas analógicas. En µC puede incluir
convertidores y comparadores analógicos.
– DAC, es utilizado para generar salidas
analógicas.
Dispositivos esclavos
• Los µC pueden trabajar en modo
esclavo.
Arquitectura (1/3)
Arquitectura (2/3)
Arquitectura (2/2)
Qué microcontrolador utilizar
• Fabricante • Modelo
– Experiencia – Precio
– Documentación – E/S y modulos
– Kits de desarrollo – Consumo
– Precios – Velocidad
– Disponibilidad – Memoria
– Ancho de la palabra
– Diseño de la placa
Desarrollo de software
• Herramientas y entornos de desarrollo
• Programación
• Debug
Herramientas y entornos de
desarrollo(1/6)

• Editor
• Compilador
• Ensamblador IDE
• Simulador
• Emulador
• Programador
Herramientas y entornos de
desarrollo (2/6)

• Los sistemas clásicos no tiene que lidiar


con:
– Restricciones fuertes de tiempo.
– Robustez.
– Seguridad.
• Operan en entornos hostiles sin
detenerse.
Herramientas y entornos de
desarrollo (3/6)

• La mayoría de los sistemas de tiempo real


interactúan directamente con dispositivos
eléctricos e indirectamente con mecánicos.
• En general se desarrolla software
específicamente para la aplicación.
• La programación requiere manipulación a bajo
nivel y un conocimiento profundo de las
propiedades eléctricas y de temporización del
dispositivo.
Herramientas y entornos de
desarrollo (4/6)

• Assembler
– Instrucciones assembler.
– Directivas
– Debe estar bien comentado
Herramientas y entornos de
desarrollo (5/6)

• Lenguaje de alto nivel


– C, Basic y Forth.
– Proporcionan
• Mayor nivel de abstracción
• Bibliotecas.
• Tipos de datos.
• Variables locales y globales.
• Estructuras de datos y punteros.
• Asignación de memoria para datos.
• Acceso a registros.
– Decrementa el tiempo de desarrollo.
Herramientas y entornos de
desarrollo (6/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

También podría gustarte