miércoles, 19 de agosto de 2015

trabajo final

 Memorias

Memoria RAM

La memoria de acceso aleatorio (en inglés: random-access memory),se utiliza como memoria de trabajo para el sistema operativo, los programas y la mayoría del software. Se denominan "de acceso aleatorio" porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder a la información de la manera más rápida posible.

hay dos tipos básicos de memoria RAM

· RAM dinámica (DRAM)· RAM estática (SRAM)

Memoria SRAM

Static Random Access Memory (SRAM), o Memoria Estática de Acceso Aleatorio es un tipo de memoria basada en semiconductores que a diferencia de la memoria DRAM, es capaz de mantener los datos, mientras esté alimentada, sin necesidad de circuito de refresco. sí son memorias volátiles, es decir que pierden la información si se les interrumpe la alimentación eléctrica.

Memoria DRAM

DRAM (Dynamic Random Access Memory) es un tipo de memoria dinámica de acceso aleatorio que se usa principalmente en los módulos de memoria RAM y en otros dispositivos, como memoria principal del sistema.Es una memoria volátil, es decir cuando no hay alimentación eléctrica, la memoria no guarda la información. Inventada a finales de los sesenta, es una de las memorias más usadas en la actualidad.

· Máscara ROM  

En este caso no se “graba” el programa en memoria sino que el microcontrolador se fabrica con el programa, es un proceso similar al de producción de los CD comerciales mediante masterización. 

· Memoria PROM 

(Programable Read-Only Memory) también conocida como OTP (One Time Programable). Este tipo de memoria, también es conocida como PROM o simplemente ROM. Los microcontroladores con memoria OTP se pueden programar una sola vez, con algún tipo de programador. Se utilizan en sistemas donde el programa no requiera futuras actualizaciones y para series relativamente pequeñas, donde la variante de máscara sea muy costosa, también para sistemas que requieren socialización de datos, almacenados como constantes en la memoria de programas.

·Memoria EPROM

 (Erasable Programmable Read Only Memory). Los microcontroladores con este tipo de memoria son muy fáciles de identificar porque su encapsulado es de cerámica y llevan encima una ventanita de vidrio desde la cual puede verse la oblea de silicio del microcontrolador. Se fabrican así porque la memoria EPROM es reprogramable, pero antes debe borrase, y para ello hay que exponerla a una fuente de luz ultravioleta, el proceso de grabación es similar al empleado para las memorias OTP. Al aparecer tecnologías menos costosas y más flexibles, como las memorias EEPROM y FLASH, este tipo de memoria han caído en desuso, se utilizaban en sistemas que requieren actualizaciones del programa y para los procesos de desarrollo y puesta a punto.

·EEPROM

 (Electrical Erasable Programmable Read Only Memory). Fueron el sustituto natural de las memorias EPROM, la diferencia fundamental es que pueden ser borradas eléctricamente, por lo que la ventanilla de cristal de cuarzo y los encapsulados cerámicos no son necesarios. Al disminuir los costos de los encapsulados, los microcontroladores con este tipo de memoria se hicieron más baratos y cómodos para trabajar que sus equivalentes con memoria EPROM. Otra característica destacable de este tipo de microcontrolador es que fue en ellos donde comenzaron a utilizarse los sistemas de programación en el sistema que evitan tener que sacar el microcontrolador de la tarjeta que lo aloja para hacer actualizaciones al programa.

·Memoria flash.

En el campo de las memorias reprogramables para microcontroladores, son el último avance tecnológico en uso a gran escala, y han sustituido a los microcontroladores con memoria EEPROM.  las ventajas de las memorias flash se le adicionan su gran densidad respecto a sus predecesoras lo que permite incrementar la cantidad de memoria de programas a un costo muy bajo. Pueden además ser programadas con las mismas tensiones de alimentación del microcontrolador, el acceso en lectura y la velocidad de programación es superior.


características fundamentales de las memorias 

Volatilidad

Se dice que la información almacenada en una memoria es volátil siempre y cuando corra el riesgo de verse alterada en caso de que se produzca algún fallo de suministro de energía eléctrica (memorias biestables). No son volátiles aquellas en las cuales la información, independientemente de que exista algún fallo en el fluido eléctrico, permanece inalterada. Cualquier de éstas dos memorias (RAM ROM) es volátil por su incapacidad de permanecer inalterada de cara a cualquier fallo eléctrico que presente la misma. Por ésta simple razón específica, las memorias RAM son volátiles. De igual forma, las memorias ROM no son volátiles.

Tiempo de Acceso

Es el tiempo que transcurre desde el instante en que se lanza la operación de lectura en la memoria y el instante en que se dispone de la primera información buscada. En la memoria principal, este tiempo es, en principio, independiente de la dirección en la que se encuentre la información a la cual queremos acceder. Se puede ir un poco más al grano diciéndo que el tiempo de acceso es el tiempo requerido o necesitado para realizar cualquier operación, sea lectura o escritura. Es simplemente eso, el tiempo que se solicita a la memoria para poder ejecutar cualquier operación específica.

Capacidad

La capacidad de una memoria (RAM y ROM) es el número de posiciones de un sistema, o dicho de otra manera, número de informaciones que puede contener una memoria.La capacidad total de memoria será un dato esencial para calibrar la potencia de un computador. La capacidad de la memoria se mide en múltiplos de byte (8 bits): kilobytes (1.024 bytes) y megabytes (1.024 kilobytes).

Ejemplo


Si quisiéramos diseñar una memoria principal de 128 Kpalabras. (1)¿Cuántos chips de memoria de 32Kx8 necesitaremos Tema 4. La Memoria 30 (1)¿Cuántos chips de memoria de 32Kx8 necesitaremos si suponemos que la palabra es de 8 bits?. (2)¿Cuántos chips de memoria de 64Kx4 necesitaremos si suponemos que la palabra es de 8 bits?.
Solución:
 1. Necesitamos direccionar 128K a partir de 32K luego necesitaremos 4 chips. Como el tamaño de la palabra es igual al contenido de cada dirección del chip no Tema 4. La Memoria 31 necesitaremos más.
2. Para poder direccionar las 128K necesitaremos 2 chips. Con esos dos chips tenemos una memoria de 128Kx4 por lo que necesitaremos además otros 2 chips más para conseguir una memoria de 128Kx8.


FLIP-FLOP

Un flip flop es un circuito electrónico, llamado también simplemente biestable, que tiene dos estados estables. El flip flop es un elemento básico de memoria que es capaz de almacenar un número binario (bit), es decir, que permanece indefinidamente en uno de sus dos estados posibles aunque haya desaparecido la señal de excitación que provocó su transición al estado actual.

Dependiendo del tipo de dichas entradas los biestables se dividen en:
  • Asíncronos: sólo tienen entradas de control. El más empleado es el biestable RS.
  • Síncronos: además de las entradas de control posee una entrada de sincronismo o de reloj.
Si las entradas de control dependen de la de sincronismo se denominan síncronas y en caso contrario asíncronas. Por lo general, las entradas de control asíncronas prevalecen sobre las síncronas.
La entrada de sincronismo puede ser activada por nivel (alto o bajo) o por flanco (de subida o de bajada). Dentro de los biestables síncronos activados por nivel están los tipos RS y D, y dentro de los activos por flancos los tipos JK, T y D.

Los biestables síncronos activos por flanco (flip-flop) se crearon para eliminar las deficiencias de los latches (biestables asíncronos o sincronizados por nivel).

A continuación mostramos el código en arduino de un flip-flop


El monoestable

Es un circuito multivibrador que realiza una función secuencial consistente en que al recibir una excitación exterior, cambia de estado y se mantiene en él durante un periodo que viene determinado por una constante de tiempo. Transcurrido dicho período, la salida del monoestable vuelve a su estado original. Por tanto, tiene un estado estable (de aquí su nombre) y un estado casi estable.



En la Figura 1 se representa el esquema de un circuito multivibrador monoestable, realizado con componentes discretos, cuyo funcionamiento es el siguiente:

Al aplicar la tensión de alimentación (Vcc), los dos transistores iniciarán la conducción, ya que sus bases reciben un potencial positivo a través de las resistencias R-2 y R-3, pero como los transistores no serán exactamente idénticos, por el propio proceso de fabricación y el grado de impurezas del material semiconductor, uno conducirá antes o más rápido que el otro.
Supongamos que es TR-2 el que conduce primero.
El voltaje en su colector estará próximo a 0 voltios (salida Y a nivel bajo), por lo que la tensión aplicada a la base de TR-1 a través del divisor formado por R-3, R-5, será insuficiente para que conduzca TR-1.
En estas condiciones TR-1 permanecería bloqueado indefinidamente.
Pero si ahora aplicamos un impulso de disparo de nivel alto por la entrada T, el transistor TR-1 conducirá y su tensión de colector se hará próxima a 0 V, con lo que C-1, que estaba cargado a través de R-1 y la unión base-emisor de TR-2, se descargará a través de TR-1 y R-2 aplicando un potencial negativo a la base de TR-2 que lo llevará al corte (salida Y a nivel alto). En esta condición la tensión aplicada a la base de TR-1 es suficiente para mantenerlo en conducción aunque haya desaparecido el impulso de disparo en T.


 metaestabilidad 

es la propiedad que un sistema con varios estados de equilibrio, tiene de exhibir, durante un considerable período de tiempo, un estado de equilibrio débilmente estable. Sin embargo, bajo la acción de perturbaciones externas (a veces no fácilmente detectables) dichos sistemas exhiben una evolución temporal hacia un estado de equilibrio fuertemente estable. Normalmente la metaestabilidad es debida a transformaciones de estado lentas.

El estado metaestable 

aunque teóricamente puede mantenerse indefinidamente, siempre acabará resolviéndose en un valor lógico válido 0 o 1, aunque no es posible saber cuánto tiempo tardará. Un diseño cuidadoso del componente biestable asegurará que el tiempo medio de resolución sea lo suficientemente bajo como para evitar que pueda poner en peligro el funcionamiento correcto del circuito. Técnicas de diseño de más alto nivel, como el uso de circuitos sincronizadores consistentes en varios biestables en cascada (diseño síncrono), o de circuitos de handshake, dan mayor robustez al diseño frente al problema de la metaestabilidad, minimizando la probabilidad de que suceda hasta un nivel despreciable. Pese a todo, en circuitos digitales complejos de varios cientos de miles de puertas lógicas y varias señales de reloj asíncronas entre sí, como los presentes en todos los chips digitales que se fabrican en la actualidad, evitar los estados metaestables es un desafío que requiere gran cuidado por parte del diseñador.

Un sistema metaestable con un estado débilmente estable (1), un estado inestable de transición (2) y un estado fuertemente estable (3).

REGISTROS DE CORRIMIENTO

Un registro de corrimiento es un circuito secuencial síncrono capaz de contractar varios bits de información. El formato de esta información puede ser de dos tipos:

• Serie: los bits se transfieren uno a continuación del otro por una misma línea.
• Paralelo: se intercambian todos los bits al mismo tiempo, utilizando un número de líneas de transferencia igual al número de bits.

Contadores de registro de corrimiento

En los contadores de registro de corrimiento se utiliza retroalimentación, lo cual significa que la salida del último flip-flop del registro se conecta en retroceso con el primer flip-flop en alguna forma.
Contador de anillo

El contador de registro de corrimiento mas simple es un registro de corrimiento circulante conectado que el ultimo ff desplace su valor al primer ff. Los ff se conectan de modo que la información se corra de izquierda a derecha de Q-0 a Q-3. En muchos casos solo hay un 1 el registro y se hace que circule alrededor del registro en tanto se apliquen los pulsos del reloj. Por esta razón se le denomina contador de anillo.

Ejemplo:

Las formas de honda, la tabla de secuencia y el diagrama de estados muestran los diferentes estados de los ff a medida que se aplican los pulsos, suponiendo que el estado inicial es Q-3 = 1 y Q-2 = Q-1 = Q-0 = 0. Después del primer pulso, el 1 ha pasado de Q-3 a Q-2 de manera que el contador está en el estado 0100. El segundo pulso produce el estado 0010 y el tercero produce el estado 0001. En el cuarto pulso del reloj el estado 1 de Q-0 se transfiere a Q-3 lo que produce el estado 1000, que es desde luego, el estado inicial. Los pulsos subsiguientes ocasionan que se repita la secuencia.

Este contador funciona como un contador MOD-4 porque tiene cuatro estados distintos antas que se repita la secuencia.

En general, un contador de anillo necesita más ff que un contador binario para el mismo número MOD; por ejemplo, un contador de anillo MOD-8 requiere de 8 ff, en tanto que un contador binario MOD-8 solo necesita 3.

Contador Johnson

El contador de anillo básico se puede modificar ligeramente para producir otro tipo de contador de registro de corrimiento, que tendrá propiedades un tanto diferentes. El contador Johnson o de anillo trenzado se construye exactamente en la misma forma que un contador de anillo normal, excepto que la salida invertida del ultimo ff se conecta a la entrada del primer ff.
La operación del contador Johnson es fácil de analizar si comprendemos que en cada transición positiva del pulso del reloj el nivel en Q-2 se pasa a Q-1 el nivel en Q-1, se cambia a Q-0 y el inverso del nivel de Q-0 se pasa a Q-2. Utilizando estas ideas y suponiendo que todos los ff inicialmente están en 0, se puede generar las formas de onda, la tabla de secuencia y el diagrama de estados.

Las formas de onda y la tabla de secuencia revelan los siguientes puntos:

- Este contador tiene seis estados distintos: 000,100, 110, 111, 011 y 001 antes de que se repita la secuencia.
- La forma de onda de cada ff es cuadrada a un sexto de la frecuencia del reloj.



Contadores en registro de corrimiento en CI



Existen muy pocos contadores de anillo o Johnson disponibles como circuitos integrados. La razón es que es relativamente simple tomar un circuito integrado con registro de corrimiento y conectarlo a un contador de anillo o a un Johnson. Algunos de los contadores Johnson de CI CMOS, incluyen la circuitería completa de decodificación en la misma pastilla que el contador.


Contador de frecuencia

Un contador de frecuencia es un circuito que puede medir y exhibir de manera visual la frecuencia de una señal. Uno de los métodos más sencillos para construir un contador de frecuencia contiene un contador con su circuitería decodificadora y de exhibición asociados y una compuerta AND. Las estradas de las compuertas AND incluyen los pulsos cuya frecuencia es desconocida, f-x, y un pulso de MUESTREO que controla el tiempo disponible para que estos pasen a través de la compuerta AND hacia el contador.


Contador de frecuencias completo

El circuito contiene ahora un MV monoestable y un flip-flop J-K que opera en el modo de complemento, la compuerta AND tiene tres entradas, una de las cuales es la salida x del ff. Los pulsos de MUESTREO se conectan a la compuerta AND y también a la entrada CLK del ff.
Este contador de frecuencia entra en una secuencia repetitiva de borrado, conteo, fijación para la exhibición visual, borrado, conteo, y así sucesivamente.


Diferencias entre circuitos combinacionales y secuenciales

Los sistemas combinacionales están formados por un conjunto de compuertas interconectadas, cuya salida, en un momento dado, esta únicamente en función de la entrada, en ese mismo instante. Por esto se dice que los sistemas combinacionales no cuentan con memoria.
En cambio los sistemas secuenciales, son capaces de tener salidas no solo en función a través de sus estados internos. Esto se debe a que los sistemas secuenciales tienen memoria y son capaces de almacenar información a través de sus estados internos.
Un sistema combinacional puede tener n entradas y salidas m.
Un sistema secuencial puede ser visto como una caja negra, en cuyo interior hay compuertas lógicas, que presentan una ecuación de conmutación.
CIRCUITOS CONBINACIONALES: las salidas dependen únicamente de las entradas.
CIRCUITOS SECUENCIALES: las salidas dependen de las entradas y del tiempo.
Un circuito combinacional es un sistema que contiene operaciones booleanas básicas (AND, OR, NOT), algunas entradas y un juego de salidas, como cada salida corresponde a una función lógica individual, un circuito combinacional a menudo implementa varias funciones booleanas diferentes, es muy importante recordar éste hecho, cada salida representa una función booleana diferente.
Un ejemplo común de un circuito combinacional es el decodificador de siete segmentos, se trata de un circuito que acepta cuatro entradas y determina cuál de los siete segmentos se deben iluminar para representar la respectiva entrada, de acuerdo con lo dicho en el párrafo anterior, se deben implementar siete funciones de salida diferentes, una para cada segmento. Las cuatro entradas para cada una de éstas funciones booleanas son los cuatro bits de un número binario en el rango de 0 a 9. Sea Del bit de alto orden de éste número y A el bit de bajo orden, cada función lógica debe producir un uno (para el segmento encendido) para una entrada dada si tal segmento en particular debe ser iluminado, por ejemplo, el segmento e debe iluminarse para los valores 0000, 0010, 0110 y 1000.
En la siguiente tabla se puede ver qué segmentos deben iluminarse de acuerdo al valor de entrada, tenga en cuenta que sólo se están representando valores en el rango de 0 a 9, los decodificadores para las pantallas de siete segmentos comerciales tienen capacidad para desplegar valores adicionales que corresponden a las letras A a la F para representaciones hexadecimales, sin embargo la mecánica para iluminar los respectivos segmentos es similar a la aquí representada para los valores numéricos.
1
Los circuitos combinacionales son la base de muchos componentes en un sistema de cómputo básico, se puede construir circuitos para sumar, restar, comparar, multiplicar, dividir y muchas otras aplicaciones más.
Circuitos Secuenciales.
Un problema con la lógica secuencial es su falta de “memoria”. En teoría, todas las funciones de salida en un circuito combinacional dependen del estado actual de los valores de entrada, cualquier cambio en los valores de entrada se refleja (después de un intervalo de tiempo llamado retardo de propagación) en las salidas.
Desafortunadamente las computadoras requieren de la habilidad para “recordar” el resultado de cálculos pasados. Éste es el dominio de la lógica secuencial. Una celda de memoria es un circuito electrónico que recuerda un valor de entrada después que dicho valor ha desaparecido.
La unidad de memoria más básica es el flip-flop Set/Reset. Aunque recordar un bit sencillo es importante, la mayoría de los sistemas de cómputo requieren recordar un grupo de bits, esto se logra combinando varios flip-flop en paralelo, una conexión de éste tipo recibe el nombre de registro. A partir de aquí es posible implementar diferentes circuitos como registros de corrimiento y contadores, éstos últimos también los conocemos como circuitos de reloj. Con los elementos mencionados es posible construir un microprocesador completo.
La diferencia principal entre un circuito combinacional y un circuito secuencial es que en el segundo caso hay una realimentación de una señal de salida hacia la entrada