El objetivo principal de la asignatura es adquirir los conocimientos necesarios para diseñar e implementar sistemas empotrados tanto en su vertiente hardware (diseño de interfaces de entrada/salida, diseño de sistemas de supervisión de microcontroladores, conexión de periféricos avanzados, diseño de hardware con inmunidad al ruido ...) como software (programación con recursos escasos, programación consciente del hardware, tiempo real a partir de interrupciones, concurrencia de tares de tiempo real, comunicaciones con periféricos avanzados ...)
Profesorado
Responsable
Enric X. Martin Rull (
)
Otros
Daniel Garcia Solà (
)
Fabio Francisco Banchelli Gracia (
)
Horas semanales
Teoría
1.2
Problemas
0.8
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
6
Competencias
Competencias Transversales
Lengua extranjera
G3 [Avaluable] - Conocer el idioma inglés con un nivel adecuado de forma oral y por escrito, y con consonancia con las necesidades que tendrán los graduados y graduadas en ingeniería informática. Capacidad de trabajar en un grupo multidisciplinar y en un entorno multilingüe, y de comunicar, tanto por escrito como de forma oral, conocimientos, procedimientos, resultados e ideas relacionadas con la profesión de ingeniero técnico en informática.
G3.2
- Estudiar con materiales escritos en inglés. Redactar un informe o trabajo de tipo técnico en inglés. Participar en una reunión técnica llevada a cabo en inglés.
Competencias Técnicas de cada especialidad
Especialidad ingeniería de computadores
CEC1 - Diseñar y construir sistemas digitales, incluyendo computadores, sistemas basados en microprocesadores y sistemas de comunicaciones.
CEC1.1
- Diseñar un sistema basado en microprocesador/microcontrolador.
CEC2 - Analizar y evaluar arquitecturas de computadores incluyendo plataformas paralelas y distribuidas, y desarrollar y optimizar software para dichas plataformas.
CEC2.2
- Programar considerando la arquitectura hardware, tanto en ensamblador como en alto nivel.
CEC2.3
- Desarrollar y analizar software para sistemas basados en microprocesadores y sus interfícies con usuarios y otros dispositivos.
CEC3 - Desarrollar y analizar hardware y software para sistemas empotrados y/o de muy bajo consumo.
CEC3.1
- Analizar, evaluar y seleccionar las plataformas hardware y software más adecuadas para el soporte de aplicaciones empotradas y de tiempo real.
CEC3.2
- Desarrollar procesadores específicos y sistemas empotrados; desarrollar y optimizar el software de estos sistemas.
Competencias Técnicas
Competencias técnicas comunes
CT7 - Evaluar y seleccionar plataformas de producción hardware y software para la ejecución de aplicaciones y de servicios informáticos.
CT7.2
- Evaluar sistemas hardware/software en función de un criterio de calidad determinado.
Objetivos
Dada una aplicación, determinar para cada tarea: su duración, el tiempo de espera máximo, el tiempo crítico de atención i programar la estrategia correcta para satisfacer estos requerimientos.
Competencias relacionadas:
CEC2.3,
CT7.2,
Identificar las regiones críticas de un programa y programar correctamente código libre de errores debido a la compartición de datos.
Competencias relacionadas:
CEC2.2,
CEC3.1,
Hallar las partes del código que se deben programar en ensamblador y las que se pueden programar con un lenguaje de alto nivel.
Competencias relacionadas:
CEC2.2,
Dimensionar correctamente la temporización del watchdog i ubicar los kicks del watchdog de forma correcta en el código.
Competencias relacionadas:
CEC3.2,
Determinar la arquitectura software más adecuada para una aplicación concreta, a partir del número de procesos, la carga computacional de estos y los requerimientos de respuesta immediata.
Competencias relacionadas:
CT7.2,
CEC3.1,
Determinar el mejor interfaz de comunicación serie para la comunicación entre dos circuitos integrados (processadores, processadores-interfaz).
Competencias relacionadas:
CEC2.3,
Generar las rutinas mínimas de abstracción de hardware para cualquier interfaz de comunicaciones.
Competencias relacionadas:
CEC2.3,
Colocar las protecciones adecuadas a un sistema microprocesador para su conectividad con el exterior.
Competencias relacionadas:
CEC3.2,
CT7.2,
Proteger contra la recepción i emisión de ruido EM de un sistema microprocesador.
Competencias relacionadas:
CEC1.1,
CT7.2,
Dimensionar correctamente la frecuencia de muestreo de una o varias señales segun su naturaleza y la carga computacional del micro.
Competencias relacionadas:
CEC3.1,
Configurar las tensiones de referencia del conversor AD con valores adecuados a partir del rango dinámico de la señal y la resolución requerida.
Competencias relacionadas:
CEC3.1,
Interpretar correctamente la representación de un señal periódico en un diagrama de Bode y su descomposición en series de Fourier.
Competencias relacionadas:
CT7.2,
Dado un circuito electrónico hallar sus impedancias de entrada y salida.
Seleccionar el dispositivo idóneo (transistor, relé, triac, optoaislador) para conectar cargas externas a pines del micro. Dimensionar correctamente los componentes necesarios para realizar la conexión.
Diseñar e interpretar correctamente el esquema electrónico de un circuito.
Competencias relacionadas:
CEC1.1,
CT7.2,
Defender un diseño hardware o software basado en microprocesador en una presentación frente a sus compañeros (objetivo de prácticas)
Competencias relacionadas:
CEC3.2,
G3.2,
CT7.2,
Dibujar e interpretar correctamente diagramas temporales.
Competencias relacionadas:
CT7.2,
CEC3.1,
Aprender a usar los componentes de laboratorio: osciloscopio, analizador lógico, etc.. (objectivo de prácticas)
Competencias relacionadas:
CT7.2,
Programar un sistema con diferentes sensors e interfícies cumpliendo unos requisitos de ejecución. (objectivo de prácticas)
Competencias relacionadas:
CEC2.3,
CT7.2,
CEC2.2,
Diseñar e implementar una solución con microcontrolador para un problema dado. (objectivo de prácticas)
Competencias relacionadas:
CEC3.2,
CEC1.1,
G3.2,
Contenidos
Introducción.
Características de los sistemas basados en microprocesador. Tipo, soluciones habituales en el mercado.
Aspectos Hardware
Hardware para sistemas basados ¿¿en microcomputador. Circuitos, componentes, diagramas de tiempo, diseño de esquemáticos. Entrada/Salida, alimentación, energía.
Aspectos Software de los sistemas basados ¿¿en microprocesador.
Optimización e inspección de código. Startup, linkaje, ubicación de código, bootloaders. Concurrencia, cambio de contexto, gestión de tareas, interrupciones, RTOS. Algoritmos estándar para captación de datos y control de sistemas.
Interfaces entre sistemas. Comunicaciones.
Descripción de interfaces I2C, SPI, CAN, Ethernet, Bluetooth, RF.
Protecciones, seguridad, compatibilidad electromagnética.
Diseño robusto al ruido, protecciones del sistema microprocesador, compatibilidad electromagnética. Watchdog, NMI, redundancia, monitorización.
Actividades
ActividadActo evaluativo
Introducción
Ver los tipos de soluciones disponibles en el mercado. Evaluar las más adecuadas para un problema. Entender su representación y las magnitudes asociadas.
Teoría: Características de los sistemas basados en microcomputadores, características, tipos, soluciones disponibles.
Aprendizaje autónomo: Se dará al alumno un conjunto de lecturas a realizar para conocer plataformas disponibles en el mercado.
Se hará un ejercicio de circuitos básicos en el montaje un microcomputador Objetivos:1011121314151618 Semana:
4
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h
E / S Analógicas y impulsionales.
Conceptos de E / S, como conectar sensores, puentes, resolución, precisión. Conceptos relacionados con frecuencia, muestreo, divisores de frecuencia.
Teoría: Conceptos de E / S, como conectar sensores, puentes, resolución, precisión. Conceptos relacionados con frecuencia, muestreo, divisores de frecuencia.
Problemas: Problemas básicos de como conectar sensores a microcontroladores. Circuitos con puentes. Problemas de resolución y precisión. Problemas relacionados con frecuencia, muestreo, divisores de frecuencia.
Aprendizaje autónomo: Se darán problemas al alumno para la práctica en casa de los ejercicios más habituales de E / S.
Se hará un ejercicio in situ sobre los aspectos hardware del sistema microcomputador. Objetivos:1920 Semana:
7
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h
Ruido, protecciones, compatibilidad EM.
Estudio de las protecciones contra el ruido eléctrico y las radiaciones EM. Garantizar la compatibilidad de los sistemas diseñados con el resto de sistemas existentes.
Teoría: Estudio de las protecciones contra el ruido eléctrico y las radiaciones EM. Garantizar la compatibilidad de los sistemas diseñados con el resto de sistemas existentes.
Problemas: Problemas prácticos de estudio de las protecciones contra el ruido en los circuitos diseñados.
Aprendizaje autónomo: Se hará un estudio sobre las protecciones contra el ruido aplicadas a los trabajos realizados en laboratorio.
Se hará un ejercicio de toda la interconexión de un microcontrolador en una placa y sus E / S. Objetivos:67101618 Semana:
8
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h
Interfaces entre sistemas
Se explicarán conceptos básicos de las interfaces de comunicación I2C, SPI, CAN, Ethernet, Bluetooth, RF ... para ser trabajadas en la práctica.
Teoría: Se explicarán conceptos básicos de las interfaces de comunicación I2C, SPI, CAN, Ethernet, Bluetooth, RF ... para ser trabajadas en la práctica.
Problemas: Problemas básicos para comprender el funcionamiento de las interfaces de comunicación serie.
Aprendizaje autónomo: Se propondrán lecturas y ejercicios para profundizar en las interfaces de comunicación I2C, SPI, CAN, Ethernet, Bluetooth, RF ...
Estudio de los sistemas de supervisión del funcionamiento de los microcontroladores: watchdogs, NMI, redundancia ...
Teoría: Estudio de los sistemas de supervisión del funcionamiento de los microcontroladores: watchdogs, NMI, redundancia ...
Problemas: Casos prácticos de los sistemas de supervisión del funcionamiento de los microcontroladores: watchdogs, NMI, redundancia ...
Aprendizaje autónomo: Lecturas relacionadas con los sistemas de supervisión del funcionamiento de los microcontroladores: watchdogs, NMI, redundancia ...
Optimización e inspección de código, startup, linkaje, ubicación del código, bootloaders. Concurrencia, cambios de contexto, gestión de interrupción, tareas y RTOS.
Teoría: Optimización e inspección de código, startup, linkaje, ubicación del código, bootloaders. Concurrencia, cambios de contexto, gestión de interrupción, tareas y RTOS.
Problemas: Problemas de optimización e inspección de código, startup, linkaje, ubicación del código, bootloaders. Ejercicios básicos sobre concurrencia, cambios de contexto, gestión de interrupción, tareas y RTOS aplicados a microcontroladores.
Aprendizaje autónomo: Se harán problemas y pequeños trabajos sobre los aspectos software de los sistemas basados ¿¿en microcomputadores.
1.- Se estudiará un artículo en inglés referido a aspectos software de los sistemes empotrados i se hará una presentación pública en catalan/castellano.
2.- Se hará un un diseño teórico de un sistema empotrado a partir de un enunciado. Se entregará una memoria del diseño redactada en inglés. Objetivos:12345 Semana:
14
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h
Preparación de los trabajos prácticos y las presentaciones
Se ayudará y guiará a los alumnos a preparar su trabajo práctico que mostrarán al final de curso.
Aprendizaje dirigido: Se ayudará y guiará a los alumnos a preparar su trabajo práctico que mostrarán al final de curso.
Se presentará al profesor el trabajo práctico de laboratorio i se comprobarà su funcionamiento. Objetivos:891721 Semana:
15 (Fuera de horario lectivo)
Teoría
0h
Problemas
0h
Laboratorio
3h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h
CT4. Control teoria 4
Prueba evaluatoria de los algoritmos habituales en microcontroladores. Aspectos software. Objetivos:125 Semana:
11
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h
Metodología docente
Habrá una gran complementación entre clases de teoría y problemas, las clases teóricas se reforzarán con ejemplos mostrando las posibles alternativas y soluciones a los problemas habituales. En algunos temas se propondrán ejercicios de autoevaluación para que el estudiante pueda ser consciente de su progreso, y pueda solicitar ayuda al profesor en el caso de que detecte alguna carencia. Las sesiones de prácticas se realizarán 'in situ' en el laboratorio docente del departamento en la FIB. Habrá dos prácticas grandes que requerirán el trabajo acumulativo de los alumnos en la confección de un proyecto.
Método de evaluación
La nota de la asignatura se obtendrá a partir de la media ponderada de las notas de teoría (40%), de las prácticas de laboratorio (40%) y del trabajo final (20%)
NF = 0.1 CT1 + 0.1 CT2 + 0.1 CT3 + 0.1 CT4 + 12:40 PL +0.2 TF (CT = control de teoría, PL = Prácticas de laboratorio, TF = Trabajo Final)
La nota de prácticas de laboratorio (PL) se obtendrá a partir de las notas puestas en clase durante la ejecución de las prácticas. Habrá al menos dos entregas parciales de prácticas.
Por otro lado los alumnos deberán realizar un diseño teórico de un sistema empotrado a partir de un enunciado, este trabajo se presentará al final de la asignatura y producirá la nota TF. La memoria del diseño estará redactada en inglés. Se evaluará la calidad del diseño, la elección de componentes y la presentación.
Con la memoria en inglés y la presentación del trabajo final se obtendrá la nota de la competencia transversal de inglés (G3.2)
Programación en lenguaje de alto nivel (preferiblemente C). Programación en lenguaje ensamblador de microcomputadores. Conocimientos de arquitectura de microcomputadores. Conocimientos de Sistemas Operativos. Conocimiento del funcionamiento de los diferentes componentes electrónicos: R, L, C, diodos y transistores MOS. Análisis de circuitos electrónicos en DC. Cálculo de tensiones, corrientes y consumos. Saber representar números en base binaria y hexadecimal, y realizar operaciones aritmético-lógicas. Conocer el funcionamiento de las diferentes puertas lógicas y bloques combinacionales o secuenciales. Saber analizar y sintetizar circuitos lógicos. Conocer el funcionamiento y estructura del procesador. Conocer el funcionamiento y jerarquía de la memoria de un computador. Entender correctamente documentación escrita en inglés. Saber redactar documentación técnica básica en inglés.