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, …
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: |
|