Вы находитесь на странице: 1из 84

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y


ELÉCTRICA CULHUACAN
INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

Programador de tarjetas EEPROM para su reutilización y


disminución de impacto ambiental

TESIS
QUE PARA OBTENER EL TÍTULO DE
INGENIERO EN COMUNICACIONES Y ELECTRÓNICA
PRESENTA

C. Alemán Cruz David

ASESORES

Dr. Leobardo Hernández González


Lic. Mimí Chantal Escobar Zamorano

México D.F. Enero 2012


INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN

TESIS INDIVIDUAL

Que como prueba escrita de su Examen Profesional para obtener el Título de Ingeniero en Comunicaciones
y Electrónica, deberá desarrollar el C.:

DAVID ALEMAN CRUZ

“PROGRAMADOR DE TARJETAS EEPROM PARA SU REUTILIZACION Y DISMINUCION DE IMPACTO


AMBIENTAL”

A mediados de los años 90 y debido al avance de sistemas electrónicos embebidos, se logro un gran
desarrollo tecnológico en la fabricación de memorias tipo flash altamente seguras lo que genero el
uso masivo de este tipo de tarjetas como medios electrónicos de recarga con alta seguridad. Un
impacto negativo de este avance tecnológico. Es la generación de tarjetas utilizadas que terminan
generalmente en la basura con un alto impacto al medio ambiente. El desarrollo de un sistema
electrónico de recarga de tarjetas EEPROM de bajo costo, permitirá reutilizar las tarjetas usadas
como soporte de aplicaciones secundarias diferentes a las que fueron inicialmente fabricadas,
permitiendo disminuir el impacto negativo al medio ambiente en cuanto a basura industrial. El
desarrollo y comprensión de este tipo de tecnología permitirá a los estudiantes de ingeniería en
comunicaciones y electrónica una mayor competencia en su posible ámbito de desarrollo
profesional.

CAPITULADO

CAPITULO 1 Introducción a Memorias EEPROM


CAPITULO 2 Programador de tarjetas EEPROM
CAPITULO 3 Principio de funcionamiento de tarjetas EEPROM
CAPITULO 4 Prototipo experimental y pruebas
Conclusiones
Biografía

México D. F., a 30 de Octubre del 2012

PRIMER ASESOR: SEGUNDO ASESOR:

DR. LEOBARDO HERNANDEZ GONZALEZ M. en C. MIMI CHANTAL ESCOBAR ZAMORANO

Vo. Bo. APROBADO

M. en C. ANTONIO ROMERO ROJANO M. en C. HECTOR BECERRIL MENDOZA


JEFE DE LA CARRERA DE I.C.E. SUBDIRECTOR ACADÉMICO
Dedicatoria

A mis padres por ser el pilar fundamental en todo lo que soy, en toda mi educación, tanto
académica, como de la vida, por su incondicional apoyo perfectamente mantenido a través del
tiempo.

Todo este trabajo ha sido posible gracias a ellos.

A mi maestro, el Dr. Leobardo Hernández González por su gran apoyo y motivación para la
culminación de mis estudios profesionales y para la elaboración de esta tesis; a la Lic. Mimí
Escobar por su apoyo ofrecido en este trabajo y a Dios por haberme permitido llegar hasta este
punto y haberme dado salud para lograr mis objetivos, además de su infinita bondad y amor.

ii
JUSTIFICACION

A mediados de los años 90´y debido al avance de sistemas electrónicos embebidos, se logro
un gran desarrollo tecnológico en la fabricación de memorias tipo flash altamente seguras, lo que
genero el uso masivo de este tipo de tarjetas como medios electrónicos de recarga con alta
seguridad. Un impacto negativo de este avance tecnológico, es la generación de tarjetas utilizadas
que terminan generalmente en la basura con un alto impacto al medio ambiente. El desarrollo de un
sistema electrónico de recarga de tarjetas EEPROM de bajo costo, permitirá reutilizar las tarjetas
usadas como soporte de aplicaciones secundarias diferentes a las que fueron inicialmente
fabricadas, permitiendo disminuir el impacto negativo al medio ambiente en cuanto a basura
industrial. El desarrollo y comprensión de este tipo de tecnología permitirá a los estudiantes de
ingeniería en comunicaciones y electrónica una mayor competencia en su posible ámbito de
desarrollo profesional.
ÍNDICE

Capítulo 1. Introducción a Memorias EEPROM

1 1
Memorias programables…………………………………............
1.1 11

1 1
Tipos de memorias programables……………….…………........
1.2 12

1 1
Memoria EEPROM………………….………….……………….
1.3 16

1 1
Historia………………………………………….……………….
1.4 18

1 1
Cualidades……….………………………………...…………….
1.5 18

1 1
Ventajas……………………………………..…..………….........
1.6 18

1 1
Arquitectura………………………….……….……….…….......
1.7 19

1 2
Descripción…………………………….…….………….………
1.8 20

1 1
Característica principal………………..…………….…………..
1.9 20

1 1
Limitaciones…………………………………….…….…………
1.10 21

2
Capítulo 2. Programador de tarjetas EEPROM

2 2
2.1 Introducción………………………………………………..…....... 23

2 2
2.2 Tarjetas EEPROM……………………………………...………..... 23

2 2
Método de programación……………………….……..……….….
2.3 25

2 2
Características de un display………………………………….…...
2.4 27

2 3
Interfaz y hardware de un display…………………………….…...
2.5 34

2 3
Emulador……………….……….……………………….…...........
2.6 40

2 3
Diagrama a bloques del programador………………………..........
2.7 41

2 3
Diagrama esquemático del programador…………………….……
2.8 41

Capítulo 3. Principio de funcionamiento de tarjetas EEPROM

3 4
Introducción………………………………………………………..
3.1 43

3 4
Funcionamiento de tarjetas para 256 Bytes.……………………….
3.2 43

3 4
Funcionamiento de tarjetas para128 Bytes...………………………
3.3 51

3
Capítulo 4. Prototipo experimental y pruebas

4 5
Construcción de un lector de tarjetas EEPROM..............................
4.1 57

4 5
Algoritmo de programación…….....……………………..….........
4.2 58

4 6
Mapeo de Tarjetas…………………...………………………...….
4.3 61

4 7
Circuito para programación de Tarjetas EEPROM…...……..........
4.4 69

7
Conclusiones……………………………………….................................
72

7
Recomendaciones…………....…………………………….....................
73

7
Bibliografía…………………………………………………………….
74

8
Anexos………………………………………………………………….
75

4
LISTADO DE FIGURAS

Capítulo 1. Introducción a Memorias EEPROM

1.1 Tipo de memorias programables…………………………………… 12

1.2 Vista de una ventana de una EPROM…………………………….. 14

1.3 Celda de memoria de una EPROM………………………………… 15

1.4 Diagrama a bloques de una memoria EEPROM………………….. 17

1.5 Arquitectura de la memoria EEPROM.………………………….... 19

Capítulo 2. Programador de tarjetas EEPROM

2.1 Diagrama chip tarjeta EEPROM……………...…………………..... 23

2.2 Diagrama de tiempo de las Señales...………………………..…...... 25

2.3 Técnicas de programación…………………………………...…….. 25

2.4 Realización física del “1” y del “0” Lógico………………………. 26

2.5 Aspecto físico de un LCD………………………………………… 27

2.6 Capacidad de visualización de caracteres del display…………… 27

2.7 Matriz de representación de caracteres, representación del carácter A y de un


carácter definido por el usuario…………………………….. 28

2.8 Display virtual y display real………………………………………. 29

2.9 Posición del display real respeto al virtual cuando se inicializa el


LCD……………………………………………………………………. 30

2.10 Mapa de memoria de la DD RAM y sus posiciones en el display


virtual…………………………………………………………………... 31

2.11 Mapa de memoria de la CG RAM……………………………….. 32

5
2.12 Carácter definido por el usuario y los valores a almacenar en la CG
RAM………………………………………………………………. 33

2.13 Valores a almacenar en la CG RAM para definir en el carácter 0... 33

2.14 Asignación de pines del LCD…………………………………….. 34

2.15 Interfaz del LCD con un sistema de control……………………… 35

2.16 Conexión del LCD utilizando un bus de 8 bits y un bus de 4 bits... 36

2.17 control del contraste en el LCD…………………………………... 37

2.18 Cronograma del LCD ..…………………………………………… 38

2.19 Cronogramas correspondientes a la operación de escribir el dato $41


(Carácter ‘A’) en el display utilizando un bus de datos de 8 y 4
bits……………………………………………………………………… 39

2.20 Diagrama a Bloques del Programador EPROM…………………. 41

2.21 Forma Esquemática del Programador de tarjetas


EEPROM……………………………………………………………… 41

Capitulo 3. Principio de funcionamiento de tarjetas EEPROM

3.1 Distribución de Pines de tarjetas EEPROM……………………….. 44

3.2 Interfaz entre el Chip y el Teléfono……………………………….. 47

3.3 Interfaz entre en Chip y el Teléfono para tarjetas que no requieren tensión
47
Vpp...…………………………………………………………...

3.4 Mapa de tarjetas de128 Bytes…………………….……………….. 51

3.5 Lectura de Datos…………………………………………………… 53

3.6 Escritura de Datos…………………………………………………. 54

3.7 Borrado de Datos…………………………………………………... 55

6
Capítulo 4. Prototipo experimental y pruebas

4.1 Lector de tarjetas EEPROM………………………………....…….. 57

4.2 Foto lector de Tarjetas EEPROM………………………...……….. 58

4.3 Instalación de controladores Sistema Operativo Windows NT…… 59

4.4 Controladores para Sistema Operativo Windows 95/98….............. 59

4.5 Error cuando no están instalados correctamente los controladores.. 60

4.6 Ejecución de programa de manera correcta………………………... 60

4.7 Mapeo de Tarjeta con $30 de crédito………………………………. 61

4.8 Mapeo de Tarjeta con $27 de crédito………………………………. 63

4.9 Mapeo de Tarjeta con $24 de crédito………………………………. 63

4.10 Mapeo de Tarjeta con $21 de crédito……………………………... 64

4.11 Mapeo de Tarjeta con $18 de crédito……………………………... 64

4.12 Mapeo de Tarjeta con $15 de crédito……………………………... 65

4.13 Mapeo de Tarjeta con $12 de crédito……………………………... 65

4.14 Mapeo de Tarjeta con $9 de crédito………………………………. 66

4.15 Mapeo de Tarjeta con $6 de crédito………………………………. 66

4.16 Mapeo de Tarjeta con $3 de crédito………………………………. 67

4.17 Mapeo de Tarjeta con $0 de crédito………………………………. 67

4.18 Circuito para recarga de tarjetas EEPROM………………………. 68

4.19 Foto circuito para recarga de tarjetas EEPROM…………………. 70

7
LISTADO DE TABLAS

Capítulo 1. Introducción a Memorias EEPROM

1.1 Características de las memorias EEPROM…………………........... 20

Capítulo 2. Programador de tarjetas EEPROM

2.1 Código asociado a cada carácter imprimible por el display........… 29

2.2 Manera en la que trabaja el bus de control……………………….. 37

Capítulo 3. Principio de funcionamiento de tarjetas EEPROM

3.1 Distancia de terminales en formato ISO………………………….. 44

3.2 Funcionamiento de cada terminal de Chip.………………………... 45

3.3 Significado de cada Byte de tarjetas de 256 Bytes...………………. 48

3.4 Descripción de pines para tarjetas de 128 Bytes….....……………. 51

3.5 Mapa de memoria de tarjetas de 128 Bytes……………...………… 52

Capítulo 4. Prototipo experimental y pruebas

4.1 Decremento de crédito de una tarjeta EEPROM…………………... 68

8
RESUMEN

El presente trabajo trata del diseño de un grabador de tarjetas EEPROM de bajo


costo, mismas que podrán ser reutilizadas en aplicaciones secundarias diferentes a las que
fueron diseñadas inicialmente, se analizará el principio de codificación de como la
información es guardada en la matriz de almacenamiento, lo anterior permitirá realizar el
algoritmo de lectura y escritura apropiado para su reutilización una vez que estas tarjetas
son desechadas.
El Capítulo I trata acerca de la evolución, tipos, cualidades y ventajas de las
memorias EEPROM, se detalla también la arquitectura y se describe el principio de
funcionamiento de este tipo de memorias
El Capítulo II se presenta la metodología de diseño para realizar un programador de
tarjetas EEPROM, se presentan las limitaciones y ventajas obtenidas en esta parte de la
tesis.
En el Capítulo III analiza el funcionamiento a partir de un prototipo experimental
para los dos tipos de tarjetas EEPROM mas utilizadas: 128 y 256 Bytes.
Finalmente en el Capítulo IV se muestran los diferentes resultados obtenidos, que se
realizaron en diferentes pruebas.
Se anexan las conclusiones y recomendaciones para este tipo de desarrollo
tecnológico.

9
CAPITULO 1

Introducción a Memorias EEPROM

10
1.1 Memorias programables
Las computadoras y otros tipos de sistemas digitales requieren el almacenamiento
permanente o temporal de un gran número de datos binarios. Los sistemas basados en
microprocesadores necesitan de la memoria para almacenar los programas y datos
generados durante el procesamiento y disponer de ellos cuando sea necesario.
Las modernas técnicas de circuitos integrados permiten combinar miles e incluso
millones de puertas dentro de un solo encapsulado. Esto ha llevado a la fabricación de
diseños más complejos como los dispositivos lógicos programables, memorias y
microprocesadores, que proporcionan dentro de un solo chip circuitos que requieren gran
cantidad de componentes discretos.
Las memorias son dispositivos de almacenamiento de datos binarios de largo o
corto plazo. La memoria es un componente fundamental de las computadoras digitales y
está presente en gran parte de los sistemas digitales. La memoria de acceso aleatorio (RAM,
random access memory) almacena datos temporalmente, la memoria de sólo lectura (ROM,
Read only memory) los guarda de manera permanente. La ROM forma parte del grupo de
componentes llamados dispositivos lógicos programables (PLD, programmable logic
devices) y aunque esta es su tarea fundamental (más del 90 % de las memorias se dedican a
este fin) también se pueden utilizar para la implementación de circuitos combinacionales y
pueden sustituir la mayor parte de la lógica de un sistema.
Un dispositivo lógico programable es un chip LSI (Large Scale Integration) que
contiene una estructura de circuito “regular”, pero que permite al diseñador adecuarlo para
una aplicación específica. Cuando un PLD típico deja la fábrica como circuito integrado,
aún no está listo para una función específica, sino que debe ser programado por el usuario
para que realice la función requerida en una aplicación particular. Los chips con la mayor
funcionalidad por unidad de área han sido los chips de memoria, que contienen arreglos
rectangulares de celdas de memoria. Uno de estos PLD es el chip “de memoria de sólo
lectura”.
En una primera clasificación, se puede distinguir entre memorias de
almacenamiento masivo, caracterizadas por ser memorias baratas y lentas, y memorias
semiconductoras o memorias de estado sólido, más caras y rápidas. En las primeras, la
prioridad es disponer de una gran capacidad de almacenamiento, como ocurre en los discos
duros, en tanto que en las segundas, la prioridad es disponer de velocidades de acceso
rápidas compatibles con la mayor capacidad de almacenamiento posible. Que son las
habitualmente utilizadas como memorias de almacenamiento de programa y de datos en la
mayoría de las aplicaciones.
Se puede considerar una memoria como un conjunto de “M” registros con “N” bits
en uno de ellos. Estos registros ocupan las posiciones desde el valor 0 hasta M-1. Para
acceder a cada registro es necesaria una lógica de selección. En general, para cada registro
se pueden realizar procesos de lectura y de escritura. Para realizar todas estas operaciones
son necesarias las siguientes terminales:

11
 Terminales de datos (de entrada y de salida)
 Terminales de direcciones, son necesarios m, de tal forma de 2m=M
 Terminales de control. Son los que permiten especificar si se desea realizar una
operación de escritura o de lectura, seleccionar el dispositivo.
 CS (Chip select): Es el terminal de selección de chip (habitualmente se activa con
nivel bajo.
 R/W (Read/Write): Selecciona el modo de operación (lectura o escritura) sobre la
 memoria. habitualmente con valor bajo ese activa el modo de escritura.
 OE (Output Enable). Controla el estado de alta impedancia de los terminales de
salida del dispositivo.

1.2 Tipos de memorias programables

En la Figura 1.1 se muestran los principales tipos de memoria y su descripción, se


presentan de acuerdo a desarrollo y utilización cronológica en la industria de la electrónica.
Para una mejor comprensión de cada uno de estos tipos de memoria se procede a dar un
pequeño bosquejo técnico.

Siglas Descripción

ROM Memoria de solo lectura

PROM Memoria de solo lectura programable

EPROM Memoria de solo lectura programable y borrable

EEPROM Memoria de solo lectura eléctricamente programable y borrable

Figura 1.1 Tipo de memorias programables

ROM (READ ONLY MEMORY)

Es una memoria de sólo lectura que se programan mediante máscaras. Es decir, el


contenido de las celdas de memoria se almacena durante el proceso de fabricación para
mantenerse después de forma irrevocable; por lo tanto la escritura de este tipo de memorias
ocurre una sola vez y queda grabado su contenido aunque se le retire la energía.
Se usa para almacenar información vital para el funcionamiento del sistema: en la
gestión del proceso de arranque, el chequeo inicial del sistema, carga del sistema operativo
y diversas rutinas de control de dispositivos de entrada/salida suelen realizar las tareas
encargadas a los programas grabados en ROM. Estos programas forman la llamada BIOS
(Basic Input Output System). Junto a la BIOS se encuentra el chip de CMOS donde se
almacenan los valores que determinan la configuración de hardware del sistema, como
tipos de unidades, parámetros de los discos duros, fecha y hora del sistema. etc. Esta
12
información no se pierde al apagar la computadora. Estos valores se pueden modificar por
medio del SETUP.
La memoria ROM constituye lo que se ha venido llamando como el Firmware, es
decir, el software metido físicamente en hardware. De cara a los fines del usuario es una
memoria que no sirve para la operación de su programa, sólo le aporta mayores
funcionalidades (información) del equipo.
Recordando cómo se fabrican los circuitos integrados, se entenderá de donde viene
el nombre. Estos se fabrican en obleas (placas de silicio) que contienen varias decenas de
chips. Estas obleas se fabrican a partir de procesos fotoquímicos, donde se impregnan capas
de silicio y oxido de silicio, y según convenga, se erosionan al exponerlos a la luz. Como
no todos los puntos han de ser erosionados, se sitúa entre la luz y la oblea una mascara con
agujeros, de manera que donde deba incidir la luz, esta pasará. Con varios procesos
similares pero más complicados se consigue fabricar los transistores y diodos
micrométricos que componen un chip. El elevado costo del diseño de la máscara sólo hace
aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se
precisan cantidades superiores a varios miles de unidades.
Las PCs vienen con una cantidad fija de ROM, donde se localizan los programas de
la BIOS, que contienen los programas y los datos necesarios para activar y hacer funcionar
la PC y sus periféricos.
La ventaja de tener los programas fundamentales de la computadora almacenados
en la ROM, es que están implementados en el interior del computador y no hay necesidad
de cargarlos en forma externa. Debido a que están siempre residentes, los programas en
ROM son muy a menudo los cimientos sobre los que se construye el resto de los programas
(incluyendo el DOS).
Estas memorias, cuyo nombre procede de las iniciales de Read Only Memory son
solo de lectura. Dentro de un proceso de elaboración de datos de una computadora, no es
posible grabar ningún dato en las memorias ROM. Son memorias perfectas para guardar
microprogramas, sistemas operativos, tablas de conversión, generación de caracteres etc.

MEMORIA PROM (PROGRAMMABLE READ ONLY MEMORY)

Una alternativa para proyectos pequeños es el uso de una de las memorias de sólo
lectura programables o PROM (programmable read only memories), memoria basada en
semiconductores que contiene instrucciones o datos. Éstas existen en muchas variantes,
pero todas permiten que el usuario programe el dispositivo por si mismo, ahorrándose el
alto costo de la producción de la máscara. En la PROM los contenidos pueden ser leídos
pero no modificados por un programa de usuario. Sus contenidos no se construyen, como la
ROM, directamente en el procesador cuando éste se fabrica, sino que se crean por medio de
un tipo especial de “programación”, ya sea por el fabricante, o por especialistas técnicos de
programación del usuario. El proceso de programación es destructivo: una vez grabada, es
como si fuese una ROM normal.

13
Las operaciones muy importantes o largas que se habían estado ejecutando mediante
programas, se pueden convertir en microprogramas y grabarse permanentemente en una
pastilla de memoria programable sólo de lectura. Una vez que están en forma de circuitos
electrónicos, estas tareas se pueden realizar casi siempre en una fracción del tiempo que
requerían antes. La flexibilidad adicional que se obtiene con la PROM puede convertirse en
una desventaja si en esta se programa un error que no se puede corregir. Para superar esta
desventaja, se desarrolló la EPROM, o memoria de solo lectura reprogramable.
Las prestaciones de las memorias PROM son similares a las anteriores, con la única
salvedad del proceso de programación. La escritura de la memoria PROM tiene lugar
fundiendo los fusibles necesarios por lo que la memoria PROM solo puede ser programada
una vez. Ahora la hace el usuario usando un equipo programador y, además, se rompe con
la dependencia de la fábrica y los enormes costes de las máscaras.

MEMORIA EPROM (ERASABLE PROGRAMMABLE READ-ONLY


MEMORY)

Las EPROM se programan mediante impulsos eléctricos y su contenido se borra


exponiéndolas a la luz ultravioleta (de ahí la ventanita que suelen incorporar este tipo de
circuitos), de manera tal que estos rayos atraen los elementos fotosensibles, modificando su
estado, ver Figura 1.2.

Figura 1.2 Vista de la ventana de una EPROM

Programación de una EPROM

Las EPROM se programan insertando el chip en un programador de EPROM y


aplicando en un pin especial de la memoria una tensión entre 10 y 25 Voltios durante
aproximadamente 50 ms según el dispositivo, al mismo tiempo se direcciona la posición de
memoria y se pone la información a las entradas de datos. Este proceso puede tardar varios
minutos dependiendo de la capacidad de memoria.

La memoria EPROM, se compone de un arreglo de transistores MOSFET de Canal


N de compuerta aislada. En la Figura 1.3 se observa el transistor funcionando como celda
de memoria en una EPROM.
14
Cada transistor tiene una compuerta flotante de SiO2 (Oxido de Silicio sin conexión
eléctrica) que en estado normal se encuentra apagado y almacena un “1” lógico. Durante la
programación, al aplicar una tensión (10 a 25V) la región de la compuerta queda cargada
eléctricamente, haciendo que el transistor se encienda, almacenando de esta forma un “0”
lógico. Este dato queda almacenado de forma permanente, sin necesidad de mantener la
tensión en la compuerta ya que la carga eléctrica en la compuerta puede permanecer por un
periodo aproximado de 10 años.
VDD

Fila

Compuerta aislada

Columnas

Figura 1.3 Celda de memoria de una EPROM

Las EPROMs también emplean transistores de puerta dual o FAMOS (Floating Gate
Avalanche-Injection Metal-Oxide Semiconductor) de cargas almacenadas.
Estos transistores son similares a los transistores de efecto de campo canal-P
(FETs), pero tienen dos compuertas. La compuerta interior o flotante esta completamente
rodeada por una capa aislante de dióxido de silicio; la compuerta superior o compuerta de
control es la efectivamente conectada a la circuitería externa.

Funcionamiento de una EPROM

Una vez grabada una EPROM con la información pertinente, la memoria es


instalada en el sistema correspondiente donde será utilizada como dispositivo de lectura
solamente. Eventualmente, ante la necesidad de realizar alguna modificación en la
información contenida o bien para ser utilizada en otra aplicación, la EPROM es retirada
del sistema, borrada mediante la exposición a luz ultravioleta con una longitud de onda de
2537 Angström (es una unidad de longitud empleada principalmente para expresar
longitudes de onda, distancias moleculares y atómicas, etc. Se representa por la letra sueca
Å. 1A = 10-12 m), programada con los nuevos datos, y vuelta a instalar para volver a
comportarse como una memoria de lectura solamente. Por esa exposición para su borrado
es que es encapsulada con una ventana transparente de cuarzo sobre la pastilla o de la
EPROM.

15
Es pertinente aclarar que una EPROM no puede ser borrada parcial o
selectivamente; de ahí que por más pequeña que fuese la eventual modificación a realizar
en su contenido, inevitablemente se deberá borrar y reprogramar en su totalidad.
Los tiempos medios de borrado de una EPROM, por exposición a la luz ultravioleta,
oscilan entre 10 y 30 minutos.
Con el advenimiento de nuevas tecnologías para la fabricación de circuitos
integrados se pueden emplear métodos eléctricos de borrado. Estas EEPROM pueden ser
borradas sin necesidad de extraerlas de la tarjeta del circuito. Este tipo de EEPROM suelen
ser denominadas RMM (Read Mostly Memories), memorias de casi-siempre lectura, ya que
no suelen modificarse casi nunca, pues los tiempos de escritura son significativamente
mayores que los de lectura.
Entre las aplicaciones generales, se destacan las de manejo de sistemas
microcontrolados. Todo sistema microcontrolado y/o microprocesado (se trate de una
computadora personal o de una máquina expendedora de boletos para el autotransporte) se
encontrará con cierta cantidad de memoria programable por el usuario (RAM), usualmente
en la forma de dispositivos semiconductores contenidos en un circuito integrado (no olvidar
que un relay biestable o un flip-flop también son medios de almacenamiento de
información).
Estos dispositivos semiconductores integrados están generalmente construidos en
tecnología MOS (Metal-Oxide Semiconductor, Semiconductor de Oxido Metálico) o -más
recientemente- CMOS (Complementary Metal-Oxide Semiconducto o Semiconductor de
Oxido Metálico Complementario). Lamentablemente, estos dispositivos RAM presentan un
inconveniente, que es, como ya se ha comentado, su volatibilidad.
Dado que cualquier sistema microprocesado requiere de al menos un mínimo de
memoria no volátil donde almacenar ya sea un sistema operativo, un programa de
aplicación, un lenguaje intérprete, o una simple rutina de actualización, es necesario utilizar
un dispositivo que preserve su información de manera al menos semi-permanente. Y aquí
es donde comienzan a brillar las EEPROMs.

1.3 EEPROM (Memoria de solo lectura eléctricamente borrable)


La memoria EEPROM es programable y borrable eléctricamente y su nombre
proviene de la sigla en inglés Electrical Erasable Programmable Read Only Memory.
Actualmente estas memorias se construyen con transistores de tecnología MOS (Metal
Oxide Silice) y MNOS (Metal Nitride-Oxide Silicon).
Las celdas de memoria EEPROM son similares a las celdas EPROM y la diferencia
básica se encuentra en la capa aislante alrededor de cada compuesta flotante, la cual es más
delgada y no es fotosensible.
Las memorias EEPROM son memorias no volátiles y eléctricamente borrables a
nivel de bytes. La posibilidad de programar y borrar las memorias a nivel de bytes supone
una gran flexibilidad, pero también una celda de memoria más compleja. Además del
transistor de puerta flotante anterior, es preciso un segundo transistor de selección. El tener
2 transistores por celda hace que las memorias EEPROM sean de baja densidad y mayor
16
costo. La programación requiere de tiempos que oscilan entre 157  s y 625  s por byte.
Frente a las memorias EPROM, presenta la ventaja de permitir su borrado y programación
en placa, aunque tienen mayor costo debido a sus dos transistores por celda.
Estas memorias se presentan, en cuanto a la organización y asignación de
terminales, como la PROM cuando están organizadas en palabras de 8 bits. Se programan
de forma casi idéntica pero tienen la posibilidad de ser borradas eléctricamente. Esta
característica permite que puedan ser programadas y borradas “en el circuito”.
En cuanto a la forma de referenciar los circuitos, estas memorias suelen comenzar
con el prefijo 28, de forma que la 2864 indica una memoria EEPROM de 64Kbytes,
equivalente en cuanto a terminales y modo de operación de lectura a la PROM 2764.
Una ventaja adicional de este tipo de memorias radica en que no necesitan de una
alta tensión de grabado, con 5 voltios de la tensión de alimentación es suficiente. En la
Figura 1.4 se muestra el proceso de habilitación para lectura y escritura.

WE

MEMORIA

BUS DE
BUS DE EEPROM
DATOS
DIRECCIONES

CE OE

CE = CHIP ENABLE: Permite Activar el Circuito Integrado


OE = OUTPUT ENABLE: Permite Activar La Salida Del Bus De Datos

MODO OPERACION WE

LECTURA 1

ESCRITURA 0

Figura 1.4 Diagrama a bloques de una memoria EEPROM

17
1.4 Historia
La EEPROM es una modificación de la EPROM y fue diseñado por George
Perlegos. Su desarrollo comenzó en 1978 cuando aún Perlegos era empleado de Intel. Sin
embargo, la arquitectura de EEPROM solo se utilizaba dentro del diseño de las
computadoras personales.
Perlegos formo una nueva division llamada Seeq Intel Tecnología, esta diseñó el
primer pleno funcionamiento de la EEPROM. Para eliminar la necesidad de programación
externa, la empresa realizó una delgada capa de aislamiento, integrado un circuito oscilador
y un condensador en el propio chip de memoria. Esto permitió hacer uso de la grabación
por alto voltaje. Para configurar una EEPROM se aplica un campo eléctrico producido por
una fuente de voltaje a las celdas marcadas como de modificación.

1.5 Cualidades
Las memorias de tipo EEPROM tienen como principal cualidad el permitir el
almacenamiento y la sobre-escritura de datos por medio de los voltajes de operación de los
circuitos electrónicos, además sostienen la información por muchos años sin fuente de
alimentación. Podemos encontrar circuitos integrados de memorias EEPROM paralelas,
compatibles pin a pin con circuitos con circuitos de memoria RAM o de memoria
EPROM. Este tipo de memorias precisamente por ser de interfaz paralela, tiene más pines
externos por medio de los cuales recibe y entrega los datos y permite el direccionamiento
de las distintas posiciones de almacenamiento. Debido a esto, los circuitos integrados son
de gran tamaño físico, impidiendo ser utilizados en aplicaciones que requieran tamaño
reducido.

1.6 Ventajas
 La programación y el borrado pueden realizarse sin la necesidad de una fuente de
luz UV y unidad programadora de PROM.
 Las palabras almacenadas en memoria se pueden borrar de forma individual.
 Las memorias EEPROM no requieren programador.
 De manera individual se puede borrar y reprogramar eléctricamente grupos de
caracteres o palabras en el arreglo de la memoria.
 El tiempo de borrado total se reduce a 10ms en circuito donde su antepasado
inmediato requería media hora bajo luz ultravioleta externa.
 El tiempo de programación depende de un pulso por cada palabra de datos de 10
ms, versus los 50 ms empleados por una ROM programable y borrable.
 Se pueden re-escribir aproximadamente unas 1000 veces sin que se observen
problemas para almacenar la información.
 Para re-escribir no se necesita hacer un borrado previo.

18
1.7 Arquitectura
Las arquitecturas generales pueden variar pero normalmente consisten en una o más
matrices de puertas AND y OR para implementar funciones lógicas (Figura 1.5). Muchos
dispositivos también contienen combinaciones de flip-flop´s y latche´s que pueden usarse
como elementos de almacenamiento para entrada y salida de un dispositivo. Los
dispositivos más complejos contienen macrocélulas. Las macrocélulas permiten al usuario
configurar el tipo de entradas y salidas necesarias en el diseño
Aunque el nombre no implica la lógica programable, las EEPROM, son de hecho
lógicas. La arquitectura de la mayoría de las EEPROM consiste generalmente en un número
fijo de compuertas tipo AND que alimenta una matriz programable de compuertas tipo OR.
Se usan principalmente para decodificar las combinaciones de entrada para obtener
funciones de salida.
A A’ B B’ C C’

“AND”
“OR”
PROGRAMABLE

Figura 1.5 Arquitectura de la memoria EEPROM

19
1.8 Descripción
Existen dos tipos de memoria EEPROM seriales, una de ellas es la serie 24LCXX,
que corresponde a los dispositivos de comunicación serial de dos hilos y la serie 93LCXX
que se comunica a través de tres hilos. Cada una de las memorias utiliza un protocolo de
comunicación serial que depende de la acción a ejecutar, es decir, si se va a leer un dato, a
escribir o se va a enviar una dirección. El programa que ejecuta el microcontrolador deberá
seguir paso a paso la secuencia del protocolo dependiendo del tipo de memoria que se
desea programar o leer.
Si la memoria tiene más de 256 posiciones el direccionamiento se hace por medio
de páginas, siendo las 256 direcciones la página 0 (cero), las posiciones 256 a 511 la página
1 y así sucesivamente.

1.9 Característica principal


 Se pueden conectar fácilmente con microprocesadores o microcontroladores,
algunas de estas memorias tienen terminales para realizar esta labor.
 Transferencia de datos de manera serial, lo que permite prescindir de la
memoria del microcontrolador, lo que posibilita dedicarlo a otras funciones.
 El consumo de corriente es mucho menor que en las memorias que trabajan en
paralelo.
Un aspecto que podría significar una limitante para las memorias seriales es la
velocidad de lectura, si se comparan con las EEPROM paralelas, aunque las velocidades
que se logran son aceptables para la mayoría de las aplicaciones.
Entre las diferencias que se pueden encontrar entre los dos tipos de memorias
seriales, es que la de dos hilos usa bus IIC no siendo así para la de tres hilos que utilizan el
protocoló I2C. La de tres hilos maneja datos de 8 a 16 bits, mientras que la de dos hilos
maneja 8 bits; en la de dos hilos la protección contra escritura es por el hardware, mientras
que en la de tres hilos se protege a través del software; la operación de la de tres hilos es de
hasta 6 MHz y la de 2 hilos es de 100 KHz a 400 KHz con opción a 1 MHz; la de tres hilos
tiene 4 terminales de comunicación, mientras que la de dos hilos tiene solamente dos pines.
Tabla 1.1 Características de las memorias EEPROM

Capacidad N° de terminales
Características de la Tipo de Protección Velocidad de
Manejo de designadas a la
memorias EEPROM Bus contra escritura Operación
Datos comunicación

Se implementa Entre 100 y 400


Memoria de 2 Hilos Bus IIC Solo 8 bits mediante el KHz con opción a 2 Pines
hardware escalar a 1MHz

Se implementa
Entre 8 y 16
Memoria de 3 Hilos Bus I2C mediante Hasta 6 MHz 4 Pines
bits
software

20
1.10 Limitaciones

Mientras que la EEPROM se puede reprogramar, el número de veces que puede ser
alterado es limitado. Esta es la razón principal por la EEPROM chips son populares para
almacenar sólo los datos de configuración, tales como el BIOS del equipo de código que no
requiere la reprogramación frecuente. La capa aislante de óxido puede ser dañada por
reescribir frecuentemente. Las EEPROM hoy en día pueden volver a escribir hasta un
millón de veces.

21
CAPITULO 2

Programador de tarjetas EEPROM

22
2.1 Introducción
En la actualidad, está muy extendido el uso de las llamadas tarjetas programables a
través de un chip interno. Esta denominación incluye varios tipos de tarjetas cuyas únicas
características comunes son el tamaño (tipo tarjeta de crédito) y la inclusión de un chip en
lugar de una banda magnética como medio para almacenar datos y de protección de
información. Por lo demás, las tarjetas chip pueden estar destinadas a usos muy diversos, y
los chips que utilizan pueden ir desde una simple EEPROM hasta sistemas basados en
microcontroladores capaces de codificar, decodificar y almacenar datos con altos niveles de
seguridad.
Este capítulo trata de estudiar en forma específica el principio de funcionamiento
electrónico de las tarjetas EEPROM a nivel teórico y práctico, con la finalidad de diseñar
una tarjeta de programación.

2.2 Tarjetas EEPROM


Las tarjetas EEPROM más habituales contienen en su interior una memoria de 256
bits, organizados en 256 direcciones de 1 bit. El direccionamiento lo realiza un circuito
contador de 8 bits, de forma que cuando el contador está en la dirección n, se puede leer o
escribir en la posición n. Para avanzar a la siguiente dirección, sólo hay que incrementar el
impulso a la entrada del reloj del contador, y entonces, éste apuntará a la siguiente
dirección, n + 1.
Existe una entrada de reset que pone a cero el contador. Además, el contador de
direcciones es cíclico, de forma que si está en la posición 20 y se quiere acceder a la
posición 18, se debe de realizar primero un reset y aplicar después 18 pulsos de reloj, o
bien no utilizar el reset y dar 254 pulsos de reloj.
En la Figura 2.1 aparece la numeración de las terminales de un chip de tarjeta
EEPROM estándar y el significado de cada terminal o contacto.

VCC Gnd

R/W VPP

Clock I/O

Reset Fuse

Figura 2.1 Diagrama chip tarjeta EEPROM

23
Donde:
VCC es la entrada de alimentación positiva, 5V
R/W Selecciona el modo de operación (Lectura o escritura)
Clock es la entrada de avance del contador de direcciones
Reset pone a cero el contador de direcciones
GND es la referencia de la alimentación
VPP es el voltaje de alimentación de programación (21V)
I/O Entrada y salida de datos
Fuse protege la zona de memoria protegida

En la Figura 2.2 se visualiza el diagrama de tiempo de las señales para un ciclo de


reset, de lectura o de escritura.
Durante un reset, Vpp debe estar a +5V, el estado de Din es indiferente, y RST debe
estar a cero. En estas condiciones, durante el flanco de bajada del CLK, se pone a cero el
contador de direcciones interno. Para el resto de operaciones, la terminal RST debe estar a
nivel alto.
En estas condiciones, una vez realizado un reset, se tendrá en Dout el dato
almacenado en la dirección 0 de la EEPROM. Si ahora se aplica un pulso de reloj, cuando
CLK vuelve a estado bajo, se tendrá en Dout el dato de la dirección 1 de la EEPROM, y así
sucesivamente, hasta llegar a 255, en que volvería a la dirección 0.
Si durante un pulso de reloj Vpp está puesto a +21V, el estado de Din quedará
almacenado en la dirección de la EEPROM que indicará el contador interno. A este
respecto, es conveniente aclarar un par de cosas: una EEPROM en blanco, o virgen, tiene
almacenadas en todas sus direcciones datos igual a cero. Se pueden convertir uno de esos
datos en un 1, pero jamás se podrá poner un cero donde había un 1. Por tanto, si durante un
ciclo de escritura en Din hay un cero, el contenido de la EEPROM no variará. Por otro lado,
la EEPROM de las tarjetas comerciales, tiene una zona “reservada”, en la que no se puede
escribir. Esta zona ocupa las 96 primeras direcciones de la EEPROM, y ha sido escrita en
fábrica y protegida fundiendo un fusible interno.
En esta zona reservada, están almacenados datos acerca del fabricante, el tipo de
tarjeta, la empresa para la que ha sido fabricada, valor de la tarjeta y el No de serie. El resto
de direcciones suelen contener ceros, aunque en algunas tarjetas, algunas direcciones,
normalmente de la 96 a la 105, o bien de la 246 a la 255, han sido puestas a 1 durante el
control de calidad en fábrica.

24
Cuando una tarjeta es introducida en un lector, éste lee la zona reservada y
comprueba si la tarjeta es de esa empresa y de qué valor es. Si la tarjeta es válida, va
leyendo el resto de la tarjeta para averiguar hasta donde ha sido escrita y calcula cuánto le
queda por gastar, el lector va poniendo a 1 las direcciones de la EEPROM y leyéndolas para
verificar que han sido bien escritas, hasta llegar a una dirección determinada en que calcula
que la tarjeta está completamente agotada.

Figura 2.2. Diagrama de tiempo de las señales de lectura y escritura

2.3 Método de programación de las EEPROM


Para conseguir que la información que se desea grabar sea inalterable, se utilizan
dos técnicas: por fundición de fusible o por fundición de unión (ver Figura2.3).

Figura. 2.3 Técnicas de programación

25
La idea es básicamente la misma que las ideas ROM convencionales, pero en este
caso todas las celdas tienen diodos, por lo cual la memoria viene programada de fábrica con
todos 1. Cada diodo tiene conectado un fusible, cuya funcionalidad es similar a la que se
puede ver en fuentes de alimentación o estabilizadores de tensión: cuando se produce una
sobretensión, el fusible se quema y, por lo tanto, el circuito se abre. De esta manera, el
diodo pierde contacto con el mundo exterior y el lector de memoria nunca sabe de su
existencia, así que a esa celda la interpreta como un cero (Figura 2. 4) Por lo tanto para
programar un chip de memoria EEPROM; con un dispositivo llamado programador, se les
aplica a las celdas correspondientes una tensión superior a la que son capaces de soportar
los fusibles, y así quedan definidos todos los bits de la memoria en cuestión. Como se
puede ver, este tipo de memorias tiene una falla: no pueden ser reprogramadas.

Figura 2.4. Realización física del “1” y del “0” Lógico


La pastilla es insertada en un dispositivo que genera en las salidas de la ROM
(usadas como entradas) los valores lógicos de cada palabra. Para cada posición, se genera
un pulso de hasta 30V por la entrada Vpp=Vcc, que produce una circulación de corrientes
que funden delgadas conexiones fusibles en serie con diodos o transistores que se quiere
desconectar. Así se obtienen los ceros que deben resultar en las salidas, dado que el chip
“virgen” viene con todos los diodos conectados. Este proceso dura pocos minutos.
El proceso de programación de una EEPROM generalmente se realiza con un
equipo especial llamado Grabador. Este equipo emplea un mecanismo de interruptores
electrónicos controlados por software que permiten cargar las direcciones, los datos y
genera los pulsos para fundir los fusibles del arreglo interno de la memoria. En la Figura
(2.4) se indica de forma esquemática la función del programador.

26
2.4 Características de un display
Aspecto físico, el LCD tiene un aspecto físico como el mostrado en la Figura 2.5.
Está constituido por un circuito impreso en el que están integrados los controladores
y las terminales para la conexión del display. Sobre el circuito impreso se encuentra el
LCD , rodeado por una estructura metálica que lo protege. En total se pueden visualizar 2
líneas de 16 caracteres cada una, es decir, 2x16=32 caracteres, como se muestra en la
Figura 2.6.

Figura 2.5 Aspecto físico de un LCD

Figura 2.6 Capacidad de visualización de caracteres del Display

A pesar de que el display solo puede visualizar 16 caracteres por línea, puede
almacenar en total 40 por línea. Es el usuario el que especifica cuales de los 16 caracteres
son los que se van a visualizar.

Alimentación
La tensión nominal de alimentación es de 5V, con un consumo menor de 5mA.

27
Los caracteres del LCD

El LCD dispone de una matriz de 5x8 puntos para representar cada carácter. En
total se pueden representar 256 caracteres diferentes. 240 caracteres están grabados dentro
del LCD y representan las letras mayúsculas, minúsculas, signos de puntuación, números,
etc. Existen 8 caracteres que pueden ser definidos por el usuario. En la Figura 2.7 se
muestra gráficamente cómo es la matriz de representación de los caracteres. Se ha
dibujado el carácter A y un carácter definido por el usuario.

Figura 2.7 Matriz de representación de caracteres, representación del carácter A y de un


carácter definido por el usuario

En la Tabla 2.1 se muestran los caracteres más importantes que es capaz de


imprimir el display. Todos los códigos están en hexadecimal. No se han representado los
caracteres correspondientes a los códigos desde el $80 hasta el $FF, que corresponden a
símbolos especiales. Los códigos comprendidos entre el 0 y el 7 están reservados para que
el usuario los defina.

28
Tabla 2.1 Código asociado a cada carácter imprimible por el display

La memoria del LCD

El LCD dispone de dos tipos de memorias independientes: la DD RAM y la CG


RAM

DD RAM (Display Data Ram)


En esta memoria se almacenan los caracteres que están siendo visualizados o que se
encuentran en posiciones no visibles. El display almacena en esta memoria dos líneas de 40
caracteres pero sólo se visualizan 2 líneas de 16 caracteres. Por ello la DD RAM tiene un
tamaño de 2x40=80 bytes.
Debido a esta peculiar disposición de la DD RAM se puede pensar en el display
como un display virtual constituido por dos líneas de 40 caracteres cada una (Figura 2.8).
La posición situada más a la izquierda de cada línea es la posición 1 y la situada más a la
derecha es la posición 40. Para localizar los elementos dentro del display virtual se va a
utilizar un par de coordenadas (x,y) donde x representa la posición horizontal (comprendida
entre 1-40) e y representa la línea (1-2).

Figura 2.8 Display virtual y display real


29
El display real es una ventana en la que se visualizan dos líneas de 16 caracteres. Es
lo que el usuario está viendo. En el ejemplo de la Figura 2.9 se encuentra almacenado en la
línea 1 del display virtual el mensaje: “ESTO ES UNA PRUEBA DE UN MENSAJE”.
Sin embargo, en este ejemplo, el usuario sólo verá en el display el mensaje
“PRUEBA DE UN MEN” que tiene exactamente 16 caracteres de longitud. Más adelante
se verá cómo es posible ‘mover’ el display real para que se desplace a lo largo del display
virtual. Tal y como se encuentra configurado el display real en la Figura 2.9, la posición
(14,1) se corresponde con la letra P, la posición (15,1) con la letra R, ....., y la posición
(29,1) con la letra N. Cuando se inicializa el LCD, el display real se sitúa en el extremo más
izquierdo del display virtual, que se corresponde con los valores de x comprendidos entre 1
y 16.
En la Figura 2.9 se muestra la situación del display real respecto al virtual al
inicializar el LCD.

Figura 2.9 Posición del display real respeto al virtual cuando se inicializa el LCD

En el ejemplo de la Figura 2.9, en la posición (2,1) se encuentra la letra E y en la


posición (16,1) la letra U.

30
Figura 2.10 Mapa de memoria de la DD RAM y sus posiciones en el display virtual

El mapa de memoria de la DD RAM se muestra en la Figura 2.10. Está constituido


por dos bloques de 40 bytes. El primer bloque corresponde con los 40 caracteres de la
línea 1 del display virtual. El segundo bloque con la segunda línea. En la figura se han
representado las direcciones en hexadecimal. Así, las direcciones $00-$27 están asociadas
a las posiciones (1,1)-(40,1) del display virtual y las direcciones $40-$67 a las posiciones
(1,2)-(40,2). En el ejemplo, en la dirección $40 de la DD RAM se encuentra almacenado
el carácter H, que corresponde con la posición (1,2) del display virtual. En la dirección
$02 se encuentra el carácter S, posición (3,1) del display virtual.
Las operaciones de escritura en el display, en realidad son operaciones de escritura
en la memoria DD RAM. Según en la posición de esta memoria en la que se escriba el
carácter, aparecerá en una posición u otra en el display real. Los caracteres enviados al
display pueden ser visibles si se encuentran en posiciones que caen dentro del display real
o pueden ser no visibles. En la Figura 2.9, las posiciones (1,1)-(16,1) y (1,2)-(16,2) son
visibles. Todos los caracteres enviados a esas posiciones serán visibles. Si se envía un
carácter a cualquiera de las otras posiciones no será visible.

31
LA CG RAM (Character Generator RAM)

La CG RAM es la memoria que contiene los caracteres definibles por el usuario.


Está formada por 64 posiciones, con direcciones $00-$3F. Cada posición es de 5 bits.
La memoria está dividida en 8 bloques, correspondiendo cada bloque a un carácter
definible por el usuario. Por ello el usuario puede definir como máximo 8 caracteres, cuyos
códigos van del 0 al 7. En la Figura 2.11 se ha representado la CG RAM. Todas las
direcciones están en hexadecimal. Como se representó en la Figura 3, cada carácter está
constituido por una matriz de 5 columnas x 8 filas. Para definir un carácter y asignarle por
ejemplo el código 0 habrá que almacenar en las posiciones $00-$07 los valores binarios de
las 8 filas del carácter del usuario. Un bit con valor 1 representa un punto encendido. Un bit
con valor 0 es un punto apagado.

Figura 2.11 Mapa de memoria de la CG RAM

En la Figura 2.12 se ha dibujado un carácter que se quiere definir. A la derecha del


dibujo se encuentran los valores en binario y en hexadecimal que hay que almacenar en las
posiciones de la CG RAM. Si se quiere que este carácter tenga asignado el código 0 habrá
que almacenar el valor $0E en la posición $00, $01 y $02, el valor $04 en la $03 y el valor
$11 en la posición $07, como se muestra en la Figura 2.13.

32
Figura 2.12 Carácter definido por el usuario y los valores a almacenar en la CG RAM

Una vez definido el nuevo carácter, cada vez que se envié su código
correspondiente al display, este se visualizará en el LCD.

Figura 2.13 Valores a almacenar en la CG RAM para definir en el carácter 0

33
2.5 Interfaz y hardware de un LCD

En la Figura 2.14 se puede observar la asignación de terminales físicas para el LCD


a trabajar.

Figura 2.14 Asignación de terminales del LCD

En la Figura 2.15 aparecen las señales necesarias para el funcionamiento y control


del display. Los datos se transmiten por un bus de datos de 8 bits de anchura (El display
ofrece la posibilidad de trabajar con este bus multiplexado en dos grupos de 4 bits, se verá
más adelante). Para el control del display son necesarios 3 bits: una señal de enable (E),
una para indicar lectura/escritura (R/W) y otra para seleccionar uno de los dos registros
internos (RS). Por ello, en el peor caso, el sistema de control del display necesitará utilizar
8+3=11 bits. En el caso de utilizarse la tarjeta T6811 será necesario utilizar 2 puertos, por
ejemplo el PUERTO C para los datos y el PUERTO B para el control.

34
Figura 2.15 Interfaz del LCD con un sistema de control

El bus de datos

El bus de datos del display se puede configurar para funcionar de dos formas
diferentes. Bien como un bus de 8 bits o bien como un bus multiplexado de 4 bits. El
utilizar el bus multiplexado de 4 bits es una opción muy útil para ahorrar bits en el sistema
de control. En vez de utilizar 11 bits en total, se utilizan 7. Se ahorran bits pero se gana en
complejidad del controlador, que tiene que multiplexar y demultiplexar los datos. Al
utilizar un bus de 8 bits se logra que el controlador sea más sencillo pero se utilizan más
bits.
En la Figura 2.16 aparecen representados los dos tipos de bus. Cuando se utiliza un
bus de 4 bits sólo se utilizan los pines D4-D7 del display dejándose D0-D3 sin conectar. La
transferencia de la información se realiza de la siguiente manera: primero los 4 bits más
significativos y luego los 4 menos significativos.

35
Figura 2.16 Conexión del LCD utilizando un bus de 8 bits y un bus de 4 bits

El bus de control
El bus de control está formado por 3 señales: RS, R/W y E. La señal E es la señal de
validación de los datos. Cuando no se utiliza el display esta señal debe permanecer a 0.
Sólo en las transferencias de información (lecturas o escrituras) es cuando se pone a nivel 1
para validar los datos, pasando después de un tiempo a nivel 0. En la siguiente sección se
explican detalladamente las temporizaciones.
La señal R/W permite seleccionar si la operación que se va a realizar sobre el
display es una lectura o una escritura. Cuando R/W=1 se realizan lecturas y cuando R/W =0
escrituras. Lo normal siempre es realizar escrituras, no obstante, el display ofrece la
posibilidad de poder leer los contenidos de la memoria CG RAM y DD RAM así como leer
el estado interno del display (ocupado o disponible) y el contador de direcciones..
Con RS (Register Select) se selecciona el registro interno del display sobre el que se
va a leer/escribir. El LCD dispone de dos registros internos: Registro de control y registro
de datos. Ambos registros son de lectura y escritura. RS=0 selecciona el registro de control.
RS=1 el registro de datos.

36
Tabla 2.2 Manera en la que trabaja el bus de control

REGISTRO DE CONTROL REGISTRO DE DATOS

Lectura de la bandera de ocupado


Leer contenido de la memoria CG
LECTURA (D7) y del contador de direcciones
RAM o DD RAM
(D0-D6)

Ejecución de un comando interno:


ESCRITURA borrar display desplazar el display, Escribir en la CG RAM o DD RAM
mover el cursor

El control del contraste

Para controlar el contraste hay que introducir por la terminal Vo una tensión entre 5
y 0 voltios. La tensión típica es de 0.6 voltios. Normalmente se coloca un potenciómetro
para poder ajustar en cada momento el contraste más adecuado. En la Figura 2.17 se
muestra un esquema típico de control del contraste.

Figura 2.17 Control del contraste en el LCD

Temporización
En la Figura 2.18 se han representado los cronogramas correspondientes a una
operación de escritura y otra de lectura. Al controlar el display, los tiempos empleados
deben ser siempre mayores que los mínimos indicados en la figura y menores que los
máximos. A pesar de la aparente complejidad del cronograma, las operaciones de lectura y
escritura son muy sencillas. En la Figura 2.18 se ha supuesto que las transmisiones de los
datos se realizaban a 8 bits.
37
Figura 2.18 Cronogramas del LCD

En la Figura 2.19 se muestran los cronogramas correspondientes a las operaciones


más habituales: escritura de un carácter en el LCD. Se presenta el cronograma cuando se
usa un bus de 8 bits y cuando se usa un bus multiplexado de 4 bits. Se ha supuesto que el
carácter enviado es el $41 (La letra ‘A’).7

38
Figura 2.19 Cronogramas correspondientes a la operación de escribir el dato $41 (Carácter
‘A’) en el display utilizando un bus de datos de 8 y 4 bits.

Para el caso de 4 bits, primero se envían los 4 bits mas significativos y después los 4
bits menos significativos. Los cronogramas de arriba se pueden expresar secuencialmente,
describiendo las operaciones que tendría que realizar un microcontrolador para escribir el
carácter A en el LCD

39
2.6 Emulador
Lógicamente, para emular una tarjeta EEPROM se tendrá que realizar un circuito
capaz de responder como una tarjeta real, pero si se quiere que sea reutilizable, deberá ser
posible borrarla, es decir, hacer que siempre que se introduzca en un dispositivo de lectura,
se comporte como una tarjeta nueva.
Por tanto, el emulador a diseñar deberá responder a la lectura de los primeros 96 bits
como lo haría una tarjeta real, y deberá permitir que se escriba y se lea en el resto,
almacenando los valores escritos hasta que se requieran, o, al menos, durante el tiempo que
dure su utilización.
El emulador será diseñado de acuerdo con esta idea, es decir, con las siguientes
especificaciones: debe responder en las primeras 96 direcciones (0 - 95) como una tarjeta
estándar, y en el resto (96 - 255), debe responder con 0 mientras no se escriba otra cosa
(como si fuera una tarjeta recién comprada), y cuando se escriba un 1 en una dirección, ese
dato debe poder ser leído en sucesivas operaciones de lectura. Además, debe responder ante
un ciclo de RESET como lo haría una tarjeta real, es decir, inicializando el contador de
direcciones a 0, pero sin que se borre el contenido de dichas direcciones de memoria.

Como primera aproximación, el diseño del emulador consta de los siguientes


bloques:

 Un circuito contador; se encargará de ir contabilizando como lo haría el contador


interno de una tarjeta comercial, para que el circuito sepa cuál es la dirección en la
que el dispositivo lector va a escribir o leer, y cuándo está en la zona reservada y
cuándo no. El chip encargado de esta función es un CI4040.

 Una ROM de 96 bits, conteniendo una copia exacta de los primeros 96 bits de la
tarjeta que se quiere emular. La ROM más barata y que mejor se ajusta a estas
características es el propio chip de una tarjeta comercial (puede ser usada, puesto
que el contenido de esta zona reservada no varía de una tarjeta nueva a una gastada).

 Una memoria RAM estática de, al menos, 160 bits; se encargará de almacenar los
datos que vaya escribiendo el lector, como si fuera una EEPROM, pero con la
diferencia de que puede ser borrada. Para esta función se ha elegido un chip de tipo
4537, una RAM en tecnología CMOS de 256 bits.

 Un decodificador de direcciones que asegure que en las primeras 96 direcciones


funcione la ROM seleccionada y en el resto de la RAM.

40
2.7 Diagrama a Bloques del Programador

En la Figura 2.20 se presentan el diagrama a bloques del programador EEPROM


que será diseñado de acuerdo al tipo de LCD y de microntrolador a utilizar.

Figura 2.20. Diagrama a bloques del programador EEPROM

2.8 Diagrama Esquemático del Programador

Figura. 2.21 Forma Esquemática del Programador de tarjetas EEPROM

41
CAPITULO 3
______________________________

Principio de funcionamiento de tarjetas


EEPROM

_______________________________

42
3.1 Introducción

Una tarjeta tipo "chip" es, por definición, una memoria EEPROM de diferente
capacidad cuyos datos pueden ser leídos y regrabados. Hay modelos más complejos, que
incluyen zonas que no se pueden leer si no se proporciona una clave. Algunos modelos
incluyen un microprocesador con sistema operativo propio (definido en el estándar
ISO/IEC 7816). Se emplean tarjetas "chip" para gran cantidad de aplicaciones, desde
control de sistemas de seguridad hasta habilitación de comunicaciones telefónicas, pasando
por sistemas de automatización para decodificadores y ordenadores de control. Las tarjetas
de teléfono pertenecen al primer modelo, pero no por ello son inseguras, simplemente no
hay datos que proteger y es preciso que el soporte sea lo más económico posible.
Todas las tarjetas poseen una zona de identificación (como si fuese el documento de
la memoria) que puede ser protegida desde la fabricación. De esta manera, mediante el uso
de una palabra clave se coloca una protección que impide la modificación del número de
serie y demás datos de fabricación. Como no se puede re-escribir esta parte de la memoria,
si se intenta cambiar sus datos, ésta queda inutilizada ya que no existiría compatibilidad
entre el número de serie y los datos cargados posteriormente.
Sin embargo, si se utilizan las tarjetas con memoria EEPROM de 256 bytes de
capacidad y un bit por palabra (byte). Estas tarjetas, tal como se han mencionado, poseen
una zona que puede ser protegida contra re-escritura con una capacidad de 96 bytes. Más
adelante se vera que para fines prácticos, se agrupan de 8 bits para formar palabras en la
memoria de modo que estas EEPROM se comporten como memorias de 32 bytes de 8 bits
cada uno.
Existen diversos fabricantes de tarjetas telefónicas que emplean chips elaborados
por diferentes empresas. Existen al menos cuatro fabricantes, quienes construyen sus
productos con chips diferentes pero que son compatibles entre sí, de modo que al colocar
cualquier tarjeta homologada para cada país, funciona en cualquier teléfono público. Hay
tarjetas que tienen 6 contactos, otras 8 y hasta más (pero no son telefónicas). Poseen
normalmente una EEPROM de 128 bytes de 1bit y respetan las normas ISO internacionales

3.2 Funcionamiento de Tarjetas para 256 Bytes basadas en las Normas ISO/IEC 7816
La norma ISO/IEC 7816 regula el funcionamiento de las tarjetas con aplicaciones
telefónicas y agrupa a tres sub-normas.
Norma ISO/IEC 7816-1
Describe las características físicas que deben cumplir las tarjetas, tales como
resistencia mecánica, resistencia eléctrica de los contactos, protección frente a agentes
externos, luz ultravioleta empleada para el borrado, campos magnéticos asociados,
electricidad estática, resistencia mecánica, flexibilidad (debe soportar 1000 flexiones de 2
cm a razón de 30 por minuto sin que se produzca rotura), máxima diferencia de nivel entre
los contactos, etc.

43
Norma ISO/IEC 7816-2
Regula las dimensiones y localización de los contactos. El tamaño mínimo es de
1.7x2 mm. Existen dos posicionamientos de los 8 contactos sobre la tarjeta:
1. AFNOR es una disposición debida a la compatibilización con las tarjetas de banda
magnética y está casi en desuso.

2. ISO, que es la de uso más común. La distancia de los terminales en formato ISO,
expresada en mm, se muestra en al Tabla 3.1. La disposición de los contactos sobre
la tarjeta (a los que hace referencia la Tabla 3.1) se muestra en la Figura 3.1

ISO 1 ISO 6

ISO 2 ISO 8

ISO 3 ISO 7

ISO 4 ISO 5

Figura 3.1. Distribución de Pines de tarjetas EEPROM

Tabla 3.1 Distancia de Terminales en formato ISO, mm


I 1 1 1 2
SO 1 0.25 2.25 9.23 0.93
I 1 1 2 2
SO 2 0.25 2.25 1.77 3.47
I 1 1 2 2
SO 3 0.25 2.25 4.31 6.01
I 1 1 2 2
SO 4 0.25 2.25 6.85 8.55
I 1 1 1 2
SO 5 7.87 9.87 9.23 0.93
I 1 1 2 2
SO 6 7.87 9.87 1.77 3.47
I 1 1 2 2
SO 7 7.87 9.87 4.31 6.01
I 1 1 2 2
SO 8 7.87 9.87 6.85 8.55

44
ISO/IEC 7816-3
Establece las características de las señales eléctricas aplicadas a la tarjeta, así como
los protocolos utilizados para la comunicación con el microchip. También especifica la
tensión de alimentación y las estructuras de las señales, el intercambio de información, la
velocidad de repetición de las señales, los valores de corriente, las convenciones de paridad,
los procedimientos a realizar para las distintas operaciones, la forma de comunicación con
tarjetas inteligentes, etc. En la Tabla 3.2 se puede apreciar la función que cumple cada
terminal del chip (siempre haciendo referencia al esquema de la Figura 3.1).

Tabla 3.2 Funcionamiento de terminales

Terminal Función

ISO 1 Voltaje de Alimentación (5v)

ISO 2 Lectura/Escritura (R/W)

ISO 3 Reloj (CLK)

ISO 4 Reset de la Tarjeta (RST)

ISO 5 Tierra (GND)

ISO 6 Vpp= +21v

ISO 7 Entrada/Salida de Datos (I/O)

ISO 8 Fusible

Las tarjetas telefónicas poseen chips de funcionamiento sincrónico con memoria


protegida. Poseen un contador interno de direcciones que opera en forma secuencial y
apunta siempre al bit que se está por leer o que se acaba de escribir. Para escribir un dato,
se utilizan dos o tres contactos del chip, a los que se le colocan tensiones específicas, un
terminal corresponde al dato, otro a la “predisposición” para lectura y el tercero actúa como
reloj (CLK).
Ahora bien, cuando se precisa un margen de seguridad mayor, se emplean chips
asincrónicos que contienen un microprocesador, lo que brinda un margen de seguridad más
amplio, lo que los hace aptos para aplicaciones con tarjetas bancarias. En cuanto al
funcionamiento, como se puede apreciar en la Tabla 3.2, la tensión de alimentación, que es
de 5V, se aplica al terminal ISO1. En realidad, la tensión debe estar comprendida entre
4,8V y 5,25V, produciendo un consumo de 200mA promedio. Cabe aclarar que hace un
tiempo se empleaban tarjetas con tecnología NMOS que requerían una tensión adicional de
+21V en el caso en que se quisiera realizar la escritura de datos (Vpp). Estos chips tenían

45
un consumo de 20mA en estado de reposo y unos 50mA en estado de programación. La
potencia máxima de operación era de 1W y no podía superar 1.4W durante 1 segundo.
Como se mencionó anteriormente, el bus de datos es de un sólo bit (correspondiente
al contacto ISO7), y no existe un bus de direcciones. Las posiciones de memoria son leídas
o escritas en forma secuencial. Cuando se quiere leer o escribir un dato en una posición
determinada, se debe hacer un reset en el chip por medio del terminal ISO4, “comenzando a
buscar” desde el bit 1 hasta la posición elegida para realizar la operación.
El terminal ISO2 determina el estado de lectura o escritura. Cuando tiene un
potencial alto, el chip está listo para ser escrito, mientras que si posee un “0” lógico,
entonces se va a leer un dato desde la memoria del chip.
El terminal ISO8 no se utiliza normalmente, es empleado en fábrica para darle los
datos de identificación del chip (96 primeros bits de memoria), los que luego no se pueden
re-escribir.
El contacto ISO3 (CLK) se utiliza para darle a la tarjeta la señal de reloj. La
frecuencia que se aplica está comprendida entre 1MHz y 5MHz con ciclos de actividad que
no deben superar el 50%.
La tarjeta EEPROM opera con equipos a los que se denominan interfaces, que son
los que actúan de interfaz entre el chip y el aparato a comandar (teléfono). Para establecer
la comunicación entre el dispositivo y la tarjeta debe realizarse de la siguiente manera:
1. Conexión y activación de los contactos por el dispositivo
2. Reset de la tarjeta
3. La tarjeta comunica la aceptación del reset
4. Se produce el intercambio de información entre la tarjeta y la interfaz
5. Se produce la desactivación de los contactos entre la interfaz y el chip de la tarjeta
Una vez que se lleva a cabo el primer paso, es decir, la activación de los contactos
de la interfaz con el chip de la tarjeta, cada terminal queda en la siguiente condición:
 RST: Es puesto a nivel bajo
 Vcc: es puesta a +5V y permanece estable
 I/O: Es puesta a un nivel lógico “1” para la recepción de datos desde la interfaz
 Vpp: Deberá permanecer en estado de espera o reposo
 CLK: Será suministrado de forma adecuada y estable
Cuando se establece la condición de activación de los contactos, la interfaz manda
la información del reset, tal como se muestra en la Figura 3.2.

46
Figura. 3.2 Interfaz entre en Chip y el Teléfono
En la Figura 3.3 se da el diagrama de tiempos de señales para tarjetas que no
requieren tensión de “escritura” (Vpp).

Figura.3.3 Interfaz entre en Chip y el Teléfono para tarjetas que no requieren tensión Vpp

47
En el caso de las tarjetas correspondientes al diagrama de señales de la Figura 3.3, la
forma de operar es más sencilla, ya que no utilizan el terminal Nº 6 correspondiente a la
tensión de programación Vpp, utilizando el contacto ISO 2 para escribir un dato. Cuando
esto ocurre, en el próximo ciclo de reloj se vuelve a leer el dato escrito, tal y como muestra
la Figura 3.3.
Una vez que finaliza el intercambio de información entre el chip y la interfaz, se
desactivan los terminales, siguiendo la siguiente secuencia:
 RST: Primero se manda el terminal a un estado lógico bajo.
 CLK: Se pone en “0”.
 Vpp: Se retira la alimentación
 I/O: Se pone en “0”.
 Vcc: Se retira la alimentación.
Si bien la memoria de estas tarjetas posee 256 bits (256 bytes de 1 bit cada uno),
para especificar el contenido se “agrupan” 8 bytes (o sea 8 bits) para definir palabras. Los
primeros 96 bits son el “documento” y no se pueden re-escribir. En la Tabla 3.3 se muestra
el significado de cada grupo de 8 bits de los 96 que se tienen disponibles.
Tabla.3.3 Significado de cada Byte de tarjetas de 256 Bytes

Byte(bit) Código Binario Operación (a lo que cada byte hace referencia)

1(1 al 8) Checksum o byte de control

2(9 al 16) 10000001 Código de la tarjeta telefónica

3(17 al 24) 11111111

4(25 al 32) 11111111

5(33 al 40) 00110000 G+D

10010000 Oberthur

01011010 Gemplus

6(41 al 48) MSB Numero de Serie de la tarjeta

7(49 al 56)

8(57 al 64) LSB

9-10 (65 al 80) 00010100

10001010 Identifica el valor de la tarjeta

00100101

48
00000100

00100101

00000110

11(81 al 88) 00011110

12(89 al 96) 00101111 Identifica el país de origen

13(97 al 104) 11111111 Contador lento

11000000

00000000

00000000

32(249 al 256) 00000000 Contador rápido

Los primeros 8 bits serán la palabra de control. Es algo similar al bit de paridad de
un código común y se obtiene de la siguiente manera:
Se resta a 216 el número de unos existentes entre el bit 9 y el 96, ambos incluidos.
Una vez obtenida la resta decimal, este número se pasa a binario dándo el byte de control o
Checksum.
De la segunda a la cuarta palabra (bit 9 a bit 32) se escribe al código de la tarjeta
EEPROM.
La palabra 5 (bit 33 a bit 40) contiene información relativa al constructor de la
tarjeta. Las palabras 6, 7 y 8 contienen la información concerniente al número de serie de la
tarjeta que la interfaz toma para saber si está habilitada.
Las palabras 9 y 10 (bit 65 a bit 80) contienen el código que representa el valor de la
tarjeta. En la palabra 12 se encuentra el código del país donde es válida la tarjeta. A partir
de la palabra 13 (bit 97 en adelante, hasta el 256) se encuentran los bits que se pondrán a
“1” cada vez que se hable por teléfono y se esté descontando crédito. Cuando se usa por
primera vez la tarjeta EEPROM, estos bits (del 97 al 256) están todos en “o” y en la medida
que pasa el tiempo de comunicación, estos bits se ponen en “1”. Cabe aclarar que cuando se
fabrican las tarjetas telefónicas se les realiza un control de calidad poniendo a “1” los bits
97 a 104 aproximadamente para certificar que el funcionamiento es correcto.
En síntesis, las palabras 1 a 12 (bits 1 a 96) representan el “documento de identidad”
de la tarjeta, mientras que en las palabras 13 a 32 (bits 97 a 256) se escribirán “1” cada vez
que se use la tarjeta.

49
La zona de escritura por parte de la interfaz se divide en dos sub zonas: una zona
denominada de “contador lento” y otra zona de “contador rápido”.
El tamaño que posee cada sub zona depende del valor de la tarjeta. Se entiende
entonces que cada vez que se escriba un “1” en algún bit de estas sub zonas, la interfaz
estará descontando el crédito.
El descuento del importe de la llamada se produce escribiendo un "1", empezando
por el último bit de cada zona. La primera zona donde se produce la escritura es la zona
rápida, pasando luego a la zona lenta. No es necesario poner a "1" todos los "0"
equivalentes al importe de una llamada, ya que con marcar el último de estos a "1" es
suficiente. Debido a esto, cuando se examina el contenido de una tarjeta EEPROM existe
un número indeterminado de "0" en la zona de descuento.
El reset de la tarjeta se produce cuando se origina un pulso de la señal de reloj luego
de haber puesto a “0” la terminal de reset y R/W. Luego se pasa a estado alto la señal de
reset y en la salida I/O aparece el dato correspondiente al primer bit de la memoria.
Con cada flanco de bajada del pulso de reloj, se incrementa el contador de
direcciones y aparece el siguiente a la salida de I/O.
Para escribir un dato, en primer lugar se debe posicionar el contador de direcciones
sobre la dirección de memoria que se desea escribir. Luego las señales R/W y Vpp deben
pasar a nivel alto. En estas condiciones y dentro de un tiempo comprendido entre 10 y
50ms se debe producir el flanco de subida de la señal de reloj. Después de un tiempo
comprendido entre 10 y 50ms deberá aparecer el flanco de bajada de las señales Vpp y
R/W; luego se producirá el flanco de bajada de la señal de reloj con lo que el contador de
direcciones apuntará a la siguiente posición y a la salida I/O obtendremos el valor del bit de
memoria correspondiente a esa dirección.
En las tarjetas que no utilizan la tensión Vpp, una vez concluida la grabación en el
siguiente pulso de reloj se lleva a cabo una nueva lectura del bit grabado, para comprobar
que se ha realizado la grabación correctamente.

50
3.3 Funcionamiento de tarjetas de 128 Bytes
En los chips de las tarjetas de segunda generación el número de contactos disminuye
a 6 (véase la Figura 3.4, la descripción de los pines se ve en la Tabla 3.4). Estas tarjetas
tienen otra forma de implementar la información relativa al fabricante (país, valor, byte de
control, etc.) y de descontar el crédito.

ISO ISO 2 ISO


3 1 ISO 1 = VCC
ISO 2 = RESET
ISO 3 = CLOCK
ISO 5 = GND
ISO 7 = I/O
ISO ISO 7 ISO ISO 8 = S/C
8 5

Figura 3.4 Descripción de pines para tarjetas de 128 Bytes


En estos integrados la capacidad es de 128 bits, dispuestos en 16 bytes de 8 bits
cada uno (posee la mitad de capacidad que las tarjetas anteriores). La función de cada
terminal se describe en la Tabla 3.4 y el mapa de la memoria se puede ver en la Tabla 3.5

Tabla.3.4 Descripción pines tarjetas de 128 Bytes


Contacto Significado
ISO 1 Voltaje de Alimentación (5v)
ISO 2 Reset (RST)
ISO 3 Reloj (CLK)
ISO 5 Tierra (GND)
ISO 7 Entrada/Salida de Datos (I/O)
ISO 8 No Conectada

51
Tabla.3.5 Mapa de memoria de tarjetas de 128 Bytes

Código Operación (a lo que cada Byte


Byte(bit)
Binario hace referencia)

1(1 al 8) 11000011 Datos del País y del Fabricante

2(9 al 16) 00111100

3(17 al 24) 00000001

4(25 al 32) 00000001

5(33 al 40) 00110100 Número de Serie

6(41 al 48) 00000010

7(49 al 56) 01000000

8(57 al 64) 10000000

9(65 al 72) 00000011 Zona de Crédito

10(73 al 80) 00000110

11(81 al 88) 00001100

12(89 al 96) 00001100

13(97 al 104) 10000000

14(105 al 112) 11111100 Control de Calidad

15(113 al 120) 11111001

16(121 al 128) 11110011

Poseen 64 bits EPROM de escritura protegida (área relativa a los datos del
fabricante), 40 bits EEPROM (área de control crédito) y 24 bits puestos a “1”.
Los cuatro primeros bytes indican la información del fabricante de la tarjeta y del
país donde se va a utilizar ésta. Los cuatro bytes siguientes contienen información relativa
al número de serie de la tarjeta, al byte de control y al monto del crédito de la tarjeta.
En los cinco bytes siguientes se implementa un contador octal de cinco etapas que
será el encargado de descontar el valor fijado en principio en la tarjeta. Los tres últimos
están puestos a "1" en fábrica y sirven para realizar el control de calidad.

52
Para realizar la “cuenta” de pulsos durante el uso de la tarjeta se debe tener en
cuenta el número de "1" que tiene cada byte; sólo serán válidos aquellos "1" que no tengan
un “0” a su derecha (esto es debido a que el "0" se utiliza como marcador y cuando deja
algún "1" o grupo de "1" a su izquierda los deja inválidos para el descuento del importe y
así saber el valor final). También hay que mencionar que el último bit de cada byte no tiene
valor alguno sobre el crédito final.
El valor del importe final se obtiene teniendo en cuenta la siguiente secuencia de
control digital:
1. Se cuenta el número de "1" válidos o útiles de cada byte
2. Se multiplica este número de "1" por el número de cada byte independiente
3. Obtenidos los valores parciales de cada byte se suman y de esta manera se obtiene
el crédito final de la tarjeta
El descuento del crédito se realiza desde el byte 13 al 9, de forma que cuando se
necesite un importe superior y se pone un "1" en éste, al mismo tiempo los 8 bits del byte
inferior se ponen todos a "0". El reset de la tarjeta se produce cuando la señal de reloj pasa
a nivel alto y la línea de reset se encuentra también a nivel alto. Luego de poner a “0” la
señal de reloj y, cuando la señal de reset va a “0”, el contenido del primer bit aparece a la
salida de I/O. Además, hay que tener en cuenta que el contador de direcciones no puede ser
reseteado cuando se encuentra en el rango de 0 a 7.
El contador de direcciones se incrementa con la llegada de cada flanco de bajada de
la señal de reloj, mientras la señal de reset permanezca a “0”, con lo que el dato contenido
en cada dirección aparece a la salida del terminal ISO7. En la Figura 3.5 se puede apreciar
este proceso.

Figura 3.5 Diagrama de tiempos para lectura de Datos


Los bytes 9 a 13 (bits 65 a 104) pueden ser escritos (pasa su valor de 1 a 0) o
borrados (pasa su valor de 0 a 1). Para poder realizar la operación de escritura, la señal de
Reset debe pasar a nivel alto mientras la señal del Reloj está a nivel bajo, con lo que se
deshabilita el incremento del contador de direcciones con el pulso de Reloj. Luego, la señal
53
de Reset pasa a “0” y el Reloj es puesto a “1” durante al menos 10 milisegundos para
escribir el bit en la posición direccionada. Al finalizar la escritura del bit y el Reloj se pone
a “0”, el contador de direcciones se desbloquea y el contenido del bit escrito se coloca en el
terminal ISO7, confirmando que la operación se realizó correctamente. (Vea la Figura 3.6)

Figura 3.6 Diagrama de tiempos para la escritura de Datos


Para borrar una célula de memoria, la señal de Reset debe pasar a “1” mientras la
señal del Reloj está a nivel bajo, con lo que se deshabilita el incremento del contador de
direcciones con el impulso de Reloj. Luego, la señal de Reset pasa a nivel bajo y el reloj se
pone a nivel alto durante al menos 10 milisegundos para realizar la escritura del bit. Una
vez que la señal de Reloj pasa a “0”, la señal de Reset vuelve a “1” con lo que el contador
de direcciones se detiene por segunda vez. Cuando la señal de Reset vuelve a “0”, la señal
del Reloj pasa a “1” durante al menos 10 ms para escribir un “1” en el bit direccionado.
Cuando la operación de borrado finaliza, y el Reloj pasa a “0”, el contador de direcciones
se desbloquea y el contenido del bit escrito (“1”), aparece a la salida I/O confirmando que
la operación se cumplió correctamente (ver Figura 3.7). Se debe tomar en cuenta que en las
tarjetas de 1ª generación sólo se puede modificar la información almacenada en la zona de
conteo o crédito y esta zona está diseñada de tal forma que sólo permite el descuento del
crédito, es decir, pasar de “0” a “1” y nunca al revés, con lo que lo único que se podría
hacer en caso de manipulación sería descontar dinero. Un dato importante es que no se
puede variar el valor de la tarjeta ya que éste se encuentra almacenado en la zona de los
primeros 96 bits, que sólo se pueden leer.

54
Figura 3.7 Diagrama de tiempos para el borrado de Datos

55
CAPITULO 4

Prototipo experimental y pruebas

_______________________________

56
4.1 Construcción de un lector de tarjetas EEPROM experimental
Con el fin de entender de una mejor forma el funcionamiento de las tarjetas
EEPROM; la aplicación será para las tarjetas de 2a generación (128 bytes), se construyó un
lector de tarjetas experimental para utilizarlo con un programa de mapeo de bits, estos dos
elementos; el circuito lector y el programa, permiten hacer un mapa de bits de las tarjetas y
observar así el comportamiento de los 5 contadores octales que contienen el crédito de las
tarjetas, lo anterior de acuerdo a el principio de operación detallado en los capítulos
anteriores.
El diagrama de dicho lector es el que se muestra en la Figura 4.1, como se observa
en la figura, la comunicación con la computadora se lleva a cabo a través del puerto
paralelo, de esta manera es posible obtener el mapeo de memoria de las tarjetas a utilizar.

Figura 4.1 Conexión eléctrica del puerto paralelo al lector de tarjetas EEPROM

Cabe indicar que para que el lector funcione necesita una fuente de alimentación de
5v entre tierra y VCC del lector, debido a que el puerto paralelo no suministra ningún tipo de
voltaje. Otro punto a considerar es que el lector desarrollado permite estudiar tanto tarjetas
de 1° como de 2° generación.
En la Figura 4.2 se muestra la imagen real de cómo queda la conexión física del
lector de tarjetas para la implementación del prototipo experimental.

57
Figura 4.2 Foto Lector de Tarjetas EEPROM
4.2 Instalación de Programa de mapeo
El programa de mapeo permite describir bit a bit la memoria de las tarjetas así como
las características propias de una tarjeta, algunas de estas características son:
 País
 N° de serie de la tarjeta
 Valor de la tarjeta
 Contador Octal de la tarjeta
 Saldo Disponible en la tarjeta
El programa incluye dos carpetas una llamada Tartelv3 y otra llamada dlportio, esta
última contiene los controladores.
Si se trabaja con Windows NT, solo basta con ejecutar el archivo install ubicado en
la ruta:
C:\dlportio\install\install
Se le da click a install se obtendra una ventana como se muestra en la Figura 4.3

58
Figura 4.3 Instalación controlador para Sistema Operativo Windows NT

Se da install y el controlador está listo para ejecutar de manera correcta el programa


Si se va a trabajar el lector con Windows 95/98, se tiene que instalar los
controladores de forma manual, para esto hay que acceder a la ruta:
C:\dlportio\DriverLINX\drivers

Dentro de esa carpeta se encontrarán dos archivos como se muestra en la Figura 4.4.

Figura 4.4 Controladores para Sistema Operativo Windows 95/98

El archivo DLPORTIO.dll se coloca en la carpeta ubicada en la ruta:


C:\Windows\System
El archivo DLPORTIO.sys se coloca en la carpeta ubicada en la ruta:
C:\Windows\System32\drivers
De esta manera quedaran instalados los controladores para que el programa de
mapeo funcione de manera correcta.
Cuando no están instalados los controladores de manera correcta se observa una
ventana como la mostrada en la Figura 4.5.

59
Figura 4.5 Error cuando no están instalados correctamente los controladores

Cuando están instalados de manera correcta los controladores se observa la imagen


de la Figura 4.6

Figura 4.6 Ejecución de programa de mapeo de forma correcta

60
Como se observa en la figura anterior los botones se habilitan y ahora se puede
usara el programa de mapeo para leer la tarjeta.

4.3 Mapeo de Tarjetas


Para probar el programa de mapeo y validar el procedimiento para el prototipo
experimental se procedió a mapear una tarjeta EEPROM con un crédito de $30, lo anterior
permitirá observar el comportamiento de la tarjeta, poniendo énfasis en los 5 contadores
octales que se encargan de descontar el crédito contenido en la tarjeta.
Para validar el principio de operación mostrado en el capítulo 3 se fue descontando
el crédito de $3 en $3 hasta llegar a tener la tarjeta vacía (crédito disponible $0) .
En la Figura 4.7 se muestra el mapeo de la tarjeta EEPROM con crédito lleno, lo
que comprueba el inicio de la prueba.

Figura 4.7 Mapeo de Tarjeta con $30 de crédito al inicio de la prueba

61
En la Figura 4.7 del lado izquierdo se muestran las características de la tarjeta,
número de serie, saldo disponible, valor de la tarjeta y los contadores octales. Del lado
derecho se observa el mapa de memoria de una tarjeta con crédito lleno, en esta muestra un
conjunto de 16 bytes, a los cuales se les asigna un valor denominado, byte 1, byte2, byte 3;
etc. Sucesivamente y empezando de izquierda a derecha, de este mapa se destaca lo
siguiente:

 Los datos están entregados en forma binaria y hexadecimal.

 Los primeros dos bytes de la tarjeta representan al fabricante (marcados con color
rosa)

 El tercer byte (59 en su forma hexadecimal), representa el país para cual fue creada
la tarjeta, en este caso México.

 El byte número 5 (09 en hexadecimal), representa el número de serie de la tarjeta.

 El byte número 8 (23 en forma hexadecimal y remarcado con color verde), muestra
en crédito máximo que puede almacenar la tarjeta, para este caso es de 30 pesos.

 Del byte 9 al 13 representan los 5 contadores octales encargados de guardar el


crédito (00 1F 3F 7F 00 por su forma hexadecimal), estos se encargan también de ir
descontando el crédito cuando se realiza una llamada.

 El byte 15 y 16 (3D y A2 por su forma hexadecimal), representan el control de


calidad de la tarjeta, estos datos se encargan de autentificar ante la cabina que es una
tarjeta original y que se puede leer, estos bytes se encargan de la seguridad de la
tarjeta.

62
En la Figura 4.8 se muestra el mapeo de la tarjeta EEPROM cuando se han
descontado 3 pesos, es decir el saldo disponible es de $27, se observa que de todos los
datos mencionados anteriormente, solo se presenta un cambio en los byte 9 al 13 que se
encargan de descontar el crédito, presentándose los nuevos valores, de 00 1F 3F 7F 00
($30) a 00 1F 03 01 0F ($27).

Figura 4.8 Mapeo de tarjeta con $27 de crédito

La Figura 4.9 muestra el mapeo de una tarjeta cuando esta presenta un crédito de
$24, se observa que hay un cambio en los contadores octales de:
00 1F 03 01 0F ($27) a 00 0F 1F 0F 00 ($24)

Figura 4.9 Mapeo de tarjeta con $24 de crédito

63
La Figura 4.10 muestra el mapeo de una tarjeta cuando esta presenta un crédito de
$21, se observa que hay un cambio en los contadores octales de:
00 0F 1F 0F 00 ($24) a 00 0F 00 3F 0F ($21)

Figura 4.10 Mapeo de tarjeta con $21 de crédito


En la Figura 4.11 se muestra el mapeo de una tarjeta cuando esta tiene un crédito de
$18, se observa que hay un cambio en los contadores octales de:
00 0F 00 3F 0F ($21) a 00 07 0F 01 00 ($18).

Figura 4.11 Mapeo de tarjeta con $18 de crédito

64
En la Figura 4.12 se muestra el mapeo de una tarjeta cuando esta tiene un crédito de
$15, se observa que hay un cambio en los contadores octales de:
00 07 0F 01 00 ($18) a 00 03 7F 07 0F ($15).

Figura 4.12 Mapeo de Tarjeta con $15 de crédito

En la Figura 4.13 se muestra el mapeo de una tarjeta cuando esta tiene un crédito de
$12, se observa que hay un cambio en los contadores octales de:
00 03 7F 07 0F ($15) a 00 03 03 3F 00 ($12).

Figura 4.13 Mapeo de Tarjeta con $12 de crédito

65
En la Figura 4.14 se muestra el mapeo de una tarjeta cuando esta tiene un crédito de
$9, se observa que hay un cambio en los contadores octales de:
00 03 03 3F 00 ($12) a 00 01 3F 00 0F ($9).

Figura 4.14 Mapeo de Tarjeta con $9 de crédito

En la Figura 4.15 se muestra el mapeo de una tarjeta cuando esta tiene un crédito de
$9, se observa que hay un cambio en los contadores octales de:
00 01 3F 00 00 ($9) a 00 01 01 07 00 ($6).

Figura 4.15 Mapeo de Tarjeta con $6 de crédito

66
En la Figura 4.16 se muestra el mapeo de una tarjeta cuando esta tiene un crédito de
$3, se observa que hay un cambio en los contadores octales de:
00 01 01 07 00 ($6) a 00 00 0F 1F 0F ($3)

Figura 4.16 Mapeo de Tarjeta con $3 de crédito

En la Figura 4.17 se muestra el mapeo de una tarjeta cuando esta tiene un crédito de
$0, se observa que hay un cambio en los contadores octales de:
00 00 0F 1F 0F ($3) a 00 00 00 00 00 ($0).

Figura 4.17 Mapeo de Tarjeta con $0 de crédito


67
En la Tabla 4.1 se muestra a detalle la forma en la cual se cambia los bits del crédito
de la tarjeta para una fácil comparación.
Tabla 4.1 Decremento de crédito de una tarjeta EEPROM

Representación
Crédito Representación binaria
hexadecimal

$30 00011111 00111111 01111111 00000000 1F 3F 7F 00

$27 00011111 00000011 00000001 00001111 1F 03 01 0F

$24 00001111 00011111 00001111 00000000 0F 1F 0F 00

$21 00001111 00000000 00111111 00001111 0F 00 3F 0F

$18 00000111 00001111 00000001 00000000 07 0F 01 00

$15 00000011 01111111 00000111 00001111 03 7F 07 0F

$12 00000011 00000011 00111111 00000000 03 03 3F 00

$9 00000000 00000001 00111111 00001111 00 01 3F 0F

$6 00000001 00000001 00000111 00000000 01 01 07 00

$3 00000000 00001111 00011111 00001111 00 0F 1F 0F

$0 00000000 00000000 00000000 00000000 00 00 00 00

68
4.4 Circuito para recargar Tarjetas EEPROM

Una vez estudiado a detalle el comportamiento de las tarjetas EEPROM y que se


han comprobado los bits que cambian en función del decremento en el saldo, es decir en
del comportamiento de los 5 contadores octales, se propone el circuito de la Figura 4.18. El
cual deberá de cambiar los 5 contadores octales a su valor de fábrica.

Figura 4.18 Circuito para recarga de tarjetas EEPROM

Como se observa en la Figura 4.18 las salidas del PIC están colocadas a un zócalo
(DIP 6), el cual representa el chip de las tarjetas EEPROM y cada terminal del zócalo
representa una terminal del chip de la siguiente manera:

 La terminal 3 del zócalo, es GND de la tarjeta EEPROM

 La terminal 2 del zócalo, es I/O de la tarjeta EEPROM

 La terminal 5 del zócalo, es RST de la tarjeta EEPROM

 La terminal 6 del zócalo, es CLK de la tarjeta EEPROM

 La terminal 4 del zócalo, es Vcc de la tarjeta EEPROM

69
Figura 4.19 Foto circuito para recarga de tarjetas EEPROM

En la Figura 4.19 se muestra el sistema de recarga para tarjetas EEPROM armado en


un protoboard y conectado de manera correcta para que este funcione.

Funcionamiento del circuito


Antes que nada cabe destacar que todo el proceso de escritura lo realiza el PIC y el
programa que este contiene, de ahí derivará toda la explicación del circuito que se hará a
grandes rasgos:
Primero se observa un arreglo de un cristal y 2 capacitores de 22pF, este arreglo
genera una oscilación de reloj que es lo que hace que el PIC inicie sus procesos, de no
tenerlo las instrucciones contenidas en el PIC no funcionarían.
Cuando se introduce la memoria EEPROM al dispositivo, lo primero que hace el
programa contenido en el PIC es identificar que no tenga nada de crédito, es decir $0 (00
00 00 00 00), en los bytes del 9 al 13, de acuerdo a la información presentada en el capítulo
3, esto lo hace para entrar a los demás procesos, de tener crédito, el dispositivo no podrá
escribir en la memoria EEPROM, ya que solo está diseñada para cargarla completamente.

70
Después de comprobar que la memoria EEPROM esta vacía comprueba el
CheckSum, que es el código de seguridad que tiene la memoria EEPROM definidas, y este
es exclusivo de cada región, así pues, si la tarjeta no es de la región correspondiente, no la
puede cargar, debido a que CheckSum es el código de área que lee la cabina cuando se
introduce y si se escribe sobre ella, se pierde la memoria EEPROM y marcará error al
momento de leerla.
Lo siguiente que realiza el circuito es el algoritmo para escribir en los bytes del 9 al
13 de la memoria EEPROM (después de tomar las 2 consideraciones anteriores) esto se
hace tomando en cuenta el comportamiento del reloj y el reset de la tarjeta (explicado su
comportamiento a detalle en el capítulo 3) y estos datos son enviados del PIC a la memoria
EEPROM a través de la terminal I/O de la memoria y RA4 del PIC.
Una vez realizado lo anterior la memoria EEPROM queda otra vez cargada con el
crédito igual a su valor total, para el ejemplo muestra es de $30, cabe mencionar que la
memoria EEPROM no puede ser recargada con un saldo mayor al definido por su
fabricante; es decir, que si la memoria EEPROM esta predefinida para tener crédito de $30
no se puede cargar con un saldo mayor, por ejemplo, de $50 o $100, esta definición se
encuentra en el byte 8 de la memoria EEPROM.

71
Conclusiones

A continuación se presentan las conclusiones obtenidas durante el desarrollo el proyecto:

 Se realizó una investigación de las tarjetas EEPROM para entender el


principio de funcionamiento del mapa de bits contenido en el chip de la
tarjeta.

 Se observó que existen dos tipos de tecnología de tarjetas EEPROM


utilizadas en nuestro país T1G y T2G, se comprendió a través de un análisis
detallado que la tecnología T1G trabaja en base a 256 bytes y la T2G utiliza
tecnología de 128 bytes, siendo las T2G las que cuentan con mayor sistema
de seguridad, es por esto que las grandes empresas han optado por trabajar
con esta tecnología.

 Se diseñó un prototipo electrónico experimental (y con fines académico


exclusivamente) capaz de realizar recargas en una tarjeta EEPROM con el
fin de reutilizar dichas tarjetas y de esta manera ayudar al medio ambiental.

 La reutilización de estas tarjetas se plantea como un proyecto a futuro, donde


se recargue la información básica de usuarios, y su posible aplicación como
tarjeta de acceso electrónico, tarjeta de crédito de copias, etc.

72
Recomendaciones

 Para llevar a cabo la lectura de las tarjetas es necesario contar con una
computadora que tenga puerto paralelo y cuente con alguno de los siguientes
sistemas operativos: Windows 95/98/NT.

 La lectura de las tarjetas es algo muy importante, lamentablemente estamos


sujetos a las condiciones del programa llamado Tartel, sería bueno tratar de
obtener un programa que funcione en computadoras actuales y a través de
puerto USB.

 Para que el dispositivo funcione para cargar las tarjetas de diferentes


regiones, se requieren los códigos de seguridad de dichas regiones.

73
Bibliografía

1.- Germán Tojeiro Calaza, Proteus. Simulación De Circuitos Electrónicos Y


Microcontroladores, 1era edición 2002, pagina 249.

2.- Pallas, Ramon; Valdez Fernando, Microcontroladores: fundamentos y aplicaciones con


pic, 3era edición 2006, pagina 344.

3.- Estévez, Marcelo; Microprocesadores Y Microcontroladores, 1era edición 2007, paginas


219.

4.- Reyes, Carlos A; Microcontroladores: PIC 16F62X, 16F84X, 16F87X, 3era edición
2008, pagina 211.

5.- Angulo, Jose; Angulo Ignacio; Microcontroladores PIC. Diseño Practico De


Aplicaciones 16F84, 3era edición 2005, pagina 317.

74
Anexos

75
76
77
78
79
Diagrama de Flujo
Inicio

CONBIT EQU 0x0C


RUEBA EQU 0x0D
SAVE EQU 0x0E ;
R1 EQU 0x0F
R2 EQU 0x10
PA EQU PORTA
PB EQU PORTB
ESTADO EQU STATUS

ORG 0x2100

DE 0x99,0x61,0x59,0x0A
DE 0x73,0x14,0x33,0x23
DE 0x00,0x0F,0x3F,0x01
INICIO
DE 0x00,0xFF,0x64,0x64

ORG 0
goto INICIO
ORG 4

RESET DE LA
TARJETA

RUTINA DE CLK

RUTINA DE
BORRADO

RUTINA DE
PROTECCION DE
BYTES, BLOQUEO Y
WRITE

80
1

RUTINA DE
WRITECARRY

RUTINA DE
ESCRITURA EN
LA EEPROM

RECARGA
EXITOSA DE
TARJETA

81

Вам также может понравиться