Accesos directos a las distintas zonas del curso
Ir a los contenidos
Ir a menú navegación principal
Ir a menú pie de página
Subject's code : 28806555
Se introducen los fundamentos de la arquitectura de computadores, desde un punto de vista conceptual y práctico, tomando como referencia la familia ARM Cortex M3 de 32 bits (Arduino Due) y coma fija. Se utilizan como complemento parte de las hojas de datos de los fabricantes de microcontroladores.
Se presentan los fundamentos de la programación en ensamblador para la arquitectura ARM Cortex M3 (Arduino Due) de coma fija. Se usa el simulador QtARMSim para la realización de prácticas en lenguaje ensamblador.
Se profundiza en la arquitectura ARM Cortex M4 (STM32F4), con unidad hardware de coma flotante (FPU), y se ve en detalle su estructura interna, así como la configuración y circuitería de la tarjeta de desarrollo que se usará en las prácticas. Se utilizan como complemento parte de las hojas de datos de los fabricantes de microcontroladores.
Se estudian las características físicas y eléctricas de los elementos hardware del microcontrolador, prestando especial atención a su interfaz y entrada-salida (CMOS vs ECL vs TTL).
Se presentan los entornos de desarrollo, profesionales y semi-profesionales, para ARM existentes en la actualidad y que se utilizarán para la realización de las prácticas.
Se introduce el lenguaje de programación C para microcontroladores, el cual se usará a lo largo del texto base 1 y de los siguientes bloques (el texto base 4 trata de la programación en C para arquitecturas AVR de Arduino, no obstante, su adaptación a la familia STM32 es muy intuitiva, caso muy diferente a si se tratase de la portabilidad del lenguaje ensambador, el cual es específico de cada arquitectura).
Los estudiantes que ya posean conocimientos del lenguaje de programación C pueden hacer una lectura más rápida del contenido de este bloque.
Se estudia el manejo y la programación de las diferentes unidades hardware del microntrolador ARM Cortex M4 tipo STM32 (entrada-salida, interrupciones, timers, ADC y DAC, comunicaciones y acceso a memoria entre otros) y la relación entre la arquitectura del microcontrolador y su programación en C y en lenguaje ensamblador. Se utilizan como complemento parte de las hojas de datos de los fabricantes de microcontroladores.
Se estudian algunas de las aplicaciones más habituales, y de cierta dificultad, de la programación de microcontroladores en sistemas embebidos (manejo de periféricos, procesado digital de señal y control en tiempo real). Se introducen algunos de los periféricos y accesorios más habituales empleados en sistemas embebidos (por ej. sensores y actuadores) y algunas cuestiones importantes sobre el diseño hardware (por ej. divisores de tensión, transistores, optoacopladores, etc). Se realiza también un breve repado de algunos métodos numéricos empleados habitualmente en la programación de sistemas embebidos.
Este bloque tiene un enfoque conceptual y práctico. Su objetivo es introducir otras alternativas a la familia STM32 de ARM disponibles en el mercado (en particular, AVR y ARM de Arduino) para que el alumno tenga una visión más global del mundo de los microcontroladores y de los sistemas embebidos. Se presenta la opción de combinar en un mismo sistema embebido varios microcontroladores con funciones diferenciadas y jerarquizadas. De hecho, la tendencia actual en aplicaciones de altas prestaciones es incluir en un mismo PCB, o en un mismo dispositivo (chip), diferentes (o similares con multicore) tecnologías (ARM, DSP y FPGA entre otras) con objeto de optimizar el diseño, aprovechando las ventajas de cada una de ellas, así como de minimizar el tiempo de desarrollo.
Es importante conocer diferentes familias de microcontroladores para su comparativa. Se realiza una breve introducción a las principales arquitecturas de Arduino (AVR vs. ARM) con objeto de introducir los fundamentos para seleccionar la arquitectura más adecuada en función de la aplicación (simplicidad vs potencia) cuando se dispone de varias alternativas. Así mismo, muchos de los accesorios hardware para microcontroladores disponibles en el mercado provienen de las plataformas Arduino basadas en arquitecturas AVR. Se introducen conceptos y herramientas sobre conectividad de dispositivos (por ej. IoT).
Se utilizan como complemento parte de las hojas de datos de los fabricantes.