PROYECTO:

Juego de Tirar Ladrillos, protegido por llave Hardware

(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 2006-2007

En este curso se pretende leer y escribir una memoria EEPROM Serie, con protocolo SPI, a través del puerto paralelo con la temporización adecuada. Para ello se va a utilizar una de estas memorias como dispositivo simple de protección hardware para una aplicación desarrollada por nosotros (vosotros). Este dispositivo también es conocido como "mochila".

La memoria elegida es la 25LC040, memoria EEPROM de 4BKits, organizados como 512x8 bits, con acceso serie tipo SPI. El sistema de protección consiste en que en la memoria habrá una serie de datos en determinadas posiciones. El programa a proteger deberá leer la memoria y comprobar que en dichas posiciones se encuentra la clave esperada. En caso afirmativa el programa podrá ejecutarse y en caso negativo no se le dará acceso y se saldrá al sistema operativo, indicando al usuario que no se puede ejecutar pues no se dispone de la llave necesaria. Los datos a escribir y las posiciones utilizadas serán elección del alumno. Se puede complicar todo lo que se quiera.

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 7 a 11 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 .s19 o el formato binario. Estos formatos determinan el contenido de cada posición de memoria, el formato s19 en un formato de texto, más sencillo de editar, y el formato binario como copia exacta de cada posición de memoria.

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 de derribar una pared de ladrillos. Este programa accederá a un simulador, proporcionado y documentado por nosotros, que se comportará como una llave hardware. Sin dicha llave, 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 llave hardware (con documentación). El simulador leerá un fichero binario que representará el contenido de la llave. 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. Se premiará lo bien/mal protegido que este el programa. El diseño hardware se podrá adquirir de dos formas. Bien se lo construye el alumno con la documentación completa que se publicará, 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 protegido su software
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.
Al alumno se le proporciona el .ejecutable de un compañero y debe de intentar saltarse la protección.

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


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

Elementos que entrega el alumno
Ficheros fuentes (.c y .asm) que escribe/lee eeproms
Fichero .S19 para reventar la práctica compañero
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