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€.

miércoles, 1 de abril de 2009

OTRAS APLICACIONES DE LA LÓGICA DIGITAL EN LA ELECTRÓNICA MODERNA ( II ).

Si queremos aligerar nuestra carga de trabajo en el diseño de un circuito que tenga no sólo la capacidad para poder detectar errores sino también para corregirlos, en tal caso podemos recurrir a un circuito integrado como el 74LS636 que recurre a la paridad para la corrección de errores relacionados con los circuitos integrados usados en la memoria RAM de las computadoras caseras:



Este circuito integrado trabaja almacenando cinco bits de paridad con cada byte de datos, los cuales pueden ser puestos y sacados del circuito integrado a través de las terminales de data byte DB0 a la DB7. Los cinco bits de chequeo de paridad están puestos en las terminales de check bit CB0 a la CB4. El circuito integrado incorpora dos terminales de control (S0 y S1) y dos salidas para notificar la presencia de un error (en la terminal Single Error Flag o SEF) o de dos errores (en la terminal Double Error Flag o DEF).

Además del método Hamming, existen otras técnicas para la detección y corrección de errores, tales como el código BCH, el código Reed-Solomon, el código Reed-Muller, el uso de los algoritmos de "picadillo" hash, y muchas otras, cada una con sus propias ventajas y desventajas.

En torno a todo esto, existe un teorema muy importante, conocido como el teorema fundamental de la teoría de la informática y también como el teorema de Shannon (en honor a su descubridor Claude Shannon, el mismo que descubrió la relación entre el álgebra Boleana y el comportamiento de los circuitos digitales electrónicos) que nos dice que es posible enviar información digital de un punto a otro prácticamente libre de errores hasta cierto límite máximo a través de un canal de comunicación sin importar qué tan contamido pueda estar el canal con ruido circundante. Para quienes deseen tener una alguna idea así sea remota sobre los procedimientos matemáticos involucrados en la demostración de este teorema, se les recomienda consultar la Wikipedia bajo el encabezado "Noisy-channel coding theorem", accesible en el siguiente domicilio:

http://en.wikipedia.org/wiki/Shannon%27s_theorem

Una de las consecuencias directas de este teorema es el teorema de Shannon-Hartley que nos dice que la capacidad de un canal de comunicaciones cualquiera (con esto nos estamos refiriendo al límite teórico máximo de la rapidez de datos digitales "limpios" que pueden ser enviados por dicho canal) con una señal con una potencia promedio S viajando a través de un canal de comunicaciones analógico (como lo es el caso del cable telefónico o el cable coaxial), sujeto a la adición de un ruido "blanco" Gaussiano de potencia N está dada por la fórmula:

C = Blog2(1 + S/N)

en donde:
C es la capacidad del canal en bits por segundo.
B es el "ancho de banda" (bandwith del canal en ciclos por segundo (Hertz).
S es la potencia total de la señal a lo largo del ancho de banda, medida en watts.
N es la potencia total del ruido a lo largo del ancho de banda, medida en watts.
S/N es la razón de la potencia de la señal a la potencia del ruido (Signal to Noise Ratio ó SNR) expresada como un número directo (no en decibeles).
Obsérvese que en esta fórmula aparece el logaritmo en sistema binario o sistema base-2, lo cual podrá parecer novedoso para muchos acostumbrados al uso de los logaritmos decimales (logaritmos base-10) o a los logaritmos naturales cuya base es el número e, y ciertamente desconcertante porque las calculadoras científicas de bolsillo no manejan esta clase de logaritmos. Hay que enfatizar que la aparición del logaritmo base-2 es una consecuencia directa de los pasos requeridos para la demostración del teorema, y de hecho aparece también en muchas otras fórmulas que tienen que ver con el diseño de sistemas digitales. De cualquiera manera, para poder obtener el logaritmo de un número en la base 2 no es necesario adquirir una calculadora especial, todo lo que hay que hacer es recordar que el logaritmo de un número en cierta base n es el exponente al cual hay que elevar la base para obtener el número dado. Esto significa que si x es el logaritmo de un número n en la base 2, entonces :

2x=n

Tomando logaritmos decimales en ambos lados:

log(2x) = log(n)

y usando las propiedades de los logaritmos:

xlog(2) = log(n)

x = log(n)/log(2)

Entonces, dado un número n cualquiera, podemos obtener su logaritmo en sistema base 2 con el simple hecho de tomar el logaritmo decimal del número y divirlo entre el logaritmo decimal de 2. De cualquier modo, existen disponibles en Internet calculadoras que pueden calcular el logaritmo de un número en cualquier base, como:

http://www.1728.com/logrithm.htm

Las implicaciones de la fórmula fundamental del teorema Shannon-Hartley las podemos ver con dos ejemplos.

El primer ejemplo es aplicable a una línea de comunicaciones telefónicas, en donde la razón S/N es típicamente por lo menos de unos 20 decibeles (con esto queremos decir que la potencia de la señal es unas 100 veces mayor que la potencia del ruido eléctrico circundante) y en donde el ancho de banda que va desde los 33 ciclos por segundos hasta los 3,300 ciclos por segundo (desde los sonidos más bajos o graves hasta los sonidos más agudos que se pueden enviar por la línea telefónica) es de 3000 ciclos por segundo. La aplicación de la fórmula nos dá en este caso:

C = (3000)log2(1 + 100)

C = (3000)log2(101)

C = (3000)(6.658)

C = 19,973 bits/segundo

En el segundo ejemplo, queremos transmitir una señal por un canal a una rapidez de 50 mil bits por segundo, con un ancho de banda de 1 Megahertz (un millón de ciclos por segundo). En tal caso,de la fórmula:

C = Blog2(1 + S/N)

llevamos a cabo un despeje para obtener S/N:

log2(1 + S/N) = C/B

Usando la definición de logaritmo para una base dada que en este caso es 2:

S/N + 1 = 2C/B

S/N = 2C/B - 1

S/N = 2(50,000/1,000,000) - 1

S/N = 0.035 ó -14.5 decibeles

Este segundo ejemplo demuestra que es posible transmitir señales digitales que inclusive son mucho más débiles que el ruido eléctrico circundante, y aún así poder recuperar la señal inmersa entre tanto ruido, lo cual tal vez puede parecer sorprendente a muchos.

En capítulos anteriores, hablamos sobre cómo la respuesta de cualquier función lógica implementada con componentes reales no es instantánea, siempre hay un retardo de propagación introducido por todo componente lógico, como lo ilustran los siguientes dibujos en los cuales el pulso inferior que es aplicado a un flip-flop R-S produce una respuesta en su salida ilustrada en la parte superior que no ocurre instantáneamente:



Además de este retardo de tiempo inherente a toda función lógica, obra el hecho de que un pulso aplicado a un circuito no sube instantáneamente de "0" a "1", siempre hay un retardo conocido en la literatura técnica como el tiempo de ascenso (rise time), del mismo modo que cuando el pulso cae de "1" a "0" tampoco lo hace instantáneamente, siempre hay un retardo de tiempo conocido en este caso como tiempo de caída (fall time). Debemos formalizar de manera más precisa lo que queremos decir con estos dos términos. Por convención, el tiempo de ascenso se define como el tiempo que tarda una señal en ascender del 10 por ciento del valor del voltaje de la fuente de poder al 90 por ciento de dicho valor. Esto está mejor esquematizado en el siguiente diagrama:




Estos diagramas muestran la aplicación de un pulso de entrada a un NAND conectado para que funcione como un simple inversor lógico, en donde en el diagrama superior muestra un pulso de entrada Vi ascendiendo de un nivel de "0" (voltage input low ó Vil) a un nivel de "1" (voltage input high ó Vih), produciendo una respuesta retardada en la salida Vo cuando dicha respuesta retardada cae de un nivel de "1" (voltage output high ó Voh) a un nivel de "0" (voltage output low ó Vol). En el diagrama mostrado, el tiempo de caída thl (fall time high to low) indica el lapso de tiempo que transcurre cuando la señal cae del 90 por ciento del valor de Voh al 10 por ciento del valor de Voh. Estos retardos de tiempo detallados en las especificaciones técnicas son precisamente lo que determinará la velocidad máxima con la cual pueda trabajar cualquier sistema digital, y es una de las primeras cosas que consultará un diseñista que esté trabajando en proyectos de vanguardia.

También en los capítulos anteriores, trabajamos sobre el supuesto de que podíamos conectar un número indefinido de elementos a la salida de una función lógica cualquiera. En la práctica, desafortunadamente, esto no es así. Todo componente lógico tiene un límite máximo de unidades que puede alimentar, que se pueden conectar a su salida, el cual dependerá del tipo de componente utilizado y de la cantidad de las funciones lógicas que dicho componente está alimentando. Para determinar el límite máximo de unidades que pueden ser alimentadas por una función lógica, es común usar el concepto de factores de carga.

Dependiendo de la tecnología usada, todo elemento lógico trae en su lista de especificaciones un factor de carga de entrada (también conocido en la literatura técnica como fan-in) que es igual al número mínimo de unidades de carga que requiere la entrada del mismo para poder trabajar adecuadamente, y un factor de carga de salida (también conocido como fan-out) que es igual al número máximo de unidades de carga que puede proporcionar su salida para alimentar otros elementos.

Si el elemento tiene varias entradas, cada entrada estará especificada con un factor de carga de entrada.

Supóngase, por ejemplo, que una función NOR tiene un factor de carga de salida (fan-out) de 6 y que ésta va a alimentar varias funciones NOT con un factor de carga de entrada (fan-in) de 1 cada una. Vemos entonces que el NOR podrá alimentar hasta 6 funciones NOT. Si el factor de carga de entrada (fan-in) de cada NOT hubiese sido 2, el NOR habría podido alimentar únicamente hasta tres funciones NOT. Si queremos conectar más funciones NOT a la salida del NOR, tenemos que amplificar la salida del mismo de alguna manera.

Para lograr dicho propósito, utilizamos un elemento ampliamente conocido como el buffer, el cual se representa de la siguiente manera:



Obsérvese que por su representación el buffer nos indica que no puede llevar a cabo ningún procesamiento de información. En efecto, su única función es amplificar las señales a su entrada.

Supóngase que tenemos un buffer con un factor de carga de entrada (fan-in) de 1 y un factor de carga de salida (fan-out) de 8. Podemos conectar entonces hasta seis buffers de este tipo a la salida de la función NOR discutida previamente. Puesto que cada uno de los seis buffers tiene un factor de carga de salida (fan-out) de 8, tendremos un total de (6)(8) = 48 factores de carga de salida (fan-out) a la salida del NOR. De esta manera, la función NOR podrá alimentar por sí sola hasta 48 de las funciones NOT discutidas anteriormente.

Además de los componentes básicos que ya hemos estudiado tales como las tres funciones lógicas básicas AND, OR y NOT, los multiplexers, los flip-flops R-S y otros componentes, existen bloques adicionales que son necesarios para poder construír un sistema digital completo. Uno de ellos es el bloque tri-state, el cual simplemente deja pasar un "0" a su entrada inalterado como un "0" a su salida y un "1" a su entrada como un "1" a su salida, pero que además de estos dos estados posibles cuenta con un tercer estado (de allí su designación como tres-estados o tri-state) en el cual la salida es esencialmente "desconectada" por completo de la entrada, o usando terminología un poco más técnica, la salida es aislada eléctricamente de la entrada. Podemos representar simbólicamente la acción de la lógica de tres-estados de la siguiente manera:





Este componente siempre tiene tres terminales, una terminal de Entrada, una terminal de Salida, y una tercera terminal designada en la figura como Habilitar en la cual, dependiendo de que se activada o desactivada con un "1" o con un "0" lógico, cierra los interruptores habilitando la conexión eléctrica entre la entrada y la salida o desconecta eléctricamente la salida de la entrada. La enorme versatilidad de este componente permite que esté disponible comercialmente en circuitos integrados como el 74125:



La burbuja inversora en las terminales de "habilitar" (enable) de cada una de las cuatro compuertas disponibles en este circuito integrado indica que con un "0" (puesto por ejemplo en la terminal 13) entonces la salida (disponible en la terminal 11) estará "activada" conectada eléctricamente a la terminal respectiva de entrada (terminal 12), mientras que con un "1" se "romperá" la conexión eléctrica. En los circuitos integrados como el 74126 (similar al 74125 excepto que en los diagramas esquemáticos del mismo no aparece dicha burbuja), entonces la "desconexión" eléctrica se lleva a cabo aplicando un "0" en la terminal de "habilitar", y la "conexión" entre la entrada y la salida se lleva a cabo aplicando un "1" en la terminal de "habilitar".

Otro componente ampliamente utilizado en la construcción de sistemas con circuitos lógicos es el interruptor bilateral (bilateral switch), cuya acción se puede simbolizar de la siguiente manera:





Como puede verse en el símbolo del interruptor bilateral, este componente posee una característica extraordinariamente interesante que lo hace sumamente útil. Puede canalizar una señal en ambas direcciones, tanto de izquierda a derecha como de derecha a izquierda. Aplicando una señal en la terminal de la derecha que actuará como terminal de entrada In, si la terminal de Control está habilitada con un "1" lógico entonces la terminal de la derecha que estará actuando como terminal de salida Out será conectada a la terminal de la izquierda permitiendo el paso de la señal que está siendo puesta en la terminal de la derecha. Pero si la señal es aplicada en la terminal de la izquierda, entonces será canalizada hacia la terminal de la derecha, siempre y cuando la terminal de Control esté habilitada con un "1". Y si la terminal de Control es inhabilitada con un "0", entonces la terminal de salida quedará desconectada eléctricamente por completo de la terminal de entrada. En efecto, el switch bilateral es un interruptor eléctrico como el que se utiliza para encender las lámparas de la sala, excepto que es un interruptor eléctrico implementado con semiconductores de estado sólido. Otra enorme ventaja del interruptor bilateral es que al establecer una conexión para el paso de señales eléctricas el valor de dichas señales no está limitado a los valores extremos de voltaje que representan el "0" y el "1" lógico en un sistema, sino que puede pasar cualquier valor intermedio entre dichos voltajes. En efecto, el interruptor bilateral permite no sólo el paso de señales digitales sino también el paso de señales analógicas tales como una señal de audio o de video. La enorme utilidad de un componente de este tipo hace que se venda comercialmente listo para ser utilizado en un algún diseño recurriendo a circuitos integrados tales como el 4066 construído con tecnología CMOS:






Obsérvese que un interruptor bilateral puede ser utilizado como un componente tri-state, pero un componente tri-state no puede ser utilizado como un interruptor bilateral en virtud de que en el componente tri-state la información sólo puede fluír en una dirección y no en ambas.

Hasta aquí hemos supuesto que la aplicación de un voltaje a la entrada de una función lógica básica puede ser tomado como "1" mientras que la ausencia de dicho voltaje puede ser tomada como un "0", sin hacer distinción sobre si la ausencia de dicho voltaje se puede deber a que la terminal de entrada está conectada al polo negativo de la fuente de poder (denominado "tierra" eléctrica) o si simplemente está desconectada por completo del resto del circuito, esto es, sin estar conectada ni al polo positivo ni al polo negativo de la fuente de poder. Sin embargo, esta desconexión total es lo que llamamos una terminal flotante, y aunque no proporciona voltaje alguno de referencia al componente lógico, el hecho de estar flotando la hace susceptible de recibir señales momentáneas de "ruido eléctrico" al estar actuando esa terminal sin conexión como una pequeña antena de radio, señales de ruido que pueden introducirse en el componente lógico y ser amplificadas por el mismo, produciendo efectos sumamente indeseables en el procesamiento de la información digital que debe llevar a cabo el componente. Generalmente hablando, es muy mala práctica de diseño dejar terminales de entrada flotando sin estar conectadas ni a un "0" ni a un "1" lógico. En el siguiente diagrama tenemos un ejemplo de uno de los inversores lógicos NOT disponibles en el circuito integrado 74HC04 (equivalente funcionalmente al 7404), cuya entrada tiene un "0" cuando el interruptor S1 es cerrado, pero cuya entrada queda flotando cuando el interruptor es abierto:





Este sería el caso típico de un mal diseño por el hecho de que al abrir el interruptor S1 no se está desconectando la terminal de entrada del "0" lógico para enviarla al "1" lógico sino que se le está dejando en un estado indefinido, en un estado flotante. Y el siguiente diseño es un diseño peor aún porque si bien al estar abierto el interruptor S1 la entrada del NOT es definitivamente un "1", al ser cerrado el interruptor la entrada no es enviada al "0" lógico por la conexión a tierra que es proporcionada por el interruptor, sino que se crea directamente un corto circuito eléctrico entre la fuente de poder Vcc y la tierra eléctrica de un modo tal que se podría destruír al sistema:





Si el diseño digital que estamos llevando a cabo es de naturaleza tal que tenemos que conectar a la entrada de uno o varios de los componentes lógicos uno o varios interruptores eléctricos (un caso típico sería el interruptor de RESET como el que tienen algunas computadoras como "botón de pánico" para inicializar de nuevo la computadora desde el principio cuando ésta se ha quedado atorada dentro de algún programa software mal elaborado), entonces para evitar el tener que dejar alguna terminal flotante podemos recurrir a una táctica conocida como el uso de las resistencias pull-up. A continuación tenemos un ejemplo sobre cómo se aplica este tipo de diseño en la práctica:





En este caso, cuando el interruptor S1 se encuentra abierto la entrada en la terminal # 1 del NOT inversor está siendo alimentada a través de la resistencia R1 con el voltaje Vcc, o sea con un "1" lógico, el cual al ser invertido sale como un "0" lógico en la terminal # 2. Al cerrarse el interruptor S1, la entrada del NOT inversor es "aterrizada" a "tierra", lo cual le pone un "0" que sale en la terminal # 2 como un "1", el cual a su vez puede ser la señal lógica de RESET al sistema para que se apague y se encienda de nuevo comenzando desde el principio. El valor de la resistencia R1 generalmente se selecciona entre los 10K (10 mil ohms) y los 47K (47 mil ohms), de modo tal que su consumo de corriente de la fuente de poder no sea oneroso. Siempre que veamos en un diagrama esquemático este tipo de resistencias a la entrada de un circuito lógico sabemos que su propósito es actuar como resistencias de pull-up.

Una variante al diseño que emplea resistencias pull-up es el diseño que emplea resistencias pull-down. El anterior circuito, implementado con una resistencia pull-down, se muestra a continuación:





En este caso, la resistencia R1 es colocada entre la terminal de entrada del inversor NOT y la "tierra" eléctrica. Cuando el interruptor S1 se encuentra abierto, la entrada en la terminal # 1 del NOT inversor está siendo conectada a la "tierra" eléctrica, o sea a un "0" lógico, el cual al ser invertido sale como un "1" lógico en la terminal # 2. Al cerrarse el interruptor S1, la entrada del NOT inversor es alimentada a través de la resistencia R1 con el voltaje Vcc, o sea con un "1" lógico, el cual al ser invertido sale como un "0" lógico en la terminal # 2. Obsérvese que la acción lógica de un diseño con una resistencia pull-down es inversa a la de un diseño con una resistencia pull-up.

En los diseños que acabamos de ver, la única ocasión en la cual el interruptor S1 puede quedar en un estado indefinido es en el momento justo en el que se está cerrando el contacto eléctrico, o en el momento justo en el que se está abriendo el contacto. Es precisamente en este intervalo brevísimo de tiempo en el cual se puede generar una cantidad enorme de ruido que puede ser malinterpretada y mal procesada por un circuito lógico. Con el objeto de "limpiar" la señal de entrada por completo de modo tal que a la salida tengamos definitivamente un "0" o un "1" podemos refinar aún más nuestro diseño añadiendo un flip-flop R-S, teniendo así lo que comúnmente se conoce en la literatura técnica como eliminador de rebotes (debouncer):





Para ver la forma en la cual trabaja este diseño cuyas entradas normalmente están conectadas a la fuente de poder de +5 volts mediante resistencias pull-up, remitámonos al diagrama de tiempos en el cual la entrada A de este flip-flop R-S construído con bloques NAND es un "1" lógico mientras que la entrada B tiene puesto un "0" lógico, lo cual supone que el interruptor está movido hacia su posición inferior. El interruptor utilizado en estos casos es generalmente del tipo que se vende en las ferreterías como un interruptor eléctrico de "dos polos - un tiro" o DPST (Double Pole Single Throw). Aquí suponemos que la salida Q del flip-flop es un "0" lógico.

Estando el flip-flop R-S en el estado Q=0, si ponemos un "1" en la entrada B el flip-flop por su forma de operar simplemente retendrá su estado anterior, o sea se mantendrá en Q=0. Obsérvese cómo al subir la entrada B de "0" a "1" aparece en ella el inevitable ruido mientras el contacto eléctrico termina por asentarse. Tras esto, con la terminal B puesta en "1", al bajar la entrada A de "1" a "0" la salida Q pasa limpiamente del estado Q=0 al estado Q=1. Los pulsos de ruido son ignorados por completo, porque para que pudieran tener algún efecto sobre la salida Q la terminal A tendría que estar puesta a "0". La acción final resultante es que tenemos un circuito sin terminales flotantes a la entrada en el cual la presencia del ruido eléctrico al abrir o cerrar el interruptor ha sido eliminada por completo.

Una forma en la cual podemos introducir información a un equipo o sistema que trabaje con lógica digital es por medio de una cinta ya sea de tipo magnético o físicamente perforada de acuerdo con algún código alfanumérico previamente convenido. Un agujero en la cinta representa un 1 y la ausencia del mismo representa un 0.

Para ciertas aplicaciones, existen otros elementos que se usan conjuntamente con funciones lógicas; tales como el amplificador operacional, el comparador de voltaje, el conversor A/D que convierte una señal de voltaje analógica (esto es, una señal que varía en forma continua con una cantidad infinita de valores intermedios) en una señal digital y el conversor D/A cuya función es opuesta a la del conversor A/D.

Sobre esto último, el conversor A/D es prácticamente una necesidad para poder llevar a cabo la digitalización de cualquier señal proveniente del mundo real, convirtiéndola al formato binario de "unos" y "ceros" que los circuitos lógicos son capaces de entender. Así, para que un artista pueda grabar sus canciones y distribuírlas en un disco CD, es necesario convertir sus interpretaciones al formato binario conforme va interpretando sus obras ante un micrófono, y este trabajo lo lleva a cabo la tarjeta de sonido (como las tarjetas de sonido fabricadas por la empresa Sound Blaster) a la cual va conectada el micrófono:





Para poder llevar a cabo el proceso de conversión de una señal analógica a su forma digitalizada, podemos utilizar un conversor A/D de alta calidad como el conversor Burr-Brown PCM1802 (el cual puede digitalizar una señal con 24 bits de precisión), o si estamos trabajando bajo un presupuesto limitado o diseñando un circuito de bajo costo para producir muchas unidades en serie para el mercado consumidor, podemos recurrir a un circuito integrado económico como el ADC0804 fabricado por la empresa National Semiconductor (el cual tiene una más modesta capacidad de digitalización limitada a 8 bits), y cuya relación de terminales "pins" es la siguiente:



Para poder digitalizar una señal analógica continua, es necesario llevar a cabo un muestreo (sampling) de la señal analógica de una manera como se muestra a continuación (la señal analógica que está siendo muestreada es mostrada en color azul):



Aquí resulta más que obvio que entre cada muestreo la porción de la señal situada entre una toma de muestra y la toma de la muestra que le sigue se perderá irremisiblemente. La pérdida de información en el procedimiento de conversión a la forma digitalizada es un hecho ineludible. Lo único que podemos hacer para minimizar la pérdida de información es aumentar la frecuencia de los muestreos, aunque en la práctica hay límites para ello por cuestiones de costo. Cada muestra de la señal será convertida directamente a un formato binario dependiendo de la "altura" (el nivel de voltaje) de la señal en una manera como se muestra en la siguiente figura:



En este caso, la primera muestra tendrá un nivel de voltaje que pudiera ser algo como +0.5 volts equivalente en nuestro diagrama a un número 5 en su formato binario (00000101), la segunda muestra también tendrá un nivel de voltaje de +0.5 volts, pese a que la señal analógica tiene un voltaje un poquito mayor al que tenía al ser tomada la primera muestra. La tercera muestra tendrá un nivel de voltaje de +0.7 volts equivalente a un número 7 en su formato binario (00000111) mientras que la cuarta muestra tendrá un nivel de voltaje de +1.2 volts equivalente al número 12 en su formato binario (00001100), y así sucesivamente. De este modo, el conversor A/D habrá enviado al procesador digital la siguiente secuencia de números binarios:

00000101
00000101
00000111
00001100
:
:
:
:

De este modo, conforme se va llevando a cabo el proceso de digitalización de la señal analógica, para una señal de entrada continua el conversor A/D estará enviando un torrente constante de palabras binarias (en la siguiente figura suponemos un proceso de conversión A/D de cuatro bits):





La ventaja de utilizar un circuito integrado como el ADC0804 ya mencionado es que hace todo el trabajo por nosotros. Para energizar el circuito, le aplicamos el polo positivo del voltaje de la fuente de poder al "pin" 20 que corresponde a la terminal Vcc y el polo negativo o "tierra" a los pins 8 (que corresponde a la terminal A GND) y 10 (B GND). El voltaje analógico a ser convertido que llega del exterior se le aplica al pin 6 que corresponde a la terminal de entrada (Vin+), y el equivalente binario del voltaje puesto en la entrada estará disponible desde los pins 11 (D7) al 18 (D0). La terminal 1 encargada de la función Chip Select (CS) que habilita al circuito debe ser conectada a "tierra" (a un "0" lógico) para que el circuito integrado esté habilitado todo el tiempo. La notación inversora lógica puesta encima del símbolo CS indica que la función es activada con un "0" y es desactivada con un "1", razón por la cual para habilitar al circuito integrado tenemos que ponerle un "0" y no un "1" en esta terminal de entrada. (Si se quiere utilizar más de un conversor ADC0804 en un diseño, se puede utilizar esta terminal para controlar cuál de ellos estará habilitado en un momento dado.) La terminal 7 (Vin-) es conectada a tierra. El ADC0804 incluye un oscilador interno que para poder funcionar requiere de dos componentes pasivos externos que sirven para fijar la frecuencia de operación Fclk del reloj (la cual puede variar entre los límites permisibles de 100 mil ciclos por segundo o 100 KHz, y 1.46 millones de ciclos por segundo o 1.46 MHz): un condensador que debe ser conectado entre la terminal 4 (CLK IN o CLK) y tierra, y una resistencia que debe ser conectada entre la terminal 4 y la terminal 19 (CLK R). A continuación se muestra un diagrama de esto con componentes típicos:




La otra alternativa consiste en aplicar directamente una señal de "pulsos de reloj" directamente a la terminal CLK del ADC0804, lo cual tiene la ventaja de sincronizar el comportamiento del conversor con un reloj "maestro" del sistema.

Las terminales 2 (RD, o Read invertida lógicamente) y 3 (WR, o Write también invertida lógicamente) son utilizadas para leer o escribir datos hacia el sistema al cual está conectado el componente. La acción se lleva a cabo del modo siguiente (ampliar imagen):





Como podemos ver en el diagrama de tiempos, para inicializar la conversión la terminal WR debe ser pulsada brevemente con un "0" lógico o "tierra", lo cual en virtud de la lógica inversora utilizada en la notación equivale a activar la función de la escritura de un dato (o mejor dicho, una conversión de una muestra analógica a su contraparte digital almacenando la conversión de la muestra dentro del componente) con un "1"; y la terminal también debe ser pulsada con un "0" lógico en caso de no estar conectada permanentemente al "0" lógico. La señal de requisición de interrupción INTR en la terminal 5 es usada por el componente para hacerle saber al sistema que el proceso de conversión A/D para la muestra tomada ha terminado y que la palabra binaria representante de dicha muestra ya se encuentra disponible. La aplicación de un breve pulso de "0" en la terminal RD es utilizado para recoger el resultado binario de la muestra, o sea para la lectura del dato.

El procedimiento inverso a lo que hemos visto, la conversión de una señal digital a una señal analógica, puede ser mejor ilustrado con la siguiente figura en la cual alimentamos una señal binaria a una bocina de un sistema de sonido (ampliar imagen para poder ver la acción animada):





En este diagrama se supone que tenemos todas las cinco terminales de entrada (marcadas como 16, 8, 4, 2 y 1) conectadas a la misma fuente de voltaje cuando se pone un "1" lógico en dichas terminales. Lo único que cambia es el valor de la resistencia de cada terminal hacia la bobina de la bocina. Al principio, cuando la señal binaria de entrada es "0" en todas las terminales, o lo que es lo mismo, al poner la palabra binaria "00000" en la entrada, no hay voltaje alguno aplicado en ninguna de las terminales, y por lo tanto no se produce corriente eléctrica alguna en ellas. Al cambiar la señal binaria de entrada de "00000" a "00001", esto tiene el efecto de poner en la terminal 1 un "1" lógico, con lo cual fluirá una corriente eléctrica a través de la resistencia de 256 ohms hacia la bobina de la bocina, lo cual a su vez creará un campo magnético que moverá al cono de la bocina un poco hacia adelante (hacia la derecha en la figura). La siguiente señal binaria de "00010" quita el "1" de la terminal 1 y lo pone en la terminal 2. Pero como la resistencia que va de la terminal 2 hacia la bobina de la bocina es de 128 ohms, o sea la mitad del valor de la resistencia que va de la terminal 1 a la bocina, la corriente electrica que fluirá de la terminal 2 hacia la bocina será el doble de la corriente eléctrica que puede fluír de la terminal 1 hacia la bocina, lo cual puede mover al cono de la bocina con una fuerza dos veces mayor. Puesto que cada una de las resistencias conectadas en las terminales de entrada tiene un valor que es la mitad de la resistencia que le precede, la corriente eléctrica irá doblando en intensidad conforme va aumentando la palabra binaria. Si la corriente eléctrica que puede enviar la terminal 1 hacia la bocina es de 1 miliampere cuando tiene puesto un "1" lógico, entonces la terminal 2 enviará una corriente de 2 miliamperes, la terminal 4 enviará una corriente de 4 miliamperes, la terminal enviará una corriente de 8 miliamperes y la terminal 16 enviará una corriente de 16 miliamperes. De este modo, la palabra binaria "00101" enviará una corriente de 5 miliamperes, al sumarse los 4 miliamperes que envía la terminal 4 al 1 miliampere que envía la terminal 1. Es así como el cono de la bocina se va moviendo hacia la derecha conforme va aumentando el valor de la palabra binaria.

La figura muestra cómo se mueve el cono de la bocina con una palabra binaria que va aumentando (en el sentido binario) de uno en uno. Pero podemos meter cualquier palabra de cinco bits formada con cualquier combinación de "unos" y "ceros". Podemos ir metiendo una secuencia binaria como la siguiente:

00101
00101
00111
01100
:
:
:
:

Si suponemos que la secuencia de palabras binarias se va introduciendo rápidamente en la bocina a una rapidez mayor que la rapidez con la cual el salto de una palabra binaria a la siguiente pueda ser detectada por el oído, entonces nuestro oído percibirá una ilusión de continuidad, del mismo modo que las imágenes de una película no son vistas como 15 cuadros por segundo sino como algo "continuo". Los "saltos" de una palabra binaria a la siguiente pasarán desapercibidos para el oído, y el sonido que escucharemos será un sonido perfectamente "normal". Obsérvese que esta es la misma secuencia binaria como la que obtuvimos anteriormente al analizar la discretización de una señal continua, posiblemente una señal obtenida al enviar algún sonido de un micrófono a una tarjeta de audio. Aquí estamos recuperando de nuevo el sonido del formato binario. Y de hecho, esta es la forma en la cual nosotros podemos escuchar la música que está digitalizada en formato binario MP3, la acción de escuchar piezas musicales de un archivo MP3 es esencialmente un proceso de conversión D/A.

Para la conversión eficiente de una señal digital cualquiera a una señal analógica, o sea la conversión D/A, podemos usar un componente de la misma empresa National Semiconductor como el DAC0830 o su equivalente el DAC0832, cuya relación de terminales "pins" es la siguiente:



y cuyo diagrama funcional se muestra a continuación para mayor claridad:





Como puede verse en el diagrama funcional, para poder utilizar este conversor D/A es necesario amplificar su señal de salida, puesta entre las terminales IOUT1 (en la terminal 11) e IOUT2 (en la terminal 12), conectándolas a un amplificador operacional (véase el Suplemento # 6: El amplificador operacional). La palabra binaria a ser convertida a señal analógica es puesta en las terminales designadas por el fabricante como DI (Data Input)desde DI0 (en la terminal 7) hasta DI7 (en la terminal 13), designadas en el diagrama funcional simplemente como D. El voltaje de paso de salida del conversor D/A es definido por el voltaje de referencia aplicado en la terminal designada por el fabricante como -Vref (terminal 8 del componente), dividido entre 255. Por ejemplo, si el voltaje Vref, es igual a -5.0 volts, entonces el voltaje de paso será +0.0196 volt. Esta es la magnitud en la que irá incrementando la salida analógica por cada aumento de un "1" en la señal binaria que está siendo convertida. Las otras terminales tienen funciones similares a las ya descritas para el conversor ADC0804.

Es indudable que las aplicaciones de los circuitos lógicos van en aumento así como la proliferación de "cajas negras" cada vez más complejas capaces de llevar a cabo funciones cada vez más y más sofisticadas. Y podremos esperar más sorpresas en los años venideros.

2 comentarios:

cristina dijo...

gran blog.
enhorabuena

S.B.M. dijo...

Me ha servido de gran ayuda.
Blog muy completo.