Robótica y automatización
Sistemas embebidos
Facultad de Ingeniería
Instituto de Computación
Temas
Sistemas Embebidos
Microcontroladores
System on a Chip
Single Board Computers
Sistemas Embebidos
¿Qué es un Sistema
Embebido?
Un sistema embebido (S.E) es un
sistema computador destinado a una
aplicación en particular.
Los sistemas computadores de
propósito general tienen muchas
aplicaciones, según el software que se
instale.
Características
Es una combinación de hardware,
software y posibles elementos
mecánicos.
Específicos para una tarea por lo
que son optimizados para la
misma.
Firmware
Rutinas de software almacenadas en
memoria no volátil (Flash, ROM, EEPROM,
etc).
Software que se encuentra inmerso en el
dispositivo de hardware a controlar.
Es software muy acoplado con un
hardware particular.
Características de los
sistemas embebidos
Interactúan con el entorno
Directamente sensando y controlando
señales.
Comunicándose con otros dispositivos.
Interacción con restricciones de tiempo
real.
Bajo consumo.
Los S.E en nuestras vidas
Electrodomésticos, periféricos para
computadora, control industrial,
teléfonos celulares, GPS, routers, mp3,
máquinas de fotos, consolas de
videojuegos, equipos para medicina,
canaleras para TV, DVD, autos, entre
otros.
Características de los
sistemas embebidos.
Mayores exigencias
Calidad
Confiabilidad
Seguridad (safety)
Disponibilidad
El hardware también falla
Aún bajo implementaciones “perfectas” de
software/firmware los sistemas embebidos se
encuentran inmersos en un ambiente externo, el
cual puede afectar el correcto funcionamiento
Este ambiente produce defectos transitorios en
el dispositivo debido principalmente a:
●
Interferencia electromagnética (EMI)
●
Rayos cósmicos
●
Temperatura alta
Su naturaleza transitoria hacen muy difícil de
detectar/reproducir/corregir
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 Program Counter del CPU se vea
afectado y éste comience a ejecutar en un
lugar indeterminado.
●
El circuito WDT se encarga de resetear el CPU
si el registro WD se desborda.
Línea de reset externa
Entrada/Salida (E/S)
Debido a su característica los sistemas
embebidos deben interactuar con el
ambiente que los rodea.
Sensando señales del ambiente o
actuando sobre el mismo.
Hay dos maneras de manejar la E/S:
●
Digital
●
Analógica
E/S Digital
Se intercambian “unos” y “ceros”.
Esos valores corresponden a voltajes de
referencia.
Utilizado para implementar protocolos
de comunicación.
Útil para controlar algunos dispositivos
electrónicos:
●
Prender un led.
●
Leer estado de un botón.
E/S Analógica (1/2)
Los valores que se intercambian pueden
tomar varios valores.
Es necesario disponer de conversores
Digital -> Analógico (D/A) o Analógico
-> Digital (A/D).
Un conversor A/D convierte un voltaje
en un pin de entrada a un valor digital.
La resolución del conversor condiciona
la cantidad de valores a representar. Un
canal de 10 bits va a permitir
representar valores desde 0 a 1023.
E/S Analógica (2/2)
Un conversor D/A convierte un valor
digital a un voltaje en un pin de salida.
Muchos sensores se manejan de esta
manera:
●
Temperatura, humedad, luz, micrófono
Algunos actuadores se manejan de esta
manera:
●
Parlantes, motores
Lectura/escritura de E/S (1/2)
Paradigmas para implementar la
lectura/escritura de E/S:
●
Polling: Donde se utilizan ciclos de CPU para
estar constantemente consultando el valor
de alguna entrada.
●
Interrupciones: El CPU es notificado
externamente. A nivel de software se
ejecuta una rutina de atención a la
interrupción.
Lectura/escritura de E/S (2/2)
También puede existir un enfoque híbrido
donde se utilice una interrupción de timer
para consultar el estado de un periférico
que no genera interrupciones.
Comunicación
Serial
●
RS-232
●
SPI
●
I2C
Paralela
Desde hace varios años se utilizan otros mecanismos
●
USB
●
Wifi
●
Ethernet
Síncrona o asíncrona.
Redes de dispositivos.
Formas de implementar S.E.
Basados en microcontroladores
Basados en Systems on a chip (SOC)
Híbrido
Microcontroladores
Introducción a los
microcontroladores (1/3)
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.
Introducción a los
microcontroladores (2/3)
Un microcontrolador (µC) es un sistema
autocontenido donde el microprocesador,
soporte, memoria y entrada/salida se presentan
dentro de un mismo integrado.
Power Control
Power
Store
Input &
I/O Ports
Reset Reset
Control Processor Output
Pins
Clocking Clock &
Timing RAM
Introducción a los
microcontroladores (3/3)
Características
Fáciles de utilizar.
Bajo costo.
Flexibles.
Debido a su tamaño puede incluirse dentro del
dispositivo que gobierna.
Tipos de Microcontroladores
Los microcontroladores se pueden clasificar
en:
Microcontroladores de 8 bits.
Microcontroladores de 16-32 bits
Procesadores de señales digitales (DSP)
Microcontroladores de 8 bits (1/3)
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/3)
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 8 bits (3/3)
Muy poca RAM (decenas de KB).
Muy poca velocidad de reloj (decenas de
MHZ).
Muy utilizados en aplicaciones de control.
Bajo costo.
Bajo consumo energético (algunos µW).
Ejemplo: Control remoto Universal
(programable)
Registros de E/S
Son los componentes más utilizados de
los 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.
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 MHz.
Existen diversos métodos para proporcionarle el reloj al
µC:
Usando un cristal
Resonador cerámico
Oscilador RC
Utilizando un clock interno en el µC.
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.
Timers
Se utiliza para trabajar con eventos de
tiempo.
Contadores: cuentan acontecimientos que
suceden en el exterior.
Temporizadores: controlan períodos de
tiempo.
Arquitectura
IO Boards (1/2)
Existen placas orientadas a trabajar con
entrada/salida que permiten realizar
diseños embebidos en base a ellas.
Utilizadas para prototipar o diseñar
productos de pocas unidades.
Incluyen un microcontrolador, señal de
reloj, conectores de E/S, memoria flash
externa, acondicionamiento de señales.
IO Boards (2/2)
Arduino
GogoBoard
USB4all
USB4Butiá
Desarrollo de software
Herramientas y entornos de desarrollo
Programación
Debug
Herramientas y entornos de
desarrollo (1/4)
Editor
Compilador
Ensamblador
IDE
Simulador
Emulador
Programador
Herramientas y entornos de
desarrollo (2/4)
Assembler
Instrucciones assembler.
Directivas
Debe estar bien comentado
Herramientas y entornos de
desarrollo (3/4)
Lenguaje de alto nivel
C, C++, Basic, Forth, JavaMe.
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 (4/4)
Real Time Operating System (RTOS)
Multitasking
Scheduling
Context Switching
Respuestas en tiempo a eventos del mundo.
Comunicación entre procesos.
Stack TCP/IP
●
Ejemplos: Salvo, FreeRTOS, µC/OS, ...
Systems on a 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 µC es la
memoria disponible y el soporte para
MMU.
En general, los SOC permiten ejecutar
sistemas operativos (S.O) tradicionales.
Cada SOC esta orientado a determinado
tipo de aplicaciones.
Hardware Embebido basado
en SOC (1/2)
La arquitectura de hardware para los
sistemas embebidos por lo general
difiere a la de los sistemas de escritorio.
ARM, MIPS o PowerPC son muy utilizados
por su bajo consumo y buena performance.
x86 actualmente no es tan frecuente, pero
también es utilizado.
Hardware Embebido basado
en SOC (2/2)
Cantidad de RAM limitada (desde unos
pocos MB a varias decenas de MB)
Velocidad de CPU inferior a sistemas de
escritorio.
Varios buses de interconexión (I2C, SPI,
USB, serial) y puertos de E/S.
Ventajas de utilizar SOC
Dispositivos diseñados con SOC se
adaptan mejor a nuevos requerimientos
que los diseñados con
microcontroladores
Permiten utilizar Sistemas Operativos
de propósito general, software, device
drivers y periféricos utilizados en Pcs
Acortan la curva de aprendizaje
En resumen
Diseños basados en SOC presentan
muchas ventajas respecto los sistemas
basados en µC.
Sin embargo existen casos de
dispositivos muy sencillos, o que
requieren muy bajo consumo, donde los
diseños basados en µc siguen siendo
utilizados.
Embedded Single Board
Computers (SBC) (1/2)
Single-board computers (SBCs) son
computadoras completas fabricadas
en una única placa de circuito. El
diseño es centrado en un
microprocesador con RAM,
almacenamiento, E/S y otras
características necesarias para ser
una computadora funcional en una
sola placa.
Embedded Single Board
Computers (SBC) (2/2)
Actualmente existe una gran gama de SBC
basadas en SOC.
Un SOC por si solo no puede funcionar,
necesita de alimentación, acondicionamientos
de señales, conectores, y algún controlador
adicional.
Más pequeñas, más eficientes
energéticamente y con mayores posibilidades
de E/S que un sistema tradicional.
Ventajas de desarrollar
basado en SBC
Son utilizadas muchas veces para prototipar
soluciones.
Para producción de pocas unidades no es
rentable diseñar hardware. Diseñar en base a
SBCs resulta una opción a tener en cuenta.
Existen diferentes SBC según las necesidades
del sistema embebido a realizar.
Orientadas a multimedia, robótica, aplicaciones
móviles.
Acertijo
Funciona con Linux, pero para que sirve?
Respuesta:
Para ordeñar vacas
Linux Embebido en nuestras vidas
Estado actual de los S.E.
Hoy en día los S.E. tienen más puntos en
común con los sistemas de propósito general
que en el pasado.
Herramientas de desarrollo de mayor nivel de
abstracción.
Reutilización de software y periféricos
utilizados en sistemas de propósito general
Es necesario contar con equipos
interdisciplinarios.
Preguntas