- ¿Qué es Shift Register?
- Tipos de registros en electrónica digital
- 1. Registros de desplazamiento de entrada y salida en serie
- 2. Registro de cambios de entrada en serie y salida en paralelo
- 3. Registro de cambios de entrada en paralelo y salida en serie
- 4. Paralelo de entrada: registro de desplazamiento de salida en paralelo
- 5. Registros de cambio bidireccionales
- 6. Contadores
- Aplicaciones de los registros de cambio
¿Qué es Shift Register?
Los registros de cambio son circuitos lógicos secuenciales, capaces de almacenar y transferir datos. Están formados por Flip Flops que están conectados de tal manera que la salida de un flip-flop podría servir como entrada del otro flip-flop, dependiendo del tipo de registros de desplazamiento que se creen.
Los registros de desplazamiento son básicamente un tipo de registro que tiene la capacidad de transferir ("desplazar") datos. Los registros son, genéricamente, dispositivos de almacenamiento que se crean conectando un número específico de flip flops en serie y la cantidad de datos (número de bits) que puede almacenar el registro es siempre directamente proporcional al número de flip flops, ya que cada flip flop es capaz de almacenar solo un bit a la vez. Cuando los flip-flops en un registro están conectados de tal manera que la salida de un flip-flop se convierte en la entrada del otro, se crea un registro de desplazamiento.
Las chanclas son dispositivos con un funcionamiento similar al de un pestillo. Puede denominarse vibrador biestable que puede moverse entre dos estados (0 o 1) y es capaz de almacenar datos en bits. Los nuevos datos se leen en un flip flop con cada ciclo de reloj y los datos anteriores se envían a la salida.
Registros de turnos ¿De qué flip-flops?
Sin embargo, esto depende del tipo de flip flop, ya que la relación de entrada, salida y ciclo de reloj entre flip flops varía. Hay diferentes tipos de flip flops, pero los más utilizados en la creación de registros de desplazamiento son los flip flops D (Delay).
Para el funcionamiento de los flip flops D que los hace tan deseables para los registros de turno, siempre que haya un cambio en el reloj de un flip flop D (ya sea de flanco ascendente o descendente, dependiendo de las especificaciones del flip flop). Los datos de la salida "Q" se convierten en los mismos datos que los de la entrada "D". La salida “Q” del flip flop permanecerá en ese valor hasta el siguiente ciclo de reloj, donde luego cambiará nuevamente al valor (alto o bajo, 1 o 0) en la entrada.
Ahora que sabemos qué son los registros Sift, procederemos a profundizar en los tipos de flip-flop y sus aplicaciones. Pero antes de eso, para dar una exposición más práctica sobre dónde se usan los registros de desplazamiento, echemos un vistazo al popular registro de desplazamiento 74HC595 que hemos utilizado con diferentes microcontroladores para interconectar una pantalla o secuencia de LED.
- Shift Register con 74HC595 con Arduino para controlar una secuencia de LED
- Shift Register con ESP32 para conectar la pantalla de 7 segmentos
- Shift Register con Raspberry Pi para controlar varios LED
- Shift Register con PIC para controlar la secuencia de LED
Tipos de registros en electrónica digital
Los registros de desplazamiento se clasifican en tipos principalmente por su modo de funcionamiento, ya sea en serie o en paralelo.
Hay seis (6) tipos básicos de registros de desplazamiento que se enumeran a continuación, aunque algunos de ellos se pueden dividir aún más en función de la dirección del flujo de datos, ya sea a la derecha o a la izquierda.
1. Entrada en serie - Registro de desplazamiento de salida en serie (SISO)
2. Entrada en serie - Registro de desplazamiento de salida paralela (SIPO)
3. Registro de turnos de entrada y salida paralela (PIPO)
4. Entrada paralela - Registro de cambios de salida en serie (PISO)
5. Registros de cambio bidireccionales
6. Contadores
1. Registros de desplazamiento de entrada y salida en serie
Entrada en serie: los registros de desplazamiento de salida en serie son registros de desplazamiento que transmiten datos en serie (un bit por ciclo de reloj) y también transmiten datos de la misma manera, uno tras otro.
Arriba se muestra un simple registro de desplazamiento de 4 bits de entrada en serie - salida en serie, el registro consta de 4 flip flops y el desglose de cómo funciona se explica a continuación;
En el inicio, el registro de desplazamiento se borra primero, lo que obliga a las salidas de todos los flip flops a cero, luego los datos de entrada se aplican a la entrada en serie, un bit a la vez.
Hay dos formas básicas de desplazar datos a través de un registro de desplazamiento SISO;
- Lectura no destructiva
- Lectura destructiva
- Lectura no destructiva
Los registros de desplazamiento basados en lectura no destructiva siempre tienen un modo de operación de lectura / escritura con una línea adicional agregada para permitir el cambio entre los modos de operación de lectura y escritura.
Cuando el dispositivo está en el modo operativo de "escritura", el registro de desplazamiento desplaza cada dato un bit a la vez comportándose exactamente como la versión de lectura destructiva y, por lo tanto, los datos se pierden, pero cuando el modo operativo se cambia a "lectura", los datos que se desplazan hacia afuera en la entrada, regresa al sistema y sirve como entrada al registro de desplazamiento. Esto ayuda a garantizar que los datos permanezcan más tiempo (siempre que permanezcan en modo de lectura)
- Lectura destructiva
Para lecturas destructivas, los datos se pierden por completo ya que el flip flop simplemente transfiere la información. Suponiendo que para el registro de desplazamiento de 4 bits anterior, queremos enviar la palabra "1101". Después de borrar el registro de desplazamiento, la salida de todos los flip flops se convierte en 0, por lo que durante el primer ciclo de reloj cuando aplicamos estos datos (1101) en serie, las salidas de los flip flops se ven como la tabla siguiente.
Primer ciclo de reloj:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
0 |
0 |
0 |
Segundo ciclo de reloj:
FF0 |
FF1 |
FF2 |
FF3 |
0 |
1 |
0 |
0 |
Tercer ciclo de reloj:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
0 |
1 |
0 |
Cuarto ciclo de reloj:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
1 |
0 |
1 |
2. Registro de cambios de entrada en serie y salida en paralelo
El segundo tipo de registro de desplazamiento que consideraremos es el registro de desplazamiento de entrada en serie y salida en paralelo, también conocido como registro de desplazamiento SIPO. Estos tipos de registros de desplazamiento se utilizan para la conversión de datos de serie a paralelo. Los datos vienen uno tras otro por ciclo de reloj y pueden cambiarse y reemplazarse o leerse en cada salida. Esto significa que cuando se leen los datos, cada bit leído está disponible simultáneamente en su línea de salida respectiva (Q0 - Q3 para el registro de desplazamiento de 4 bits que se muestra a continuación).
En la imagen siguiente se ilustra un registro de desplazamiento de entrada en serie y salida en paralelo de 4 bits.
A continuación se muestra una tabla que muestra cómo los datos se desplazan fuera del registro de desplazamiento de 4 bits de entrada en paralelo y salida en paralelo, con los datos como 1001.
Claro |
FF0 |
FF1 |
FF2 |
FF3 |
1001 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
0 |
1 |
0 |
0 |
|
0 |
0 |
1 |
0 |
|
1 |
0 |
0 |
1 |
Un buen ejemplo del registro de desplazamiento de entrada en serie y salida en paralelo es el registro de desplazamiento 74HC164, que es un registro de desplazamiento de 8 bits.
El dispositivo cuenta con dos entradas de datos en serie (DSA y DSB), ocho salidas de datos en paralelo (Q0 a Q7). Los datos se ingresan en serie a través de DSA o DSB y cualquiera de las entradas se puede utilizar como una habilitación ALTA activa para la entrada de datos a través de la otra entrada. Los datos se desplazan en las transiciones LOW a HIGH de la entrada de reloj (CP). Un BAJO en la entrada de reinicio maestro (MR) borra el registro y fuerza todas las salidas a BAJO, independientemente de otras entradas. Las entradas incluyen diodos de abrazadera. Esto permite el uso de resistencias limitadoras de corriente para conectar las entradas a voltajes superiores a VCC.
3. Registro de cambios de entrada en paralelo y salida en serie
En el registro de desplazamiento Parallel in - Serial out, los datos se suministran en paralelo, por ejemplo, considere el registro de 4 bits que se muestra a continuación.
Este registro se puede utilizar para almacenar y desplazar una palabra de 4 bits, con la entrada de control de escritura / desplazamiento (WS) controlando el modo de funcionamiento del registro de desplazamiento. Cuando la línea de control WS es baja (modo de escritura), los datos se pueden escribir y registrar a través de D0 a D3. Para desplazar los datos en serie, la línea de control WS se pone ALTA (modo Shift), el registro luego desplaza los datos en la entrada del reloj. El registro de turnos paralelo en serie también se llama registro de turnos PISO.
Un buen ejemplo de un registro de desplazamiento de entrada en serie y salida en paralelo es el registro de desplazamiento de 8 bits 74HC165, aunque también puede funcionar como un registro de desplazamiento de entrada en serie y salida en serie.
El dispositivo cuenta con una entrada de datos en serie (DS), ocho entradas de datos en paralelo (D0 a D7) y dos salidas en serie complementarias (Q7 y Q7 '). Cuando la entrada de carga en paralelo (PL) es BAJA, los datos de D0 a D7 se cargan en el registro de desplazamiento de forma asíncrona. Cuando PL es ALTO, los datos ingresan al registro en serie en DS. Cuando la entrada de habilitación del reloj (CE) es BAJA, los datos se desplazan en las transiciones de BAJA a ALTA de la entrada CP. Un ALTO en CE deshabilitará la entrada CP. Las entradas son tolerantes a la sobretensión hasta 15 V. Esto permite que el dispositivo se utilice en aplicaciones de cambio de nivel de ALTO a BAJO.
El diagrama funcional del registro de desplazamiento se muestra a continuación;
El diagrama de tiempos del sistema es como se muestra en la imagen siguiente;
4. Paralelo de entrada: registro de desplazamiento de salida en paralelo
Para el registro de desplazamiento de entrada y salida en paralelo, los datos de salida a través de las salidas paralelas aparecen simultáneamente a medida que se introducen los datos de entrada. Este tipo de registro de desplazamiento también se denomina registro de desplazamiento PIPO.
Los datos de entrada en cada uno de los pines de entrada de D0 a D3 se leen al mismo tiempo cuando el dispositivo está sincronizado y, al mismo tiempo, los datos leídos de cada una de las entradas se pasan a la salida correspondiente (de Q0 a Q3).
El registro de desplazamiento 74HC195 es un registro de desplazamiento multipropósito que es capaz de trabajar en la mayoría de los modos descritos por todos los tipos que hemos discutido hasta ahora, especialmente como un registro de desplazamiento en paralelo en paralelo y fuera.
5. Registros de cambio bidireccionales
Los registros de desplazamiento pueden realizar desplazamientos de datos hacia la derecha o hacia la izquierda, o ambos, según el tipo de registro de desplazamiento y su configuración. En las operaciones de desplazamiento a la derecha, los datos binarios se dividen por dos. Si se invierte esta operación, los datos binarios se multiplican por dos. Con la aplicación adecuada de la lógica combinacional, se puede configurar un registro de desplazamiento en serie para realizar ambas operaciones.
Considere el registro de 4 bits en la imagen a continuación. Un par de puertas NAND están configuradas como puertas OR y se utilizan para controlar la dirección de cambio, ya sea a la derecha o a la izquierda.
La línea de control izquierda / escritura se utiliza para determinar la dirección a la que se desplazan los datos, ya sea hacia la derecha o hacia la izquierda.
El registro de desplazamiento bidireccional 74HC194 es un buen ejemplo. El registro puede operar en todos los modos y variaciones de entrada o salida en serie y en paralelo. El diagrama funcional del 74HC194 que destaca la línea de control, el reloj, los pines de entrada y salida se muestra a continuación.
El diagrama de tiempos del dispositivo también se muestra a continuación. Le ayudará a comprender mejor cómo la línea de control controla las acciones del registro.
6. Contadores
Los contadores, a veces llamados registro de cambio de rotación son básicamente registros de cambio con sus salidas realimentadas en el dispositivo como entradas de tal manera que crean un patrón particular. Estos tipos de registros se denominan contadores debido al patrón y la secuencia que exhiben. El tipo más popular de contadores de registro de desplazamiento son los contadores de anillo.
Contador de anillo
Los contadores en anillo son básicamente un tipo de contador en el que la salida del bit más significativo se retroalimenta como una entrada al bit menos significativo. Un contador de anillo de 4 bits se ilustra en el diagrama a continuación utilizando flip flops D.
Cuando se aplica el pulso de reloj, la salida de cada etapa se cambia a la siguiente y el ciclo continúa. Cuando clear se pone alto, todas las chanclas excepto la primera (que se establece en 1) se restablecen a cero.
Aplicaciones de los registros de cambio
Los registros de desplazamiento se utilizan en muchas aplicaciones, algunas de las cuales son;
1. Conversión en paralelo a serie, donde se utilizan para reducir la cantidad de cables o líneas necesarias para la comunicación entre dos dispositivos, ya que la comunicación en serie generalmente requiere solo dos cables en comparación con el paralelo, lo que depende del número de bits que se envían.
2. Expansión IO para microcontroladores. En la electrónica moderna, los pines IO de los microcontroladores se conocen como bienes raíces y se necesita tanto como sea posible para ciertas aplicaciones, como encender 100 leds o leer 100 interruptores de lengüeta con algo como un microcontrolador Arduino o Atmeg328p. Por ejemplo, el diagrama de circuito a continuación ilustra cómo se puede usar un registro de desplazamiento de serie a paralelo para controlar 8 LED, usando solo tres de los pines IO de los microcontroladores.
3. Se utilizan en registros estatales que se utilizan en dispositivos secuenciales. Al igual que una máquina de memoria finita, el siguiente estado del dispositivo siempre se determina cambiando e insertando nuevos datos en la posición anterior.
4. Otra aplicación principal se encuentra en Demoras de tiempo. Los registros de desplazamiento se utilizan para el retardo de tiempo en los dispositivos; el tiempo se ajusta mediante el reloj, se aumenta mediante registros de desplazamiento en cascada o se reduce tomando la salida de un bit significativo más bajo.
El retraso de tiempo generalmente se calcula usando la fórmula;
t = N * (1 / fc)
N es el número de etapa de flip flop en la que se toma la salida, Fc es la frecuencia de la señal de reloj yt, que es el valor que se determina, es la cantidad de tiempo durante el cual se retrasará la salida.
Al seleccionar un registro de desplazamiento para una tarea en particular debido al amplio rango y tipo, es importante seleccionar uno que coincida con su necesidad particular, considerando cosas como, el modo de operación, el tamaño de bit (número de flip flops), derecho o izquierdo o bidireccional, etc.
Algunos de los registros de turnos más populares son;
- 74HC 194 Registro de desplazamiento universal bidireccional de 4 bits
- 74HC 198 Registro de desplazamiento universal bidireccional de 8 bits
- 74HC595 Registro de desplazamiento de entrada en paralelo y salida en serie
- 74HC165 Registro de desplazamiento de entrada en serie y salida en paralelo
- IC 74291 Registro de desplazamiento universal de 4 bits, contador ascendente / descendente binario, síncrono.
- IC 74395 Registro de desplazamiento universal de 4 bits con salidas de tres estados.
- IC 74498 Registro de desplazamiento bidireccional de 8 bits con entradas paralelas y salidas de tres estados.
- IC 74671 Registro de desplazamiento bidireccional de 4 bits.
- IC 74673 Registro de desplazamiento de salida en serie de entrada en serie de 16 bits con registros de almacenamiento de salida.
- IC 74674 Registro de desplazamiento de salida en serie de entrada en paralelo de 16 bits con salidas de tres estados.
Hay varios más, solo tienes que encontrar cuál se adapta mejor a tu aplicación.
Gracias por leer, hasta la próxima.