Saltar al contenido principal

# 12.1: Introducción a los Registros de Turnos

$$\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}}}$$

$$\newcommand{\avec}{\mathbf a}$$ $$\newcommand{\bvec}{\mathbf b}$$ $$\newcommand{\cvec}{\mathbf c}$$ $$\newcommand{\dvec}{\mathbf d}$$ $$\newcommand{\dtil}{\widetilde{\mathbf d}}$$ $$\newcommand{\evec}{\mathbf e}$$ $$\newcommand{\fvec}{\mathbf f}$$ $$\newcommand{\nvec}{\mathbf n}$$ $$\newcommand{\pvec}{\mathbf p}$$ $$\newcommand{\qvec}{\mathbf q}$$ $$\newcommand{\svec}{\mathbf s}$$ $$\newcommand{\tvec}{\mathbf t}$$ $$\newcommand{\uvec}{\mathbf u}$$ $$\newcommand{\vvec}{\mathbf v}$$ $$\newcommand{\wvec}{\mathbf w}$$ $$\newcommand{\xvec}{\mathbf x}$$ $$\newcommand{\yvec}{\mathbf y}$$ $$\newcommand{\zvec}{\mathbf z}$$ $$\newcommand{\rvec}{\mathbf r}$$ $$\newcommand{\mvec}{\mathbf m}$$ $$\newcommand{\zerovec}{\mathbf 0}$$ $$\newcommand{\onevec}{\mathbf 1}$$ $$\newcommand{\real}{\mathbb R}$$ $$\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}$$ $$\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}$$ $$\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}$$ $$\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}$$ $$\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}$$ $$\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}$$ $$\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}$$ $$\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}$$ $$\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}$$ $$\newcommand{\laspan}[1]{\text{Span}\{#1\}}$$ $$\newcommand{\bcal}{\cal B}$$ $$\newcommand{\ccal}{\cal C}$$ $$\newcommand{\scal}{\cal S}$$ $$\newcommand{\wcal}{\cal W}$$ $$\newcommand{\ecal}{\cal E}$$ $$\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}$$ $$\newcommand{\gray}[1]{\color{gray}{#1}}$$ $$\newcommand{\lgray}[1]{\color{lightgray}{#1}}$$ $$\newcommand{\rank}{\operatorname{rank}}$$ $$\newcommand{\row}{\text{Row}}$$ $$\newcommand{\col}{\text{Col}}$$ $$\renewcommand{\row}{\text{Row}}$$ $$\newcommand{\nul}{\text{Nul}}$$ $$\newcommand{\var}{\text{Var}}$$ $$\newcommand{\corr}{\text{corr}}$$ $$\newcommand{\len}[1]{\left|#1\right|}$$ $$\newcommand{\bbar}{\overline{\bvec}}$$ $$\newcommand{\bhat}{\widehat{\bvec}}$$ $$\newcommand{\bperp}{\bvec^\perp}$$ $$\newcommand{\xhat}{\widehat{\xvec}}$$ $$\newcommand{\vhat}{\widehat{\vvec}}$$ $$\newcommand{\uhat}{\widehat{\uvec}}$$ $$\newcommand{\what}{\widehat{\wvec}}$$ $$\newcommand{\Sighat}{\widehat{\Sigma}}$$ $$\newcommand{\lt}{<}$$ $$\newcommand{\gt}{>}$$ $$\newcommand{\amp}{&}$$ $$\definecolor{fillinmathshade}{gray}{0.9}$$

Los registros de desplazamiento, al igual que los contadores, son una forma de lógica secuencial. La lógica secuencial, a diferencia de la lógica combinacional, no solo se ve afectada por las entradas actuales, sino también, por la historia anterior. En otras palabras, la lógica secuencial recuerda eventos pasados.

Los registros de desplazamiento producen un retardo discreto de una señal digital o forma de onda. Una forma de onda sincronizada con un reloj, una onda cuadrada repetitiva, se retrasa en “n” tiempos de reloj discretos, donde “n” es el número de etapas del registro de desplazamiento. Así, un registro de desplazamiento de cuatro etapas retrasa la “entrada de datos” en cuatro relojes a “salida de datos”. Las etapas en un registro de desplazamiento son etapas de retardo, típicamente tipo “D” Flip-Flops o tipo “JK” Flip-flops.

Antiguamente, los registros de turnos muy largos (varios cientos de etapas) servían como memoria digital. Esta aplicación obsoleta es una reminiscencia de las líneas acústicas de retardo de mercurio utilizadas como memoria de computadora temprana.

La transmisión de datos en serie, a lo largo de una distancia de metros a kilómetros, utiliza registros de desplazamiento para convertir datos paralelos en forma de serie. Las comunicaciones de datos en serie reemplazan muchos cables de datos paralelos lentos con un solo circuito serial de alta velocidad.

Los datos en serie a distancias más cortas de decenas de centímetros, utilizan registros de desplazamiento para obtener datos dentro y fuera de los microprocesadores. Numerosos periféricos, incluidos convertidores analógicos a digitales, convertidores digitales a analógicos, controladores de pantalla y memoria, utilizan registros de desplazamiento para reducir la cantidad de cableado en las placas de circuito.

Algunos circuitos de contador especializados en realidad utilizan registros de desplazamiento para generar formas de onda repetitivas. Los registros de desplazamiento más largos, con la ayuda de la retroalimentación generan patrones tan largos que parecen ruido aleatorio, pseudo-ruido.

Los registros básicos de turnos se clasifican por estructura de acuerdo con los siguientes tipos:

• Parallel-in/serial-out
• Parallel-in/parallel-out universal

Arriba mostramos un diagrama de bloques de un registro de turnos serial-in/serial-out, que tiene una longitud de 4 etapas. Los datos en la entrada se retrasarán en cuatro períodos de reloj desde la entrada hasta la salida del registro de desplazamiento.

Los datos en “data in”, arriba, estarán presentes en la salida de la Etapa A después del primer pulso de reloj. Después del segundo pulso, los datos de la etapa A se transfieren a la salida de la etapa B, y los “datos de entrada” se transfieren a la salida de la etapa A. Después del tercer reloj, la etapa C se reemplaza por la etapa B; la etapa B se reemplaza por la etapa A; y la etapa A se reemplaza por “data in”. Después del cuarto reloj, los datos originalmente presentes en “data in” están en la etapa D, “salida”. Los datos de “primero en entrar” son “primero en salir” ya que se desplazan de “datos en” a “datos de salida”.

Los datos se cargan en todas las etapas a la vez de un registro de desplazamiento paralelo-in/serial-out. Luego, los datos se desplazan a través de “salida de datos” por pulsos de reloj. Dado que un registro de desplazamiento de 4 etapas se muestra arriba, se requieren cuatro pulsos de reloj para desplazar todos los datos. En el diagrama anterior, los datos de la etapa D estarán presentes en la “salida de datos” hasta el primer pulso de reloj; los datos de la etapa C estarán presentes en la “salida de datos” entre el primer reloj y el segundo pulso de reloj; los datos de la etapa B estarán presentes entre el segundo reloj y el tercer reloj; y los datos de la etapa A estarán presentes entre el tercer y el cuarto reloj. Después del cuarto pulso de reloj y posteriormente, los bits sucesivos de “entrada de datos” deberían aparecer en “datos de salida” del registro de desplazamiento después de un retraso de cuatro pulsos de reloj.

Si se conectaran cuatro interruptores a D A a D D, el estado podría leerse en un microprocesador usando solo un pin de datos y un pin de reloj. Dado que agregar más interruptores no requeriría pines adicionales, este enfoque parece atractivo para muchas entradas.

Arriba, cuatro bits de datos se desplazarán de “entrada de datos” por cuatro pulsos de reloj y estarán disponibles en Q A a Q D para accionar circuitos externos como LED, lámparas, controladores de relé y bocinas.

Después del primer reloj, los datos en “data in” aparecen en Q A. Después del segundo reloj, Los datos antiguos de Q A aparecen en Q B; Q A recibe los siguientes datos de “data in”. Después del tercer reloj, los datos Q B están en Q C. Después del cuarto reloj, los datos de Q C están en Q D. Esta etapa contiene los datos presentes por primera vez en “data in”. El registro de desplazamiento debería contener ahora cuatro bits de datos.

Un registro de desplazamiento paralelo de entrada/salida en paralelo combina la función del registro de desplazamiento de entrada en paralelo y salida de serie con la función del registro de desplazamiento de entrada en serie y salida en paralelo para producir el registro de desplazamiento universal. La palanca de cambios “hacer cualquier cosa” tiene un precio: el mayor número de pines de E/S (Entrada/Salida) puede reducir el número de etapas que se pueden empaquetar.

Los datos presentados en D A a D D se cargan en paralelo en los registros. Estos datos en Q A a Q D pueden ser desplazados por el número de pulsos presentados en la entrada de reloj. Los datos desplazados están disponibles en Q A a Q D. La entrada de “modo”, que puede ser más de una entrada, controla la carga paralela de datos de D A a D D, desplazamiento de datos y la dirección de desplazamiento. Hay registros de turno que desplazarán los datos ya sea a la izquierda o a la derecha.

Si la salida en serie de un registro de desplazamiento está conectada a la entrada en serie, los datos se pueden desplazar perpetuamente alrededor del anillo siempre que haya pulsos de reloj presentes. Si la salida se invierte antes de ser retroalimentada como se muestra arriba, no tenemos que preocuparnos por cargar los datos iniciales en el “contador de anillos”.

This page titled 12.1: Introducción a los Registros de Turnos 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.