iee256-2014-2
TRANSCRIPT
![Page 1: IEE256-2014-2](https://reader035.vdocumento.com/reader035/viewer/2022080223/55cf94b2550346f57ba3c8aa/html5/thumbnails/1.jpg)
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ FACULTAD DE CIENCIAS E INGENIERÍA
SISTEMAS DIGITALES
Especialidad : Ingeniería Electrónica y
Mecatrónica
Clave : IEE256
Área : Electrónica Créditos : 5.5
Ciclo : Quinto Teoría : 4 horas semanales
Semestre : 2014-2 Práctica
Laboratorio
:
:
2 horas quincenales
4horas quincenales
Profesores : Ing. Hugo Pratt L.
Ing. Rolando Sanchez
Ing. Jorge Benavides
Requisitos : IEE144, INF135, IEE146
(IEE144) (IEE146)
I. DESCRIPCIÓN DEL CURSO
En el curso se enseña a diseñar computadoras de aplicación específica (sistemas
embebidos) en base a microcontroladores de las familias Stellaris y Tiva de Texas
Instruments. Para ello se describen las computadoras de aplicación específica,
diferenciándolas de las computadoras de propósito general. Se describe el
microcontrolador (sus partes internas y juego de instrucciones) y también las
herramientas de desarrollo a utilizar (compilador cruzado de C, ensamblador,
simulador). Finalmente, como parte de un proyecto, se diseña 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 estarán en condiciones de diseñar
un computador basado en un microcontrolador de 32 bits, y desarrollar el programa
que lo controla. También serán capaces de leer y comprender la documentación técnica
(manuales de referencia y especificaciones técnicas) de un microcontrolador.
OBJETIVOS ESPECÍFICOS:
1. Conocer las partes básicas de un computador y la terminología relacionada (tanto
en castellano como en inglés).
2. Conocer parte del lenguaje (parte del 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 porciones de programas en lenguaje ensamblador
empleados para leer o escribir registros de E/S (las instrucciones) generados por el
compilador de C.
5. Conocer el uso y saber utilizar un simulador para la depuración de programas.
6. Desarrollar, simular y depurar programas en lenguaje C empleando para ello
herramientas de desarrollo de software (simuladores y depuradores remotos).
![Page 2: IEE256-2014-2](https://reader035.vdocumento.com/reader035/viewer/2022080223/55cf94b2550346f57ba3c8aa/html5/thumbnails/2.jpg)
7. Conocer y utilizar interfaces y periféricos programables.
8. Diseñar un sistema embebido basado en un microcontrolador de 32 bits, utilizando
las interfaces y periféricos adecuados, y desarrollar el programa que lo controla,
tomando en consideración las especificaciones técnicas y documentación técnica
de los fabricantes de microcontroladores.
Estos objetivos contribuyen significativamente al logro del siguiente resultado del programa
de ingeniería electrónica:
(k) Habilidad para utilizar técnicas, destrezas y herramientas de ingeniería moderna necesarias
para la práctica ingenieril.
III. PROGRAMA ANALÍTICO
1. INTRODUCCIÓN (8 horas)
1.1 Introducción al curso. (1.5 horas)
1.2 El computador digital: sus partes. Microprocesador y microcontrolador. (2 horas)
1.3 Memorias semiconductoras: tipos, características. Modelo de memoria con
compuertas lógicas y registros. (1.5 horas)
1.4 Arquitectura de un computador: Harvard, Von Neuman. Sus diferencias. (0.5 horas)
1.5 Lenguaje máquina, código máquina, lenguaje de ensamblaje, lenguaje de alto nivel,
modos de direccionamiento. (2 horas)
1.6 Sistemas embebidos y herramientas de desarrollo. (0.5 horas)
Lecturas:
[1] Valvano. Subcapítulos 1.1 y 1.2 (14 páginas)
[2] Lewis. Capítulo 1
[6a] Capítulo 1 parte 1: para secciones 1.1 a 1.4
[6b] Capítulo 1 parte 2: para sección 1.5
2. PERIFÉRICOS PROGRAMABLES PARTE I (Puertos de E/S) (9 horas)
2.1 Características generales de las familias de microcontroladores Stellaris y Tiva de
Texas Instruments. Ejemplos: Stellaris LM3S9B92, LM3S6965 y Tiva
TM4C123GH6PM: Diagrama de bloques; Registros del CPU; disposición de pines;
puertos de E/S; mapa de memoria. (1 hora)
2.2 Puertos: definición. Puertos de E/S de propósito general (GPIO) y registros de
configuración. Manejo de puertos en lenguaje C (operaciones de entrada/salida).
Ejemplo. Ejemplos. (3 horas)
2.3 Enmascaramiento de bits con operaciones lógicas. Ejemplo en lenguaje C para
manejo de puertos. Resistencias de pull-up y pull-down. (3 horas)
2.4 Lenguaje ensamblador: Instrucciones de transferencia de datos MOV, LDR, STR;
instrucción de salto. Etiquetas. Bandera Z. Codificación de instrucciones. Ejemplo.
(2.0 horas)
Lecturas:
[1] Valvano (Vol. 2). Subcapítulos 2.1.1 y 2.1.2 (5 páginas); 2.2 y 2.4 (14 + 13 páginas)
[2] Lewis. Subcapítulos 4.1, 4.3 a 4.6, 6.1 a 6.4
[6c] Capítulo 2 parte 1
[8], [9], [10]: En estos tres manuales, la sección “General-Purpose Input/Outputs
(GPIOs)”
[3] Hohl. Para sección 2.4: Subcapítulos 3.1, 3.2, 4.1 a 4.3, 5.1 a 5.3, 7.1 a7.3,
![Page 3: IEE256-2014-2](https://reader035.vdocumento.com/reader035/viewer/2022080223/55cf94b2550346f57ba3c8aa/html5/thumbnails/3.jpg)
3. MANEJO DE TABLAS (5 horas)
3.1 Arreglos en memoria RAM y memoria Flash. (1hora)
3.2 Implementación de tablas en memoria Flash. Su implementación en lenguaje C
mediante arreglos. Ejemplos. Arreglos como parámetros de funciones. (3 horas)
3.3 Lenguaje ensamblador: modo de direccionamiento indexado. Ejemplos. (1 hora)
Lecturas:
[3] Hohl. Subcapítulo 5.4 (para la sección 3.3)
[2] Lewis. Subcapítulo 6.5, 7.3.1
4. EL TEMPORIZADOR DEL SISTEMA (SysTick Timer) (6 horas)
4.1 Principio de funcionamiento. Registros de configuración. Ejemplos de uso como
temporizador. (3 horas)
4.2 Lenguaje ensamblador: La pila (stack): funcionamiento. Puntero de pila.
Instrucciones PUSH y POP. Subrutinas: Llamada y retorno de subrutinas (3 horas)
Lecturas:
[1] Valvano. Sección 2.6
[8], [9], [10]: En estos tres manuales, la sección “System Timer (SysTick)”
[3] Hohl. Subcapítulos 3.1, 3.2, 4.1 a 4.3, 5.1 a 5.3, 7.1 a7.3, 10.1, 10.2
[2] Lewis. Subcapítulo 6.7, 7.4.1 a 7.4.3, 7.4.6
5. ESPECIFICACIONES ELÉCTRICAS PARA EL DISEÑO DE UN COMPUTADOR (2
horas)
5.1 Consideraciones para los puertos: Interpretación de las características eléctricas
(corrientes, voltajes), resistencias de pull-up y pull-down internas, puertos con
funciones múltiples. Niveles de tensión y corriente en dispositivos CMOS y TTL (2
horas)
Lectura:
[1] Valvano. Capítulo 9
[8], [9], [10]: En estos tres manuales, la sección “Electrical Characteristics”
6. PERIFÉRICOS PROGRAMABLES PARTE II (UART) (6 horas)
6.1 Niveles lógicos TTL, RS232. Formato de una comunicación serial asíncrona: bits de
arranque, datos, paridad, parada. Velocidad de comunicación (bps).
(2 horas)
6.2 Uso del UART en las familias Stellaris y Tiva. Disposición de pines. Registros de
control, de transmisión y de recepción de datos. Ejemplos. (4 horas)
Lectura:
[1] Valvano. Subcapítulos 4.1, 4.8, 4.9, 7.1 y 7.2 (10 páginas)
[8], [9], [10] En estos tres manuales el capítulo “Universal Asynchronous
Receivers/Transmitters (UARTs)”
7. PERIFÉRICOS PROGRAMABLES PARTE III (Circuito temporizador) (8 horas)
7.1 Partes de un circuito temporizador: preescalador, contador, comparadores de salida,
circuito de captura de entrada (2 horas).
7.2 Temporizadores de la familia Stellaris y Tiva. Disposición de pines. Modos de
funcionamiento. Ejemplos (6 horas)
Lecturas:
[1] Valvano. Capítulo 6.
[6d] Contadores y Temporizadores
![Page 4: IEE256-2014-2](https://reader035.vdocumento.com/reader035/viewer/2022080223/55cf94b2550346f57ba3c8aa/html5/thumbnails/4.jpg)
[8], [9], [10] En estos tres manuales el capítulo “General-Purpose Timers”
8. INTERRUPCIONES Y EL SYSTICK TIMER (6 horas)
8.1 Concepto de interrupción. (1.5 horas)
8.2 Interrupciones en la familia Stellaris y Tiva: El controlador de interrupciones NVIC
(1.5 horas)
8.3 Implementación de funciones de servicio de interrupción en lenguaje C. Ejemplo de
interrupciones con el SysTick timer. (3 horas)
Lecturas:
[6e] Interrupciones (22 páginas)
[1] Valvano. Capítulo 5
[7], [8], [9] En estos tres manuales los capítulos 2 y 3
PROGRAMA DEL LABORATORIO
1. Familiarización con las herramientas de desarrollo. Manejo de puertos de E/S.
2. Programación empleando puertos de E/S.
3. Comunicación serial asíncrona y el temporizador del sistema (Systick).
4. El temporizador 1 e interrupciones.
5. Temporizadores e interrupciones.
Las actividades a realizar para cada sesión 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 anticipación.
Programa para el laboratorio:
Es un problema que los alumnos deben de resolver durante el laboratorio, y que tiene
relación con la tarea dejada para la casa. En la cuarta y quinta sesión del laboratorio
no se contará con asesoría de los jefes de prácticas para el desarrollo del programa, y
tendrá un valor de 16 y 20 puntos en la cuarta y quinta sesiones de laboratorio
respectivamente.
Prueba de entrada:
Es una prueba escrita de corta duración (máximo 20 minutos) que se toma al inicio del
laboratorio y cuya finalidad es medir el conocimiento de los alumnos en detalles de
carácter práctico o teórico necesarios para poder llevar a cabo el trabajo del
laboratorio.
Avance de proyecto y presentación final:
En la primera sesión de laboratorio se proponen una serie de proyectos para que los
alumnos, en grupos de dos, tres o cuatro alumnos, desarrollen e implementen. Los
proyectos son propuestos por los jefes de prácticas y profesores del curso. Los tipos de
proyectos y el número de grupos que pueden realizar el mismo proyecto está
determinado en gran medida por los recursos con que cuenta el laboratorio. El número
de alumnos por grupo depende de la complejidad del proyecto. Los alumnos deben
elegir a los integrantes de sus grupos.
Una vez definidos y asignados los proyectos, cada grupo contará con un asesor de
proyecto, que será uno de los jefes de práctica del horario de laboratorio. El asesor de
proyecto definirá las tareas (avance del proyecto) que debe realizar cada alumno y
presentar en la siguiente sesión de laboratorio.
Habrán dos avances, correspondientes a la segunda y cuarta sesiones de laboratorio.
![Page 5: IEE256-2014-2](https://reader035.vdocumento.com/reader035/viewer/2022080223/55cf94b2550346f57ba3c8aa/html5/thumbnails/5.jpg)
La presentación 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 documentación, y la
sustentación del mismo consistente en una evaluación oral que se hace a cada
integrante.
La nota correspondiente al proyecto es individual. Se considerará que un alumno
abandona a su compañero de proyecto si no presenta los avances de proyectos, en cuyo
caso la nota por presentación final que tendrá será cero.
A cada actividad del laboratorio le corresponde un puntaje de la nota de dicho laboratorio.
IV. BIBLIOGRAFÍA
El libro [1] (J. W. Valvano) se usará como referencia para el curso.
1.- Jonathan W. Valvano, “Embedded Systems: Real Time Interfacing to ARM®
CortexTM
-
M Microcontrollers Vol. 2”, 2012, 2da
edición, http://users.ece.utexas.edu/~valvano/,
ISBN: 978-1463590154
2.- Daniel W. Lewis, “Fundamentals of Embedded Software with the ARM®
Cortex-M3”,
2013, 2da
edición
3.- William Hohl, “ARM Assembly Language”, 2009, CRC press.
4.- Joseph Yiu, “The definitive guide to the ARM Cortex-M3”, 2010, Elsevier
5.- Arnold S. Berger, “Embedded Systems Design. An introduction to processes, tools, &
techniques”, 2002, CMP Books.
6.- Separatas del curso:
a. Capítulo 1 parte 1: El computador Digital.
b. Capítulo 1 parte 2.
c. Capítulo 2 parte 1: Puertos de Entrada/Salida.
d. Contadores y temporizadores.
e. Interrupciones.
Manuales
7.- ARM, “ARMv7-M Architecture Reference Manual”
8.- Texas Instruments, “Stellaris® LM3S9B92 Microcontroller Datasheet”, 2012
9.- Texas Instruments, “Stellaris® LM3S6965 Microcontroller Datasheet”, 2012
10.- Texas Instruments, “Tiva TM4C123GH6PM Microcontroller Datasheet”, 2013
Páginas WEB:
- Página web de la compañía Texas Instruments: http://www.ti.com
- Foro comunitario de Texas Instruments: http://e2e.ti.com
- Página web de la compañía Keil: http://www.keil.com
V. METODOLOGÍA
En las clases se fomenta la participación de los alumnos y se llevan a cabo actividades
grupales. Como parte del desarrollo de las habilidades informacionales, se llevarán a
cabo actividades individuales y grupales en clase. Las actividades serán evaluadas, y
contribuirán a la nota de la tarea académica. Por ello es importante la asistencia a
clases.
![Page 6: IEE256-2014-2](https://reader035.vdocumento.com/reader035/viewer/2022080223/55cf94b2550346f57ba3c8aa/html5/thumbnails/6.jpg)
Las clases son un apoyo al laboratorio, donde adquirirán 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 semana de clases.
Desde la primera clase se dejará material de lectura anticipada, para ser estudiadas
antes de la próxima clase. Las lecturas corresponden a temas que deben aprender para
poder realizar con éxito las prácticas en el laboratorio. Las clases tienen por objetivo
absolver las dudas de los alumnos con relación 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 prácticas y exámenes 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 características del curso, es necesario que antes de la primera sesión de
laboratorio se lleguen a cubrir las 12 primeras horas de clase. Por esta razón, se
adelantarán dos clases en las dos primeras semanas de clase, en el horario que
correspondería a la práctica de aula del curso, y no se dictarán las dos últimas clases
del semestre. Esto se informará por correo electrónico, antes del inicio de clases.
Recomendaciones:
Debido a las características del curso, entre las cuales están el aprendizaje de
un nuevo lenguaje y la realización de tareas dejadas en el laboratorio del curso,
se recomienda una dedicación de 12 horas semanales para el curso teórico y el
laboratorio. Este tiempo puede ser menor dependiendo del conocimiento
adquirido en los cursos previos (Circuitos Digitales, Laboratorio de Circuitos
Digitales, Lenguaje de Programación, Circuitos Eléctricos 1) con lo cual la
dedicación puede reducirse a 8 horas semanales.
No se recomienda la matrícula en este curso a los alumnos que no hayan
acreditado el nivel de idioma inglés requerido para egresar de Estudios
Generales Ciencias.
VI. SISTEMA DE EVALUACIÓN
El curso tiene la modalidad de evaluación 2, consistente en dos exámenes, cuatro prácticas
de aula calificadas, 5 sesiones de laboratorio, y una tarea académica.
El promedio final del curso se obtiene con la siguiente fórmula:
NF = (20*Ex1 + 25*Ex2 + 15*Pa + 20*Pb + 20*TA)/100
Donde:
Ex1 : Nota del primer examen
Ex2: Nota del segundo examen
Pa: Promedio de prácticas de aula sin considerar la menor nota
Pb: Promedio de las notas de las cinco sesiones de laboratorio.
TA: Tarea académica. 20 puntos que corresponden a la nota del proyecto.
San Miguel, agosto de 2014.