Vous êtes sur la page 1sur 8

PONTIFICIA UNIVERSIDAD CATLICA DEL PER

FACULTAD DE CIENCIAS E INGENIERA

Sistemas Digitales
Especialidad : rea Ciclo Semestre Profesor : : : : Ingeniera Electrnica y Mecatrnica Electrnica Quinto 2014-1 Jorge Benavides Hugo Pratt Rolando Snchez Clave Crditos Teora Prctica Laboratorio Requisitos : IEE256 : : : : : 5.5 4 horas semanales 2 horas quincenales 4horas quincenales
IEE144, INF135, IEE146

(IEE144) (IEE146)

I.

DESCRIPCIN DEL CURSO En el curso se ensea a disear computadoras de aplicacin especfica en base al microcontrolador ATmega88A de Atmel. Para ello se describen las computadoras de aplicacin especfica, diferencindolas de las computadoras de propsito general. Se describe el microcontrolador (sus partes internas y juego de instrucciones) y tambin las herramientas de desarrollo a utilizar (compilador cruzado de C, ensamblador, simulador). Finalmente, como parte de un proyecto, se disea un computador y el programa que lo controla. Las clases son un complemento a los trabajos realizados en el laboratorio del curso.

II. OBJETIVOS OBJETIVO GENERAL: Al final del curso, los alumnos de Sistemas Digitales estarn en condiciones de disear un computador basado en un microcontrolador de 8 bits, y desarrollar el programa que lo controla. Tambin sern capaces de leer y comprender la documentacin tcnica (manuales de referencia y especificaciones tcnicas) de un microcontrolador. Como parte del desarrollo de las habilidades informacionales, sern capaces de identificar la necesidad de informacin, construir estrategias para localizarla y evaluarla. OBJETIVOS ESPECFICOS: 1. Conocer las partes bsicas de un computador y la terminologa relacionada (tanto en castellano como en ingls). 2. Conocer el lenguaje (juego de instrucciones) de un microcontrolador. 3. Utilizar adecuadamente el lenguaje C, empleando un compilador cruzado de C, para el desarrollo de los programas. 4. Interpretar adecuadamente los programas en lenguaje ensamblador (tanto las instrucciones como las directivas) generados por el compilador de C. 5. Conocer el uso y saber utilizar un simulador para la depuracin de programas. 6. Desarrollar, simular y depurar programas en lenguaje C empleando para ello herramientas de desarrollo de software (simuladores).

7. Conocer y utilizar interfaces y perifricos programables. 8. Disear un computador basado en un microcontrolador de 8 bits, utilizando las interfaces y perifricos adecuados, y desarrollar el programa que lo controla, tomando en consideracin las especificaciones tcnicas y documentacin tcnica de los fabricantes de microcontroladores. 9. Identificar la necesidad de informacin, evaluar su conocimiento actual e identificar los vacos en este conocimiento, y construir estrategias para localizar informacin y datos. Estos objetivos contribuyen significativamente al logro del siguiente resultado del programa de ingeniera electrnica: (k) Habilidad para utilizar tcnicas, destrezas y herramientas de ingeniera moderna necesarias para la prctica ingenieril.

III. PROGRAMA ANALTICO 1. INTRODUCCIN (7 horas) 1.1 Introduccin al curso. (1.5 horas) 1.2 El computador digital: sus partes. Microprocesador y microcontrolador. (2 horas) 1.3 Memorias semiconductoras: tipos, caractersticas. Modelo de memoria con compuertas lgicas y registros. (1.5 horas) 1.4 Arquitectura de un computador: Harvard, Von Neuman. Sus diferencias. (0.5 horas) 1.5 Lenguaje mquina, cdigo mquina, lenguaje de ensamblaje, lenguaje de alto nivel, modos de direccionamiento. (1.0 hora) 1.6 Sistemas embebidos y herramientas de desarrollo (0.5 horas). Lecturas: [9a] Captulo 1 parte 1: para secciones 1.1 a 1.4 (19 pginas) [9b] Captulo 1 parte 2: para seccin 1.5 (pginas 1 a 12) 2. PERIFRICOS PROGRAMABLES PARTE I (Puertos de E/S) (8 horas) 2.1 Caractersticas generales del microcontrolador Avr-ATmega88 de Atmel: Diagrama de bloques; disposicin de pines; espacio de registros, puertos de E/S; mapa de memoria. (1 hora) 2.2 Puertos: definicin. Registro de direcciones DDR. Registro de salida PORT, registro de entrada PIN. Manejo de puertos en lenguaje C (operaciones de entrada/salida). Ejemplo. (2 horas) 2.3 Enmascaramiento de bits con operaciones lgicas. Ejemplo en lenguaje C para manejo de puertos (2 horas) 2.4 Lenguaje ensamblador: Instrucciones LDI, IN, OUT, RJMP, BREQ, BRNE. Etiquetas. Codificacin de instrucciones. Ejemplo. (3.0 horas) Lecturas: [1] Barnett. Subcaptulos 1.3 a 1.7.1 (19 pginas) [2] Barret. Subcaptulos 1.1, 1.2, 1.3 [9c] Captulo 2 parte 1 (19 pginas) [10] ATmega48A/PA/88A/PA/168A/PA/328/P datasheet: Para seccin 2.1 pginas 5 a 12, y 17 a 19; para seccin 2.2 pginas 77 a 82.

3. MANEJO DE TABLAS (3 horas) 3.1 Uso de memoria voltil: Arreglos en memoria RAM. (0.5 horas) 3.2 Implementacin de tablas en memoria Flash. Su implementacin en lenguaje C mediante arreglos. Ejemplos. (2.5 horas) Lecturas: [1] Barnett. Captulo 1, seccin 1.9 Pointers and arrays [3] Pardue. Captulo 8 C Pointers and arrays. Es importante todo el captulo, pero revisar especialmente la parte projects: arrays in RAM and ROM que comienza en pgina 171, pues describe la manera como deben definirse los arreglos en memoria Flash para el compilador cruzado de C que se emplear en el curso. En ninguno de los otros libros de la bibliografa se emplea este compilador. 4. PERIFRICOS PROGRAMABLES PARTE II (USART) (5 horas) 4.1 Niveles lgicos TTL, RS232. Formato de una comunicacin serial asncrona: bits de arranque, datos, paridad, parada. Velocidad de comunicacin (bps). (2 horas) 4.2 Uso de la interfaz RS232 del ATmega88A: Disposicin de pines. Registros de control y de velocidad. Ejemplos. (2.5 horas) 4.3 Lenguaje ensamblador: Instrucciones LDS, STS (0.5 horas) Lectura: [2] Barret. Captulo 2 Serial Communication Subsystem (10 pginas) [1] Barnet. Subcaptulo 2.8 [10] ATmega48A/PA/88A/PA/168A/PA/328/P datasheet: USART0 (pginas 178 a 205). 5. PERIFRICOS PROGRAMABLES PARTE III (Circuito temporizador) (5 horas) 5.1 Temporizador 1: Disposicin de pines. Su uso en modo normal. Seal de reloj, preescalador. Modo de operacin CTC. Comparadores de salida. Lectura y escritura de registros de 16 bits. Ejemplos (5 horas) Lecturas: [9i] Contadores y Temporizadores: pginas 1 a 20. [2] Barret. Captulo 5 Timing Subsystem [1] Barnet. Subcaptulo 2.7 Timer/Counters [10] ATmega48A/PA/88A/PA/168A/PA/328/P datasheet: 16-Bit Timer/Counter 1 (Pginas 115 a 121 y 124 a 128) 6. INTERRUPCIONES (6 horas) 6.1 Concepto de interrupcin. (1.5 horas) 6.2 Interrupciones en el ATmega88A: Habilitadores de interrupcin, vectores de interrupcin. (1.5 horas) 6.3 Implementacin de funciones de servicio de interrupcin en lenguaje C. Ejemplo de interrupciones con el temporizador 1. (3 horas) Lecturas: [9j] Interrupciones (22 pginas) [2] Barret. Captulo 4 Interrupt Subsystem (8 pginas) [3] Pardue. Captulo 7 Microcontroller interrupts and timers [10] ATmega48A/PA/88A/PA/168A/PA/328/P datasheet: Interrupts (pginas 59 a 62, y 72 a 76) 7. PERIFRICOS PROGRAMABLES PARTE IV (Circuito temporizador) (7 horas)

7.1 Temporizador 1: Generacin de ondas PWM usando el modo PWM rpido. Ejemplos basados en interrupciones. (4 horas) 7.2 temporizador 1: Capturador de entrada. Ejemplos. (3 horas) Lecturas: [2] Barret. Captulo 5 Timing Subsystem [3] Pardue. Captulo 7 Microcontroller interrupts and timers [9i] Contadores y Temporizadores: pginas 15 y 16. [10] ATmega48A/PA/88A/PA/168A/PA/328/P datasheet: 16-Bit Timer/Counter 1 (pginas 122, 123, 128 a 130, 136 a 142) 8. LENGUAJE ENSAMBLADOR (11 horas) 8.1 Instrucciones de transferencia de datos: MOV, MOVW, LPM, LD, ST. Ejemplos de uso. (2.5 horas) 8.2 Banderas: De acarreo, de cero, de medio acarreo, de signo, de desborde. (1 hora) 8.3 Instrucciones aritmtico-lgicas, de comparacin, de salto condicional e incondicional, de rotacin y desplazamiento. (3.5 horas). 8.4 La pila. Funcionamiento. Puntero de pila. Instrucciones PUSH y POP (1 hora) 8.5 Instrucciones de llamada a subrutinas y retorno: RCALL, RET, RETI. Ejemplos (3 horas) 8.6 Directivas del lenguaje ensamblador. Ejemplos. (1 hora)

Lecturas: [9g] Manejo de Tablas: Para seccin 8.2 [9d] Modelo del Programador, Banderas y Modos de Direccionamiento: Para seccin 8.3 [9e] Instrucciones AVR8 Parte 2: para seccin 8.4 [9f] Instrucciones AVR8 Parte 3: para seccin 8.5 [9k] la pila y subrutinas: para secciones 8.5 y 8.6 [11] 8-bit AVR Instruction Set [12] AVR assembler users guide: Directives. Para seccin 8.7 [16] AVR108 [17] AVR200 [18] AVR202 9. DISEO DE UN COMPUTADOR (1 hora) 9.1 Consideraciones para los puertos: Interpretacin de las caractersticas elctricas (corrientes, voltajes), resistencias PULL-UP internas, puertos con funciones mltiples. (1 hora) Lecturas: [2] Barret. Captulo 6 Atmel AVR Operating Parameters and Interfacing

PROGRAMA DEL LABORATORIO 1. Familiarizacin con las herramientas de desarrollo. Manejo de puertos de E/S. 2. Programacin empleando puertos de E/S. 3. Comunicacin serial asncrona y el temporizador 1. 4. El temporizador 1 e interrupciones. 5. Temporizadores e interrupciones.

Las actividades a realizar para cada sesin de laboratorio son: Tarea para la casa: Es un problema propuesto que deben resolver los alumnos y presentar al inicio del laboratorio funcionando. El problema se coloca en el campus virtual con una semana de anticipacin. Programa para el laboratorio: Es un problema que los alumnos deben de resolver durante el laboratorio, y que tiene relacin con la tarea dejada para la casa. En la cuarta y quinta sesin del laboratorio no se contar con asesora de los jefes de prcticas para el desarrollo del programa, y tendr un valor de 16 puntos en la cuarta y quinta sesiones de laboratorio. Prueba de entrada: Es una prueba escrita de corta duracin (mximo 20 minutos) que se toma al inicio del laboratorio y cuya finalidad es medir el conocimiento de los alumnos en detalles de carcter prctico o terico necesarios para poder llevar a cabo el trabajo del laboratorio. Avance de proyecto y presentacin final: En la primera sesin de laboratorio se proponen una serie de proyectos para que los alumnos, en parejas, desarrollen e implementen. Los proyectos son propuestos por los jefes de prcticas y profesores del curso. Los tipos de proyectos y el nmero de grupos que pueden realizar el mismo proyecto est determinado en gran medida por los recursos con que cuenta el laboratorio. Dada la importancia de la motivacin para poder terminar con xito el proyecto, se puede aceptar, previa revisin y aprobacin de los docentes del curso, alguna iniciativa de los alumnos. Los alumnos deben elegir a su pareja para el proyecto. Una vez definidos y asignados los proyectos, cada pareja contar con un asesor de proyecto, que ser uno de los jefes de prctica del horario de laboratorio. El asesor de proyecto definir las tareas (avance del proyecto) que debe realizar cada alumno y presentar en la siguiente sesin de laboratorio. Habrn dos avances, correspondientes a la segunda y cuarta sesiones de laboratorio. La presentacin final del proyecto se realiza en la ltima semana de clases, pues en dicha semana no hay sesiones de laboratorio programados para los cursos de la facultad. La fecha y hora para cada horario de laboratorio se programar al inicio del semestre. Se evaluar en el proyecto el funcionamiento, la documentacin, y la sustentacin del mismo consistente en una evaluacin oral que se hace a cada integrante. La nota correspondiente al proyecto es individual. Se considerar que un alumno abandona a su compaero de proyecto si no presenta los avances de proyectos, en cuyo caso la nota por presentacin final que tendr ser cero. A cada actividad del laboratorio le corresponde un puntaje de la nota de dicho laboratorio. IV. BIBLIOGRAFA Los tres primeros libros de la lista (Richard Barnet, Steven Barret, Joe Pardue) se usarn como referencia para el curso. El captulo 1 del libro de Richard Barnnet es un resumen del lenguaje C aplicado a sistemas embebidos, y se usar como referencia para el uso de dicho lenguaje. Como segunda referencia se emplear el libro de Pardue.

El libro de Barret abarca la mayora de perifricos que tiene la familia AVR8. Se recomienda la lectura del captulo 6, pues les ser til para el desarrollo del proyecto del laboratorio. 1.- Richard Barnett, Larry OCull, Sarah Cox; Embedded C Programming and the Atmel AVR; 2007, 2da edicin, Thomson Learning Inc. 2.- Barret, Steven F.; Atmel AVR microcontroller primer: programming and interfacing, 2012, Morgan & Claypool (2nd ed.) 3.- Pardue, Joe ; "C programming for microcontrollers : featuring ATMEL's AVR butterfly and the free WinAVR compiler", 2005, Smiley Micros. 4.- Gadre, Dhananjay V.; "Programming and customizing the AVR microcontroller"; 2001, McGraw-Hill. 5.- Margush, Timothy S.; Some assembly required : assembly language programming with the AVR microcontroller, 2012, CRC Press 6.- John Morton; AVR An Introductory Course; 2002, Elsevier Science. 7.- Eady, Fred; Networking and internetworking with microcontrollers; 2004, Elsevier 8.- Arnold S. Berger, Embedded Systems Design. An introduction to processes, tools, & techniques, 2002, CMP Books. 9.- Separatas del curso: a. Captulo 1 parte 1: El computador Digital. b. Captulo 1 parte 2. c. Captulo 2 parte 1: Puertos de Entrada/Salida. d. Instrucciones AVR8 Parte 1: Modelo del Programador, Banderas y Modos de Direccionamiento. e. Instrucciones AVR8 Parte 2: Instrucciones aritmticas. f. Instrucciones AVR8 Parte 3: Instrucciones de rotacin y desplazamiento. g. Manejo de Tablas. h. Comparacin de nmeros. i. Contadores y temporizadores. j. Interrupciones. k. La pila y subrutinas. Manuales 10.- Atmel Corporation, "ATmega48A/PA/88A/PA/168A/PA/328/P datasheet", Mayo 2011 11.- Atmel Corporation, "AVR Instruction Set", Julio 2010 12.- Atmel Corporation, "AVR assembler users guide", manual en lnea 13.- Advanced Micro Tools, VMLAB, manual en lnea 14.- Atmel Corporation, "Atmel Studio 6.0 user's guide", manual en lnea Notas de aplicacin 15.- AVR072: Accessing 16-bit I/O Registers (4 pages, revision B, updated 5/02) 16.- AVR108: Setup and use of the LPM Instructions (4 pages, revision B, updated 5/02) 17.- AVR200: Multiply and Divide Routines (21 pages, revision C, updated 05/06) 18.- AVR202: 16-Bit Arithmetics (3 pages, revision B, updated 5/02) 19.- AVR360: Step Motor Controller Pginas WEB: - Pgina web de la compaa Atmel Corporation para la familia de microcontroladores AVR. http://www.atmel.com/products/avr/

Portal especializado en los microcontroladores de la familia AVR de Atmel. http://www.avrfreaks.com Pgina web de la compaa Advanced Micro Tools (creadora del programa VMLAB empleado en el curso). http://www.amctools.com

V.

METODOLOGA En las clases se fomenta la participacin de los alumnos y se llevan a cabo actividades grupales. Como parte del desarrollo de las habilidades informacionales, se llevarn a cabo actividades individuales y grupales en clase. Las actividades sern evaluadas, y contribuirn a la nota de la tarea acadmica. Por ello es importante la asistencia a clases. Las clases son un apoyo al laboratorio, donde adquirirn las habilidades que son parte de los objetivos del curso, para lo cual, al inicio del semestre se define un proyecto que debe desarrollarse a lo largo del semestre y se presenta en la ltima sesin del laboratorio. Desde la primera clase se dejar material de lectura anticipada, para ser estudiadas antes de la prxima clase. Las lecturas corresponden a temas que deben aprender para poder realizar con xito las prcticas en el laboratorio. Las clases tienen por objetivo absolver las dudas de los alumnos con relacin a las lecturas o temas relacionados con el programa del curso y del laboratorio. Si no hay dudas, se avanza con el siguiente tema del curso. Los temas de prcticas y exmenes son los vistos en clase, o los dejados como lectura, y por tanto, muy relacionados con el laboratorio. Se les recomienda contar con un computador para poder realizar los ejercicios necesarios para su aprendizaje (no se aprende a programar tan solo leyendo). Debido a las caractersticas del curso, es necesario que antes de la primera sesin de laboratorio se lleguen a cubrir las 12 primeras horas de clase. Por esta razn, se adelantarn dos clases en las dos primeras semanas de clase, en el horario que correspondera a la prctica de aula del curso, y no se dictarn las dos ltimas clases del semestre. Esto se informar por correo electrnico, antes del inicio de clases. Recomendaciones: Debido a las caractersticas del curso, entre las cuales estn el aprendizaje de un nuevo lenguaje y la realizacin de tareas dejadas en el laboratorio del curso, se recomienda una dedicacin de 12 horas semanales para el curso terico y el laboratorio. Este tiempo puede ser menor dependiendo del conocimiento adquirido en los cursos previos (Circuitos Digitales, Laboratorio de Circuitos Digitales, Lenguaje de Programacin, Circuitos Elctricos 1) con lo cual la dedicacin puede reducirse a 8 horas semanales. No se recomienda la matrcula en este curso a los alumnos que no hayan acreditado el nivel de idioma ingls requerido para egresar de Estudios Generales Ciencias.

VI.

SISTEMA DE EVALUACIN

El curso tiene la modalidad de evaluacin 2, consistente en dos exmenes, cuatro prcticas de aula calificadas, 5 sesiones de laboratorio, y una tarea acadmica. El promedio final del curso se obtiene con la siguiente frmula: NF = (20*Ex1 + 25*Ex2 + 15*Pa + 20*Pb + 20*TA)/100 Donde: Ex1 : Ex2: Pa: Pb: TA:

Nota del primer examen Nota del segundo examen Promedio de prcticas de aula sin considerar la menor nota Promedio de las notas de las cinco sesiones de laboratorio. Tarea acadmica. 17 puntos corresponden a la nota del proyecto, y 3 puntos a las actividades relacionadas con habilidades informacionales.

San Miguel, marzo de 2014

Vous aimerez peut-être aussi