Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Fisica
Área: Area V: Electronica y Microprocesadores
(Programa del año 2017)
(Programa en trámite de aprobación)
(Programa presentado el 09/03/2017 11:48:52)
I - Oferta Académica
Materia Carrera Plan Año Periodo
PROCESADORES II PROF.TECN.ELECT 005/09 2017 1° cuatrimestre
PROCESADORES II TEC.UNIV.ELECT. 15/13-CD 2017 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
MURDOCCA, ROBERTO MARTIN Prof. Responsable P.Adj Exc 40 Hs
HERNANDEZ VELAZQUEZ, SERGIO FE Responsable de Práctico A.1ra Exc 40 Hs
RETA, FACUNDO ESTANISLAO Auxiliar de Práctico A.2da Simp 10 Hs
ANDRADA TIVANI, ASTRI EDITH Auxiliar de Laboratorio A.2da Simp 10 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
 Hs. 4 Hs.  Hs. 2 Hs. 6 Hs. 1º Cuatrimestre 13/03/2017 23/06/2017 15 90
IV - Fundamentación
En la industria, automóvil, comunicaciones, entretenimiento, laboratorios y en general en todos los equipos electrónicos
actuales se tiene un microcontrolador embebido encargado de controlar el funcionamiento de dicho aparato o instrumento.
Este curso ofrece a los estudiantes la oportunidad de estudiar la arquitectura interna del microprocesador / microcontrolador y
aprender a explotar su poder mediante la interfaz y la programación para resolver problemas del mundo real.
V - Objetivos
Estudiar la arquitectura y programación de microprocesadores y microcontroladores actuales de 8, 16 y 32 bits.
Utilizar herramientas de desarrollo para realizar el depurado y programación de los mismos en lenguajes de alto nivel.
Utilizar herramientas de modelado de software para desarrollar los modelos de programación de Sistemas Embebidos.
Desarrollar los conocimientos y habilidades necesarios para diseñar un sistema embebido dedicado a una aplicación específica descrita mediante requisitos de diseño, tanto a nivel de conexionado eléctrico (Hardware) como de su programación (Software).
Mejorar la habilidad para escribir documentos.
VI - Contenidos
Unidad 01: Tecnologías y Arquitecturas.
Tecnologías de Sistemas Digitales. Lógica cableada, programable, hardware reconfigurable. Evolución de los sistemas de cómputo. Lógica programable: el Microprocesador y el Microcontrolador. Clasificación por aplicación o propósito: GPP, Microcontrolador, DSP, ASIC, ASIP, GPU. Clasificación por arquitectura: RISC, CISC, Superescalar, VLIW, Reconfigurable, System on chip, Network on chip. Clasificación de Flynn: SISD, SIMD, MISD, MIMD. Clasificación por conjunto de instrucciones (ISA). Características de Microcontroladores actuales. Aplicaciones. Mercado actual. Sistemas Embebidos. Definición. Áreas de aplicación de los Sistemas Embebidos.

Unidad 02: Arquitecturas de Microcontroladores de 8 bits.
Microcontroladores RISC de 8 bits. Microcontroladores PIC de Gama Alta. Características Generales de la Familia PIC18FXXX. La Unidad Aritmético y Lógica (ALU). El registro W. Ciclo de máquina y ejecución de instrucciones. El Contador de Programa (PC). Conexiones básicas del Microcontrolador.
Estructura de la memoria. La memoria de programa. La pila (Stack). La memoria de datos. Los registro de funciones especiales (SFR). Registro STATUS. La EEPROM de datos.
Puertos. Configuración de puertos. Características eléctricas. Los temporizadores y contadores. Módulo CCP: Modo captura, comparación y PWM. Comunicación serie: la USART. Interrupciones. Tipos de interrupciones. Conversores Analógico-Digital. Descripción de placa de desarrollo para microcontrolador de gama alta.

Unidad 03: Herramientas de Programación en Alto Nivel.
Conceptos básicos sobre compilado en alto nivel. Compilador C. Pre-procesador. Librerías. El Linker. Elementos del lenguaje C. Estructura de un programa en C. Reglas de programación. Cross compilador C para microcontroladores. Particularidades. Control de periféricos e interrupciones en lenguaje C. Entorno de desarrollo integrado MPLABX. Técnicas de depurado (Debbugging).
Técnicas de diseño/programación de sistemas embebidos. Sistemas reactivos, interactivos y transformacionales. Programación mediante interrupciones (background / foreground). Máquinas de estados finitos (FSM). Tablas y diagramas de estados. Implementación de FSM en C. Herramientas de modelado para máquinas de estado.

Unidad 04: Interface con Dispositivos Externos.
Dispositivos de E/S. Conexión de dispositivos externos al puerto de un microcontrolador. Características eléctricas de los puertos de microcontroladores. 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. Interface con LEDS. Displays. Distintos tipos de display. Conexión a Display 7 segmentos. Conexión a Display 7 segmentos multiplexado. Display LCD inteligente. Displays gráficos. Interfaces de potencia. Interface con circuitos de corriente alterna. Interfaces con reles. Interface con otros periféricos externos.

Unidad 05: Arquitecturas de Microcontroladores de 32 bits.
Arquitecturas ARM. Breve historia de ARM. Características generales. Mercado actual de Microcontroladores ARM. Características. Diferencias entre las variantes de Cortex-M. Introducción a ARM- Cortex-M3. Arquitectura. Registros. La Unidad Aritmético Lógica (ALU). Buses. Modos de funcionamiento. Mapa de Memoria. Secuencia de Reset. Pipelining. Modos de operación. Excepciones y controlador de interrupciones. Características del Timer Systick. Mapa de memoria. Arquitectura de buses. Pipeline. Set de instrucciones.
Breve introducción a la programación en Assembler de Cortex-M. Operaciones de desplazamiento y operaciones aritméticas, otras instrucciones útiles de procesamiento de datos. Modos de direccionamiento. Instrucciones de salto, saltos incondicionales y condicionales.

Unidad 06: Periféricos internos de Microcontroladores de 32 bits.
Conceptos básicos de puertos de E/S e Interfaces. Reloj. Fuentes y configuración del reloj, el concepto de PLL. Configuración del PLL.
Interrupciones en la arquitectura ARM Cortex-M. El NVIC. Configuración. Tabla de vectores. Manejo de interrupciones. Sincronización de E/S. Interrupciones de periféricos.
Temporizadores y contadores, configuración y sus interrupciones. Temporizador SysTick. Modulación de ancho de pulso (PWM).

Unidad 07: Herramientas de Programación y Modelado de Software.
Programación en C para ARM. Entorno de desarrollo integrado (IDE). Programación eficiente en C. Control de periféricos e interrupciones en lenguaje C. Uso de modelos en la programación de microcontroladores. Máquina de Estado y Diagrama de Estado (Statecharts). Codificación en C de modelos. Herramientas para Modelado, Simulación y Validación de Modelos. Drivers y aplicaciones. Librerías de abstracción de Hardware. CMSIS. Otras librerías.

Unidad 08: La comunicación serie en los Microcontroladores
Comunicación serie. Comunicación síncrona y asíncrona. La UART del Cortex-M3. Configuración. SPI síncrono. Interfaces. Aplicaciones. I2C. Interfaces. Configuración. Dispositivos I2C. Transmisión y recepción por interrupción.

Unidad 09: Sistemas Operativos en Tiempo Real.
Breve introducción a los Sistemas Operativos en Tiempo Real (RTOS). Procesamiento en tiempo real. Componentes básicos de un RTOS. Multitarea coperativa y preemptiva.
Sincronización y comunicación entre tareas. Aplicaciones.

Unidad 10: Otras plataformas Embebidas.
Otros microcontroladores de 8, 16 y 32 bits. Plataformas comerciales. Arduino. Características. IDE. Aplicaciones. Shields. Programación de Arduino UNO. Herramientas de programación gráfica. Plataforma ChipKit UNO32. Características. Compatibilidad con Arduino. Arquitecturas Intel. Plataforma Intel Galileo. Características. Herramientas de desarrollo. Compatibilidad con Arduino. Aplicaciones con Intel Galileo. Desarrollo de aplicaciones. Raspberry Pi. Características principales. Aplicaciones.

VII - Plan de Trabajos Prácticos
Laboratorio 01 - Herramientas de Desarrollo para Microcontroladores de 8 bits.
Laboratorio 02 - Introducción a la programación en C y uso de la placa de desarrollo.
Laboratorio 03 - Manejo de periféricos en C con Microcontroladores PIC.
Laboratorio 04 - Herramientas de Desarrollo para Arquitecturas ARM Cortex.
Laboratorio 05 - Manejo de Salidas Digitales en ARM Cortex. Uso de CMSIS.
Laboratorio 06 - Manejo de Entradas Digitales y Periféricos usando LPC OPEN.
Laboratorio 07 - Desarrollo y Gestión de Bibliotecas de Periféricos y Drivers.
Laboratorio 08 - Desarrollo de Modelos con Statecharts. Diseño, simulación y validación de modelos.
Laboratorio 09 - Uso de Timers e Interrupciones.
Laboratorio 10 - Programación de Plataforma Arduino UNO.
VIII - Regimen de Aprobación
Para obtener la regularidad en la materia y rendir el examen final como alumno regular será necesario:

- Haber aprobado la totalidad de los exámenes parciales.
- Cada examen parcial posee una recuperación y se permite una recuperación extraordinaria, que se podrá utilizar al final del cuatrimestre.
- Haber aprobado el 100% de las Prácticas de Laboratorio.
- Se podrán recuperar solo el 30% de las prácticas de laboratorio, no aprobadas durante el cuatrimestre.

No se aceptan alumnos que no estén en condiciones regulares.
La materia no podrá rendirse en forma libre.
IX - Bibliografía Básica
[1] Saravia Andrés R. Bruno, Coria Ariel, Arquitectura y Programación de Microcontroladores PIC – Buenos Aires, MC Electronics, 2010, 312p.
[2] Han-Way Huang, PIC Microcontroller: An Introduction to Software and Hardware Interfacing – Ed. Thomson, 2005, 816 p.
[3] Valdez Fernando E., Areny Ramón P., Microcontroladores: Fundamentos y aplicaciones con PIC, España, Marcombo Ediciones Técnicas, 2007, 344 p.
[4] M. Rafiquzzaman, Ph.D., Microcontroller Theory and Applications with the PIC18F, Hamilton Printing, 2011, 498p.
[5] Dogan Ibrahim, Advanced PIC Microcontroller Projects in C: From USB to RTOS with the PIC18F Series, ELSEVIER, 2008, 560p.
[6] Galeano Gustavo, Programación de Sistemas Embebidos en C, México, Alfaomega Grupo Editor, 2009, 544p.
[7] Breijo Eduardo García, Compilador C CCS y Simulador Proteus para Microcontroladores PIC, España, Alfaomega Grupo Editor, 2008, 260p.
[8] Bates Martin, Interfacing PIC Microcontrollers: Embedded Design by Interactive Simulation, Gran Bretaña, Elsevier, 2006, 298p.
[9] Tim Wilmshurst, Designing Embedded Systems with PIC Microcontrollers, Principles and Applications, , ELSEVIER, 2010, 651p.
[10] The Definitive Guide to the ARM Cortex-M3 - Joseph Yiu, 2ª Edición, Newnes Elsevier Inc, 2010.
[11] Cortex™-M3, Revision r2p0, Technical Reference Manual – ARM
[12] ARM®v7-M Architecture, Reference Manual – ARM
[13] UM10360 LPC176x/5x User Manual & LPC1769/68/67/66/65/64/63 Product data sheet – NXP
[14] Reference Guide & User Guide of visualState – IAR
[15] El Lenguaje Unificado de Modelado, G. Booch, J. Rumbaugh, I. Jacobson, 2ª Edición, Addison-Wesley, 2006
[16] Intel Galileo Board User Guide – March 2014.
[17] Intel Galileo Getting Started Guide – 16 October 2013.
[18] Getting Started with Intel Galileo- Matt Richardson Maker Media, Inc. - 2014 - 194p.
X - Bibliografia Complementaria
[1] Ganssle Jack, The Firmware Handbook – EEUU, ELSEVIER, 2004, 365p.
[2] Di Jasio Lucio, Wilmshurst Tim, Ibrahim Dogan, Morton John, Bates Martin, Smith Jack, Smith D.W., and Hellebuyck Chuck, PIC Microcontrollers: Know It All, EEUU, ELSEVIER, 2008, 928p.
[3] Zurawski Richard, Embedded Systems HandBook, Taylor & Francis Group, 2006, 1089p.
[4] Katzen Sid, The Essential PIC18 Microcontroller, Springer, 2010, 612p.
[5] Timothy D. Green, Embedded Systems Programing with the PIC16F877, 2da Edicion, 2008, 196p.
[6] RobertT B. Reese, Microprocessors: From Assembly Language to C Using the PIC18Fxx2, Da Vinci Engineering Press, 2005, 687p.
[7] Keith E. Curtis, Embedded multitasking with Small Microcontrollers, ELSEVIER, 2006, 417p.
[8] Ken Arnold, Embedded Controller Hardware Design, , LLH Technology Publishing, 2000, 244p.
[9] Tammy Noergaard, Embedded Systems Architecture A Comprehensive Guide for Engineers and Programmers, , ELSEVIER, 2005, 657p.
XI - Resumen de Objetivos
Estudiar la arquitectura y programación de microprocesadores y microcontroladores de 8, 16 y 32 bits actuales.
Utilizar herramientas de desarrollo para realizar la programación de una familia de microcontroladores.
Dotar al alumno de los conocimientos necesarios para desarrollar un sistema embebido.
XII - Resumen del Programa
Unidad 01: Tecnologías y Arquitecturas.
Unidad 02: Arquitecturas de Microcontroladores de 8 bits.
Unidad 03: Herramientas de Programación en Alto Nivel.
Unidad 04: Interface con Dispositivos Externos.
Unidad 05: Arquitecturas de Microcontroladores de 32 bits.
Unidad 06: Periféricos internos de Microcontroladores de 32 bits.
Unidad 07: Herramientas de Programación y Modelado de Software.
Unidad 08: La comunicación serie en los Microcontroladores.
Unidad 09: Sistemas Operativos en Tiempo Real.
Unidad 10: Otras plataformas Embebidas.
XIII - Imprevistos
Cambio tecnológico: actualización por parte de fabricantes de microcontroladores.
Incompatibilidades y bugs de nuevas versiones de software.
Disponibilidad en el mercado local de partes y componentes necesarios para las prácticas.