"Cronometraje" y "Enclavamiento" con Arduino

2

Acabo de empezar a usar IC, y estoy tratando de entender exactamente cómo funcionan.

Sé que debe primero marcar en los datos al registro de desplazamiento usando la función shiftOut() de Arduino, luego bloquear los datos al configurar el pin OUTPUT en HIGH , pero se preguntaba qué significa realmente esta nomenclatura.

¿Puede alguien describirme para mí y para cualquier otro principiante que tenga la misma pregunta qué significa exactamente reloj y latch

    
pregunta The Ideasmith

2 respuestas

3

Nota: Cuando se escribió esta respuesta, no se mencionó a Arduino en la pregunta.

Cuando se trata de elementos de memoria tales como pestillos y chanclas, los términos reloj y enganche describen la sensibilidad del elemento de memoria a la señal de control, que a menudo se denomina "Reloj". En este contexto, "Cronometraje" significa una operación sensible al borde y "Bloqueo" significa una operación sensible al nivel.

El elemento de memoria más básico es una forma de bucle de retroalimentación positiva llamado " Latch ". Uno de estos elementos puede formarse, por ejemplo, mediante el cableado cruzado de dos compuertas NAND para que la salida de una mantenga el estado de la otra, y viceversa. Puede extenderse para convertirse en algo llamado " D-Latch ", que tiene una entrada de datos y una entrada de habilitación de pestillos. A veces se le llama "D-seguidor", porque mientras la entrada de Latch Enable esté alta, la salida del circuito "sigue" a la entrada del circuito. Pero cuando la Habilitación del pestillo cae bajo, la salida permanece fija, lo que haya en las entradas cuando la Habilitación del pestillo cae de alta a baja, se "engancha" en el elemento.

Ahora, considera que harías otro cierre e invertirías su señal de Latch Enable. Entonces tendrías otro pestillo que escanea sus entradas cuando la activación del pestillo es baja y mantiene su salida cuando la activación del pestillo es alta. Lo suficientemente comprensible, ¿verdad?

Finalmente, vea qué sucede si coloca este segundo pestillo "delante" del primer pestillo, de modo que la salida del pestillo "activo bajo" vaya a la entrada del pestillo "activo alto". Conecte las señales de Latch Enable juntas. Lo que has formado es algo que originalmente se llamó "Master-Slave Latch" y que se cambió de nombre rápidamente a master-slave " Flip-Flop ". (Hoy en día se omite el "maestro-esclavo" y los llamamos "D flip-flops"). Combinada, la operación es tal que cuando el primer pestillo lee su entrada cuando la activación del pestillo es baja y el segundo pestillo sigue al primer pestillo cuando la habilitación del pestillo es alto , juntos forman un elemento de memoria sensible al borde . Para subrayar la sensibilidad de este borde y evitar cualquier confusión, la señal de "Activar pestillo" se cambió a "Reloj".

Este flip-flop sensible al borde es el elemento básico de memoria de toda la lógica digital, y es inmensamente útil. Su estado es casi instantáneamente establecido cuando hay una transición de bajo a alto en la señal del reloj. Y en cualquier otro momento, no le importa lo que suceda en su entrada. Ahora considere que tiene muchos flip-flops en un circuito y muchas señales de control que "calculan" los valores de entrada de estos grupos de flip-flops que podemos llamar " Registros ".

Resulta que si solo hay una señal una llamada "Reloj" que llega a todas las entradas de Reloj de todos los flip-flops del sistema, el sistema, por grande y complejo que sea, puede ser , es completamente estable. Debido a que los estados de los registros pueden cambiar solo siguiendo el borde del reloj, hay "cálculos", alternando, de las señales de control solo después de el borde, y si se deja suficiente tiempo para pasar entre los bordes , las señales se asientan en un estado fijo antes de que llegue el próximo borde del reloj. Con este sistema, puede diseñar sistemas arbitrariamente complejos, limitados únicamente por los retrasos de propagación y la frecuencia de reloj. Este estilo de diseño de un reloj se llama " diseño síncrono " y diría que es la metodología de diseño digital más importante en uso hoy en día.

    
respondido por el PkP
3

Como se mencionó en los comentarios, es difícil responder a esta pregunta sin contexto (¿de qué CI está hablando?), pero aquí hay una dirección general:

1) Esos términos no se aplican a todos los IC, solo los IC que realmente usan una señal de reloj. Por ejemplo, hay puertas lógicas AND y OR simples que no tienen un concepto de relojes o de enganche. Los cambios en los pines de entrada se propagan inmediatamente a la salida.

2) "Enclavar" una señal significa específicamente que está almacenando un valor de los pines de entrada de un IC, y reteniendo ese valor incluso si el nivel lógico de los pines de entrada cambia o la señal del reloj cambia. Por lo general, hay algún otro pin en el IC que tendrá una lógica alta o una lógica baja para indicar cuándo el IC debería bloquear un nuevo valor.

3) "Registrar" datos en un medio para retener repetidamente los datos en secuencia y sincronizados con una señal de reloj.

En su ejemplo de registro de desplazamiento, suponga que tiene un registro de desplazamiento de un byte conectado a su Arduino. El registro tiene un pin de entrada de datos, un pin de reloj y 8 pines de salida. Solo el pin de entrada y el pin de reloj están conectados a su Arduino. Cuando llame a la función shiftOut() , pondrá un bit de sus datos en el pin de entrada de los registros a la vez, y pulsará la señal del reloj para indicar al registro que "bloquee" el bit único (guárdelo). Esto se hace repetidamente ("sincronizándolo" en el registro) hasta que se transfiera todo el byte, luego el registro puede presentar el patrón completo de 8 bits en sus pines de salida simultáneamente para que lo use el resto del circuito.

La sincronización y el enclavamiento de esta manera permiten que los datos se transfieran un bit a la vez (en serie) de manera sincronizada.

    
respondido por el skrrgwasme

Lea otras preguntas en las etiquetas