Registro de desplazamiento

De Ucontrol
Saltar a: navegación, buscar

<keywords content="TTL 74Ls164N, electronica, circuito, pic, NE555, PIC BASIC, PIC SIMULATOR IDE, esquema, circuito impreso, proyecto, gratis, download, programa, CMOS, pin, e/s, i/o, ucontrol, PIC, 16F628a, 16f84a" /> <center>


Inicio Foro Revista uControl Circuiteca Microcontroladores Electrónica Básica Herramientas y Software Tutoriales Colaboradores Enlaces
¿Ya descargaste los ejemplares GRATUITOS de la Revista uControl? ¡No te los pierdas!.
<linkedimage>

wikipage=Dado electrónico con PIC tooltip=Dado electrónico con PIC img_src=Image:dado100.jpg img_width=150px img_alt=Dado electrónico con PIC </linkedimage>

Dado electrónico
<linkedimage>

wikipage=Como trucar un servo tooltip=Como trucar un servo img_src=Image:trucaservo150.jpg img_width=150px img_alt=Como trucar un servo </linkedimage>

¿Como trucar un servo?
<linkedimage>

wikipage=Comunicación inalámbrica entre PICs tooltip=Comunicación inalámbrica entre PICs img_src=Image:TXRX150.jpg img_width=150px img_alt=Comunicación inalámbrica entre PICs </linkedimage>

Comunicación inalámbrica
<linkedimage>

wikipage=CCS - Libreria de gráficos para GLCD K0108 tooltip=CCS - Libreria de gráficos para GLCD K0108 img_src=Image:GLCD-100.gif img_width=150px img_alt=CCS - Libreria de gráficos para GLCD K0108 </linkedimage>

Gráficos con CCS
<linkedimage>

wikipage=Funcionamiento de una matriz de LEDs tooltip=Funcionamiento de una matriz de LEDs img_src=Image:GNUxx.jpg img_width=150px img_alt=Funcionamiento de una matriz de LEDs </linkedimage>

Carteles de LEDs
Foroizq.jpg
Todos los articulos y proyectos de uControl tienen su lugar en el foro. Si tienes dudas o comentarios, busca o crea el hilo correspondiente, y tendrás una rapida respuesta.
Foroder.jpg
Registros de desplazamiento.

Introducción

"0" y "1", nuestros personajes.

Un "registro de desplazamiento" es una configuración circuítal muy utilizada, generalmente para convertir un flujo de datos en forma serial a uno del tipo paralelo, motivo por el cual a menudo los chips encargados de esta tarea son llamados "conversores serie-paralelo".

NOTA: Este artículo forma parte de la Revista uControlNumero 1.

Contenido


Funcionamiento

Por supuesto, es posible construir un registro de este tipo a partir de componentes discretos, aunque en la practica resulta no solo inapropiado por cuestiones de tamaño y velocidad, si no también económicas, ya que un chip como los que mencionaremos en este texto rara vez superan el valor de 1 u$s.

La mejor manera de entender conceptos nuevos es apoyándose en analogías con temas que nos son familiares. En este caso no vamos a hacer una excepción, por lo que utilizaremos como ejemplo el funcionamiento de una cola, como la de un banco o supermercado.

Supongamos que dos tipos de personas pueden formar parte de una cola. Estos dos tipos de personas son las que se ven en la figura siguiente, y es imposible confundir una con otra. Es decir, siempre estaremos seguros que en una posición determinada de la fila esta una u otra persona. Las llamaremos "0" (el "gordito) y "1" (al mas flaco). Aclaro que la elección de los personajes solo tiene que ver con el parecido (?) con el 0 y el 1.

RDDImage1.gif

"0" y "1", nuestros personajes.


La cola que usaremos como ejemplo tiene 8 lugares, que hemos numerado del 0 al 7, pero nada impide trabaja con colas más largas, por lo que todo lo que se vea aquí, puede ser generalizado para colas de la longitud que se desee.


RDDImage2.gif

La cola utilizada como ejemplo tiene 8 posiciones.


Otra particularidad de nuestra hipotética cola es que nunca puede estar vacía. Todas sus posiciones tienen que estar ocupadas, ya sea por "gorditos" o "flacos". En el estado inicial, la cola se encuentra completamente llena de "gorditos", como se a continuación:


RDDImage3.gif

El estado inicial de la cola es este: completa de "gorditos".


Nuestra cola funciona como cualquier cola de la vida real: cuando alguien nuevo llega a la fila, se coloca en el lugar de mas atrás, que en este caso corresponde a la "posición 0". Como la cola tiene una longitud máxima (en nuestro ejemplo) de 8 posiciones, para hacer lugar al recién llegado, es necesario que todos los que estaban en la fila "avancen" una posición. El que estaba en la posición 0 pasa la 1, el que estaba en la 1 pasa a la 2, y así hasta llegar al que estaba en la posición 7, que "sale" por el extremo opuesto.


RDDImage4.gif

Llega un nuevo integrante a la cola....


RDDImage5.gif

...y ocupa el ultimo lugar, desplazando a todos los demás una posición. El primero "sale" de la fila.


RDDImage6.gif

Este es el estado final de nuestra fila, con el nuevo integrante en el último lugar.


Si continuaran ingresando personas en la fila, el proceso se repetiría con cada nuevo integrante que llegue. Como el que entra primero es el primero en salir, a este tipo de colas se las llama "FIFO", por First Input, First Output (Primero que entra, primero que sale).

Con todas estas cuestiones en mente podemos seguir avanzando en la comprensión del funcionamiento de los registros de desplazamiento. Supongamos que queremos que en la cola haya dos flacos en los primeros lugares, luego un gordo, otra vez dos flacos, luego otro gordo por ultimo dos flacos más (como siempre, 8 personas en total). Sabiendo que cada personaje que ingresa en la cola "empuja" a todos una posición a la derecha, si queremos que el que termine ocupando el extremo derecho de la cola sea un flaco, ese será el que primero debe entrar. Siguiendo el razonamiento anterior, los personajes deberían entrar en la fila en el orden siguiente:


RDDImage7.gif

Los nuevos integrantes de la fila, esperando para ocupar su lugar.


RDDImage8.gif

Este es el estado final de nuestra fila, con los integrantes originales desplazados hacia la derecha.


Poniendo fin a nuestra analogía, tendríamos que los integrantes de esta hipotética cola son los "0"s y "1"s (o estados altos y bajos) de nuestros circuitos, es decir, nuestros datos. La cola en si es el registro de desplazamiento. Cuando decíamos que el estado inicial de la cola eran 8 gordos, estábamos queriendo decir que al alimentar nuestro circuito, todas las salidas estarán en "0" o estado bajo.

El reloj

Hay una salvedad, y es la existencia del "reloj". Efectivamente, en un circuito real, los datos pasan al registro de desplazamiento con cada pulso de reloj. Podemos pensar en este reloj como si se tratase de un "maestro de ceremonias", que da una palmada cada vez que alguien debe ingresar en la cola.

Muchos circuitos de registros de desplazamiento "reales" también incluyen un sistema de RESET, que permite poner simultáneamente todas las salidas en "0" o estado bajo, sin necesidad de ingresar 8 ceros seguidos. Esto permite limpiar rápidamente el registro de desplazamiento.

Cuando decimos "rápidamente" nos referimos a que como la velocidad de los pulsos del reloj (CLOCK) no puede ser infinita (típicamente el máximo ronda los 10 o 20 MHz) y cada dato demora el tiempo de un pulso de reloj en desplazarse por el registro, introducir 8 "0"s llevaría 800 ns (100 ns * 8 bits), contra los 100 ns que demora en aplicarse el RESET. No obstante, para obtener los tiempos exactos implicados se debe consultar la hoja de datos del integrado que estemos utilizando, ya que los limites varían incluso con la tensión de alimentación y la temperatura.

El 74HC164N

Existen varios circuitos integrados que implementan un registro de desplazamiento en su interior, por ejemplo, el 74HC164N

<linkedimage>

wikipage=Publicidad tooltip=Publicidad img_src=Image:banner1.jpg img_width=801px

</linkedimage>


El CD4094

Aunque similar al 74HC164N, este integrado disponde de algunas caracteristicas que lo hacen más interesantes en muchos casos. Consulta el tutorial correspondiente:Usando el CD4094 para manejar displays 7 segmentos.

Aplicaciones

En uControl tenemos El relojito, un reloj muy especial que funciona mediante dos registros de desplazamiento:

{{#ev:youtube|cHjG_sP5W5E}}

Revista uControl

Este articulo forma parte de la Revista uControl #1
<linkedimage>

wikipage=Revista_Numero_0001 tooltip=uControl Revista #1 img_src=Image:RU-TAPA001.jpg img_width=100px img_alt=uControl Revista #1

</linkedimage>

NOTA DE TAPA : Construye tus circuitos impresos
Todo aficionado a la electrónica tarde o temprano se topa con la necesidad de fabricar sus propios circuitos impresos o PCB (por "Printed Circuit Board"). En general, esta tarea es vista como algo muy complicado, pero la podemos llevar a buen término, siguiendo los pasos explicados en el artículo.

Ademas: El relojito, Uso Practico del Pic12F675, PIC BASIC (PSI), Temporizadores programables, Herederos del LM386N, Fundamentos de la Transmisión Síncrona y mucho más.

Puedes descargar la Revista uControl desde aqui, de forma totalmente gratuita.


Autor

Ariel.jpg Datos del Autor
Nombre: Ariel Palazzesi
email: arielpalazzesi@gmail.com
Ver los artículos de este autor. Página con el perfil del autor.

</center>
Cclicence.png

Este contenido se rige por la licencia de Creative Commons "Licencia Creative Commons Atribución-No Comercial-Sin Obras Derivadas 3.0". Para más información, véase la licencia en su forma reducida y completa.

Herramientas personales