• No se han encontrado resultados

Unidad Didáctica 1: Introducción y conceptos básicos. Sistemas embebidos para tiempo real

N/A
N/A
Protected

Academic year: 2022

Share "Unidad Didáctica 1: Introducción y conceptos básicos. Sistemas embebidos para tiempo real"

Copied!
54
0
0

Texto completo

(1)

Unidad Didáctica 1:

Introducción y conceptos básicos

Sistemas embebidos para tiempo real

(2)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 2

Objetivos

• Definir sistemas embebidos e identificar sus características.

• Describir el hardware y explicar las

consideraciones de diseño a tener en cuenta

• Definir sistemas de tiempo real e identificar sus características

• Indicar la importancia del uso de lenguaje C en

los sistemas embebidos y de tiempo real

(3)

Índice

• Sistemas embebidos

– Definición / Características / Consideraciones de diseño / Ejemplos

• Sistemas de tiempo real

– Definición / Características

• Sistemas embebidos y de tiempo real

– Ejemplos

(4)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 4

Terminología

• Términos embebidos en la temática del curso:

inconsistentes entre compañías, etc.

• Cada concepto múltiples términos

• Cada término múltiples significados

• Área cubre amplio espectro de productos

– dificultad al generalizar

• Necesidad de un “lenguaje común”

– al menos en la clase, y luego en profesional

embedded => empotrado, integrado, embebido

(5)

Actividad en grupo

• ¿Qué es un “sistema embebido”?

– Objetivo:

• Lograr una primera aproximación consensuada sobre el término “sistema embebido”

• Escribir: Definición (tentativa) / Características

– Grupos:

• 3 a 4 participantes

– Tiempo:

(6)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 6

“An embedded system is an engineering artifact involving

computation that is subject to physical constraints. The physical constraints arise through two kinds of interactions of computational processes with the physical world: (1) reaction to a physical

environment, and (2) execution on a physical platform. [...] Common reaction constraints specify deadlines, throughput, and jitter; they originate from the behavioral requirements of the system. Common execution constraints put bounds on available processor speeds, power, and hardware failure rates; they originate from the implementation requirements of the system.”

Thomas A. Henzinger and Joseph Sifakis

"The Embedded Systems Design Challenge”, Invited Paper,

Formal Methods for Security and Trust in Industrial Applications, 2006.

¿Qué es un sistema embebido?

(7)

Un sistema embebido es un dispositivo:

– realiza procesado/computación

sujeto a restricciones físicas.

reacción al entorno físico,

ejecución en cierta plataforma física

Restricciones:

reacción: deadlines, throughput, jitter...

ejecución: velocidad del procesador, potencia/energía, tasa de falla de hardware...

¿Qué es un sistema embebido?

(8)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 8

¿Qué es un sistema embebido?

• Definición:

– Dispositivos electrónicos que incorporan una

computadora (normalmente un microprocesador) en su implementación.

– Microprocesador usado principalmente para

simplificar el diseño del sistema y darle flexibilidad.

(9)

¿Qué es un sistema embebido?

• Características:

– Requerimientos específicos y realiza tareas predefinidas.

– Frecuentemente el usuario no es consciente que se usa una computadora.

– Recursos limitados.

– Costo reducido por ser productos de consumo.

(10)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 10

¿Qué es un sistema embebido?

• Características: en general no tienen

– teclados

• si pueden tener botones y tecladito (keypads)

– pantalla (monitor)

• si pueden tener LEDs o pantallita de LCD

– discos duros

• si pueden tener discos ROM/RAM.

– CD’s, diskettes, etc.

• si pueden tener conexiones (red, modems)

(11)

Sistemas embebidos: hardware

memoria cpu

hardware

•Logica

usuario

I/O

sensores actuadores

(12)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 12

Sistemas embebidos: hardware

Microprocesador (uP)

– Chip que contiene la CPU

– Ejemplos: Intel (PC), ARM, DSP

Microcontrolador (uC)

– Básicamente un uP con memoria y periféricos I/O

– Diseñados para funciones especificas

– Solución integral: reducción de partes, costo, potencia, tamaño.

– Ejemplos: MSP430 (Texas Inst.), Atmega (Atmel), PIC (Microchip), ARM (múltiples fabricantes).

SoC (System on chip) o SiP (System in a package)

– Microcontrolador más RF

– Procesador + co-procesadores (imágenes/video)

(13)

Sistemas embebidos: hardware

• Disponibilidad de un amplio rango de

microprocesadores y/o microcontroladores

– Costo y rendimiento varían dependiendo de:

• tamaño de palabra/bus

• memoria interna y periféricos

– temporizadores, puertos E/S , canales DMA, etc.

• Soporte para memoria externa

• velocidad de reloj

(14)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 14

¿Cuán potentes son los uC embebidos?

0.0%

10.0%

20.0%

30.0%

40.0%

50.0%

60.0%

4-bit 8-bit 16-bit 32-bit 64-bit Special

1998-1999 1999-2000

Fuente: Encuesta “TRON Association” (1998-1999 y 199-2000) Extraído de: “Fundamentals of Embedded Software” (Daniel W. Lewis)

(15)
(16)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 16

(17)

Criterios generales de diseño

• Rendimiento (performance)

• Confiabilidad (reliability)

• Misiones críticas (Mission Critical)

• Riesgo de vida (Life-Threatening)

• No se pude rebootear!

• Disponibilidad (availability)

• 24 hs /dia, 7 dias/semana, 365 dias/año

(18)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 18

Otras consideraciones de diseño

• Consumo de energía (potencia)

• ¿Como diseñamos para maximizar la duración de las baterías?

• Costo del sistema

• Minimizar costo de fabricación (sobretodo cuando es producto de consumo, grandes volúmenes)

• Mínima memoria, OS pequeño

• Balance de necesidades contrapuestas

• Ejemplo: frecuencia de reloj

– baja: para consumo

– alta: para respuesta a eventos y procesamiento en ráfagas.

(19)

Sistemas embebidos: software

• Problemas diferentes a los presentes en PC.

– Se debe:

• responder a eventos externos

– botones, lectura de sensores, etc.

• resolver condiciones excepcionales sin intervención

• realizar varias tareas simultáneamente

• cumplir con tiempos limites estrictos (deadlines)

(20)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 20

Sistemas embebidos: software

• Se debe considerar.

– Capacidad de procesamiento (throughput)

• ¿El procesamiento es suficientemente rápido?

– Tiempo de respuesta (response time)

• ¿Se pude responder suficientemente rápido a los eventos?

– “Testeable” (capacidad de prueba, testability)

• ¿Se puede verificar que funciona bajo “toda” condición?

– “Depurable” (debugability)

• ¿Se pueden ubicar y resolver los errores de funcionamiento?

– Confiable (reliability)

• ¿Cubre las expectativas y necesidades de confiabilidad?

(21)

Ejemplo de productos

Extraídos de slides de Daniel Lewis (2001)

Proyectos del IIE

Otros

(22)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 22

Ejemplos de productos

• Producto:

Hunter Programmable Digital Thermostat.

• Microprocesador:

4-bit.

Fuente: Daniel W. Lewis, “Fundamentals of Embedded Software”

(23)

Ejemplos de productos

• Producto:

Vendo V-MAX 720 vending machine.

• Microprocesador:

8-bit Motorola 68HC11.

(24)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 24

Ejemplos de productos

• Producto:

Sonicare Plus toothbrush.

• Microprocesador:

8-bit Zilog Z8

Fuente: Daniel W. Lewis, “Fundamentals of Embedded Software”

(25)

Ejemplo de productos

• Producto:

Miele dishwashers.

• Microprocesador:

8-bit Motorola 68HC05

(26)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 26

Ejemplo de productos

• Producto:

NASA's Mars Sojourner Rover.

• Microprocesador:

8-bit Intel 80C85

Fuente: Daniel W. Lewis, “Fundamentals of Embedded Software”

(27)

Ejemplo de productos

• Producto:

CoinCo USQ-712 coin changer.

• Microprocesador:

8-bit Motorola 68HC912.

(28)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 28

Ejemplo de productos

• Producto:

Garmin StreetPilot GPS Receiver.

• Microprocesador:

16-bit.

Fuente: Daniel W. Lewis, “Fundamentals of Embedded Software”

(29)

Ejemplo de productos

• Producto:

Sony Aibo ERS-110 Robotic Dog.

Microprocesador:

64-bit MIPS RISC.

(30)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 30

Ejemplo de productos

Fuente: Daniel W. Lewis, “Fundamentals of Embedded Software”

(31)

Ejemplo de productos

• Producto:

SiAgro2 (2007)

• Microprocesador: MSP430

(32)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 32

Ejemplo de productos

• Producto:

GloboSat01 IIE (2008)

• Microprocesadores:

• ATmega2560 (aplicación)

• PIC16F877A (telemetría)

(33)

Ejemplo de productos

• Producto:

AntelSat (IIE)

• Microprocesadores:

• MSP430

(34)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 34

Ejemplo de productos

• Producto:

uClim-monitor (GME-IIE)

• Microprocesadores:

• CC2538 (Cortex-M3)

(35)

Ejemplo de productos

www.meterplug.com/

www.fitbit.com

• Tecnología:

Bluetooth low energy

• Microcontroladores:

• ¿CC2541, cuáles mas?

(36)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 36

Actividad en grupo

• ¿Qué es un “Sistema de tiempo real”?

– Objetivo:

• Reflexionar sobre los sistemas con características “tiempo real” y aquellos que no las tienen.

• Escribir: Definición (tentativa) / Características

– Grupos:

• 3 a 4 participantes

– Tiempo:

• 5 minutos

– Puesta en común.

(37)

¿Que es un sistema de tiempo real?

• Definición:

– Un sistema de tiempo real es aquel en el que la

corrección del resultado depende tanto de su validez lógica como del instante en que se produce.

• Características:

– sistema reactivo

• el sistema reacciona ante eventos externos

• los eventos detectados en las entradas provocan otros eventos

(38)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 38

• Definición:

– “Un sistema de tiempo real es un sistema que debe satisfacer tiempos de respuestas explícitos, bajo riesgo de consecuencias graves, incluyendo el fallo.”

• Si un tiempo limite no se cumple, el sistema puede fallar.

• Ejemplos:

• El avión se estrella...

• La planta nuclear entra en un estado crítico...

• Clasificación para diferenciar que tan críticos son los tiempos límite...

¿Que es un sistema de tiempo real?

(39)

Clasificación

• Sistema de tiempo real “blando”

(Soft Real-Time System)

– perder un deadline produce la degradación del sistema

• Sistema de tiempo real “duro”

(Hard Real-Time System)

– perder un deadline puede producir la falla del

(40)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 40

¿Que significa multitarea?

• Primero respondamos:

– ¿Todos los sistemas embebidos son de tiempo real?

• Sistemas embebidos: sistemas con muchas I/O:

– deben responder a eventos independientes (asíncronos)

• Separar el código en tareas simplifica la programación, pero es necesario un mecanismo para conmutar entre tareas.

• Concurrencia es la apariencia de la ejecución simultánea de múltiples tareas.

• Diferentes arquitecturas: simples hasta RTOS

(41)

Utilización de RTOS

20.0%

40.0%

60.0%

80.0%

100.0%

(42)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 42

(43)
(44)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 44

¿Qué lenguajes de prog. se utilizan?

0.0%

10.0%

20.0%

30.0%

40.0%

50.0%

60.0%

70.0%

80.0%

90.0%

Assembly C C++ Java Other

1998-1999 1999-2000

Fuente: Encuesta “TRON Association” (1998-1999 y 199-2000) Extraído de: “Fundamentals of Embedded Software” (Daniel W. Lewis)

(45)
(46)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 46

El lenguaje C

• Es la lingua franca de los sistemas embebidos

– Compiladores C disponibles para todos los uC – C es suficientemente de bajo nivel

• C fundamental para el curso

– Laboratorios hechos en C (+ algo de ensamblador) – El texto asume “ conocimientos de lectura”

• C es razonablemente portable, pero no totalmente

• Otros:

– C++ es más complicado y no universalmente soportado

– EC y EC++

(47)

Sistemas embebidos

• ¿Por qué no?

– Java – Linux

– Android/Linux

(48)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 48

Bibliografía

“An Embedded Software Primer”, David E. Simon

– Chapter 1: A First Look ate Embedded Systems

Real-Time Embedded Systems, Xiaocong Fan

– Chapter 1: Introduction to Embedded and Real- Time Systems

"Embedded market study.", Tech, U. B. M.

DesignWest Conference and Exhibition, McEnergy

Convention Center, San Jose, CA. 2013.

(49)

El tiempo pasa....

(50)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 50

Ejemplo de productos

• Producto:

Palm Vx handheld.

• Microprocesador:

32-bit Motorola Dragonball EZ.

Fuente: Daniel W. Lewis, “Fundamentals of Embedded Software”

(51)

Ejemplo de productos

• Producto:

Motorola i1000plus iDEN Multi-Service Digital

Phone.

• Microprocesador:

Motorola 32-bit MCORE.

(52)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 52

Ejemplo de productos

• Producto:

Rio 800 MP3 Player.

• Microprocesador:

32-bit RISC.

Fuente: Daniel W. Lewis, “Fundamentals of Embedded Software”

(53)

Ejemplo de productos

• Producto:

RCA RC5400P DVD player.

• Microprocesador:

32-bit RISC.

(54)

Sistemas embebidos de tiempo real

Intr. y conceptos básicos 54

Ejemplo de productos

• Producto:

IBM Research’s Linux wrist watch prototype.

• Microprocesador:

32-bit ARM RISC.

Fuente: Daniel W. Lewis, “Fundamentals of Embedded Software”

Referencias

Documento similar

Hipótesis: La aplicación de un parche de tiempo real al sistema operativo Linux compilado para plataformas ARM2, permitirá desarrollar aplicaciones con altas exigencias de tiempo

„ Los sistemas tiempo real suelen estar integrados en un sistema de ingeniería más general, en el que realizan funciones de control y/o monitorización:.. „ SISTEMAS

Cosas que importa saber sobre el microcontrolador para empezar un proyecto de sistemas embebidos:.. ● Tipo procesador, tamaño palabra,

Prólogo Modelado de Sistemas de Tiempo Real Del Modelo al Código Epílogo.. Modelado de Sistemas de

3 Muchos sistemas de tiempo real son componentes de otros sistema s, en los que realizan funciones de control9.

Curso Optativo: Sistemas de Tiempo Real Resumen de la propuesta: En este curso se presenta una introducción práctica a los sistemas de Tiempo- Real utilizando Linux, Real-Time

Este proyecto plantea como objetivo general, el desarrollo de técnicas de modelado, diseño, análisis, optimización y testeo de sistemas embebidos con restricciones de tiempo

Este proyecto plantea, como objetivo general, el desarrollo de técnicas de modelado, diseño, análisis, optimización y prueba de Sistemas Embebidos con