PROYECTO: El BUS I2C

(a través del Puerto Paralelo del PC)

(Este enunciado será explicado en la primera clase que corresponda a cada grupo, según el calendario propuesto)



PROYECTO CURSO 2007-2008: El bus I2C

El objetivo del proyecto para este curso es conocer y manejar un protocolo de comunicaciones muy utilizado por dispositivos electrónicos, denominado I2C.

El bus I2C, un estándar que facilita la comunicación entre microcontroladores, memorias y otros dispositivos con cierto nivel de "inteligencia", sólo requiere de dos líneas de señal y un común o masa. Fue diseñado a este efecto por Philips y permite el intercambio de información entre muchos dispositivos a una velocidad de unos 100 Kbits por segundo, aunque hay casos especiales en los que el reloj llega hasta los 3,4 MHz.

La metodología de comunicación de datos del bus I2C es en serie y síncrona. Una de las señales del bus marca el tiempo (pulsos de reloj) y la otra se utiliza para intercambiar datos.

Descripción de las señales:

Las líneas SDA y SCL son del tipo colector abierto. Se deben polarizar en estado alto (conectando a la alimentación por medio de resistencias de "pull-up") lo que define una estructura de bus que permite conectar en paralelo múltiples entradas y salidas.

Las definiciones anteriores has sido extraídas de Robots-Argentina, editado por Eduardo J. Carletti. (Se darán más detalles en la práctica 2)

Para el uso del protocolo I2C se dispone de una memoria EEPROM serie, conectada al PC a través del puerto paralelo. Este memoria es del tipo M24C01, de Microchip. Memoria EEPROM de 1Kbit, organizados como 128x8 bits, con acceso serie tipo I2C.

Para el desarrollo del proyecto se propone la realización de un juego y la memoria externa se utilizará para guardar el nombre y los mejores resultados de un jugador. De esta forma, cuando alguien juegue en otra máquina conserva la puntuación anterior, pudiendo registrar los posibles nuevos records.

El acceso a la memoria se realizará a través de un driver, programa residente que por un lado atiende las peticiones de la aplicación y por otro genera las señales necesarias para leer la memoria, que estará conectada al puerto paralelo. Se recomienda leer con especial atención las páginas de la hoja de datos de la memoria, donde se describe la forma de acceso, tanto para lectura como para escritura, de la memoria.


 

 

 

                                                                                                       PC

                                                                

Para definir el contenido de la memoria se utilizará el formato el formato binario (como opción avanzada se puede utilizar también el formato s19). Estos formatos determinan el contenido de cada posición de memoria, el formato binario como copia exacta de cada posición de memoria y el formato s19 en un formato de texto, más sencillo de editar.

Práctica 1

Descripción:

El alumno realiza un programa complejo en ensamblador, dividido en varias librerías. Este programa será el clásico juego del tenis. Este programa accederá a un simulador, proporcionado y documentado por nosotros, que se comportará como una memoria I2C conectada al puerto paralelo. Sin dicha memoria, el programa no podrá funcionar.

JUGAR

JUGAR

Objetivos:
- Realizar un primer programa COMPLEJO en ensamblador
- Aprender el uso de librerías
- Acceso a servicios propios
- Uso del teclado
- Creación de ficheros Makefiles (PERO MAKEFILES DE VERDAD)

Elementos que se le proporcionan al alumno
- Creación de librerías
- Formato de ficheros binarios
- Edición de Makefiles y ejemplos
- Simulador que se comporta como una memoria I2C (con documentación). El simulador leerá un fichero binario que representará el contenido de la memoria. Este fichero deberá proporcionarlo el alumno, cada uno con el contenido de memoria correspondiente.
- Librería grafica de uso opcional

Elementos que entrega el alumno
Ficheros fuente (.asm), contenido de la memoria (fichero binario) y Makefile

Práctica 2

Descripción:

El alumno dispondrá de una placa hardware conectada al puerto paralelo y diseñará un driver de acceso a dicha placa. El driver debe de poder interactuar con el programa de la práctica 1. El diseño hardware se podrá adquirir de dos formas. Bien se lo construye el alumno (se le proporcional a documentación completa, publicada en la práctica 2), o bien lo puede tomar prestado de la Escuela, quedándoselo hasta que finalice el curso, devolviéndolo al final.

Objetivos:
- Creación de ficheros .com
- Instalación/Desinstalación de interrupciones
- Uso del puerto paralelo

- Formato de ficheros binarios
- Uso del RTC (Real Time Clock o Reloj de Tiempo Real)


Elementos que se le proporcionan al alumno
- Creación de ficheros .COM
- Documentación del Puerto Paralelo
- Documentación del RTC
- Planos de la placa, tanto eléctricos como del Circuito Impreso, así como lista de componentes.
- Aplicación software que programa la EEPROM a partir de un fichero binario que se le proporcione.


Elementos que entrega el alumno
Ficheros fuente (.asm) y Makefile de la Práctica 1 (Pueden haber cambiado)
Ficheros fuente (.asm) y Makefile del driver
Pequeña memoria explicando cómo ha diseñado el acceso a la memoria.
Fichero binario del contenido que ha de tener la EEPROM


Práctica 3

Descripción:

El alumno diseñará un programa en C que escribe/lee EEPROMs a través de su driver. Programador de memorias EEPROM I2C.
Al alumno se le proporciona un ejecutable de un compañero y deberá manipularlo para que nunca pierda.

Objetivos:
- Interacción C/ASM
- USO DEL DEBUGGER


Elementos que se le proporcionan al alumno
Ejecutable de un compañero
Documentación del interfaz entre C y ASM

Elementos que entrega el alumno
Ficheros fuentes (.c y .asm) que escribe/lee EEPROMs
Ejecutable del compañero modificado.
Memoria detallando cómo lo ha hecho

 



Bibliografía recomendada para este proyecto.

Además de la bibliografía recomendada para la asignatura, se incluyen unas referencias que describen el funcionamiento del puerto paralelo:


Página editada y mantenida por Guillermo Glez. de Rivera
Volver atrás
Volver a la página principal del laboratorio