Carrera | Créditos | Correlativas | Condición |
Ingeniería Electrónica | 6 | 66.01 - 66.02 | Obligatoria |
Ingeniería Informática | 6 | 66.02 - 66.70 | Optativa de la Orientación Sistemas Distribuídos |
Objetivos
Introducir los conceptos básicos de arquitectura de microprocesadores, y su programación eficiente en lenguaje assembly.
Introducir al diseño ordenado, eficiente y con espíritu crítico, de sistemas embebidos basados en microcontroladores, desplegando todas las fases técnicas involucradas en el desarrollo de un proyecto:
Elaboración de un anteproyecto.
Desarrollo de hardware.
Desarrollo de firmware.
Implementación de los ítems anteriores mediante la construcción de un equipo prototipo.
Documentación técnica del proyecto.
Utilizar adecuadamente las herramientas necesarias para lograr el éxito del proyecto. Estas incluyen:
Bibliografía, manuales técnicos y hojas de datos. Internet, como fuente de información actualizada.
Entorno de desarrollo (IDE) , comprendiendo: editor, ensamblador/compilador, linker, simulador, emulador y programador.
Herramientas CAD para documentación de circuitos esquemáticos.
Herramientas CAD para diseño de circuitos impresos.
Herramientas para documentación del proyecto.
Programa analítico
Introducción. Repaso de temas fundamentales de Técnicas Digitales
Representación de la información. Aritmética de enteros. Flags.
Familias lógicas. Características eléctricas.
Memorias: tipos y uso. Diagramas de tiempos.
Decodificadores.
Estructura básica de microprocesadores
Unidad aritmético-lógica (ALU).
Buses. Datos, direcciones y control.
Registros básicos: acumuladores, punteros, estado, contador de programa, de uso general.
Memoria de programa y de datos.
Hardware de microprocesadores
Microprocesadores vs. microcontroladores.
Periféricos internos.
Mapas de memoria interna y externa. Decodificación de direcciones. Diagramas de tiempos. Características eléctricas.
Modos de direccionamiento.
Software de microprocesadores
Lenguaje assembly. Concepto de firmware.
Conjunto de instrucciones. Tipos de instrucciones: aritméticas, lógicas, de transferencia, de control y bifurcación.
Stack. Llamados a rutinas. Otros usos.
Máquina de estados.
Herramientas de desarrollo. Ensambladores, linkers, depuradores, emuladores.
Mantenibilidad del código fuente. Modularidad.
Entrada y salida
Puertos paralelos. Características y tipos de bidireccionalidad.
Puertos serie. Cararterísticas y tipos.
Normas básicas de comunicaciones. Sistemas distribuídos.
Interrupciones
Atención de periféricos por polling.
Concepto de interrupción. Rutina de servicio a la interrupción.
Tipos de interrupciones. Enmascaramiento y priorización.
Anidamiento de interrupciones. Metodologías de atención.
Concepto de handler.
Periféricos
Timers/counters.
Watchdog timers.
Relojes de tiempo real (RTC's).
Conversores A/D y D/A.
Manejo de taclados y displays.
Aplicaciones. Otras arquitecturas
RISC vs. CISC.
Harvard vs. von Neumann.
Desarrollo con microprocesadores y microcontroladores de 8 y 16 bits.
Etapas durante el proyecto de sistemas embebidos.
Documentación del proyecto: hardware, firmware/software, manual de uso.
Cursos
Curso | Modalidad | Docentes | Días | Horario |
001 | TPO | ALBERTO-STOLA-COFMAN | martes | 19:00 - 22:00 |
002 | TPO | ALBERTO-CAMPIGLIO-ARIAS-MARTOS | miercoles | 19:00 - 22:00 |
003 | TPO | ALBERTO-RATTO-PUCCI-BERRA | jueves | 19:00 - 22:00 |
004 | TPO | ALBERTO-PEREZ-CABIBBO | viernes | 12:00 - 15:00 |
T | T | ING. ALBERTO, JORGE | viernes | 15:00 - 18:00 |
Parciales
Trabajos Prácticos
Trac: Generador de Funciones. 2do cuatrimestre 2007.
Programadores
Programador ISP serie: Programador desarrollado para el AT89S8253 en linux (aunque debería andar con otros avr's y en windows). Utiliza el puerto serie y no requiere alimentación externa. Software: avrdude
IDEs
mcu8051ide: Integrated Development Enviroment for some MCS-51 based microcontrollers (e.g. AT89S8253). Supported languages are Assembly and C. This IDE is written in Tcl/Tk for POSIX systems (like GNU/Linux) only.
Keil