memorias y procesadores

35
ASPECTOS GENERALES SOBRE MEMORIAS Las unidades de memoria son módulos conformados por un conjunto de cerrojos o condensadores agrupados de tal forma que almacenan varias palabras binarias de n bits. Cada una de ellas tienen la capacidad de almacenar un bit de información (1 o 0), y se conocen con el nombre de celdas de memoria. Las celdas o bits de memoria se ubican mediante la fila y la columna en la que se encuentra. En la figura 10.1.1 se observa como ubicar un bit y una palabra dentro de una memoria. Figura 10.1.1. Ubicación de la información en una memoria Las palabras binarias se identifican con una dirección la cual define la ubicación dentro del arreglo y generalmente se designa con un número binario, octal o hexadecimal. En la mayoría de las aplicaciones se asocian en grupos de ocho unidades para formar bytes y el tamaño de las palabras en las memorias actuales está entre 4 y 64 bits. El parámetro básico de una memoria es su capacidad, la cual corresponde al total de unidades que puede almacenar. Como ejemplo, la memoria de la figura 10.1.1 tiene una capacidad de 8n bits, que en otras palabras representa n bytes. Regularmente estas memorias en la actualidad se consiguen en tamaños del orden megabytes. El tiempo de acceso es otro parámetro importante en las memorias. Este corresponde al tiempo que tarda la memoria en acceder a la información almacenada en una dirección. Generalmente este tiempo se designan como t acc en las fichas técnicas de estos dispositivos. En tabla 10.1.1 se indican los tiempos de acceso de las memorias en Circuito Integrado comparados con los tiempos de otros tipos de memoria. Memoria Tiempo de Acceso Núcleo de Ferrita 0.3 - 1.0 us Cinta Magnética 5 ms - 1s Disco Magnético 10ms - 50 ms CD ROM 200 ms – 400 ms Memorias Integradas MOS 2ns – 300 ns Memorias Integradas 0.5ns – 30 ns

Upload: joseph-randall

Post on 26-Dec-2015

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Memorias y Procesadores

ASPECTOS GENERALES SOBRE MEMORIAS

Las unidades de memoria son módulos conformados por un conjunto de cerrojos o condensadores agrupados de tal forma que almacenan varias palabras binarias de n bits. Cada una de ellas tienen la capacidad de almacenar un bit de información (1 o 0), y se conocen con el nombre de celdas de memoria. Las celdas o bits de memoria se ubican mediante la fila y la columna en la que se encuentra. En la figura 10.1.1 se observa como ubicar un bit y una palabra dentro de una memoria.

Figura 10.1.1. Ubicación de la información en una memoria

Las palabras binarias se identifican con una dirección la cual define la ubicación dentro del arreglo y generalmente se designa con un número binario, octal o hexadecimal. En la mayoría de las aplicaciones se asocian en grupos de ocho unidades para formar bytes y el tamaño de las palabras en las memorias actuales está entre 4 y 64 bits.

El parámetro básico de una memoria es su capacidad, la cual corresponde al total de unidades que puede almacenar. Como ejemplo, la memoria de la figura 10.1.1 tiene una capacidad de 8n bits, que en otras palabras representa n bytes. Regularmente estas memorias en la actualidad se consiguen en tamaños del orden megabytes.

El tiempo de acceso es otro parámetro importante en las memorias. Este corresponde al tiempo que tarda la memoria en acceder a la información almacenada en una dirección.

Generalmente este tiempo se designan como tacc en las fichas técnicas de estos dispositivos. En tabla 10.1.1 se indican los tiempos de acceso de las memorias en Circuito Integrado comparados con los tiempos de otros tipos de memoria.

Memoria Tiempo de Acceso

Núcleo de Ferrita 0.3 - 1.0 usCinta Magnética 5 ms - 1sDisco Magnético 10ms - 50 msCD ROM 200 ms – 400 msMemorias Integradas MOS 2ns – 300 nsMemorias Integradas Bipolares 0.5ns – 30 ns

Tabla 10.1.1. Comparación de tiempos de acceso de diversos tipos de memorias

Operaciones básicas de una Memoria

La función básica de las memorias es almacenar información. Sin embargo las memorias tienen la función especifica de escribir y leer los datos en su interior. En la figura 10.1.2 se observa la estructura básica de una memoria de 1K de 4 bits, en la cual se indican sus partes básicas.

Page 2: Memorias y Procesadores

Figura 10.1.2. Esquema descriptivo de una Memoria

En la figura 10.1.2 la entrada de direcciones (A0 a A9), como su nombre lo indica, define la posición a escribir o leer dentro de la memoria, las entradas y salidas de datos definen los datos a escribir y leer respectivamente, la entrada WE’ controla el tipo de operación que la memoria debe hacer y la entrada OE’ corresponde a la señal de habilitación de la memoria, la cual habilita o deshabilita la memoria para responder a las demás entradas.

En los computadores modernos las memorias actúan directamente con la CPU a través de canales de comunicación llamados buses. En la figura 10.1.3 se observa un esquema general, el cuál muestra cómo interactúa la CPU de un microcomputador con las memorias a través de estos canales.

Figura 10.1.3. Esquema Simplificado de un Microcomputador.

Las operaciones básicas de una memoria consisten en leer y almacenar información mediante el uso del bus de datos y direcciones. Estas operaciones ocurren en un orden lógico, el cual se indica a continuación:

Apuntar a la dirección de memoria que se desea leer o escribir mediante el uso del bus de direcciones

Selección del tipo de operación: Lectura o escritura.

Cargar los datos a almacenar (en el caso de una operación de escritura)

Retener los datos de la memoria (en el caso de una operación de lectura)

Habilitar o deshabilitar la memoria para una nueva operación.

Page 3: Memorias y Procesadores

MEMORIAS DE ACCESO ALEATORIO

Las memorias de Acceso Aleatorio son conocidas como memorias RAM de la sigla en inglés Random Access Memory. Se caracterizan por ser memorias de lectura/escritura y contienen un conjunto de variables de dirección que permiten seleccionar cualquier dirección de memoria de forma directa e independiente de la posición en la que se encuentre.

Estas memorias son volátiles, es decir, que se pierde la información cuando no hay energía y se clasifican en dos categorías básicas: la RAM estática y la RAM dinámica, las cuales se describen en las siguientes dos secciones.

Memoria RAM estática

Este tipo de memoria conocida como SRAM (Static Random Access Memory) se compone de celdas conformadas por flip-flops construidos generalmente con transistores MOSFET, aunque también existen algunas memorias pequeñas construidas con transistores bipolares. En la figura 10.2.1 se observa la estructura típica de una celda de memoria de unaSRAM.

Figura 10.2.1. Estructura de una celda de memoria SRAM

Como se observa en la figura la celda se activa mediante un nivel activo a la entrada superior y los datos se cargan o se leen a través de las líneas laterales.

Las celdas de memoria se agrupan en filas y columnas para conformar el arreglo básico de la memoria. En la figura 10.2.2 se muestra la disposición de las celdas de memoria en unaSRAM, donde se observa que cada una de las filas se habilita de forma simultánea para recibir o cargar los datos del bus de entrada/salida.

Page 4: Memorias y Procesadores

Figura 10.2.2. Arreglo básico de una SRAM

Existen otras modalidades de funcionamiento de las memorias estáticas, entre ellas se pueden nombrar las siguientes:

SRAM Sincrónica

Al igual que en los sistemas sincrónicos, este tipo de memoria tiene una entrada de reloj, la cual le permite operar en sincronía con otros dispositivos. Esta característica no aporta mejores beneficios, sin embargo simplifica enormemente el diseño de sistemas de alta prestaciones, ya que una única señal controla todos los dispositivos involucrados. La ventaja de estas memorias viene proporcionada por lo que se podría llamar su funcionamiento automático, guiado por la señal de reloj, por lo que no es necesario ocuparse de generar las señales de control.

SRAM de Ráfaga

Las memorias de ráfagas (burst) son sincrónicas y se caracterizan por incluir un contador que permite que la memoria genere internamente la dirección a la que debe acceder, consiguiendo de esta forma accesos hasta cuatro posiciones de memoria con una sola dirección de referencia. Esto permite acceder de forma mas rápida a la información en memoria.

Vemos como funciona este tipo de memoria. La CPU genera una dirección de memoria, la cual se propaga a través del bus de direcciones hasta la memoria, decodificándose y accediendo a la posición correspondiente. Si se ha configurado la memoria en modo ráfaga, una vez obtenido el primer dato, incrementa la dirección y vuelve a acceder. De esta forma se evita el tiempo de propagación de las señales por el bus y el tiempo de decodificación de la dirección. El numero de palabras leídas o escritas en una ráfaga, viene limitado por el tamaño del contador interno de la memoria.

SRAM Pipeline

Con los dos tipos de memorias anteriores se consigue el acceso a posiciones consecutivas de forma rápida. Para mantener esta velocidad cuando se cambia de secuencia, las memorias pipeline incluyen un buffer para almacenar la dirección y los datos actuales proporcionados por la memoria. De esta forma, se puede enviar la nueva dirección antes de terminar la lectura, consiguiendo así que la CPU no espere la finalización del acceso a una posición de memoria para generar la nueva dirección.

Memoria RAM dinámica

Este tipo de memoria conocida como DRAM (Dinamic Random Access Memory), a diferencia de la memoria estática se compone de celdas de memoria construidas con condensadores. Las celdas de memoria son de fabricación más sencillas en comparación a las celdas a base

Page 5: Memorias y Procesadores

de transistores, lo cual permite construir memorias de gran capacidad. La figura 10.2.3 se observa la composición interna de una de estas celdas.

Figura 10.2.3. Celda de memoria de una DRAM

La operación de la celda es similar a la de un interruptor, cuando el estado en la fila se encuentra en alto, el transistor entra en saturación y el dato presente en el bus interno de la memoria (columna) se almacena en el condensador, durante una operación de escritura y se extrae en una operación de lectura. El inconveniente que tiene este tipo de memorias consiste en que hay que recargar la información almacenada en las celdas, por lo cual estas celdas requieren de circuitería adicional para cumplir esta función. En la figura 10.2.4 se observa la celda completa con sus aditamentos donde se puede identificar la forma en que se desarrollan las operaciones de escritura, lectura y recarga.

Figura 10.2.4. Sistema lectura, escritura y recarga de una celda DRAM

Como se ha notado, existen diferencias entre la memoria Estática y Dinámica. En La tabla 10.2.1 se indican las ventajas y desventajas de los dos sistemas de memoria, lo cual permite seleccionar el tipo de memoria dependiendo de la aplicación.

Memoria Ventajas Desventajas

SRAM

La velocidad de acceso es alta. Para retener los datos solo

necesita estar energizada.

Menor capacidad, debido a que cada celda de almacenamiento requiere mas transistores.

Page 6: Memorias y Procesadores

Son más fáciles de diseñar. Mayor costo por bit.

Mayor consumo de Potencia.

DRAM

Mayor densidad y capacidad. Menor costo por bit.

Menor consumo de potencia.

La velocidad de acceso es bajar. Necesita recargar de la

información. almacenada para retenerla.

Diseño complejo.

Memorias de Solo Lectura

Las memorias de solo lectura son conocidas como memorias ROM de la sigla en inglés Read Only Memory. Se caracterizan por ser memorias de lectura y contienen celdas de memoria no volátiles, es decir que la información almacenada se conserva sin necesidad de energía. Este tipo de memoria se emplea para almacenar información de forma permanente o información que no cambie con mucha frecuencia.

Actualmente se dispone de varios tipos de memorias ROM, a continuación se explicará cada una de ellas con sus características básicas.

Memoria ROM de Máscara

Esta memoria se conoce simplemente como ROM y se caracteriza porque la información contenida en su interior se almacena durante su construcción y no se puede alterar. Son memorias ideales para almacenar microprogramas, sistemas operativos, tablas de conversión y caracteres.

Generalmente estas memorias utilizan transistores MOS para representar los dos estados lógicos (1 ó 0). La programación se desarrolla mediante el diseño de un negativo fotográfico llamado máscara donde se especifican las conexiones internas de la memoria. En la figura 10.3.1 se muestra la celda de memoria de una ROM de este tipo, en tecnologíasTTL y MOS.

Figura 10.3.1. Celdas de memoria para una ROM

Las celdas de memoria se organizan en grupos para formar registros del mismo tamaño y estos se ubican físicamente formando un arreglo, como el indicado en la figura 10.3.2.

Page 7: Memorias y Procesadores

Figura 10.3.2. Organización interna de una Memoria ROM

Memoria PROM

Esta memoria es conocida como ROM programable de la sigla en inglés Programmable Read Only Memory. Este tipo de memoria a diferencia de la ROM no se programa durante el proceso de fabricación, en vez de ello la programación la efectúa el usuario y se puede realizar una sola vez, después de la cual no se puede borrar o volver a almacenar otra información.

El proceso de programación es destructivo, es decir, que una vez grabada, es como si fuese una ROM normal. Para almacenar la información se emplean dos técnicas: por destrucción de fusible o por destrucción de unión. Comúnmente la información se programa o quema en las diferentes celdas de memoria aplicando la dirección en el bus de direcciones, los datos en los buffers de entrada de datos y un pulso de 10 a 30V, en una terminal dedicada para fundir los fusibles correspondientes. Cuando se aplica este pulso a un fusible de la celda, se almacena un 0 lógico, de lo contrario se almacena un 1 lógico (estado por defecto), quedando de esta forma la información almacenada de forma permanente. En la figura 10.3.3 se observa la disposición interna de una celda de memoria y los fusibles correspondientes.

Figura 10.3.3. Celda de Memoria de una PROM

El proceso de programación de una PROM generalmente se realiza con un equipo especial llamado quemador. 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 10.3.4 se indica de forma esquemática la función del programador.

Page 8: Memorias y Procesadores

Figura 10.3.4. Programación de un PROM

Memoria EPROM

Este tipo de memoria es similar a la PROM con la diferencia que la información se puede borrar y volver a grabar varias veces. Su nombre proviene de la sigla en inglés Erasable Read Only Memory.

La programación se efectúa 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, tal como las memorias vistas anteriormente se compone de un arreglo de transistores MOSFET de Canal N de compuerta aislada. En la figura 10.3.5 se observa el transistor funcionando como celda de memoria en una EPROM.

Figura 10.3.5. Celda de memoria de una EPROM

Cada transistor tiene una compuerta flotante de SiO2 (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 período aproximado de 10 años.

Por otra parte el borrado de la memoria se realiza mediante la exposición del dispositivo a rayos ultravioleta durante un tiempo aproximado de 10 a 30 minutos. Este tiempo depende

Page 9: Memorias y Procesadores

del tipo de fabricante y para realizar el borrado, el circuito integrado dispone de una ventana de cuarzo transparente, la cual permite a los rayos ultravioleta llegar hasta el material fotoconductivo presente en las compuertas aisladas y de esta forma lograr que la carga se disipe a través de este material apagando el transistor, en cuyo caso todas las celdas de memoria quedan en 1 lógico. Generalmente esta ventana de cuarzo se ubica sobre la superficie del encapsulado y se cubre con un adhesivo para evitar la entrada de luz ambiente que pueda borrar la información, debido a su componente UV. En la figura 10.3.6 se observa la fotografía de una memoria de este tipo.

Figura 10.3.6. Apariencia Fisica de una EPROM

Memoria EEPROM

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 en las 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.

La programación de estas memorias es similar a la programación de la EPROM, la cual se realiza por aplicación de una tensión de 21 Voltios a la compuerta aislada MOSFET de cada transistor, dejando de esta forma una carga eléctrica, que es suficiente para encender los transistores y almacenar la información. Por otro lado, el borrado de la memoria se efectúa aplicando tensiones negativas sobre las compuertas para liberar la carga eléctrica almacenada en ellas.

Esta memoria tiene algunas ventajas con respecto a la Memoria EPROM, de las cuales se pueden enumerar las siguientes:

Las palabras almacenadas en memoria se pueden borrar de forma individual. Para borra la información no se requiere luz ultravioleta.

Las memorias EEPROM no requieren programador.

Para reescribir no se necesita se necesita hacer un borrado previo.

Se pueden reescribir aproximadamente unas 1000 veces sin que se observen problemas para almacenar la información.

El tiempo de almacenamiento de la información es similar al de las EPROM, es decir aproximadamente 10 años.

Memoria FLASH

Page 10: Memorias y Procesadores

La memoria FLASH es similar a la EEPROM, es decir que se puede programar y borrar eléctricamente. Sin embargo esta reúne algunas de las propiedades de las memorias anteriormente vistas, y se caracteriza por tener alta capacidad para almacenar información y es de fabricación sencilla, lo que permite fabricar modelos de capacidad equivalente a las EPROM a menor costo que las EEPROM.

Las celdas de memoria se encuentran constituidas por un transistor MOS de puerta apilada, el cual se forma con una puerta de control y una puerta aislada, tal como se indica en la figura 10.3.7. La compuerta aislada almacena carga eléctrica cuando se aplica una tensión lo suficientemente alta en la puerta de control. De la misma manera que la memoriaEPROM, cuando hay carga eléctrica en la compuerta aislada, se almacena un 0, de lo contrario se almacena un 1.

Figura 10.3.7 Celda de memoria de una FLASH

Las operaciones básicas de una memoria Flash son la programación, la lectura y borrado.

Como ya se mencionó, la programación se efectúa con la aplicación de una tensión (generalmente de 12V o 12.75 V) a cada una de las compuertas de control, correspondiente a las celdas en las que se desean almacenar 0’s. Para almacenar 1’s no es necesario aplicar tensión a las compuertas debido a que el estado por defecto de las celdas de memoria es 1.

La lectura se efectúa aplicando una tensión positiva a la compuerta de control de la celda de memoria, en cuyo caso el estado lógico almacenado se deduce con base en el cambio de estado del transistor:

Si hay un 1 almacenado, la tensión aplicada será lo suficiente para encender el transistor y hacer circular corriente del drenador hacia la fuente.

Si hay un 0 almacenado, la tensión aplicada no encenderá el transistor debido a que la carga eléctrica almacenada en la compuerta aislada.

Para determinar si el dato almacenado en la celda es un 1 ó un 0, se detecta la corriente circulando por el transistor en el momento que se aplica la tensión en la compuerta de control.

El borrado consiste en la liberación de las cargas eléctricas almacenadas en las compuertas aisladas de los transistores. Este proceso consiste en la aplicación de una tensión lo suficientemente negativa que desplaza las cargas como se indica en la figura 10.3.8.

Page 11: Memorias y Procesadores

Figura 10.3.8. Proceso de descarga de una celda de memoria FLASH

APLICACIONES DE LAS MEMORIAS

En la actualidad muchos de los sistemas electrónicos necesitan dispositivos para almacenar y/o leer información. Como ejemplo de este tipo de sistemas podemos mencionar los teléfonos electrónicos, televisores, equipos de sonido y los computadores entre otros.

Esta lección se centrará en mencionar algunas aplicaciones particulares de las memorias que pueden ser de interés para desarrollar proyectos.

Memoria RAM

La memoria RAM es uno de los componentes más importantes en un computador. Cuando se requiere emplear un archivo de datos o programa, los datos o instrucciones son leídos desde el disco duro o disquete y colocados en una memoria RAM, para que sean leídos por el microprocesador, permitiéndole manipularlos, ingresar nuevos datos, modificar los existentes, hacer cálculos, búsquedas, resúmenes, etc.

El uso más difundido de estos dispositivos indiscutiblemente se encuentra en los computadores:

Se utilizan en sistemas microprocesados, y en los microcontroladores, en sistemas pequeños es de lectura/escritura.

En los computadores se utiliza como memoria de Cache y memoria de vídeo.

Las memorias para computadores generalmente no se consiguen en chips, sino en módulos de memoria empaquetados en dos formatos básicos: SIMM y DIMM que contienen 8, 16, 32, 64 o 128 MB cada uno. Estos módulos se introducen en ranuras o slots en la tarjeta madre de los computadores y en la figura 10.4.1 se muestra su presentación de 32 y 72 pines.

Figura 10.4.1. Módulos de Memoria RAM

Page 12: Memorias y Procesadores

Memoria ROM

Programas y Datos

La aplicación más difundida en este tipo de memoria ha sido el almacenamiento de códigos de programas para el momento del arranque de dispositivos que utilizan microprocesadores, como es el caso de los computadores.

Los Computadores vienen con una memoria ROM, donde se encuentran alojados los programas del BIOS (Basic Input Output System), el cual contiene las instrucciones y datos necesarios para activar y hacer funcionar el computador y sus periféricos. Debido a que en esta memoria la información está disponible en cualquier momento, los programas en unaROM son a menudo los cimientos sobre los que se construye el resto de los programas (incluyendo el DOS).

La ventaja de tener los programas fundamentales del computador almacenados en una ROM, es que están allí disponibles y no hay necesidad de cargarlos en la memoria desde el disco de la misma forma que se carga el DOS. Comúnmente estos programas son llamados Firmware, lo que indica que se encuentran firmemente almacenados en el Hardware y que no cambian.

Funciones matemáticas y Generadores de Señales

Otra aplicación de estas memorias consiste en el almacenamiento de tablas de datos que permiten generar funciones matemáticas. Por ejemplo existen memorias que almacenan funciones trigonométricas y hallan el resultado con base en el valor binario introducido en el bus de direcciones. En la figura 10.4.1, se observa como se puede implementar un generador de una señal seno, a partir de la información almacenada en una memoria ROM.

Figura 10.4.2. Generador de señales con una memoria ROM

Ejemplos de Memorias Comerciales

Las memorias son circuitos integrados cuyos pines se hayan en ambos lados de la cápsula, formando dos líneas o hileras de pines (DIP) y generalmente se fabrican con capacidades de orden de Kilobytes o Megabytes múltiplos de 8, por ejemplo 8k, 16k, 32k, 64k, 128k, o 8M, 16M, 32M, etc.

Page 13: Memorias y Procesadores

Figura 10.5.1. Distribución de pines de un chip de memoria

En la figura 10.5.1 se observa un esquema descriptivo de los pines que generalmente se encuentran en una memoria. A continuación se da una explicación de cada uno de estos pines:

A0...An (Bus de direcciones): Estos pines son las entradas para seleccionar la posición de memoria a escribir o leer y su cantidad define la capacidad de palabras que puede almacenar, dada por la expresión 2n, donde n es el número de pines.

D0...Di (Bus de Datos): Corresponde a los pines de entrada y salida de datos. En el mercado se consiguen generalmente buses de 1, 4, 8 y 16 bits y lo más usual es encontrar chips tengan 8 entradas de datos.

CS (Chip Select): Este pin se utiliza para seleccionar el chip de memoria que se desea acceder. Esto en el caso del usar dos o más memorias similares.

OE (Output Enable): Utilizado para habilitar la salida de datos. Cuando se encuentra en estado activo las salidas tiene alta impedancia o actúan como entradas.

R/W’ (Read/Write’): Entrada utilizada en las memorias RAM para seleccionar la operación de lectura o escritura

VCC y GND (Alimentación): Corresponden a los pines de alimentación del circuito integrado. Algunas tienen disponible tres pines para este propósito, pero por lo general son dos y el valor de la tensión de alimentación depende de la tecnología de fabricación del circuito.

En las siguientes secciones se indicaran algunos ejemplos de circuitos integrados de uso general disponibles en el mercado, dando un ejemplo de cada uno de los tipos de memorias vistas.

MEMORIA SRAM - MCM6264C

Esta memoria fabricada por Motorola y desarrollada con tecnología CMOS tiene una capacidad de 8K x 8. Los tiempos de lectura y escritura del integrado son de

aproximadamente 12ns y tiene un consumo de potencia aproximado de 100 mW. En la Figura 10.5.2 se observa la disposición de los pines del circuito integrado de esta memoria y sus las características técnicas básicas.

Page 14: Memorias y Procesadores

Características Técnicas

Referencia

MCM6264C

Tipo

SRAM

Capacidad (bits)

8192 X 8

Tipo de salida

5V

Tiempos de Acceso

12/15/20/25/35 ns

Encapsulado

DIL-28

Figura 10.5.2 SRAM MCM6264C

MEMORIA DRAM – 4116

El CI 4116 es una memoria DRAM de 16K x 1. La estructura interna de este integrado se encuentra constituida por un arreglo de 128 filas y 128 columnas donde cada uno de los bitsse ubican con una dirección de 14 bits. En la figura 10.5.3 se muestra la disposición de los pines del circuito integrado. Observe que la entrada de direcciones es de 7 bits (A0...A6).La razón de poseer 7 pines y no 14, se debe a que estos tienen función doble,

por ejemplo la entrada A0 se utiliza para establecer los valores de los bits A0/A7 de la dirección de memoria que se quiere acceder.

Características Técnicas

Referencia

4116

Tipo

DRAM

Capacidad (bits)

Page 15: Memorias y Procesadores

16384 X 1

Tipo de salida

TRI-STATE

Tiempos de Acceso

100/120/150/200 ns

Encapsulado

DIL-16

Figura 10.5.3. DRAM 4116

Para ingresar una dirección de memoria en este integrado se utilizan las señales de entrada RAS’ y CAS’, las cuales deben estar inicialmente en "1" para recibir los 7 bits menos significativos de la dirección (A6...A0). Después de ello la entrada RAS’ debe cambiar a "0" con lo cual los 7 bits se cargan en el registro de direcciones de memoria y el dispositivo queda disponible para recibir los 7 bits mas significativos (A7...A14) de la dirección. Una vez se aplican estos bits, la entrada CAS’ debe cambiar a "0", cargándolos de esta forma en el registro de direcciones en su respectiva posición y permitiendo finalmente acceder a la posición de memoria para efectuar la operación de lectura o escritura.

MEMORIAS PROM - 74S473

Esta memoria tiene una capacidad de 512 palabras de 8 bits y la descripción de sus pines se muestra en la figura 10.5.4

Características Técnicas

Referencia

74S473

Tipo

PROM

Capacidad (bits)

512 X 8

Tipo de salida

OPEN COLECTOR

Tiempos de Acceso

Page 16: Memorias y Procesadores

60 ns

Encapsulado

DIL-20

Figura 10.5.4. PROM 74S473

MEMORIA EPROM - 27C16B

Esta memoria de 24 pines tiene una capacidad de 2048 palabras de 8 bits, es decir 2KB. Las salidas de esta memoria son triestado, lo que permite escribir o leer los datos con el mismo bus de datos.

Características Técnicas

Referencia

27C16B

Tipo

EPROM CMOS

Capacidad (bits)

2048 X 8

Tipo de salida

(5V) (Vp=12.75V)

Tiempos de Acceso

150/250 ns

Encapsulado

DIL-24

Figura 10.5.5. EPROM 27C16B

Esta memoria tiene dos pines no indicados inicialmente:

VPP: Es utilizado durante la programación. CE’/P (Chip Enable’/Program): Utilizado para seleccionar el chip (en caso de

emplearse en forma conjunta con otros) y para programar la posición de memoria seleccionada en el bus de direcciones.

Durante la programación de la memoria, la entrada OE’ se debe encontrar en 1. En la entrada debe estar presente una tensión de 5V, así como en los datos y la dirección de

Page 17: Memorias y Procesadores

memoria. Después de ello, se aplica pulso de tensión durante 30 ms aproximadamente, para almacenar los datos.

Como se vió anteriormente, el borrado de este tipo de memoria se efectúa mediante la exposición del integrado a luz ultravioleta. Una lámpara UV de 12mW, puede ser utilizada para efectuar este proceso, el cual tarda entre 20 y 25 minutos.

MEMORIA EEPROM - 28C64A

Esta memoria tiene una capacidad de 8K X 8 y tiene características diferentes a las demás. La información almacenada puede perdurar aproximadamente 100 años y puede soportar hasta 100.000 ciclos de grabado y borrado.

Características Técnicas

Referencia28C64ATipoEEPROM CMOSCapacidad (bits)

8192 X 8

Tipo de salida

5V

Tiempos de Acceso

120/150/200 ns

Encapsulado

DIL-28 y PLCC-32

Figura 10.5.6. EEPROM 28C64A

En la figura 10.5.6 se indica la disposición de los pines de esta memoria la cual se encuentra disponible en dos tipos de encapsulados (DIL y PLCC).

MEMORIA FLASH - 27F256

La capacidad de esta memoria es de 32K X 8 y como memoria Flash tiene la característica particular de ser borrada en un tiempo muy corto (1 seg.). El tiempo de programación por byte es de 100 ms y el tiempo de retención de la información es de aproximadamente 10 años.

Page 18: Memorias y Procesadores

Características Técnicas

Referencia

28F256

Tipo

FLASH EEPROM

Capacidad (bits)

32768 X 8

Tipo de salida

(5V) (Vp=12.5V)

Tiempos de Acceso

90/100/120/150 ns

Encapsulado

DIL-28

Figura 10.5.7. Memoria Flash 27F256

En la figura 10.5.7 se indica la disposición de los pines de esta memoria con sus características técnicas básicas.

Page 19: Memorias y Procesadores

PROCESADORES DIGITALES

 

Gran parte de los temas tratados en los capítulos precedentes tienen aplicación en los sistemas digitales actuales, en especial en los computadores, aunque también se emplean en otros equipos de uso cotidiano como: impresoras, equipos de sonido y televisores, entre otros.

El microprocesador o llamado actualmente Procesador Digital se considera uno de los dispositivos más importantes en los computadores, debido a la capacidad que tiene de manejar gran variedad de tareas y rutinas. Este dispositivo y en general la microcomputadora será el tema a estudiar a lo largo del capitulo.

Este capitulo pretende mostrar los aspectos básicos sobre los Procesadores Digitales y su funcionamiento en forma conjunta con otros dispositivos como memorias y puertos. La profundización y/o ampliaciones sobre este capitulo se dejan al estudiante debido a que el tema podría tomar varios capítulos o inclusive un curso completo.

Page 20: Memorias y Procesadores

CONFIGURACIÓN

El procesador digital o microprocesador es el dispositivo que contiene las funciones de la Unidad Central de Proceso (CPU) en un computador. Este dispositivo se encarga de cumplir las funciones básicas del computador y puede ser incorporado en otros sistemas digitales que realizan funciones especiales.

El Procesador en términos generales es el cerebro de un computador, cuyas partes básicas son: el contador de programa, el decodificador de instrucciones, los registros y la unidad aritmética y lógica. En la figura 11.1.1 se indica la disposición de tales partes.

Figura 11.1.1. Componentes de un procesador

Todos los datos (las instrucciones y los datos) son leídos por la CPU a través de los registros. Las instrucciones (el código del programa) son leídas en un registro llamado"Instruction Register" y luego son decodificadas mediante un decodificador, que interpreta el tipo de instrucción. Dependiendo de la instrucción, se leen a continuación los datos a procesar, los cuales se almacenan en un registro llamado "Acumulador" o "Registro de Trabajo" que se encuentra directamente relacionado con la Unidad Aritmética y Lógica (ALU). La ALU es un modulo del procesador donde se realizan todos los procesos lógicos y aritméticos con los datos. Los resultados de la ALU son almacenados nuevamente en el Acumulador, donde pueden ser enviados a una posición de memoria o a un dispositivo de E/S.

Las señales mas importantes que maneja el procesador corresponden a las del bus del sistema. Este bus cumple un papel importante en el funcionamiento del microcomputador y serán estudiados en la siguiente lección.

ARQUITECTURA DE UN MICROCOMPUTADOR

Un microcomputador es un sistema digital que contiene por lo menos tres componentes esenciales: un procesador (CPU), una Memoria y los Puertos Entrada/Salida. En la figura 11.2.1 se muestra un diagrama de bloques de estos componentes y su conexión a través de los buses de direcciones, datos y control, los cuales serán explicados mas adelante en esta lección.

Page 21: Memorias y Procesadores

Figura 11.2.1. Componentes de un microcomputador

Un microcomputador en pocas palabras puede es una computadora de propósito general, como un PC en miniatura, o un sistema diseñado para cumplir una tarea especial, como es el caso de los microcontroladores. En la figura 11.2.2 se muestra la apariencia interna de un microcomputador. Las líneas delgadas que van del centro hacia afuera son los alambres que conectan los bloques internos del microcomputador con los pines de la cápsula.

Figura 11.2.2. Apariencia física del interior de un microcomputador

El microcomputador para interactuar con los demás dispositivos como las memorias, puertos y otros utiliza el bus del sistema. A continuación de dará una explicación sobre la composición de este bus y su funcionamiento.

Bus del Sistema

Los buses de direcciones, datos y control mostrados inicialmente en la figura 11.2.1 son el "bus del sistema". Este bus se encuentra separado en tres canales que manejan respectivamente direcciones, datos y señales de control, los cuales permiten el procesador comunicarse con los demás dispositivos del microcomputador, tales como las memorias y los dispositivos de E/S.

Bus de Datos

Este bus es bidireccional y es el canal por el cual se conducen los datos entre la  CPU y los demás dispositivos (memorias, puertos y otros).

Page 22: Memorias y Procesadores

Bus de Direcciones

El bus de direcciones es un canal unidireccional por el cual la CPU envía las direcciones de memoria para ubicar información en los dispositivos de memoria, puertos u otros dispositivos del microcomputador.

Bus de Control

El bus de control, al igual que el bus de direcciones es unidireccional y se utiliza para efectuar la lectura y escritura en las memorias y puertos de E/S. Este bus en general lo emplea la CPU para controlar el flujo de los datos y las direcciones de forma organizada.

Funcionamiento del Bus del Sistema

El bus de datos depende del tamaño de los datos que maneja el procesador, este puede tener 8, 16 o 32 bits y el bus de direcciones generalmente tiene como mínimo 16 bits. El bus del sistema se utiliza para transferir información entre la CPU y la memoria o para extraer instrucciones almacenadas en memoria y datos presentes en los puertos de E/S.

El intercambio de información por el bus del sistema se realiza con dos tipos de operaciones:

Ciclo de Lectura: Cuando los datos en Memoria o puertos de E/S se transfieren a la CPU.

Ciclo de Escritura: Cuando los datos de la CPU se transfieren a la Memoria o a los puertos de E/S.

Las líneas de control son aquellas con las que se controla el flujo de la información por los buses, y las más importantes son:

CHIPSELECT (CS’) LECTURA (RD’)

ESCRITURA (WR’)

Cada transferencia empieza con la carga de una dirección en el bus de direcciones. Las líneas correspondientes a la los bits menos significativos de la dirección se encuentran conectados directamente a las memorias. Las líneas de dirección de los bits más significativos se utilizan para seleccionar el dispositivo del cual se desea extraer la información, ya sea una EPROM, RAM o un Puerto de E/S. Entonces, el decodificador de direcciones se encarga de seleccionar el dispositivo que se debe activar según la dirección presente en el bus. Para ello, cada dispositivo en el microcomputador debe tener una única dirección que lo identifique. En la figura 11.2.3 se muestra un diagrama de los tiempos de las señales presentes durante el flujo de los datos y direcciones en el bus del sistema.

Figura 11.2.3. Diagrama de tiempos de las señales del bus del sistema.

Page 23: Memorias y Procesadores

La señal CS’ selecciona el dispositivo que debe transmitir los datos por el bus de datos. Luego una de las señales RD o WR se activa desde la CPU, con lo cual se ordena al dispositivo seleccionado enviar los datos a la CPU (ciclo de lectura) o recibirlos de la CPU (ciclo de escritura).

Todos los ciclos de lectura y escritura comienzan con una dirección válida de la CPU. Luego el decodificador de direcciones genera una señal CS’ para seleccionar uno de los dispositivos. Entonces la CPU envía una señal RD o WR para efectuar la lectura o escritura de los datos.

Para una operación de lectura el dispositivo debe conducir a través del bus de datos, lo cual toma un tiempo corto (el tiempo de acceso de los datos), y los datos deben estar disponibles en el bus durante el flanco de subida de la señal RD. Durante este flanco de subida la CPU toma los datos y los almacena internamente en sus registros.

Durante un ciclo de escritura la CPU por si misma maneja de los datos. En este caso, al igual que en el ciclo de lectura los datos deben estar disponibles en el bus antes de que ocurra el flanco de subida de la señal WR, para que el dispositivo seleccionado pueda recibir los datos correctamente.

Arquitecturas de Microcomputadores

Actualmente se conocen dos tipos de arquitecturas en los microcomputadores, conocidas como Von-Newman y Harvard.

Arquitectura Von-Neuman

Los microcomputadores basados en esta arquitectura se caracterizan por tener un solo bus para direcciones y datos, es decir, que el mismo bus se emplea para enviar y recibir instrucciones y datos. Ademas de ello, las instrucciones y los datos son almacenados en una memoria principal. Cuando la CPU se dirige a la memoria principal, extrae la instrucción y después los datos con los que se efectúa la instrucción.

Arquitectura de Harvard

Esta arquitectura se caracteriza por tener por separado el bus de datos y el bus de direcciones. Esto significa que las instrucciones y los datos son almacenados en memorias diferentes que son accedidas de forma separada por la CPU.

DECODIFICADORES

En los microcomputadores, la comunicación entre la CPU y otros dispositivos como memorias y puertos se efectúa a través del bus del sistema. El bus de direcciones de un microcomputador se encuentra estrechamente relacionado con los decodificadores, ya que gracias a ellos es posible seleccionar los dispositivos internos del microcomputador y las posiciones de memoria para efectuar operaciones de lectura y escritura. En la figura 11.3.1 se indica como se los decodificadores se emplean dentro de un microcomputadro para seleccionar los dispositivos internos.

Page 24: Memorias y Procesadores

Figura 11.3.1 Empleo de los decodificadores en el microcomputador

Esta no es la única aplicación de los decodificadores en los microcomputadores. Internamante dentro del a CPU también existe un decodificador, llamado el Instruction Decoder(Decodificador de Instrucciones) el cual funciona de forma conjunta con el Instruction Register (Registro de Instrucciones) de la CPU.

Según lo visto en la Lección 1: Configuración, sobre la configuración interna del Procesador Digital (CPU), el registro de instrucciones es el lugar donde se almacena temporalmente la instrucción que la CPU debe ejecutar. Una vez la instrucción se carga en este registro se pasa la información al decodificador de instrucciones, el cual se encarga de descifrar la instrucción y sus operandos; después de ello el decodificador genera las señales correspondientes a los circuitos lógicos dentro de la CPU que se encargan a su vez de generar las señales de control requeridas para que se ejecute finalmente la instrucción.

PUERTOS

Los puertos en un microcomputador corresponden a las interfaces de entrada y salida entre el microcomputador y el mundo exterior. Existen puertos de entrada, salida y bidireccionales (Entrada y Salida).

Una de las funciones básicas del microcomputador es comunicarse con los dispositivos exteriores, es decir, el microcomputador debe ser capaz de enviar y recibir datos desde estos dispositivos. Sin esta función, el ordenador no sería operativo porque sus cálculos no serían visibles desde el exterior.

El funcionamiento de los puertos es similar al de una posición de memoria. Al igual que los registros de una memoria, los puertos son identificados por la CPU con una dirección en la cual se pueden leer y/o escribir datos. Para trabajar con ellos solo es necesario apuntar a la dirección de memoria que tienen asignada, y el tratamiento es el mismo que el de una posición de memoria.

Los puertos y dispositivos de E/S, en general son todas las interfaces de entrada y salida de datos en un microcomputador. Los dispositivos de E/S más comunes en aplicaciones son: Teclados, Displays, E/S paralelo, E/S seriales y E/S análogas.

Teclado

Este es uno de los periféricos mas importantes en un microcomputador, debido a que gracias a éste, es posible ingresar información para procesar por la CPU. Un teclado típico en las

Page 25: Memorias y Procesadores

aplicaciones con microcomputadores es el teclado matricial 4X4, como el que se muestra en la figura 11.4.1.

Figura 11.4.1. Teclado Matricial de 4 X 4

La forma como detecta la pulsación de una tecla, consiste en enviar una señal constantemente a cada una de las filas a través de las salidas de un puerto del microcomputador y verificar cual de las columnas se activa a través de un puerto de entrada. Este es el método que generalmente se utiliza para detectar una tecla, y se pude implementar con una rutina de código que funcione de forma cíclica.

Displays

Los displays son periféricos muy importantes y su función es mostrar información proveniente de los puertos de salida,. Los Displays hacen las veces de monitor en el caso de los computadores de escritorio.

Generalmente se emplean display de 7 segmento, aunque hoy en día se ha venido incrementando el uso de Display de Cristal Líquido (LCD), el cual tiene menos consumo de energía que el de 7 segmentos y además permite mostrar una gran variedad de caracteres.

E/S Paralelo

El puerto paralelo es el tipo de puerto comúnmente empleado en las aplicaciones del microcomputador, generalmente se utiliza para señalizar manejar teclados y habilitar otros dispositivos.

E/S Seriales

Este puerto se emplea para establecer comunicación con otros dispositivos. Algunos microcomputadores y microcontroladores tienen incluido uno de estos puertos en su arquitectura con el cual se puede establecer comunicación en tres hilos (Trasmisión, Recepción y Referencia).

E/S Análogas

Muchas aplicaciones necesitan de una entrada análoga para medir magnitudes físicas como temperatura o presión. Algunos microcomputadores tiene conversores A/D que permiten medir estas magnitudes y procesar la información en forma digital. Actualmente se consiguen en el mercado microcontroladores con resoluciones entre 8 y 22 bits.

MEMORIAS

Page 26: Memorias y Procesadores

En las lecciones precedentes del capítulo, se mencionó sobre la necesidad de por lo menos una memoria para el funcionamiento de los microcomputadores. Esta memoria puede ser interna o externa, ya sea con chips adicionales o internamente dentro del chip del microcomputador.

Generalmente se habla de dos tipos de memoria dentro de un microcomputador: La memoria de Programa. La memoria de Datos.

La memoria de programa se utiliza para almacenar las instrucciones de los programas que ejecuta el microcomputador. Generalmente el tipo de memoria que se emplea para almacenar el programa es una memoria ROM, para que la información no se pierda cuando se desenergiza el microcomputador. Esta memoria puede ser una EPROM o una EEPROM,aunque hay microcomputadores que almacenan las instrucciones en memorias RAM, pero su uso no es muy difundido.

La memoria de datos se emplea para el almacenamiento y lectura de datos que se generan y cambian constantemente durante la ejecución del programa y la pila. La pila es una porción de memoria dónde la CPU almacena sus propios datos de uso interno para la ejecución de subrutinas. Por sus características, la memoria de datos se encuentra constituida comúnmente por una RAM.

La cantidad de memoria de programa y datos en un en un microcomputador depende en gran parte de la de la aplicación. Hay aplicaciones pequeñas qué requieren solo 512 Bytesen ROM y 128 Bytes en RAM, así como aplicaciones de mayores prestaciones que requieren hasta de 1 Megabyte de EPROM y RAM.

Generalmente el bus de direcciones de los microcomputadores se limita para direccionar 64 Kbytes de memoria, por lo tanto es común encontrar varios de estos dispositivos con capacidades de 32 Kbytes en ROM y 32 Kbytes en RAM.

Figura 11.5.1. Disposición interna de las partes de una memoria

Recordando lo visto en capitulo anterior, en la figura 11.5.1 se indica la disposición interna de una memoria, donde se observan las entradas de datos, direcciones y control que se conectan a la CPU.

INSTRUCCIONES EN LENGUAJE ENSAMBLADOR

Los microcomputadores tienen un lenguaje único que es capaz de reconocer y ejecutar las instrucciones. Este lenguaje es llamado "Lenguaje de Máquina" y pertenece al procesador del microcomputador. El lenguaje de máquina está compuesto por una serie de instrucciones, las

Page 27: Memorias y Procesadores

cuales son reconocidas y ejecutadas únicamente por el procesador. Este lenguaje es un conjunto de números que representan las operaciones realizadas por los componentes internos del procesador. Estas instrucciones se encuentran directamente ligadas a la estructura física del procesador y no pueden ser modificadas o cambiadas.

El lenguaje Ensamblador

Es necesario comprender la arquitectura interna del procesador así como sus instrucciones para programar un procesador. Cada procesador tiene un conjunto de registros internos que puede emplearse de maneras distintas para manipular números binario. Las instrucciones ejecutadas por el procesador generalmente manipulan los datos almacenados en la memoria y los registros de trabajo.

Las instrucciones de programa de un procesador se guardan como números binarios en la memoria y se conocen como códigos de operación (op). Los códigos de operación son leídos por la CPU y decodificados para determinar cuál es la instrucción que debe ejecutarse. Cada código de operación se aplica o afecta a otro número, tal como el que está guardado en el "registro de trabajo" o "Acumulador". El número binario al que se aplica la instrucción se conoce como operando. El operando puede ser otro registro o un número binario almacenado en la memoria.

Para facilitar la escritura de programas, cada uno de los tipos principales de instrucciones tiene asociado un código alfanumérico corto que ayuda al programador a recordarlos, y estos

códigos alfanuméricos se conocen como mnemónicos. Este lenguaje es llamado lenguaje ensamblador y su uso es muy frecuente debido a la facilidad para recordar las instrucciones. A manera de ejemplo en la tabla 11.6.1 se muestra una instrucción en lenguaje ensamblador, la cual efectúa una la trasferencia de datos entre dos registros del procesador:

hMnemónicoh Operando Comentario

MOV A, B Carga el registro A con los datos del registroB

Tabla 11.6.1. Instrucción en Lenguaje Ensamblador

La palabra "MOV" es una abreviatura que significa "mover" y corresponde a la instrucción que se da al procesador, el operando "A, B" agrupa los argumentos de la instrucción y en este caso corresponde a dos registros del procesador. Como regla general en el lenguaje ensamblador de varios procesadores, cuando un operando tiene esta sintaxis, indica que el registro a la derecha de la coma es la fuente y el registro a la izquierda es el destino.

Existe una correspondencia uno a uno entre las instrucciones en lenguaje de máquina y lenguaje ensamblador y cada uno de los valores numéricos del lenguaje de máquina tiene una representación simbólica de 3 a 5 caracteres como instrucción en lenguaje ensamblador, como es el caso de la instrucción de ejemplo anterior.

De esta forma los programas pueden ser escritos utilizando únicamente los mnemónicos de las instrucciones y ser procesados posteriormente con un programa denominado ensamblador, el cual genera los códigos de operación. Esta es una manera mucho práctica de generar un programa en vez de consultar los códigos de operación y cargarlos en memoria manualmente.

Tipos de Instrucciones

Las instrucciones de un procesador se pueden agrupar en tres tipos: Instrucciones de Transferencia, Instrucciones de Operación e Instrucciones de Control. A continuación se describirán las características básicas de cada uno de estos grupos:

Page 28: Memorias y Procesadores

Instrucciones de Transferencia

Como su nombre lo indica, este grupo de instrucciones se utiliza para efectuar transferencia

de datos entre los registros de la CPU, la memoria y los puertos de E/S. En la tabla 11.6.2 se indica un ejemplo este tipo de instrucciones.

Mnemónico Operando Comentario

LDA MCarga el registro A con los datos del registro en la posición de memoria M.

Tabla 11.6.2. Instrucción de Transferencia en Lenguaje Ensamblador

Instrucciones de Operación

Estas instrucciones se emplean para realizar operaciones aritméticas y lógicas entre los registros del procesador y la memoria. Estas operaciones incluyen suma, resta, incremento decremento, complemento, comparación y corrimiento. En la tabla 11.6.3 se muestra un ejemplo de una instrucción de operación.

Mnemónico Operando Comentario

ADDB

Suma el registro B con el registro A y el resultado se almacena en el registro A.

Tabla 11.6.3. Instrucción de Operación en Lenguaje Ensamblador

Instrucciones de Control

En el lenguaje Ensamblador y en general en cualquier lenguaje de programación las instrucciones de control juegan un papel muy importante en el flujo de un programa. Su función consiste en alterar el flujo normal del programa, según el estado de ciertos registros del sistema que indican alguna condición después de ejecutar una instrucción. Con este tipo de instrucciones es posible tomar el control del flujo del programa. En la tabla 11.6.4 se indica un ejemplo de una instrucción de control.

Mnemónico Operando Comentario

JZ No existePasa por alto la siguiente instrucción en el código del programa si el bit del sistema Z=1.

Tabla 11.6.4. Instrucción de Control en Lenguaje Ensamblador

La abreviatura JZ corresponde a la frase en inglés Jump If Zero (Saltar si Cero) y la función es evaluar el bit del sistema Z del registro de estado. En caso de estar en 0 se ejecuta normalmente la siguiente instrucción, y en caso de estar en 1 se salta la siguiente instrucción. Este bit del sistema se pone en 1 si una operación anterior dió como resultado 0.

Page 29: Memorias y Procesadores

Hay mucho más que decir sobre la programación de un procesador que lo mencionado en esta lección; sin embargo, si el estudiante desea comprender más a fondo la forma en que funciona el microcomputador y có mo se programa, es conveniente estudiar un poco sobre diagramas de flujo y programación.

MICROCONTROLADORES

Qué es un Microcontrolador

Muchos de los sistemas digitales pueden diseñarse empleando procesadores o microcontroladores, la selección del dispositivo depende del tipo de aplicación y la diferencia básica que existe entre estos dos dispositivos se explica a continuación:

Los procesadores son empleados para procesar información. A manera de ejemplo, con un procesador se podría hallar todas las personas en Bogotá entre edades de 15 y 30 años, de sexo femenino, y ordenados por el Apellido. Los procesadores usan un conjunto de instrucciones útiles para procesar datos, lo cual los hace muy versátiles para manejar información.

Los microcontroladores son utilizados como su nombre lo indica para controlar. Son muy utilizados para implementar controles automáticos. Como ejemplo, un microcontrolador puede sensar la temperatura de un proceso, compararla con un valor almacenado en memoria y tomar la decisión de encender un equipo de calefacción si la temperatura baja de cierto valor, y además de ello mostrar el valor en un display.

Los microcontroladores generalmente tienen instrucciones especiales que permiten controlar procesos como el indicado anteriormente y otros más complejos; todo depende de la habilidad del programador para generar el código para manejar el proceso. Un microcontrolador es simplemente un procesador con memoria ROM y RAM, puertos de E/S y otros dispositivos de propósito especial como conversores A/D, contadores, temporizadores y puertos de comunicación, o en otras palabras es un microcomputador con funciones especiales. En la figura 11.7.1 se indica la estructura interna típica de un microcontrolador.

Figura 11.7.1. Estructura típica de un microcontrolador

Estos dispositivos generalmente incluyen variedad de funciones especiales que se pueden utilizar gracias a los dispositivos internos incluidos dentro de ellos. Entre las características mas relevantes de un microcontrolador, se pueden enunciar las siguientes:

La memoria de programa generalmente es una Flash EEPROM. Tiene puertos de Entrada y Salida (Configurables por software). Poseen contadores de propósito especial. Tiene incluido un reloj del sistema que permite contabilizar tiempo. Algunos modelos incluyen conversores A/D. Tiene Memoria EEPROM para almacenar datos.

Page 30: Memorias y Procesadores

Tiene puerto de comunicaciones. Manejan velocidades de operación hasta 20 MHz. Algunos de estos dispositivos tienen puerto de comunicaciones serial. Tienen entradas para interrupción. La programación es rápida. Las herramientas de desarrollo son económicas y se encuentran disponibles en a red,

las cuales incluyen el ensamblador y simulador.

Los microcontroladores se pueden encontrar en varias aplicaciones que se relacionen con medida, almacenamiento, control, cálculo entre otras. También se pueden encontrar dentro de los teclados, módems, impresoras y otros periféricos. Como se puede notar los microcontroladores son dispositivos muy versátiles que pueden ser utilizados en muchas aplicaciones, donde todo el potencial se encuentra en la programación.

Como seleccionar un microcontrolador

Dentro de cada familia de dispositivos, usted encontrará normalmente una selección de varios microcontroladores dependiendo de los dispositivos internos que tenga disponibles, y la capacidad de memoria de programa y datos.

Los microcontroladores también se especifican por la cantidad de bits que pueden procesar por unidad de tiempo. Un número alto de bits indica que se trata de un dispositivo rápido y de altas prestaciones. Los microcontroladores de 8 bits son muy populares y se emplean en proyectos simples, sin embargo se encuentran arquitecturas que manejan hasta 32bits, para aplicaciones más complejas.

El consumo de potencia es otra especificación que se debe tener en cuenta, sobre todo para sistemas alimentados por baterías. Los Chips normalmente son fabricados con tecnología CMOS debido al consumo bajo que ofrece. Algunos de estos dispositivos CMOS tienen disponible un estado de espera o modo "sleep", como el de los compuatdores cuando se suspenden, el cual limita el consumo de corriente en unos cuantos microamperios cuando los circuitos se encuentran inactivos. Usando este modo de funcionamiento, el consumo de potencia puede ser reducido cuando se da espera a la entrada de datos durante la ejecución de un programa.

Microcontroladores disponibles en el mercado

En esta sección se describen algunos microcontroladores populares que pueden ser empleados para infinidad de aplicaciones. Lo más recomendable en la selección de un microcontrolador es tener disponible un buen juego de herramientas de desarrollo y que su costo no sea tan elevado, además de ello también es importante tener acceso a la documentación del dispositivo para conocer su arquitectura y funciones. Para iniciarse en la programación de estos dispositivos generalmente son recomendables los microcontroladores de INTEL, MOTOROLA y MICROCHIP entre otros, de los cuales se consiguen con facilidad sus herramientas de desarrollo y documentación. A continuación de dará una breve descripción de los dispositivos de cada una de estas Marcas.

FAMILIA 805X, 80186 - INTEL

Los microcontroladores de la serie 8051, son la segunda generación después del 8048. Este dispositivo es muy poderoso y fácil para programar. Tiene arquitectura Harvard, es decir, que los la memoria de datos y programa se encuentran por separado en su estructura. La memoria del programa es de 64K y la memoria de datos es de 128 bytes y 256 bytes para los 8052. Hay disponible gran cantidad de software de desarrollo para los microcontroladores de esta familia que puede ser encontrado en Internet.

La tercera generación de estos microcontroladores son los de la familia 80C196, los cuales manejan palabras de 16 bits. Entre las principales características de estos dispositivos se pueden enumerar las siguientes: efectúan operaciones de multiplicación y división el hardware multiplica y divide, 6 modos de direccionamiento, Sistema de E/S de alta velocidad, Conversor A/D, módulo de comunicación serial, 8 fuentes de interrupción, generador de PWM, Watchdog Timer.

Page 31: Memorias y Procesadores

Existe también el microcontrolador 80386 EX, el cual tiene toda la potencialidad de un procesador 80386 pero con dispositivos adicionales que lo convierten en un microcontrolador muy potente y versátil. Este dispositivo tiene puerto serial, modos de ahorro de energía, contadores y temporizadores, memoria DRAM y fuentes de interrupción.

FAMILIA 68HC11 - MOTOROLA

El 68HC11 es un microcontrolador de 8 bits. Este microcontrolador tiene bus de direcciones interno de 16 bits con un juego de instrucciones similar al de sus predecesores de las familias 6801, 6805 y 6809. La arquitectura de estos microcontroladores es Von-Newman, es decir, que las direcciones y los datos comparten el mismo espacio en memoria. Dependiendo de la variedad, los 68HC11 tienen EEPROM incorporada, RAM, entradas y salidas digitales, temporizadores, conversor A/D, generador de PWM, contadores de pulsos, puerto de comunicaciones seriales sincrónicas y asincrónicas, entre otras funciones.

PIC16C - MICROCHIP

Los microcontroladores de Microchip fueron los primeros dispositivos RISC. RISC significa que el dispositivo tiene un número reducido de instrucciones, lo cual implica simplicidad en su arquitectura y bajo costo. Aunque estos microcontroladores tienen pocas instrucciones (33 para el PIC16CXX) en la actualidad son muy utilizados por su facilidad de programación y costo reducido.

Estos dispositivos son de arquitectura Harvard, por lo cual teien buses de datos y direcciones separados. Los beneficios que tiene este dispositivo frente a los demás es su sencillez, lo cual permite fabricarlo en chips muy pequeños, con la ventaja adicional de consumir muy poca energía.

Estos dispositivos son muy populares y generalmente se encuentran en aplicaciones en revistas de electrónica e Internet. Actualmente existen varias familias de este microcontrolador entre las cuales se pueden destacar la PIC16C5X, PIC16CXX, y la PIC17CXX, que también se pueden conseguir con memoria Flash en las familias PIC16FXXX