Nombre de la materia
Diseño de sistemas embebidos avanzados Disciplina
Tecnologías Electrónicas Nivel académico general
Profesional Intermedio - Enfoque Tipo de materia especifica
Bloque Tecnica didáctica
No especificado Tipo de periodo
Semestral Tipo horario
Proyecto Escuela
Ingeniería y Ciencias Departamento
Computación Intención
Es un curso de nivel intermedio en ingeniería electrónica enfocado a aplicaciones de sistemas digitales con capacidad de procesamiento en paralelo. Requiere conocimientos de Sistemas en Chip.Como resultado de aprendizaje el alumno diseña sistemas digitales embebidos utilizando algoritmos avanzados e interfaces computacionales, basados en alternativas como: procesamiento de señales digitales y procesamiento en paralelo. Objetivo general
Al terminar la unidad de formación el alumno:- Modela sistemas embebidos con capacidad de interacción que dan solución a una problemática determinada.- Implementa sistemas embebidos considerando especificaciones y restricciones del entorno.- Valida el funcionamiento de sistemas embebidos tomando en cuenta la eficiencia, costos y estándares.- Gestiona proyectos de diseño tecnológico mediante el uso eficiente de los recursos.- Selecciona los periféricos requeridos para interactuar con el medio que den solución a una problemática determinada.- Utiliza técnicas para el tratamiento de señales y el análisis de datos en tiempo real de acuerdo a necesidades específicas.- Programa unidades funcionales que generan la percepción, navegación, manipulación e interacción.- Selecciona la interfaz de acuerdo a su aplicación.- Selecciona el protocolo de comunicación de acuerdo a su aplicación.- Genera la interacción inteligente entre una unidad de procesamiento y sus periféricos. Temas
1. Análisis de Algoritmos.1.1 Complejidad algorítmica.1.2 Notación asintótica.1.3 Introducción a divide y vencerás.1.4 Algoritmos de ordenamiento.1.5 Complejidad de algoritmos recursivos. 2. Backtracking.2.1 Definiciones.2.2 El problema de las n damas.2.3 Búsqueda en laberinto. 3. Divide y vencerás.3.1 Multiplicación de matrices.3.2 Transformada rápida de Fourier. 4. Grafos.4.1 Definición y algunas propiedades de grafos.4.2 Depth-first search.4.3 Breath-first search.4.4 Best-first search.4.5 Algoritmo de Dijkstra.4.6 A*.4.7 Minimax.4.8 Poda alfa-beta. 5. Programación dinámica.5.1 Principios de programación dinámica.5.2 Problema del costal (knapsack).5.3 Problema del cambio.5.4 Subsecuencia incremental más larga. 6. Optimización.6.1 Algoritmo de escalada simple.6.2 Algoritmo de escalada de reinicio aleatorio.6.3 Recocido simulado.6.4 Búsqueda tabú.6.5 Algoritmos genéticos. 7. Interfaces seriales alámbricas.7.1 Arquitectura de interfaces seriales alámbricas.7.2 Interfaced RS-232.7.3 Interfaz RS-422.7.4 Interfaz RS-485.7.5 Interfaz SPI.7.6 Interfaz I2C.7.7 Interfaz Microwire.7.8 Interfaz 1-Wire.7.9 Interfaz USB.7.10 Interfaces seriales alámbricos emergentes. 8. Interfaces seriales digitales inalámbricas.8.1 Interfaces seriales inalámbricas.8.2 RS-232 inalámbrico.8.3 Interfaz bluetooth de baja energía.8.4 Interfaz Zigbee.8.5 RFID y NFC.8.6 Interfaces seriales inalámbricos emergentes. 9. Interfaces y protocolos intra-vehiculares.9.1 Topología de redes intra-vechiculares.9.2 Protocolo CAN.9.3 LIN.9.4 FlexRay.9.5 MOST.9.6 D2B.9.7 Byteflight.9.8 Interfaces y protocolos vehiculares emergentes. 10. Interfaces industriales.10.1 Arquitectura fieldbus/modbus.10.2 Protocolo de ethernet industrial (Ethernet/IP).10.3 Interfaces industriales emergentes. 11. Introducción al procesamiento digital de señales.11.1 Procesamiento de señales y muestreo.11.2 Señales y sistemas en tiempo discreto.11.3 La suma de convolución y las ecuaciones de diferencia.11.4 La transformada z. 12. Arquitectura de los procesadores digitales de señales.12.1 Características de los procesadores digitales de señales.12.2 Descripción de la arquitectura del CPU por bloques.12.3 El datapath y las memorias.12.3.1 El banco de registros.12.3.2 La ALU.12.4 El motor DSP.12.4.1 Multiplicador, acumuladores y registro de desplazamiento.12.4.2 Representación de datos, saturación y redondeo. 13. Programación del procesador digital de señales seleccionado para el curso.13.1 Exploración de la herramienta de desarrollo seleccionada para el curso.13.2 Puertos de entrada/salida.13.3 Temporizadores.13.4 Convertidor analógico digital.13.5 El controlador DMA.13.6 Interrupciones y tabla de vectores de interrupción.13.7 Comunicaciones seriales síncronas: UART, SPI e I2C. 14. Aplicaciones con el procesadores digital de señales seleccionado para el curso.14.1 Digitalización y almacenamiento de señales analógicas.14.2 Ecuaciones de diferencias y el motor DSP.14.3 Diseño de filtros digitales.14.3.1 Diseño de filtros FIR.14.3.2 Diseño de filtros IIR.14.4 La transformada rápida de Fourier. 15. Introducción y fundamentos.15.1 Programación paralela.15.2 Concurrencia y paralelismo.15.3 Taxonomía de Flynn.15.4 Metodología de programación de Foster.15.5 Principales modelos y paradigmas de programación paralela.15.6 Métricas de evaluación de desempeño. 16. Programación de arquitecturas de memoria compartida con hilos (threads).16.1 Mutexes.16.2 Variables condicionales.16.3 Llaves (Locks).16.4 Directivas de compilación.16.5 Constructores de trabajo compartido.16.6 Constructores básicos.16.7 Constructores de sincronización.16.8 Funciones básicas.16.9 Funciones de bloqueo (lock).16.10 Variables de ambiente.16.11 Eliminación de dependencias de datos.16.12 Rendimiento. 17. Programación de arquitecturas masivamente paralelas.17.1 Arquitecturas de las unidades de procesamiento gráfico (GPU).17.2 Transferencia de datos entre huésped y dispositivo.17.3 Ejecución de kernels.17.4 Memoria constante y eventos.17.5 Textura de memoria.17.6 Operadores atómicos.17.7 Memoria en cadena (stream) en GPU.17.8 Optimización. Metodologia de la enseñanza
Actividades de aprendizaje conducidas por un académico (Aprendizaje Supervisado): 1. Revisión y análisis conceptual conducido por el docente a través de módulos de aprendizaje en los que abordan temas relacionados con análisis de algoritmos y diseño de algoritmos (backtracking, divide y vencerás, grafos, programación dinámica, optimización), interfaces seriales digitales, redes intra-vehiculares, redes industriales, la programación paralela, la arquitectura de los procesadores digitales de señales y su programación. Lo anterior en estrecha relación con el reto que se esté enfrentando en el bloque. 2. Discusiones y resolución de situaciones relacionadas a través de la aplicación de la técnica didáctica de aprendizaje basado retos, orientado a abordar los conocimientos de interfaces seriales digitales, redes intra-vehiculares, redes industriales, programación en paralelo y DSP, relacionadas con el reto que se enfrenta en el bloque. 3. Acompañamiento y supervisión del trabajo de campo que realiza el alumno al enfrentar el reto en una organización o entorno real. 4. Sesiones de asesoría individuales y grupales orientadas a apoyar el abordaje resolución del reto. Actividades de aprendizaje independiente (Aprendizaje Individual): 1. Investigación individual y en equipo sobre programación paralela, análisis de algoritmos, técnicas de diseño de algoritmos, interfaces seriales digitales, redes intra-vehiculares, redes industriales, los componentes principales de los procesadores digitales de señales y su aplicación en el tratamiento de señales y el análisis de datos en tiempo real. 2. Solución de ejercicios, problemas y casos, tanto de manera individual como colaborativa, para desarrollar la capacidad de seleccionar la interfaz de acuerdo con su aplicación y el protocolo de comunicación adecuado para generar la interacción inteligente entre una unidad de procesamiento y sus periféricos, para comprender la operación de la arquitectura de los procesadores digitales de señales y sus componentes internos para el tratamiento de señales y el análisis de datos en tiempo real. 3. Trabajo de campo en el contexto del entorno real en el que se enfrenta al reto relacionado con el desarrollo de aplicaciones para el tratamiento de señales y el análisis de datos en tiempo real con procesadores digitales de señales, con programación en paralelo, que requieran el análisis y diseño de algoritmos, seleccionar la interfaz de acuerdo con su aplicación y el protocolo de comunicación adecuado para generar la interacción inteligente entre una unidad de procesamiento y sus periféricos. 4. . Generación de diseño de algoritmos con el análisis de complejidad e implementación de algunos de éstos, planeación, esquemáticos, archivos de simulación, documentación y un prototipo funcional como evidencias del desarrollo de las competencias asociadas al reto. Tiempo estimado
Tema 1 10 horasTema 2 5 horasTema 3 5 horasTema 4 10 horasTema 5 10 horasTema 6 15 horasTema 7 8 horasTema 8 8 horasTema 9 8 horasTema 10 3 horasTema 11 2 horasTema 12 6 horasTema 13 6 horasTema 14 10 horasTema 15 8 horasTema 16 20 horasTema 17 18 horasEvaluación 8 horas Total 160 horas Politica de evaluacion
Para la evaluación del aprendizaje de los estudiantes se usarán procedimientos y criterios que permiten evaluar los resultados del proceso de aprendizaje en su desempeño en los módulos y además evidencias de desempeño o de producto que permitan observar el desarrollo de competencias. Los procedimientos de evaluación y la ponderación de cada uno de ellos son los siguientes: 40% --- Participación y resultados de actividades, tareas, casos y exámenes de los módulos de aprendizaje, evaluando el conocimiento teórico y práctico relacionado con análisis y diseño de algoritmos, interfaces seriales digitales, redes intra-vehiculares, redes industriales, la arquitectura de los procesadores digitales de señales y su aplicación en el tratamiento de señales y el análisis de datos en tiempo real, la comprensión y aplicación de conceptos relacionados con técnicas de programación en paralelo y herramientas de paralelización. 60% --- Desempeño en el proceso para enfrentar el reto y sus resultados, considerando las siguientes evidencias que demuestren el nivel de dominio de las competencias: prototipos físicos en donde se aplican los conceptos relacionados con técnicas de programación en paralelo, se selecciona la interfaz y el protocolo de comunicación de acuerdo con su aplicación, y se genera la interacción inteligente entre una unidad de procesamiento y sus periféricos. Perfil del profesor
(141001)Maestría en Ingeniería Eléctrica/Electrónica y Comunicaciones ; (140901)Maestría en Ingeniería Computacional ; (110101)Maestría en Ciencias Computacionales/de Información ; (110701)Maestría en Ciencias Computacionales ; (110901)Maestría en Redes de Sistemas Computacionales y Telecomunicaciones ; (111099)Maestría en Administración de Servicios Computacionales/Tecnologías de Información ; (141001)Doctorado en Ingeniería Eléctrica/Electrónica y Comunicaciones ; (140901)Doctorado en Ingeniería Computacional ; (110101)Doctorado en Ciencias Computacionales/de Información ; (110701)Doctorado en Ciencias Computacionales ; (110901)Doctorado en Redes de Sistemas Computacionales y Telecomunicaciones ; (111099)Doctorado en Administración de Servicios Computacionales/Tecnologías de Información Requisitos
Haber Cursado TE2003B Equivalencias
TE3006B Bibliografia
978-0-12-374260-5 , An Introduction to Parallel Programming. , Pacheco, P., Morgan Kaufmann., Burlington, EE.UU.: , 2011| 0131988425, Discrete-time signal processing, Oppenheim, Alan V, imprint of Pearson, 3rd ed., Upper Saddle River N.J., 2010| 9781119363996 (cloth), Designing embedded systems and the internet of things (IoT) with the ARM Mbed, Xiao, Perry, First edition., | Introduction to Algorithms. , Cormen, T., Leiserson, C., MIT Press., Cambridge, Massachusetts, EE.UU , 2009 Atributos
Materia Modelo Tec21 Competencias
SEG0302A, STE0101C, STE0102C, STE0202B, STE0205B, STE0303B Créditos
8.00