Está en la página 1de 48


¿Qué es un ¿Qué son los
Sistema sensores y
Embebido ? actuadores?
¿Qué es un Sistemas Embebido?
Es un sistema diseñado para realizar una
o algunas pocas funciones especificas,
frecuentemente en un sistema de
computación en tiempo real.

Al contrario de lo que ocurre con las PC


de escritorios, servidores,
supercomputadoras o clúster que son
de propósito general.
Ejemplos de Sistemas Embebidos
Son sistemas de hardware y software,
de propósito específico embebidos en
algún producto del mercado
Industria del hogar Industria de la Industria
telecomunicaciones Automotriz

Industria móvil
El Corazón del Sistema Embebido
Es el integrado que realiza el procesamiento del embebido
El Corazón del Sistema Embebido
Si Cerebro necesita desarrollar un producto nuevo embebido, puede
elegir usar entre diversas alternativas:
Microcontroladores
Microprocesadores
embebidos

Asic
FPGA
El Corazón del Sistema Embebido
Esos componentes Cerebro puede usarlas individualmente o juntarlas
para crear un para crear el producto embebido en una placa electrónica.
El Corazón del Sistema Embebido
Esos componentes Cerebro puede usarlas individualmente o juntarlas
para crear un para crear el producto embebido en una placa electrónica.

Microcontrolador Microprocesador
Embebido
Si un Circuito lo puedo reemplazar por un cable
no conviene hacerlo en un Sistema Embebido,
porque sale más caro que hacerlo solo con un
cable.

Para aprovechar al embebido, este tiene que


hacer un mínimo de procesamiento
Sensores y actuadores
SENSOR Es un dispositivo que está capacitado para detectar
acciones o estímulos externos y responder en
consecuencia.

Permite detectar las variaciones que sufren el


ambiente en donde se encuentra instalado
Sensores y actuadores
Es un dispositivo que está capacitado para realizar
ACTUADORES una determinada acción mecánica o la cual
modifica el ambiente en el que se encuentra
Sensores y actuadores
Estos son dispositivos que permiten comunicar al
OTROS sistema embebido con el exterior de manera que
pueda intercambiar información o almacenar datos.
PERIFERICOS
NO SON CONSIDERADOS NI SENSORES NI
ACTUADORES
Sensores y actuadores
SENSORES ACTUADORES
¿Qué Placa de desarrollo utilizo?
Placas existentes más utilizadas
Arduino
• No usan Sistema Operativo
• Usan microcontrolador, no
tienen CPU
• Se programa directamente el
firmware
• Se programa en lenguaje
Wiring (C modificado)

Raspberry PI
Raspberry PI 3 • Usa Sistema Operativo
• El SO oficial es Raspbian
• Usa un CPU Quad Core
• Se crean programas que lo ejecuta en SO
• Se programa en lenguaje Python
principalmente. Pero también se puede
programar en Java,C++, Node.js
Placas existentes más utilizadas
ESP8266 & ESP32
ESP32 • Por defecto funciona sin S.O, pero se puede
usar con un S.O de tiempo Real (FReeRTOS)
• Usa un CPU Xtensa de doble núcleo
• Se puede programar directamente en
Firmware o sobre S.O
• Se programa en lenguaje Wiring, Javascript
,C++ y MicroPython

Intel Galileo
Intel Galileo
• Usa Sistema Operativo Linux llamado Yoctos
• Usa un CPU Intel Quark SOC X1000
• Se crean programas que lo ejecuta en SO
• Se programa en lenguaje Wiring, Java,C++,
Node.js y python
Microcontrolador de Arduino UNO (ATMEGA 328)
Arduino UNO y sus partes
Raspberry PI 3 y sus partes

Es como una
Mini Computadora
•Quad Core 1.2GHz Broadcom
BCM2837 64bit CPU
•1GB RAM

Parecida a una
Pentium 4
Intel Galileo y sus partes

No tiene conector
de video

Parecida a una
Pentium 2
Bare-Metal vs S.O.

Con Sistema
Operativo Firmware
Bare-Metal
• Bare metal programming se refiere a escribir código que interactúa
directamente con el Hardware, es decir sin capas intermedias o sistemas
operativos.
• Hecho a medida del micro usado.
• Programar directamente en el micro.
• No hay Sistema Operativo, por eso
– Hay que arreglarse con lo implementado en silicio.
– Solo existen funciones, no software.
– No se pueden hacer aplicaciones, sino Firmware, ya que no hay SO
– No hay llamadas a sistemas. (no existe sistema)
– No hay interfaces predefinidas.
– No hay gestión de memoria.
• Todos los recursos a disposición. Cualquier cosa necesaria debe ser implementada.

No hay software autocontenido que se puede correr al llamarlo, debe ser colocado en el
medio del único hilo que esta corriendo. No hay método de llamada ni administración, es
todo código directo.
Firmware
• Programa que corre en Bare-Metal.
• Interactúa directamente con el HW.
• Lógica de bajo nivel, controla circuitos.
• Se encuentra en memoria interna del integrado.
• No se puede modificar fácilmente y esta asociado fuertemente al
hardware (por ej: BIOS).
Compilación Cruzada (CrossCompile)

• Un compilador cruzado es un compilador capaz de crear


código ejecutable para otra plataforma distinta a aquella en
la que el compilador se ejecuta.

• Esta herramienta es útil cuando quiere compilarse código para


una plataforma a la que no se tiene acceso, o cuando es
incómodo o imposible compilar en dicha plataforma
Como se conecta un Arduino para programarla

Intel x86 Cable Serie ATmega328p

Programa

Se programa por cable Serie


Como se conecta una Raspberry PI3 para programarla
(1° Alternativa)
Intel x86 Cable de red ARM

Programa

Se programa por cable de red


Usando ssh
Como se conecta una Raspberry PI3 para programarla
(2° Alternativa)
ARM

Se programa desde la misma Programa


placa
Depuración
GDB JTAG
Directa
Depuración Indirecta
Es hacer un printf en un sistema embebido
Es la forma en que se debuggea Arduino UNO
Indirecta

– Se define un puerto a utilizar lo mas bajo nivel posible.


– Se reciben mensajes a través de un terminal (en la PC).
– Se implementa a mano, afecta el programa original.
– Se debe hacer configurable por pre-compilador para quitarlo en la versión final.
– Si se necesita interactuar con el flujo del programa, se debe implementar un
monitor. (Da un prompt para interactuar por terminal)
Depuración Indirecta
Depuración Indirecta

Serial.print(“Enter Led Number 0 to 9 or ‘x’ to clear)


Depuración Indirecta

Intel x86 Cable Serie ATmega328p

Texto Texto
Texto

Programa Texto
Depuración usando GDB

GDB

– Es una herramienta que se implementa con el compilador.


– Permite el control de la ejecución del programa.
– En una PC se corre el cliente para poder controlar remotamente la ejecución.
– Permite ejecutar paso a paso el programa embebido

Computadora Sistema Embebido


Cliente Servidor

app

GDB Cable GDB Server

S.O Serial
S.O Linux
Windows

Cable de Red
Depuración usando JTAG.
JTAG

- Conexión serie que accede a la electrónica implementada dentro del procesador para controlar
su funcionamiento.
– Puede afectar el reloj del micro y se accede al HW, por dirección de memoria.
– Definida en IEEE 1149.1
– Acceso especifico a las patas del integrado.

Puerto
JTAG
Prototipo vs Producto Final
Arduino, Raspberry Pi, ESP32 son placas de desarrollo que se
usan principalmente para hacer prototipos

Una vez que el prototipo funciona y es estable, el circuito debe


ser implementado en un producto Final
Prototipo vs Producto Final

Prototipo Producto Final


Prototipo vs Producto Final
❑ Prototipo permite:
– Facilidad de desarrollo (ampliable)
– Se pueden probar muchas funcionalidades
– Es susceptible a fallas de Conexión en los componentes y de otro tipo
– Implementación de modelo funcional
– Se debe implementar todo lo que necesitamos, aunque hay bibliotecas que seguramente no vamos a
poder aplicar en el producto final.

❑ Producto Final.
– Hecho para ESA aplicación.
– Es mucho menos propenso a fallas de conexión
– Tiene funcionalidades mínimas de propósito especifico
– Tiene la forma final.
– Natural para el usuario.
– Costo acorde al mercado.
Prototipo vs Producto Final

Muchas veces lo ideal no se hace y para ahorrar costos, en el


producto final se usan placas Arduino o Raspberry Pi

También podría gustarte