Guía docente de la asignatura

Programación de Sistemas Empotrados y de Tiempo Real

Curso 2021 / 2022
Fecha última actualización: 14/06/2021
Fecha de aprobación: 14/06/2021

Grado

Grado en Ingeniería de Tecnologías de Telecomunicación

Rama

Ingeniería y Arquitectura

Módulo

Complementos de Telemática

Materia

Complementos de Telemática

Curso

4

Semestre

2

Créditos

6

Tipo

Optativa

Profesorado

Teoría

  • Juan Antonio Holgado Terriza. Grupos: A

Prácticas

  • Juan Antonio Holgado Terriza. Grupos: 1 y 2

Tutorías

Juan Antonio Holgado Terriza

jholgado@ugr.es
  • Primer semestre
    • Lunes de 10:30 a 13:30 (Etsiit Despacho 13 3ª Pla)
    • Miércoles de 10:30 a 13:30 (Etsiit Despacho 13 3ª Pla)
  • Segundo semestre
    • Lunes de 13:30 a 14:30 (Etsiit Despacho 13 3ª Pla)
    • Martes de 10:30 a 14:30 (Etsiit Despacho 13 3ª Pla)
    • de 13:30 a 14:30 (Etsiit Despacho 13 3ª Pla)

Prerrequisitos y/o Recomendaciones

Los alumnos no tendrán que tener materias o asignaturas aprobadas como requisito indispensable para superar esta materia. No obstante, se recomienda tener aprobados los contenidos y adquiridas las competencias de cuatrimestres precedentes.

Breve descripción de contenidos (Según memoria de verificación del Grado)

  • Requerimientos particulares de sistemas empotrados y de tiempo real.
  • Entornos de ejecución: sistemas operativos.
  • Modelos de planificación y análisis temporal de tareas.
  • Programación de aplicaciones empotradas. Interacción con el hardware. Control del Tiempo. Gestión de Eventos. Control de Recursos.
  • Diseño, configuración, despliegue y depuración de aplicaciones empotradas.

Competencias asociadas a materia/asignatura

Competencias específicas

  • CE31 - Capacidad para conocer sistemas operativos y los detalles de implementación. 

Competencias transversales

  • CT01 - Capacidad de análisis y síntesis: Encontrar, analizar, criticar (razonamiento crítico), relacionar, estructurar y sintetizar información proveniente de diversas fuentes, así como integrar ideas y conocimientos.  
  • CT02 - Capacidad de organización y planificación así como capacidad de gestión de la Información. 
  • CT03 - Capacidad de comunicación oral y escrita en el ámbito académico y profesional con especial énfasis, en la redacción de documentación técnica. 
  • CT04 - Capacidad para la resolución de problemas. 
  • CT05 - Capacidad para tomar decisiones basadas en criterios objetivos (datos experimentales, científicos o de simulación disponibles) así como capacidad de argumentar y justificar lógicamente dichas decisiones, sabiendo aceptar otros puntos de vista. 
  • CT06 - Capacidad para el uso y aplicación de las TIC en el ámbito académico y profesional.  
  • CT07 - Capacidad de comunicación en lengua extranjera, particularmente en inglés. 
  • CT08 - Capacidad de trabajo en equipo. 
  • CT09 - Capacidad para el aprendizaje autónomo así como iniciativa y espíritu emprendedor. 
  • CT10 - Motivación por la calidad y la mejora continua, actuando con rigor, responsabilidad y ética profesional.  
  • CT11 - Capacidad para adaptarse a las tecnologías y a los futuros entornos actualizando las competencias profesionales.  
  • CT12 - Capacidad para innovar y generar nuevas ideas. 
  • CT13 - Sensibilidad hacia temas medioambientales. 
  • CT14 - Respeto a los derechos fundamentales y de igualdad entre hombres y mujeres. 
  • CT15 - Capacidad para proyectar los conocimientos, habilidades y destrezas adquiridos para promover una sociedad basada en los valores de la libertad, la justicia, la igualdad y el pluralismo. 

Resultados de aprendizaje (Objetivos)

  • Reconocer las particularidades especiales de los sistemas empotrados y de tiempo real en cuanto a sus requerimientos, diseño o programación.
  • Conocer las técnicas de programación, lenguajes de programación, y herramientas de desarrollo disponibles para la programación de este tipo de sistema.
  • Seleccionar el entorno de ejecución (firmware o sistema operativo) más adecuado para la implementación de aplicaciones sobre entornos empotrados.
  • Determinar las necesidades de tiempo real de una aplicación, evaluar su impacto en los entornos de ejecución, y analizar el modelo de planificación más adecuado.
  • Aprender a diseñar, implementar, configurar y desplegar una aplicación empotrada sobre una plataforma empotrada concreta atendiendo a los requerimientos específicos de la aplicación.
  • Realizar pequeños proyectos de sistemas empotrados para casos prácticos de sistemas de control de procesos, domótica, robots móviles, instrumentación, …, haciendo especial hincapié en las características de conectividad.

Programa de contenidos teóricos y prácticos

Teórico

Tema 1: Introducción a los sistemas empotrados y de tiempo real. Consideraciones y requerimientos particulares del diseño de sistemas empotrados: criticidad, cumplimiento de requisitos temporales, coste por unidad, consumo de energía,... Hardware y software básico de un sistema empotrado. Tipos de entornos empotrados. Desarrollo de software para sistemas empotrados: Esquema host-target. 

Tema 2. Lenguajes de programación y entornos de ejecución. Características básicas de los lenguajes de programación. Componentes de un sistema empotrado. Entornos de ejecución: firmware y sistemas operativos. Sistemas Operativos Empotrados y de Tiempo Real: El estándar POSIX. Análisis y selección del entorno de ejecución más adecuado.

Tema 3. Diseño, configuración, despliegue y depuración de aplicaciones empotradas. Esquemas de diseño de una aplicación empotrada. Herramientas de programación: depuradores, emuladores, compiladores cruzados, … Técnicas de depuración. Despliegue de una aplicación empotrada: carga software y hardware.

Tema 4: Tareas y Concurrencia. Particionamiento del software en tareas. Modelos de gestión de tareas en un entorno empotrado: ejecutivo cíclico, sistemas foreground-background, sistemas basado en prioridades. Planificación de tareas de tiempo real: algoritmos de planificación. Análisis temporal de tareas. Mecanismos de comunicación y sincronización entre tareas. Inversión de prioridad: mecanismos de acceso a recursos compartidos.

Tema 5: Interacción con el hardware. Modelos de abstracción del hardware. Manejador de dispositivos de E/S. Gestión de memoria: memoria montón y pila. Gestión de eventos: interrupciones y excepciones. Implementación de un controlador de dispositivo.

Tema 6: Control y medida del tiempo. Medida del tiempo: Relojes. Activación de tareas: retardos y temporizadores. Plazos de Tiempo: Timeout. Watchdog.

Tema 7: Gestión y control de recursos. Introducción. Uso de recursos en acciones atómicas. Control de acceso a recursos. Esquemas de gestión de recursos.

Tema 8: Conectividad. Buses y comunicaciones en sistemas empotrados. Modelos de abstracción de protocolos de comunicaciones. Aplicación a sistemas de telecomunicaciones: redes de sistemas empotrados, redes de sensores, sistemas basados en Internet, sensores inteligentes, …

Tema 9: Desarrollo de un proyectos software para entornos empotrados. Métodos y técnicas avanzadas para el desarrollo de proyectos empotrados. Ciclos de vida para el desarrollo de empotrados (desarrollo rápido de aplicaciones, prototipado rápido, ...).

Práctico

Práctica 1. Entorno empotrado de recursos limitados: Arduino. Gestión de entradas/salidas.

Práctica 2. Monitorización de un sistema empotrado. Diseño de un cronómetro de alta precisión.

Práctica 3. Desarrollo de un controlador de tiempo real basado en ejecutivos cíclicos.

Práctica 4. Familiarización con entornos de ejecución de tiempo real sobre plataformas empotradas basadas en ARM (BeagleBone Black, Raspberry PI).

Práctica 5. Planificación de tareas de tiempo real: periódica y aperiódicas. Controlador de un brazo robótico.

Práctica 6. Diseño de un controlador de dispositivo: GPIO. Sistema de detección de intrusos.

Bibliografía

Bibliografía fundamental

  • Sistemas de Tiempo Real y Lenguajes de Programación (tercera edición). Alan Burns y Andy Wellings. Addison-Wesley (2002).
  • Embedded C. Michael Pont. Addison-Wesley (2002).
  • An Embedded Software Primer. David Simon. Addison-Wesley (2001)
  • Programming Embedded Systems: With C and GNU Development Tools, 2nd Edition (Paperback). Michael Barr. O’Reilly (2006).
  • Computers As Components: Principles of Embedded Computing Systems Design. Third Edition. Wayne Wolf. Morgan Kaufman Publisher, (2013)
  • Operating System Foundations with Linux and the Raspberry PI. Wim Vanderbauwhede and Jeremy Singer. Arm Education Media (2019)

Bibliografía complementaria

  • MicroC OS II: The Real Time Kernel. John Labrosse. Micrium Press (2002).
  • Embedded C Coding Standard. Michael Barr. Netrino Institute (2008).
  • Real-Time Concepts for Embedded Systems. Qing Li. CMP (2003).
  • Software Engineering for Real-Time Systems. Jim Cooling. Packt Press, (2019).
  • Hard Real-Time Computing Systems (Third Edition). Giorgio Buttazzo, G. Springer, (2013).
  • Programming Microcontrollers in C, Second Edition. , G. Springer, (2005).
  • Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers. Tammy Noergaard. Newnes, (2005)

Enlaces recomendados

En la página web de la asignatura (http://lsi.ugr.es/~psetr) se muestra información complementaria y recursos para la ampliación de conocimientos.

Metodología docente

  • MD01 Lección magistral 
  • MD02 Actividades prácticas 
  • MD03 Seminarios 
  • MD04 Actividades no presenciales 
  • MD05 Tutorías académicas 

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)

Evaluación ordinaria

Con objeto de evaluar la adquisición de los contenidos y competencias a desarrollar en la materia, se utilizará un sistema de evaluación diversificado, seleccionando las técnicas de evaluación más adecuadas en cada momento.

Utilizando un sistema de evaluación basado en evaluación continua que valorará los siguientes aspectos generales mediante la utilización de distintas técnicas evaluativas con una ponderación específica:

  • Para la parte teórica se realizarán exámenes finales o parciales, sesiones de evaluación y entregas de ejercicios sobre el desarrollo y los resultados de las actividades propuestas. La ponderación de este bloque es del 40%.
  • Para la parte práctica se realizarán prácticas de laboratorio, resolución de problemas y desarrollo de proyectos (individuales o en grupo), y se valorarán las entregas de los informes/memorias realizados por los alumnos, o en su caso las entrevistas personales con los alumnos y las sesiones de evaluación. La ponderación de este bloque es del 40%.
  • En su caso, la parte de trabajo autónomo y los seminarios se evaluarán teniendo en cuenta la asistencia a los seminarios, los problemas propuestos que hayan sido resueltos y entregados por los alumnos, en su caso, las entrevistas efectuadas durante el curso y la presentación oral de los trabajos desarrollados. La ponderación de estos es del 20%.

La calificación global corresponderá a la puntuación ponderada de los diferentes aspectos y actividades que integran el sistema de evaluación. Así, el resultado de la evaluación será una calificación numérica obtenida mediante la suma ponderada de las calificaciones correspondientes a una parte teórica, una parte práctica y, en su caso, una parte relacionada con el trabajo autónomo de los alumnos, los seminarios impartidos y el aprendizaje basado en proyectos.

Para aprobar la asignatura, es necesario que la calificación global sea al menos un 5 sobre 10, y que se apruebe la parte teórica de todos los bloques del temario.

Todo lo relativo a la evaluación se regirá por la Normativa de evaluación y calificación de los estudiantes vigente en la Universidad de Granada, que puede consultarse en:

http://secretariageneral.ugr.es/bougr/pages/bougr112/_doc/examenes/!

El sistema de calificaciones se expresará mediante calificación numérica de acuerdo con lo establecido en el art. 5 del R. D 1125/2003, de 5 de septiembre, por el que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y validez en el territorio nacional.

Régimen de asistencia:

La asistencia a las clases teóricas no es obligatoria, requiriéndose en cambio la asistencia a al menos el 50% de las sesiones programadas de seminarios y prácticas. En caso de incumplimiento se calificará con 0 puntos la parte correspondiente.

Evaluación extraordinaria

La evaluación de los estudiantes en la convocatoria extraordinaria se regirá por los mismos criterios y constará de las mismas pruebas que las indicadas en este documento para la evaluación única final (ver más abajo)

Evaluación única final

Para los estudiantes que se acojan a la evaluación única final, esta modalidad de evaluación estará formada por todas aquellas pruebas que el profesor estime oportunas, de forma que se pueda acreditar que el estudiante ha adquirido la totalidad de las competencias generales y específicas descritas en el apartado correspondiente de esta Guía Docente.

En concreto, los contenidos de teoría, de prácticas y de seminarios se evaluarán con un examen escrito por cada parte, siguiendo la ponderación especificada en la sección anterior.

Información adicional

ESCENARIO A (ENSEÑANZA-APRENDIZAJE PRESENCIAL Y TELE-PRESENCIAL)

Horario (Según lo establecido en el POD)

Se mantiene el horario habitual

Herramientas para la atención tutorial (Indicar medios telemáticos para la atención tutorial)

  • Tutorías presenciales con cita previa. Mensajes, foros y correo electrónico.
  • Tutorías virtuales por chat o videoconferencia, concertando hora previamente

Medidas de adaptación de la evaluación (Instrumentos, criterios y porcentajes sobre la calificación)

Las clases teóricas y prácticas se podrán impartir de dos modos:

  • Síncrono: De forma presencial en el aula y/o de forma virtual, en el horario habitual usando herramientas para videoconferencia para la docencia virtual.
  • Asíncrono: mediante clases grabadas disponibles en la plataforma PRADO.

El material de cada sesión de clase (si procede) estará disponible en la plataforma PRADO.

Evaluación ordinaria

Se mantiene el sistema de evaluación continua compuesto por tres partes con la misma ponderación

  • Teoría: 40%
  • Práctica: 40%
  • Trabajos: 20%
  1. Teoría: Se evalúa mediante la realización de la asistencia a clases (ahora virtuales a través de ZOOM en el horario habitual, la participación activa en clase o en el foro de PRADO,  y la resolución de cuestionarios al final de cada módulo que se entregan en PRADO.
  2. Prácticas: Se evalúa en base a la entrega de prácticas por los estudiantes a través de la plataforma PRADO utilizando los guiones de prácticas disponibles en PRADO. Se realizan sesiones prácticas mediante la plataforma ZOOM y utilizando recursos adaptados a la enseñanza virtual (simuladores, máquinas virtuales, etc.).
  3. Trabajos. Se evalúa mediante la entrega del trabajo a final de curso consistente en la elaboración de una parte teórica escrita, la realización de un parte práctica relacionado con dicho trabajo y una presentación pública del trabajo al resto de estudiantes. Las tutorías necesarias se realizan a través de Google Meet y ZOOM, y se valoran en cada caso los recursos materiales utilizados adaptados a la enseñanza virtual o la disposición de dichos recursos por parte de los estudiantes.

 

Evaluación extraordinaria

La evaluación de los estudiantes en la convocatoria extraordinaria se regirá por los mismos criterios y constará de las mismas pruebas que las indicadas en este documento para la evaluación única final (ver más abajo)

Evaluación única final

Se mantiene igual que en la guía original salvo que ambas pruebas (teoría y práctica) se realizarán de forma telemática, utilizando PRADO y, eventualmente, alguna herramienta para videoconferencia.

ESCENARIO B (SUSPENSIÓN DE LA ACTIVIDAD PRESENCIAL)

Horario (Según lo establecido en el POD)

El horario establecido en el POD

Herramientas para la atención tutorial (Indicar medios telemáticos para la atención tutorial)

  • Mensajes, foros y correo electrónico a través de PRADO.
  • Tutorías virtuales por videoconferencia, concertando hora previamente.

Medidas de adaptación de la evaluación (Instrumentos, criterios y porcentajes sobre la calificación)

  • Las clases teóricas se imparte de forma virtual en el horario habitual usado zoom. En PRADO se encuentran registrados todos los enlaces de las clases de teoría impartidas.
  • Los guiones de las prácticas y el material necesario para realizarlas está disponible en PRADO, y se mantienen sesiones de forma virtual en el horario habitual usando zoom.
  • Se realizan tutorías grupales para resolver dudas generales sobre las prácticas y los trabajos que se deben presentar a petición de los estudiantes

Evaluación ordinaria

Se mantiene el sistema de evaluación continua compuesto por tres partes con la misma ponderación

  • Teoría: 40%
  • Práctica: 40%
  • Trabajos: 20%
  1. Teoría: Se evalúa mediante la realización de la asistencia a clases virtuales a través de ZOOM en el horario habitual, la participación activa en clase o en el foro de PRADO,  y la resolución de cuestionarios al final de cada módulo que se entregan en PRADO.
  2. Prácticas: Se evalúa en base a la entrega de prácticas por los estudiantes a través de la plataforma PRADO utilizando los guiones de prácticas disponibles en PRADO. Se realizan sesiones prácticas mediante la plataforma ZOOM y utilizando recursos adaptados a la enseñanza virtual (simuladores, máquinas virtuales, etc.).
  3. Trabajos. Se evalúa mediante la entrega del trabajo a final de curso consistente en la elaboración de una parte teórica escrita, la realización de un parte práctica relacionado con dicho trabajo y una presentación pública del trabajo al resto de estudiantes. Las tutorías necesarias se realizan a través de Google Meet y ZOOM, y se valoran en cada caso los recursos materiales utilizados adaptados a la enseñanza virtual o la disposición de dichos recursos por parte de los estudiantes.

Evaluación extraordinaria

La evaluación de los estudiantes en la convocatoria extraordinaria se regirá por los mismos criterios y constará de las mismas pruebas que las indicadas en este documento para la evaluación única final (ver más abajo)

Evaluación única final

Se mantiene igual que en la guía original salvo que ambas pruebas (teoría y práctica) se realizarán de forma telemática, utilizando PRADO y, eventualmente, alguna herramienta para videoconferencia.