Teoría

 

Temario

 

El temario del curso de master es el siguiente:

 

1. Introducción a los sistemas empotrados. Consideraciones y requerimientos particulares del diseño de sistemas empotrados: criticidad, cumplimiento de requisitos temporales, coste por unidad, consumo de energía,... Hardware básico de un sistema empotrado. Comparación entre distintas arquitecturas comerciales de microcontroladores. Software básico de un sistema basado en microcontrolador. Desarrollo de software para sistemas empotrados. Herramientas de programación y técnicas de depuración.

 

2. El hardware de un sistema empotrado. Elementos básicos de un sistema empotrado. Tipos de procesadores empotrados: microcomputadores, DSPs, microcontroladores. Arquitectura Von Neumann y Harvard. Memorias RAM y ROM: memorias flash. Dispositivos de E/S: sensores, actuadores, conversores analógicos-digitales. Buses digitales: I2C, SPI, Dallas 1-Wire. Redes de comunicaciones cableadas (Ethernet, RS-232, RS-485, CAN, GPIB, USB, Firewire) o inalámbricas (IEEE 802.11x, Bluetooth, ...)

 

3. Desarrollo de software para empotrados. Introducción. Esquema host-target. Soportes de ejecución: núcleos y sistemas operativos empotrado de tiempo real (QNX, Windows CE, Linux, ...). Generación de imágenes firmware (BSPs). Herramientas de programación para sistemas empotrados: Depuradores, emuladores, ensambladores, compiladores, compiladores cruzados, … Técnicas de depuración. Soporte que ofrecen los distintos lenguajes de programación para el desarrollo de aplicaciones empotradas.

 

4. Técnicas de programación a bajo nivel del empotrado. Manejo de E/S a partir de mapeo de memoria. Manejo de interrupciones y excepciones. Gestión de memoria. Relojes y temporizadores: Watchdog. Diseño de driver de dispositivo: modelo sincrono y asíncrono.
 

5. Programación de aplicaciones con restricciones de tiempo real. Modelos de programación: ejecutivo cíclico, concurrente, distribuido. Tareas periódicas, aperiódicas y esporádicas. Planificadores basados en algoritmos RMA o EDF. Mecanismos de comunicación y sincronización entre tareas. Análisis temporal de tareas y del rendimiento de cada tarea
 

6. Redes de comunicaciones en entornos empotrados. Introducción. Tipos de redes. Protocolos de comunicaciones. Modelos de programación distribuidas (paso de mensajes, objetos remotos, agentes).
 

7. Java para el desarrollo de aplicaciones empotradas. ¿Por qué Java? Restricciones para el desarrollo de aplicaciones empotradas. Modelo de ejecución basado en la máquina virtual (JVM). Tipos de JVM (Interpretes, JIT, AOT, procesadores Java). Especificación e implementación de librerías de clases API: J2ME, Personal Java, RTSJ,....
 

8. Desarrollo de proyectos software para entornos empotrados. Métodos y técnicas avanzadas para el desarrollo de proyectos empotrados. Particionamiento Hardware/Software. Arquitectura software de un sistema. Metodología del proceso de desarrollo del sistema empotrado basado en el lenguaje UML (COMET, OCTOPUS, UML-RT, ...). Etapas del proceso de desarrollo (Análisis de los requerimientos, diseño e integración con el hardware, implementación, pruebas y mantenimiento del sistema). Ciclos de vida para el desarrollo de empotrados (desarrollo rápido de aplicaciones, prototipado rápido, ...).

 

8. Aplicaciones actuales y nuevas vías de investigación. Redes de sensores, automatización industrial, inteligencia ambiental, instrumentación virtual, control distribuido, sensores inteligentes, mecatrónica, …

 

 

Transparencias y Apuntes

 

Pincha en los enlaces y descarga las transparencias de los temas. Los archivos están protegidos con una contraseña (pídesela a tus profesores) y están en formato PDF ( .pdf) se pueden ver con Adobe Acrobat Reader (gratuito), o con GhostView (en sistemas GNU/Linux o Unix) o GSView (en sistemas Windows). Hay dos versiones disponibles, la versión normal con 2 transparencias por página, y la versión reducida con 4 transparencias por página.

 

Los apuntes están organizados en función de las sesiones presenciales del curso:

 

Presentación (normal / reducida

Sesión 1. Introducción. Características de los Sistemas Empotrados. Componentes de un Sistema Empotrado. Particionamiento hardware-software. Proceso de desarrollo. Aplicaciones actuales y tendencias. (normal / reducida
Sesión 2. El hardware de un sistema empotrado (normal / reducido).

Sesión 3: El software de un sistema empotrado. Lenguajes de programación. Entornos de Ejecución: Sistemas Operativos. Desarrollo cruzado de aplicaciones. Introducción al Tiempo Real: Planificación de Tiempo Real (normal / reducido)

Sesión 4. Java para Sistemas empotrados. (normal / reducida) 

Estudio de mercado de sistemas empotrados (PDF

 

Ejercicios:

Cuestionario de la Sesión 1. (PDF)

Cuestionario de la Sesión 2. (PDF)

Cuestionario de la Sesión 3. (PDF)

Encuesta. (PDF)

 

 

 

 

última actualización: