Saltar al contenido principal
LibreTexts Español

12.5: Registros de cambio universales: entrada en paralelo, salida en paralelo

  • Page ID
    154399
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    El propósito del registro de desplazamiento paralelo entrado/paralelo es tomar datos en paralelo, desplazarlos y luego sacarlos como se muestra a continuación. Un registro de desplazamiento universal es un dispositivo de hacer todo, además de la función de salida en paralelo.

    04374 (1) .png

    Arriba aplicamos cuatro bits de datos a un registro de desplazamiento de paralelo-entrada/salida en paralelo en D A D B D C D D. El control de modo, que puede ser de múltiples entradas, controla la carga paralela frente al desplazamiento. El control de modo también puede controlar la dirección de desplazamiento en algunos dispositivos reales. Los datos se desplazarán una posición de bit por cada pulso de reloj. Los datos desplazados están disponibles en las salidas Q A Q B Q C Q D. Los “datos de entrada” y “salida de datos” se proporcionan para la conexión en cascada de múltiples etapas. Aunque, arriba, solo podemos poner en cascada los datos para el desplazamiento correcto. Podríamos acomodar la cascada de datos de desplazamiento a la izquierda agregando un par de señales apuntando a la izquierda, “data in” y “data out”, arriba.

    A continuación se muestran los detalles internos de un registro de desplazamiento paralelo en/paralelo hacia la derecha. Los búferes de tres estados no son estrictamente necesarios para el registro de desplazamiento en paralelo y salida en paralelo, sino que son parte del dispositivo del mundo real que se muestra a continuación.

    04413.png

    El 74LS395 coincide tan estrechamente con nuestro concepto de un hipotético registro de desplazamiento de paralel-in-/ parallel-out que utilizamos una versión excesivamente simplificada de los detalles de la hoja de datos anteriores. Consulte el enlace a la ficha de datos completa más detalles, más adelante en este capítulo.

    LD/SH' controla el multiplexor AND-OR en la entrada de datos a los FF's. Si LD/SH'=1, las cuatro puertas AND superiores están habilitadas permitiendo la aplicación de entradas paralelas D A D B D C D D a las cuatro entradas de datos FF. Observe la burbuja del inversor en la entrada de reloj de los cuatro FFs. Esto indica que el 74LS395 registra los datos en el reloj negativo, que es la transición de alto a bajo. Los cuatro bits de datos serán cronometrados en paralelo de D A D B D C D D a Q A Q B Q C Q D en el siguiente reloj negativo. En esta “parte real”, OC' debe ser bajo si los datos necesitan estar disponibles en los pines de salida reales en lugar de solo en los FFs internos.

    Los datos previamente cargados pueden ser desplazados hacia la derecha en una posición de bit si LD/SH'=0 para los bordes de reloj negativos sucesivos. Cuatro relojes desplazarían los datos completamente fuera de nuestro registro de desplazamiento de 4 bits. Los datos se perderían a menos que nuestro dispositivo estuviera conectado en cascada de Q D 'a SER de otro dispositivo.

    04414.png

    Arriba, se presenta un patrón de datos a las entradas D A D B D C D D. El patrón se carga a Q A Q B Q C Q D. Entonces se desplaza un poco hacia la derecha. Los datos entrantes se indican con X, es decir, el no sabemos lo que es. Si la entrada (SER) estuviera puesta a tierra, por ejemplo, sabríamos en qué datos (0) se desplazaron. También se muestra, se desplaza a la derecha por dos posiciones, requiriendo dos relojes.

    04415.png

    La figura anterior sirve como referencia para el hardware involucrado en el desplazamiento correcto de los datos. Es demasiado sencillo incluso molestarse con esta cifra, salvo en comparación con figuras más complejas a seguir.

    04416.png

    El desplazamiento a la derecha de los datos se proporciona anteriormente para referencia al desplazador derecho anterior.

    04417.png

    Si necesitamos desplazarnos a la izquierda, los FFs necesitan ser recableados. Compare con la palanca de cambios derecha anterior. También se han revertido SI y SO. SI cambia a Q C. Q C cambia a Q B. Q B cambia a Q A. Q A deja en la conexión SO, donde podría caer en cascada a otra palanca de cambios SI. Esta secuencia de desplazamiento a la izquierda es hacia atrás desde la secuencia de desplazamiento derecha.

    04418.png

    Arriba desplazamos el mismo patrón de datos dejado por un bit.

    Hay un problema con la figura de “turno a la izquierda” anterior. No hay mercado para ello. Nadie fabrica una pieza de cambio a la izquierda. Un “dispositivo real” que cambia una dirección se puede cablear externamente para cambiar la otra dirección. O bien, deberíamos decir que no hay izquierda ni derecha en el contexto de un dispositivo que se desplaza en una sola dirección. Sin embargo, existe un mercado para un dispositivo que se desplazará a la izquierda o a la derecha al mando por una línea de control. Por supuesto, la izquierda y la derecha son válidas en ese contexto.

    04419.png

    Lo que tenemos arriba es un hipotético registro de turnos capaz de desplazar cualquier dirección bajo el control de L'/R. Se ajusta con L'/R=1 para desplazar la dirección normal, a la derecha. L'/R=1 habilita el multiplexor AND puertas etiquetadas como R. Esto permite que los datos sigan el camino ilustrado por las flechas, cuando se aplica un reloj. La ruta de conexión es la misma que la figura “demasiado simple” de “desplazamiento a la derecha” anterior.

    Los datos se desplazan en SR, a Q A, a Q B, a Q C, donde salen en cascada SR. Este pin podría conducir SR de otro dispositivo a la derecha.

    ¿Y si cambiamos L'/R a L'/R=0?

    04420.png

    Con L'/R=0, se habilitan las puertas Y multiplexor etiquetadas L, produciendo una ruta, mostrada por las flechas, igual que la figura anterior de “desplazamiento a la izquierda”. Los datos se desplazan en SL, a Q C, a Q B, a Q A, donde salen en cascada SL. Este pin podría conducir SL de otro dispositivo hacia la izquierda.

    La virtud primordial de las dos figuras anteriores que ilustran el “registro de desplazamiento izquierda/derecha” es la simplicidad. El funcionamiento del control izquierdo derecho L'/R=0 es fácil de seguir. Una parte comercial necesita la carga paralela de datos implícita en el título de la sección. Esto aparece en la siguiente figura.

    04421.png

    Ahora que podemos desplazar tanto a la izquierda como a la derecha vía L'/R, agreguemos SH/LD', shift/ load, y las puertas AND etiquetadas como “load” para proporcionar la carga paralela de datos de las entradas D A D B D C. Cuando SH/LD'=0, las puertas AND R y L están deshabilitadas, las puertas AND “load” están habilitadas para pasar los datos D A D B D C a las entradas de datos FF. el siguiente reloj CLK sincronizará los datos a Q A Q B Q C. Mientras estén presentes los mismos datos, se volverán a cargar en los relojes sucesivos. Sin embargo, los datos presentes para un solo reloj se perderán de las salidas cuando ya no estén presentes en las entradas de datos. Una solución es cargar los datos en un reloj, luego proceder a cambiar en los siguientes cuatro relojes. Este problema se soluciona en el 74ALS299 mediante la adición de otra puerta AND al multiplexor.

    Si SH/LD' se cambia a SH/LD' = 1, se desactivan las puertas AND etiquetadas como “load”, permitiendo que el control izquierdo/derecho L'/R establezca la dirección de cambio en las compuertas L o R AND. El desplazamiento es como en las cifras anteriores.

    Lo único que se necesita para producir un dispositivo integrado viable es agregar la cuarta puerta AND al multiplexor como se alude para el 74ALS299. Esto se muestra en la siguiente sección para esa parte.

    Dispositivos universales y de entrada en paralelo y salida en paralelo

    Echemos un vistazo más de cerca a los registros de cambio serial-in-/ parallel-out disponibles como circuitos integrados, cortesía de Texas Instruments. Para obtener las hojas de datos completas del dispositivo, siga los enlaces.

    • SN74LS395A registro de desplazamiento de 4 bits en paralelo/salida en paralelo [*]
    • SN74ALS299 registro de desplazamiento universal de 8 bits en paralelo/salida en paralelo [*]

    04422.png

    Ya hemos mirado los detalles internos del SN74LS395A, ver la figura anterior anterior, 74LS395 registro de turnos paralel-in/ parallel-out con salida tri-state. Directamente arriba está el símbolo ANSI para el 74LS395.

    ¿Por qué solo 4 bits, como indica SRG4 arriba? Tener tanto entradas paralelas como salidas paralelas, además de pines de control y alimentación, no permite más bits de E/S (Entrada/Salida) en un DIP de 16 pines (Paquete Dual Inline).

    R indica que las etapas del registro de desplazamiento se restablecen mediante la entrada CLR' (media flecha activa de inversión baja en la entrada) de la sección de control en la parte superior del símbolo. OC', cuando es bajo, (flecha invertida otra vez) habilitará (EN4) los cuatro búferes de salida triestado (Q A Q B Q C Q D) en la sección de datos. La carga/shift' (LD/SH') en el pin (7) corresponde a los internos M1 (carga) y M2 (cambio). Busque prefijos de 1 y 2 en el resto del símbolo para determinar qué es lo que controlan estos.

    El reloj sensible al borde negativo (indicado por la flecha invertida en el pin-10) C3/ 2 tiene dos funciones. Primero, el 3 de C3/2 afecta a cualquier entrada que tenga un prefijo de 3, digamos 2,3D o 1,3D en la sección de datos. Esta sería carga paralela a A, B, C, D atribuida a M1 y C3 para 1,3D. En segundo lugar, 2 de C3/2 -flecha derecha indica el cronometraje de datos donde 2 aparece en un prefijo (2,3D en el pin-2). Por lo tanto, tenemos cronometración de datos en SER en Q A con modo 2. La flecha derecha después de C3/2 representa el desplazamiento en las etapas internas del registro de turnos Q A Q B Q C Q D.

    Los triángulos que apuntan a la derecha indican buffering; el triángulo invertido indica tri-estado, controlado por la EN4. Tenga en cuenta que todos los 4 s en el símbolo asociado a la EN se omiten frecuentemente. Se entiende que las etapas Q B Q C tienen los mismos atributos que Q D. Q D 'en cascada al siguiente paquete del SER a la derecha.

    04423.png

    El cuadro anterior, condensado de la hoja de datos '299, resume el funcionamiento del registro universal de cambios/almacenamiento 74ALS299. Siga el enlace '299 anterior para obtener todos los detalles. Las puertas Multiplexoras R, L, de carga operan como en las cifras anteriores de “registro de desplazamiento izquierda/derecha”. La diferencia es que las entradas de modo S1 y S0 seleccionan shift left, shift right y load with mode set to S1 S0 = a 01, 10 y 11 respectivamente, como se muestra en la tabla, habilitando las puertas multiplexoras L, R y carga respectivamente. Ver tabla. Una diferencia menor es la ruta de carga paralela de las salidas de tres estados. En realidad, los búferes de tres estados están (deben ser) deshabilitados por S1 S0 = 11 para flotar el bus de E/S para su uso como entradas. Un bus es una colección de señales similares. Las entradas se aplican a A, B a H (los mismos pines que Q A, Q B, a Q H) y se enrutan a la puerta de carga en los multiplexores, y en las entradas D de los FFs. Los datos son carga paralela en un pulso de reloj.

    La nueva puerta multiplexora es la puerta AND etiquetada hold, habilitada por S1 S0 = 00. La puerta de retención permite una trayectoria desde la salida Q del FF de regreso a la puerta de retención, a la entrada D del mismo FF. El resultado es que con el modo S1 S0 = 00, la salida se vuelve a cargar continuamente con cada nuevo pulso de reloj. Así, se guardan los datos. Esto se resume en la tabla.

    Para leer datos de las salidas Q A, Q B, a Q H, los búferes de tres estados deben estar habilitados por OE2', OE1' =00 y mode = S1 S0 = 00, 01 o 10 . Es decir, el modo es cualquier cosa excepto carga. Ver segunda tabla.

    04424.png

    Los datos de desplazamiento a la derecha de un paquete a la izquierda, se desplazan en la entrada SR. Cualquier dato desplazado hacia la derecha de la etapa Q H pasa en cascada a la derecha vía Q H '. Esta salida no se ve afectada por los búferes de tres estados. La secuencia de desplazamiento a la derecha para S1 S0 = 10 es:

    SR > Q A > Q B > Q C > Q D > Q E > Q F > Q G > Q H (Q H ')

    Los datos de desplazamiento a la izquierda de un paquete a la derecha se desplazan en la entrada SL. Cualquier dato desplazado hacia la izquierda desde la etapa Q A pasa en cascada hacia la izquierda a través de Q A ', tampoco afectado por los búferes de tres estados. La secuencia de desplazamiento a la izquierda para S1 S0 = 01 es:

    (Q A ') Q A < Q B < Q C < Q D < Q E < Q F < Q G < Q H (Q SL')

    El desplazamiento puede tener lugar con los búferes de tres estados deshabilitados por uno de OE2' u OE1' = 1. Sin embargo, las salidas de los contenidos del registro no serán accesibles. Ver tabla.

    04425.png

    El símbolo ANSI “limpio” para el registro de desplazamiento universal de 8 bits en paralelo y salida en paralelo SN74ALS299 con salida de tres estados se muestra como referencia arriba.

    04426.png

    Se muestra la versión anotada del símbolo ANSI para aclarar la terminología contenida en el mismo. Tenga en cuenta que el modo ANSI (S0 S1) se invierte del orden (S1 S0) utilizado en la tabla anterior. Eso invierte los números de modo decimal (1 y 2). En todo caso, estamos totalmente de acuerdo con la ficha oficial, copiando esta inconsistencia.

    Aplicaciones prácticas

    El diagrama de bloques de Alarma con teclado remoto se repite a continuación. Anteriormente, construimos el lector de teclado y la pantalla remota como unidades separadas. Ahora combinaremos tanto el teclado como la pantalla en una sola unidad usando un registro de cambios universal. Aunque están separados en el diagrama, el teclado y la pantalla están contenidos dentro del mismo gabinete remoto.

    04411 (1) .png

    Cargaremos en paralelo los datos del teclado en el registro de turnos en un solo pulso de reloj, luego los desplazaremos a la caja de alarma principal. Al mismo tiempo, cambiaremos los datos de LED de la alarma principal al registro de turnos remoto para iluminar los LED. Estaremos cambiando simultáneamente los datos del teclado y los datos del LED en el registro de turnos.

    04427.png

    Ocho LEDs y resistencias limitadoras de corriente están conectados a los ocho pines de E/S del registro de desplazamiento universal 74ALS299. Los LEDS solo se pueden accionar durante el Modo 3 con S1=0 S0=0. Los habilitadores de triestado OE1' y OE2' están conectados a tierra para habilitar permanentemente las salidas triestatales durante los modos 0, 1, 2. Eso hará que los LEDS se enciendan (parpadean) durante el cambio. Si esto fuera un problema, el EN1 'y el EN2' podrían estar sin conexión a tierra y en paralelo con S1 y S0 respectivamente para habilitar solo los búferes triestatales y encender los LEDS durante la espera, modo 3. Mantengámoslo simple para este ejemplo.

    Durante la carga paralela, S0=1 invertido a 0, permite que los búferes octales triestatales conecten a tierra los limpiaparabrisas del interruptor. Los contactos superiores, abiertos, del interruptor se elevan a la lógica alta por la combinación Resister-LED en las ocho entradas. Cualquier cierre del interruptor cortará la entrada baja. Cargamos en paralelo los datos del interruptor en el '299 en el reloj t0 cuando tanto S0 como S1 son altos. Vea las formas de onda a continuación.

    04428.png

    Una vez que S0 se pone bajo, ocho relojes (t0 a t8) cambian los datos de cierre del interruptor del '299 a través del pin Q h'. Al mismo tiempo, los nuevos datos de LED se desplazan en la SR de los 299 por los mismos ocho relojes. Los datos LED sustituyen los datos de cierre del interruptor a medida que avanza el cambio.

    Después del reloj de turno 8, t8, S1 pasa a nivel bajo para ceder el modo de retención (S1 S0 = 00). Los datos en el registro de desplazamiento siguen siendo los mismos aunque haya más relojes, por ejemplo, T9, t10, etc. ¿De dónde provienen las formas de onda? Podrían ser generados por un microprocesador si la frecuencia del reloj no superara los 100 kHz, en cuyo caso, sería inconveniente generar algún reloj después de t8. Si el reloj estuviera en el rango de megahercios, el reloj funcionaría continuamente. El reloj, S1 y S0 serían generados por lógica digital, no mostrada aquí.


    This page titled 12.5: Registros de cambio universales: entrada en paralelo, salida en paralelo is shared under a GNU Free Documentation License 1.3 license and was authored, remixed, and/or curated by Tony R. Kuphaldt (All About Circuits) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.