Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
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 ii 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. 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. 2 ÍNDICE Capítulo 1. Introducción a Memorias EEPROM 1 1.1 Memorias programables…………………………………............ 1 11 1 1.2 Tipos de memorias programables……………….…………........ 1 12 1 1.3 Memoria EEPROM………………….………….………………. 1 16 1 1.4 Historia………………………………………….………………. 1 18 1 1.5 Cualidades……….………………………………...……………. 1 18 1 1.6 Ventajas……………………………………..…..…………......... 1 18 1 1.7 Arquitectura………………………….……….……….……....... 1 19 1 1.8 Descripción…………………………….…….………….……… 2 20 1 1.9 Característica principal………………..…………….………….. 1 20 1 1.10 Limitaciones…………………………………….…….………… 1 21 3 Capítulo 2. Programador de tarjetas EEPROM 2 2.1 Introducción………………………………………………..…....... 2 23 2 2.2 Tarjetas EEPROM……………………………………...………..... 2 23 2 2.3 Método de programación……………………….……..……….…. 2 25 2 2.4 Características de un display………………………………….…... 2 27 2 2.5 Interfaz y hardware de un display…………………………….…... 3 34 2 2.6 Emulador……………….……….……………………….…........... 3 40 2 2.7 Diagrama a bloques del programador……………………….......... 3 41 2 2.8 Diagrama esquemático del programador…………………….…… 3 41 Capítulo 3. Principio de funcionamiento de tarjetas EEPROM 3 3.1 Introducción……………………………………………………….. 4 43 3 3.2 Funcionamiento de tarjetas para 256 Bytes.………………………. 4 43 3 3.3 Funcionamiento de tarjetas para128 Bytes...……………………… 4 51 4 Capítulo 4. Prototipo experimental y pruebas 4 4.1 Construcción de un lector de tarjetas EEPROM.............................. 5 57 4 4.2 Algoritmo de programación…….....……………………..…......... 5 58 4 4.3 Mapeo de Tarjetas…………………...………………………...…. 6 61 4 4.4 Circuito para programación de Tarjetas EEPROM…...…….......... 7 69 Conclusiones………………………………………................................. 7 72 Recomendaciones…………....……………………………..................... 7 73 Bibliografía……………………………………………………………. 7 74 Anexos…………………………………………………………………. 8 75 5 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 6 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ácter0... 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 Vpp...…………………………………………………………... 47 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 7 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 8 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 9 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. 10 CAPITULO 1 Introducción a Memorias EEPROM 11 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: 12 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 ode 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 13 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. 14 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. 15 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. Fila Compuerta aislada Columnas VDD 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 transistoresde 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. http://es.wikipedia.org/wiki/Longitud http://es.wikipedia.org/wiki/Longitud_de_onda http://es.wikipedia.org/wiki/%C3%85_%28letra%29 16 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 17 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. 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 BUS DE DATOS MEMORIA EEPROM OECE WE BUS DE DIRECCIONES 18 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 bajoluz 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. 19 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 CA’ B’ C’ “AND” “OR” PROGRAMABLE Figura 1.5 Arquitectura de la memoria EEPROM 20 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 Características de la memorias EEPROM Tipo de Bus Capacidad Manejo de Datos Protección contra escritura Velocidad de Operación N° de terminales designadas a la comunicación Memoria de 2 Hilos Bus IIC Solo 8 bits Se implementa mediante el hardware Entre 100 y 400 KHz con opción a escalar a 1MHz 2 Pines Memoria de 3 Hilos Bus I2C Entre 8 y 16 bits Se implementa mediante software Hasta 6 MHz 4 Pines 21 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. 22 CAPITULO 2 Programador de tarjetas EEPROM 23 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 R/W Clock Reset Gnd VPP I/O Fuse Figura 2.1 Diagrama chip tarjeta EEPROM 24 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 un1, 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. 25 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 26 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. 27 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. 28 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. 29 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 30 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. 31 Figura 2.10 Mapa de memoria de la DD RAM y sus posicionesen 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. 32 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. 33 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 34 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. 35 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. 36 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. 37 Tabla 2.2 Manera en la que trabaja el bus de control REGISTRO DE CONTROL REGISTRO DE DATOS LECTURA Lectura de la bandera de ocupado (D7) y del contador de direcciones (D0-D6) Leer contenido de la memoria CG RAM o DD RAM ESCRITURA Ejecución de un comando interno: borrar display desplazar el display, mover el cursor Escribir en la CG RAM o DD RAM 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. 38 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 39 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 40 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. 41 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 42 CAPITULO 3 ______________________________ Principio de funcionamiento de tarjetas EEPROM _______________________________ 43 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. 44 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 2 ISO 3 ISO 4 ISO 6 ISO 8 ISO 7 ISO 5 Figura 3.1. Distribución de Pines de tarjetas EEPROM Tabla 3.1 Distancia de Terminales en formato ISO, mm I SO 1 1 0.25 1 2.25 1 9.23 2 0.93 I SO 2 1 0.25 1 2.25 2 1.77 2 3.47 I SO 3 1 0.25 1 2.25 2 4.31 2 6.01 I SO 4 1 0.25 1 2.25 2 6.85 2 8.55 I SO 5 1 7.87 1 9.87 1 9.23 2 0.93 I SO 6 1 7.87 1 9.87 2 1.77 2 3.47 I SO 7 1 7.87 1 9.87 2 4.31 2 6.01 I SO 8 1 7.87 1 9.87 2 6.85 2 8.55 45 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 contarjetas 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 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 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 46 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. 47 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 48 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 Identifica el valor de la tarjeta 10001010 00100101 49 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. 50 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 latarjeta. 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. 51 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 3 ISO 2 ISO 1 ISO 5 ISO 8 ISO 7 ISO 1 = VCC ISO 2 = RESET ISO 3 = CLOCK ISO 5 = GND ISO 7 = I/O ISO 8 = S/C 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 52 Tabla.3.5 Mapa de memoria de tarjetas de 128 Bytes 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. Byte(bit) Código Binario Operación (a lo que cada Byte 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 53 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 54 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
Compartir