iee256-2014-2

6
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).

Upload: reyner-loza

Post on 27-Dec-2015

51 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IEE256-2014-2

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

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

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

[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

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

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.