Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Electrónica
Área: Electrónica
(Programa del año 2022)
I - Oferta Académica
Materia Carrera Plan Año Periodo
SISTEMAS EMBEBIDOS TEC.UNIV.TELEC. 16/13 2022 2° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
NUÑEZ MANQUEZ, ALEJANDRO ENRIQ Prof. Responsable P.Adj Exc 40 Hs
III - Características del Curso
Credito Horario Semanal Tipificación Duración
Teórico/Práctico Teóricas Prácticas de Aula Práct. de lab/ camp/ Resid/ PIP, etc. Total B - Teoria con prácticas de aula y laboratorio Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
6 Hs.  Hs.  Hs.  Hs. 6 Hs. 2º Cuatrimestre 08/08/2022 18/11/2022 15 90
IV - Fundamentación
Un sistema embebido (SE) es un sistema de computo implementado en un microcontrolador o un microprocesador, diseñado para realizar una o algunas pocas funciones dedicadas. Estos sistemas han manifestado un gran desarrollo sustentado en dos tendencias fundamentales las cuales son el aumento de la capacidad de cómputo que ha aumentado en el diseño de los microcontroladores y la disminución de los costos de producción que implica la fabricación de los mismos. Debido a esto, los sistemas embebidos están presentes en casi todas las interacciones que realizan los seres humanos hoy en día, como por ejemplo computación portable, electrónica de consumo, sistemas de control, etc. Las telecomunicaciones no son ajenas a estas tendencias y hacen un uso intensivo de estas tecnologías. Es preciso entonces contar con conocimientos y habilidades específicas en esta tecnología.
V - Objetivos / Resultados de Aprendizaje
En la presente actividad curricular se pretende introducir a los estudiantes en el desarrollo de aplicaciones en Sistemas Embebidos. Para ello, se estudia la arquitectura y programación de microprocesadores y microcontroladores actuales, periféricos y componentes asociados, así como los estándares y protocolos de interconexión de los mismos. Se presentan los conceptos generales que permitan obtener un criterio de selección para optimizar las prestaciones para una aplicación determinada. Durante el transcurso del semestre se enfocará el estudio en una de las familias de microcontroladores y se utilizarán herramientas de desarrollo para realizar la programación de los mismos en lenguajes de alto nivel.
VI - Contenidos
Introducción a Sistemas Embebidos (SE)
Definición de Sistemas Embebidos. Características. Ejemplos de Sistemas Embebidos. Opciones para construir un SE. Introducción al Internet de las cosas (Internet of Things, IoT) Desafíos en IoT. Implementación de Sistemas Embebidos usando MCUs, SoC, SoM y plataformas de desarrollo.

Introducción a plataformas de desarrollo de SE
Arquitecturas de MCU actuales. SoC (System on Chip), SiP (System in a Package), Módulos PCB y Placas de desarrollo. Herramientas de programación, lenguajes de programación de bajo y alto nivel, compilados e interpretados. Control de versiones usando GIT y GITHUB.

Introducción a la programación de SE
Estructura de un programa en C. Elementos de programación en Lenguaje C. Flujo de generación de programa. Almacenamiento en memoria. Tipos de datos. Acceso a datos en C. Librerías de usuario.

Entradas y salidas digitales
Características eléctricas de los puertos. Controladores GPIO. Estructura de datos para periféricos. Funciones para el control de entradas y salidas digitales. Conexión de dispositivos externos al puerto de un microcontrolador. Interfaces con dispositivos de entrada. Conexión de Interruptores y pulsadores. Interface con teclados matriciales. Técnicas de exploración de teclados. Adaptación de señales de entrada. Opto aislación. Interfaces con dispositivos de salida.

Interrupciones.
Interrupciones, que son y para que se usan. Prioridades. Latencia de servicio de interrupción. Configuración. Tabla de vectores. Manejo de interrupciones. Interrupciones de periféricos. Bibliotecas de Software.

Entradas y salidas analógicas
Descripción general. Entrada analógica. Conversor Analógico a Digital. Salida Analógica, Conversor Digital a Analógico. Rango, resolución y cuantización. Frecuencia de muestreo. Uso de entradas y salidas analógicas.

Temporizadores y modulación de ancho de pulso
Descripción de temporizadores, componentes, modos de comparación y de captura. Modo de modulación por ancho de pulsos (PWM).

Comunicaciones embebidas
Comunicación Serial: UART, SPI e I2C. Protocolos e implementaciones. Comunicación WIFI. Comunicación Bluetooth.

Técnicas de programación de SE
Etapas de desarrollo de proyecto. Sistemas en tiempo real. Hard Real Time System. Soft Real Time System. Clasificación de Sistemas; reactivos y transformacionales. Programación Bare Metal. El patrón Súper Lazo. Programación mediante interrupciones (background / foreground). Máquinas de estados finitos (FSM). Tablas y diagramas de estados. Implementación de FSM en C. Sistemas Operativos: Definición, tipos, funciones y servicios de un sistema operativo. Sistema operativo de Tiempo Real: RTOS. Planificación de Tareas. Implementación de aplicaciones en RTOS. Comunicación entre procesos.

Internet de las Cosas
Infraestructuras de servicios en IoT. Protocolos para IoT. MQTT. Suscriptor y publicador. Estructura de un mensaje MQTT. Seguridad en MQTT. Mosquitto MQTT. Entorno de desarrollo Node-RED. Barra de herramientas Dashboard en Node-RED.

VII - Plan de Trabajos Prácticos
Plataformas de desarrollo de SE y Control de versiones usando Git y Git Hub
Entradas y salidas digitales
Interrupciones
Entradas y salidas analógicas
Temporizadores y modulación de ancho de pulso
Comunicaciones embebidas
Patrones de programación
Internet de las Cosas: MQTT y Node-RED
VIII - Regimen de Aprobación
Para regularizar la materia los alumnos deberán cumplir con los siguientes requisitos:
- Guías de laboratorio: aprobar la totalidad de las guías de laboratorio con su respectiva carpeta de informes, se pueden recuperar el 30% de los prácticos.
- Parciales: Durante el cuatrimestre se tomarán dos parciales. Los parciales incluirán temas teóricos y temas desarrollados en las guías de problemas. La aprobación de los parciales se obtiene con una nota igual o superior a 7 (siete).
- Proyecto Final: Desarrollo de un proyecto integrador de la asignatura, que incluya la interconexión de 2 o mas de las plataformas estudiadas, el informe técnico y su correspondiente defensa. Durante la defensa del mismo se evaluarán los conceptos teóricos aplicados.
IX - Bibliografía Básica
[1] Introducción a Arduino, Massimo Banzi, Primera edición 2008, O'Reilly Media, ISBN: 978-0-596-15551-3
[2] Arduino y el Internet de las Cosas, Novillo-Vicuña, Hernández Rojas, Mazón Olivo, Molina Ríos, Cárdenas Villavicencio, Primera Edición 2018, 3Ciencias, ISBN: 978-84-949151-8-5
X - Bibliografia Complementaria
[1] Keith E. Curtis, Embedded multitasking with Small Microcontrollers, ELSEVIER, 2006, 417p.
[2] Ken Arnold, Embedded Controller Hardware Design, LLH Technology Publishing, 2000, 244p.
XI - Resumen de Objetivos
Tecnologías y Arquitecturas de Sistemas Embebidos, herramientas de desarrollo y programación en lenguaje de alto nivel.
Interfaz de usuario, Manejo de Entradas/Salidas y Comunicaciones
Sistemas Operativos para S.E.
Uso de Sistemas Embebidos en Telecomunicaciones
XII - Resumen del Programa
Tecnologías y Arquitecturas de sistemas Embebidos, Arquitecturas y herramientas de desarrollo, Programación en lenguaje de alto nivel, Interfaz de usuario, Bibliotecas de software y entorno de desarrollo integrado, Manejo de Entradas/Salidas y Comunicaciones.
Sistemas Operativos para sistemas embebidos, Uso de Sistemas Embebidos en Telecomunicaciones
XIII - Imprevistos
En caso de no poder realizar el dictado de la materia en modalidad presencial, se optara por la modalidad virtual utilizando plataformas como zoom, meet, etc.
XIV - Otros