Ingeniería de Sistemas Electrónicos (ISEL)
El objetivo de esta asignatura es que el alumno comprenda cómo funcionan los sistemas empotrados basados en
microprocesador y las herramientas de diseño HW y SW asociadas, así como las restricciones de los sistemas empotrados, que
sea capaz de analizar errores de diseño HW y SW, y diseñar optimizadamente el software de un sistema empotrado teniendo en
cuenta las posibles restricciones de memoria, tiempo y energía impuestas por dominios de aplicación TIC o no TIC, como los
sistemas optoelectrónicos, los neurosensoriales, los portátiles o los móviles.
El curso cuenta con unas clases teóricas donde el alumno recibirá formación sobre análisis y diseño de sistemas y subsistemas
empotrados basados en microprocesadores, y unas entregas prácticas evaluadas en equipo en las que aplicarán los
conocimientos teóricos adquiridos. Finalmente, el alumno tendrá que realizar un examen final teórico/práctico.
Objetivos docentes:
El objetivo principal de esta asignatura es que el alumno sea capaz de enfrentarse al diseño de un sistema empotrado (hardware y software), considerando las restricciones de recursos. Al acabar la asignatura el alumno debe ser capaz de analizar, diseñar, implementar, explotar y gestionar este tipo de sistemas.
Las competencias específicas de la asignatura son:
- Entender el funcionamiento de sistemas empotrados basados en microcontrolador
- Entender las limitaciones de los sistemas empotrados
- Entender el funcionamiento de los sistemas de síntesis (HW y SW) de sistemas empotrados
- Analizar errores de diseño en base a los defectos observados y el conocimiento de las herramientas de desarrollo.
- Analizar propiedades básicas sobre el comportamiento de los sistemas empotrados
- Optimizar el software de un sistema empotrado para restricciones de memoria, a nivel de aplicación, configurando las herramientas de desarrollo o seleccionando componentes.
- Optimizar el software de un sistema empotrado para restricciones estrictas de tiempo, a nivel de aplicación, configurando las herramientas de desarrollo o seleccionando componentes.
- Optimizar el software de un sistema empotrado para restricciones de consumo, a nivel de aplicación, configurando las herramientas de desarrollo o seleccionando componentes.
- Optimizar el software de un sistema empotrado para restricciones de seguridad, a nivel de aplicación, configurando las herramientas de desarrollo o seleccionando componentes.
- Conocer las tendencias actuales en verificación formal.
Programa:
Los contenidos que constituyen la asignatura son los siguientes:
Tema 1: Introducción
1.1 Conceptos básicos
1.2 Programación de Sistemas Empotrados
1.3 Herramientas de desarrollo
1.4 Microcontroladores. AVR
Tema 2: Programación de sistemas empotrados
2.1 Relación con el resto de la asignatura
2.2 Conceptos generales de desarrollo cruzado
2.3 Compiladores
2.4 Soporte en tiempo de ejecución
Tema 3: Herramientas de desarrollo
3.1 Introducción
3.2 Herramientas de desarrollo cruzado de GNU
3.3 El compilador GCC, técnicas para evitar errores
3.4 El enlazador de GNU y definición del mapa de memoria
3.5 Depuración de sistemas empotrados. El depurador de GNU: GDB
3.6 Técnicas avanzadas de depuración
Tema 4: Sistemas empotrados de tiempo real
4.1 Introducción
4.2 Planificación con ejecutivos cíclicos.
4.3 Realización de sistemas con prioridades
4.4 Otros métodos de planificación
Tema 5: Gestión eficiente de la memoria
5.1 Compilación para memorias limitadas.
5.2 Técnicas básicas de programación para el ahorro de memoria.
5.3 Técnicas de gestión de memoria dinámica.
Tema 6: Diseño de Sistemas basados en Microcontrolador 6.1 Esquema general
6.2 Arquitectura
6.3 Procesadores
6.4 Memoria
6.5 Sistemas de entrada/salida
Tema 7: Microcontroladores para sistemas empotrados 7.1 Microchip PIC
7.2 AVR
7.3 MIPS
7.4 ARM y comparación
Tema 8: Seguridad en Sistemas Empotrados
8.1 Ataques lógicos. Buffer overflow y contramedidas
8.2 Ataques de canal auxiliar
8.3 Análisis de tiempos
8.4 Análisis de consumo
8.5 Ataques diferenciales
8.6 Contramedidas a nivel lógico, arquitectural y algorítmico
Tema 9: Fiabilidad
9.1 Modelos de computación y propiedades formales
9.2 Requisitos de fiabilidad
9.3 Técnicas de análisis
9.4 Métodos formales
9.5 Verificación formal con Model Checking
Tema 10: Aplicaciones y diseños
10.1 Ejemplos de aplicaciones y diseños de sistemas empotrados
La asignatura se realizará en forma individual. La evaluación se realizará en base a:
- Examen final teórico-práctico: 50% de la nota final
- Ejercicios entregados a lo largo del curso: 15 % de la nota final
- Participación en paneles y debates: 15 % de la nota final
- Presentación sobre un aspecto concreto de la asignatura: 20% de la nota final