Acabo de empezar a usar IC y estoy tratando de entender exactamente cómo funcionan.
Sé que primero debe registrar los datos en el registro de desplazamiento usando la función de Arduino shiftOut()
, luego bloquear los datos configurando el OUTPUT
pin en HIGH
, pero me preguntaba qué significa realmente esta nomenclatura.
¿Puede alguien describirme a mí y a cualquier otro principiante que tenga la misma pregunta qué significa exactamente marcar y enganchar ?
Nota: Cuando se escribió esta respuesta, no se mencionó a Arduino en la pregunta.
Cuando están involucrados elementos de memoria como latches y flip-flops, los términos clocking y latching describen cuál es la sensibilidad del elemento de memoria a la señal de control, que a menudo se etiqueta como "Reloj". En este contexto, "Clocking" significa una operación sensible al borde y "Latching" 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 se puede formar, por ejemplo, mediante el cableado cruzado de dos puertas NAND para que la salida de una mantenga el estado de la otra, y viceversa. Se puede ampliar para convertirse en algo llamado " D-Latch ", que tiene una entrada de datos y una entrada de activación de bloqueo. A veces se le llama "seguidor D", porque mientras la entrada Latch Enable sea alta, la salida del circuito "sigue" la entrada del circuito. Pero cuando Latch Enable cae de mayor a menor, la salida permanece fija: lo que haya en las entradas cuando Latch Enable cae de mayor a menor, se "bloquea" en el elemento.
Ahora, considere que haría otro latch e invertiría su señal Latch Enable. Entonces tendría otro latch que escanea sus entradas cuando el Latch Enable es bajo y retiene su salida cuando el Latch Enable es alto. Bastante 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 habilitación de enclavamiento juntas. Lo que ha formado es algo que originalmente se llamaba "Master-Slave Latch" y rápidamente cambió su nombre a master-slave " Flip-Flop ". (Hoy en día se omite el "maestro-esclavo" y simplemente los llamamos "chanclas D"). Combinados, la operación es tal que como el primer latch lee su entrada cuando el Latch Enable es bajo y el segundo latch sigue al primer latch cuando el Latch Enable es alto , juntos forman un borde sensible.elemento de memoria Para subrayar esta sensibilidad de borde y evitar cualquier confusión, la señal "Latch Enable" se renombró como "Clock".
Este flip-flop sensible al borde es el elemento básico de la memoria fundamental de toda la lógica digital, y es inmensamente útil. Su estado se establece instantáneamente cuando hay una transición de bajo a alto en la señal del reloj. Y en todos los demás momentos, 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 a estos grupos de flip-flops que podemos llamar " Registros ".
Resulta que si hay una sola señal llamada "Reloj" que va a todas las entradas de reloj de todos los flip-flops del sistema, el sistema, por grande y complejo que sea, es completamente estable. Debido a que los estados de los registros pueden cambiar solo después del borde del reloj, hay "cálculos", alternancia, de las señales de control solo después del borde, y si se permite que pase suficiente tiempo entre los bordes, las señales se establecen en un valor fijo. antes de que llegue el siguiente borde del reloj. Con este sistema, puede diseñar sistemas arbitrariamente complejos, limitados solo por los retrasos de propagación y la frecuencia del reloj. Este estilo de diseño de un reloj se llama " diseño síncrono " y yo diría que es
Como se mencionó en los comentarios, es difícil responder a esta pregunta sin contexto (¿de qué circuitos integrados está hablando?), pero aquí hay una dirección general:
1) Esos términos no se aplican a todos los circuitos integrados, solo a los circuitos integrados que realmente usan una señal de reloj. Por ejemplo, hay puertas lógicas AND y OR simples que no tienen el concepto de relojes o enclavamiento. Los cambios en los pines de entrada se propagan inmediatamente a la salida.
2) "Enganchar" 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 en los pines de entrada cambia o cambia la señal del reloj. Por lo general, hay algún otro pin en el IC que irá a lógica alta o lógica baja para indicar cuándo el IC debe bloquear un nuevo valor.
3) Datos de “reloj” en medios para bloquear repetidamente 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 adjunto 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 del reloj están conectados a su Arduino. Cuando llame a la shiftOut()
función, pondrá un bit de sus datos en el pin de entrada del registro a la vez, y pulsará la señal del reloj para decirle al registro que "enganche" el bit único (almacenarlo). Esto se hace repetidamente ("fijándolo" en el registro) hasta que se transfiere el byte completo, 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 de su circuito.
El reloj y el enganche de esta manera permiten que los datos se transfieran un bit a la vez (en serie) de forma sincronizada.
Eugenio Sh.
dan laks
KyranF