Exponsor

CURSO TÉCNICO INSTALADOR DE ENERGÍA SOLAR TÉRMICA

Visita el siguiente enlace: http://enersolartermica.blogspot.com.es/ ¡No pierdas esta magnifica oportunidad de poder formarte en esta profesión con gran demanda de empleo! Ahora por oferta de lanzamiento y por tiempo limitado puedes adquirir este curso por solo 9,95€, cuando su valor de mercado es de 49€.

jueves, 19 de marzo de 2009

MULTIVIBRADORES Y MEMORIAS. EL FLIP-FLOP (R-S). PARTE 2ª

Aunque mucho se ha escrito que la invención del microprocesador en un substrato semiconductor fue lo que posibilitó el abaratamiento y la accesibilidad de las computadoras para prácticamente cualquier persona alrededor del mundo, sin la invención de las memorias RAM hechas a base de semiconductores las computadoras hoy en día seguirían siendo un lujo accesible únicamente a grandes empresas e investigadores y personal académico universitario trabajando con un amplio subsidio gubernamental. Es importante señalar que fue la misma compañía, Intel, la que inventó las dos cosas, el microprocesador y la memoria RAM ambos implementados en la microelectrónica de los semiconductores. Y de allí en adelante el mundo no volvería a ser igual.

A Intel no le llevó mucho tiempo fabricar otro tipo de memoria RAM, la memoria RAM estática, usando un principio de operación diferente. En la siguiente fotografía tenemos la "pastilla semiconductora" (la cual cabe fácilmente en la yema de un dedo) de la memoria RAM estática C51C98-25, con una capacidad de almacenamiento de 16 mil palabras binarias de 4 bits cada una:





Al final del Suplemento # 1: Las familias lógicas se han incluído explicaciones más a fondo sobre cómo trabajan ambos tipos de memoria RAM, tanto la memoria RAM dinámica como la memoria RAM estática, de acuerdo con la tecnología de semiconductores con la cual son construídas en la actualidad.

Es importante hace notar que existe otra clase de memorias que nada tiene que ver con el flip-flop R-S. Un ejemplo típico es la Memoria de Lectura Unicamente (Read-Only Memory o ROM), en la cual la información ya está almacenada permanentemente y es imposible borrarla o modificarla, teniendo por lo tanto la ventaja de que retiene la información puesta en ella aún cuando el equipo en el que se encuentra es apagado. Esta es una memoria imprescindible en prácticamente todas las calculadoras electrónicas de bolsillo, los relojes digitales, las carátulas de los hornos de microondas, e inclusive en muchas computadoras de escritorio, porque es precisamente el tipo de memoria que contiene los programas (software) que permiten que estos artículos puedan trabajar apropiadamente al momento de ser encendidos. Aunque la memoria ROM tuvo sus inicios como un circuito integrado pequeño, cualquier tecnología que contenga información grabada que no puede ser alterada también puede ser considerada como una memoria ROM, lo cual permite clasificar a los discos CD de datos como memorias ROM. La enorme ventaja de las memorias ROM es que en virtud de que no pueden ser alteradas, son inmunes al ataque de algún virus elaborado por un hacker. En tiempos recientes, con el advenimiento de las memorias flash de bajo costo que son reprogramables, ha habido una tendencia a favorecer el uso en los nuevos diseños de las memorias flash sobre las memorias ROM. Desafortunadamente, justo por el hecho de ser reprogramables, esto las hace vulnerables a ataques cibernéticos como el ocasionado por el tristemente célebre virus informático Chernobyl, el cual al reprogramar el circuito integrado BIOS de las computadoras de escritorio (este circuito integrado está presente en todas las computadoras, el cual contiene los programas preliminares encargados de inicializar la máquina antes de que un sistema operativo como Windows o Linux tome el control de la computadora) echaba a perder el BIOS inutilizando con ello a la computadora, la cual tenía que ser desechada por completo al no haber forma de poder inicializarla (la razón principal dada por los fabricantes para substituír el BIOS basado en memorias ROM por memorias flash era para permitirle al usuario llevar a cabo actualizaciones para permitirle a su máquina la instalación y el manejo de equipos novedosos como los lectores de discos DVD que no existían cuando las máquinas salieron a la venta).

Históricamente hablando, al aparecer en el mercado las memorias ROM construídas a base de semiconductores hicieron su aparición poco después en 1956 las memorias ROM programables eléctricamente, conocidas como memorias PROM (Programmable Read-Only Memory). Estas memorias, las cuales en su interior tienen un arreglo rectangular de fusibles, antes de ser programadas tienen todas sus salidas puestas a un bit de "1" lógico. La programación de las memorias PROM se lleva a cabo quemando en forma selectiva los fusibles bajo el control de una computadora de escritorio conectada al "quemador", lo cual hace que la salida se ponga a "0" lógico en cada punto en donde se "quema" un fusible, razón por la cual estas memorias sólo pueden ser programadas en una sola ocasión. El siguiente diagrama esquemático nos muestra el aspecto funcional de una memoria PROM que puede almacenar tres palabras binarias formadas por tres bits cada una (los fusibles son las pequeñas líneas curvas en forma de "onda"):



(Por razones de simplicidad didáctica, no se han mostrado en este diagrama esquemático cada uno de los diodos conectados a los nueve puntos de cruce en donde se encuentran los fusibles, los cuales tienen como propósito impedir el flujo de la corriente eléctrica hacia las otras terminales actuando a la vez como los componentes de un decodificador disfrazado. En esencia, estos diodos tienen el efecto de implementar el equivalente de la función AND. Para mayores detalles, véase el Suplemento # 1: Las familias lógicas.)

En esta memoria PROM (y lo mismo puede decirse para todas las demás) sólo una de las líneas de domicilio (address) que en este caso son A0, A1, y A2 puede estar activada a la vez con un "1". En la memoria PROM tal y como está mostrada arriba, si la línea del domicilio A0 es activada con un "1", este "1" será puesto en las tres líneas de salida de datos (data) D2, D1 y D0 por estar intactos los tres fusibles. En otras palabras, bajo el domicilio A0 el dato encontrado será D2D1D0=111, puesto que ninguno de los fusibles ha sido "quemado". También en los dos domicilios restantes A1 y A2 los datos obtenidos serán D2D1D0=111 al tener intactos sus fusibles. ¿Y qué sucederá si en el proceso de programación ("quema") del PROM quemamos los tres fusibles que van conectados al renglón A0? En tal caso y en ese renglón la fuente de voltaje +V no podrá llegar por la ausencia de dichos fusibles a las líneas D2, D1 y D0, y la salida será D2D1D0=000. Este será el dato binario almacenado bajo el domicilio A0.

El siguiente esquemático nos muestra el diagrama funcional de otro PROM que aún no ha sido "programado", un PROM con capacidad para almacenar ocho palabras binarias, con cuatro bits de extensión cada una (precaución: cada uno de los AND mostrados no es un AND de una sola entrada sino un AND de tres entradas, del mismo modo que los OR mostrados son ORs de entradas múltiples y no de una sola entrada; la representación simbólica utilizada aquí se hizo con el propósito de evitar una "sobrepoblación" de líneas de conexión y así simplificar el diagrama; tampoco se muestran aquí los diodos que implementan las funciones AND y OR en cada uno de los puntos de cruce):




Podemos ver mejor lo que ocurre en este tipo de memoria suponiendo varios valores para el domicilio de entrada A2A1A0. Supóngase que A2A1A0=000. Entonces el AND de tres entradas puesto en el primer renglón y alimentado con A2A1 A0=111 será activado por la función decodificadora de los tres NOT cuyas tres salidas alimentan el AND que conduce hacia el primer renglón. Esto pondrá un "1" lógico en la línea del primer renglón, y como los fusibles están intactos por ser un PLA aún sin ser programado, la salida será S3S2S1S0=1111. Ahora supóngase que A2A1A0=001. Entonces el AND de tres entradas puesto en el segundo renglón y alimentado con A2A1A0=111 será activado por la función decodificadora de los tres NOT cuyas tres salidas alimentan el AND que conduce hacia el segundo renglón. Esto pondrá un "1" lógico en la línea del segundo renglón, y como los fusibles están intactos por ser un PROM aún sin ser programado, la salida será también S3S2S1S0=1111.

La programación de las PROM se lleva a cabo aplicando pulsos de voltajes elevados que no son encontrados durante la operación normal de las mismas, y aunque pueden ser programadas bit-por-bit normalmente son programadas con el "quemador de PROMs" conectado a una computadora de escritorio.

Funcionalmente hablando y como podemos comprobarlo arriba, la memoria PROM consiste en la utilización de una matriz (arreglo rectangular) fija, el equivalente de bloques de entrada AND que siempre produce una salida de "1" en una línea distinta para cada una de todas las combinaciones posibles de "unos" y "ceros" a la entrada (domicilio); seguida de otra matriz capaz de seleccionar una o varias de las líneas horizontales para combinar en suma Boleana todos los términos seleccionados de cada renglón.

La estructura operacional del PROM la podemos resumir en forma más concreta con el siguiente diagrama funcional de bloques:



Tiempo después, en 1971 hizo su aparición la memoria EPROM (Erasable Programmable Read-Only Memory), la cual a diferencia de las memorias PROM que no pueden ser programadas de nuevo tras la "quema" de sus fusibles internos, puede volverse a programar borrando por completo la información contenida. Para poder ser borrada con el fin de ser programada de nuevo, la memoria EPROM tiene que ser expuesta a una luz ultravioleta a través de la ventana transparente que la cubre en su circuito integrado, como la siguiente memoria EPROM 27C256 (equivalente a la memoria EPROM 27256) con capacidad de almacenamiento de 32K bytes:



A continuación tenemos el diagrama de la relación funcional de las terminales "pins" de este circuito integrado:



Para la programación de este circuito integrado, se va aplica en la terminal Vpp (terminal 1) un voltaje mayor del valor de operación normal. Una vez programada la información dentro de esta memoria EPROM, podemos localizar algún byte específico poniendo la combinación de "unos" y "ceros" del domicilio binario (address) bajo el cual se encuentra el byte que estamos buscando, identificado por las terminales de la 2 a la 10 y de la 23 a la 27. El byte almacenado es recuperado a través de las terminales de datos (data) en las terminales 11 a la 13 y de la 15 a la 19. A modo de ejemplo, en el siguiente domicilio:

A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0 = 11010011010001

podríamos localizar el siguiente byte:

D7D6D5D4D3D2D1D0 = 01101011

Para programar este tipo de memorias, utilizamos un "quemador" como el siguiente conectado a una computadora de escritorio:





Puesto que estos equipos no son baratos, teniendo precios que pueden llegar a los miles de dólares, una alternativa atractiva para escuelas técnicas y estudiantes de ingeniería puede ser la construcción o adquisición de "kits" de bajo costo, como el diseño económico del Doctor Glenn Pure descrito en el siguiente enlace:

http://www.siliconchip.com.au/cms/A_30475/article.html

y para el cual podemos obtener los programas ejecutables de software en el siguiente sub-enlace de su página casera:

http://glenn.pure.site.net.au/electron.htm

Otro ejemplo típico de este tipo de memorias es el Arreglo Lógico Programable (Programmable Logic Array ó PLA) que una vez programado ya no se puede "desprogramar" en virtud de que su programación se lleva a cabo "soldando" con antifusibles (los cuales tienen una acción contraria a los fusibles en el sentido de que al "quemarse" no se abren sino que se funden estableciendo un contacto eléctrico) los puntos seleccionados (hay también memorias PLA equipadas con "fusibles" convencionales como los que usan las memorias PROM). La principal diferencia entre el Arreglo Lógico Programable y las memorias PROM que vimos arriba es que podemos programar no sólo las líneas de salida sino también las líneas de entrada al PLA. Para poder apreciar esto mejor, a continuación se presenta primero un esquema simplificado de un PLA sin programar:



seguido por el mismo PLA ya programado:



Podemos ver cómo partiendo de las entradas a, b, c y d del PROM así como de los complementos a', b', c' y d' de las entradas se seleccionaron ciertos puntos (nueve en total) de la matriz de entradas en el plano AND para ser "fusionados" (soldados, estableciéndose una conexión eléctrica) y así tener disponibles en los renglones de la matriz de la izquierda (la matriz de salida en el plano OR) los términos ab, b'c'd', bc' y c'd'. En el plano OR dos salidas (columnas) y1 y y2 fueron seleccionadas para tener en dichas salidas los términos:

y1 = ab + b'c'd'

y2 = ab +bc' + cd'

El diagrama de este ejemplo muestra claramente que no sólo las salidas pueden ser seleccionadas y "fusionadas" (programadas) a voluntad, sino también las entradas. Obsérvese la rica variedad de posibilidades que un PLA nos ofrece sobre un PROM.

Como esto puede parecer más complicado de lo que realmente es, veremos a continuación un segundo ejemplo de otro PLA, ya "programado":



En este segundo ejemplo estamos obteniendo de la matriz de ANDs todas las cuatro combinaciones posibles para los términos de entrada: A·B, A·B, AB y AB. Y con la matriz de ORs estamos seleccionando dos salidas con distintas combinaciones de dichos términos: A·B+AB y A·B+ AB.

Resumiendo, el PLA normalmente sería idéntico en su funcionamiento a un PROM, excepto que las conexiones de entrada ligadas a los AND también son seleccionables y programables mediante la "fusión" con antifusibles de los puntos seleccionados. Esta estructura operacional del PLA la podemos resumir en forma más concreta con el siguiente diagrama funcional de bloques:





En virtud de que en el PLA ambas matrices, tanto la de compuertas AND como la de compuertas OR (implementadas con diodos en cada punto de cruce, los cuales no se han mostrado para mantener la simplicidad de los diagramas), son programables, esto nos habilita para incrementar el número de entradas disponibles sin necesidad de tener que aumentar el tamaño de la matriz, y nos permite "diseñar" a nuestro antojo un bloque combinatorio de entradas múltiples y salidas múltiples con una gran variedad de combinaciones posibles. Esta estructura permite una mejor utilización de los recursos disponibles en el circuito integrado, de tal forma que se requiere un mínimo numero de términos necesarios para generar una función lógica .

En la sección de problemas resueltos correspondiente a este capítulo se pueden encontrar ejemplos que muestran específicamente la presencia de los diodos que permiten implementar tanto la función AND como la función OR en cada matriz.

El flip-flop R-S, el elemento de memoria fundamental construído con funciones lógicas básicas, es también conocido como un multivibrador biestable por tener dos estados estables (Q=0 y Q=1).

También es posible tener un multivibrador monoestable; esto es, con un estado estable y un estado inestable. Este tipo de multivibrador es también conocido en la literatura técnica de habla inglesa como one-shot (un "disparo", posiblemente en alusión a la acción que se lleva a cabo cuando se jala el gatillo de una pistola).

Igualmente posible es la existencia de un multivibrador astable, esto es, con dos estados inestables (Q=0 y Q=1), lo cual implica que actuará como un oscilador.

A continuación se muestra un diagrama de tiempos que ejemplifica el comportamiento de los tres tipos de multivibradores:





En el diagrama superior correspondiente al inciso (a) que muestra el comportamiento de un multivibrador astable (astable multivibrator) se puede ver que este tipo de multivibrador no precisa de ninguna señal a su entrada (input), y de hecho este tipo de circuito no tiene terminal de entrada alguna. Su salida estará oscilando todo el tiempo entre el nivel de voltaje positivo (+Vout) y el nivel de voltaje negativo (-Vout) produciendo una forma de onda cuadrada. (Podemos tomar +Vout como un "1" lógico y -Vout como un "0" lógico.)

En el diagrama intermedio correspondiente al inciso (b) que muestra el comportamiento de un multivibrador monoestable (monostable multivibrator) se puede ver que la acción de "disparo" a la salida es iniciada por un brevísimo pulso de voltaje aplicado a la entrada en un tiempo t1. Inmediatamente, a la salida, el voltaje cambia de polaridad por un período prefijado de tiempo, después de lo cual la salida regresa a su valor original de voltaje. Este tipo de circuito tiene una sola terminal de entrada, la terminal de "gatillo" (trigger) que se usa para "disparar" la acción del circuito.

Y por último, en el diagrama final correspondiente al inciso (c) que muestra el comportamiento de un multivibrador biestable (bistable multivibrator) se puede ver que el circuito tiene dos estados estables. Para hacerlo cambiar de estado, aplicamos un pulso brevísimo de voltaje a una de las dos entradas (la cual podemos suponer como la entrada S de un flip-flop R-S) en un tiempo t1, con lo cual el circuito permanecerá en dicho estado por tiempo indefinido (segundos, minutos, horas, días, meses, años). Si queremos que el circuito regrese a su estado anterior, tenemos que aplicar un pulso brevísimo de voltaje en la otra terminal de entrada (la cual podemos suponer como la entrada R de un flip-flop R-S) en un tiempo t2, con lo cual el circuito volverá a su estado anterior, permaneciendo en dicho estado por tiempo indefinido hasta que no se aplique nuevamente un pulso en la terminal de entrada correspondiente para llevar a cabo tal acción.

Si lo deseamos, podemos construír con relativa facilidad cualquiera de los tres tipos de multivibradores con componentes que podemos obtener comercialmente en el mercado. Por ejemplo, si queremos construír un multivibrador monoestable, lo podemos hacer con el circuito integrado 74121 cuyo diagrama funcional interno es el siguiente:





Para construír el multivibrador monoestable, necesitamos proveerle al circuito integrado unos componentes adicionales, tales como la resistencia R y el capacitor C cuya constante de tiempo RC fijará la duración del pulso de salida. El diagrama completo de un monoestable tal es el siguiente:



En este caso, la resistencia R tiene un valor de 10K (10 mil ohms) y el condensador tiene un valor de 2 uf (2 microfarads), lo cual le fijará al pulso de salida una duración de 0.066 segundos con un comportamiento mostrado por el siguiente diagrama de tiempos.



Además del circuito integrado 74121, podemos utilizar otro circuito integrado extremadamente versátil, el cual pese a que tiene ya varias décadas de haber sido introducido, sigue resonando aún por su enorme flexibilidad y bajo costo, el timer 555.