¿Cómo eliminar el estado prohibido en un latch SR?

4

Me gustaría un pestillo donde la salida solo cambia cuando ambas entradas han cambiado. Si solo una entrada ha cambiado, la salida del pestillo debe permanecer constante.

Aquí está la tabla de estado que quiero:

S R | Qnext
----+------
0 0 |   Q
0 1 |   0
1 0 |   1
1 1 |   Q

Lo anterior se parece a un pestillo SR estándar, excepto que el estado prohibido (1, 1) se reemplaza con un estado de retención.

¿Cómo puedo diseñar el pestillo de arriba? Podría agregar algo de lógica para convertir las entradas (1, 1) a (0, 0) (por ejemplo, S' = S(~R) , R' = R(~S) ), pero me preocupan los problemas técnicos.

Fondo / motivación :

Tengo un interruptor de tiro único de doble polo (DPST) (uno normalmente abierto, otro normalmente cerrado). Asumí que cuando se cambia el interruptor, el polo que se está cerrando rebotaría, mientras que el polo que se está abriendo no lo haría. Si esta suposición hubiera sido correcta, habría podido rebotar el interruptor con el cierre anterior.

Si mi suposición hubiera sido correcta, entonces el desafío principal habría sido el hecho de que los dos polos son precarios: el polo # 1 podría cambiar antes o después de los cambios del polo # 2. Esto significaría que durante una transición los polos podrían estar en cualquier estado: (0,0), (0,1), (1,0) o (1,1). Pero, habría una propiedad en la que podría confiar: una vez que el cambio pasó de (0,1) a (1,0) (o viceversa), no se recuperaría. Esta propiedad hubiera permitido que el cierre anterior rebote el interruptor.

    
pregunta Richard Hansen

2 respuestas

4

En primer lugar, su suposición de que los interruptores mecánicos se abren limpiamente es falsa. Rebotan en ambos, hacen y rompen.

Sin embargo, para abordar la pregunta específica del pestillo, es simplemente una cuestión de crear un pestillo S-R que solo active los estados "finales" (0,1) y (1,0). El cierre cambiará de estado la primera vez que se alcance el nuevo estado final. Si la marca ocurre primero, entonces el rebote entre el estado inicial y (1,1) no causará ningún cambio en el pestillo. Una vez que se rompe el otro contacto, el pestillo cambiará y se ignorará cualquier rebote a (0,0). Si la ruptura ocurre primero, entonces el pestillo activará la primera marca del otro contacto, y nuevamente, se ignorará cualquier rebote a (0,0).

    
respondido por el Dave Tweed
0

Un interruptor SPDT típico será "garantizado para romper antes de hacer", lo que significa que incluso si se mueve la palanca lentamente podría abrirse el contacto para rebotar durante un tiempo no especificado, el segundo contacto no se cerrará hasta después del primer contacto Se ha abierto para siempre. Por lo tanto, no debería tener que preocuparse por el cierre del segundo contacto.

Sin embargo, hay un par de puntos que puede considerar: (1) hay varias maneras en que puede diseñar el circuito del interruptor para que el interruptor consuma energía cero en una condición de estado estable. Por ejemplo, en lugar de usar compuertas NAND o NOR, use inversores con resistencias en la ruta de retroalimentación y use el interruptor para conectar a tierra una u otra entrada del inversor; (2) incluso con un interruptor de dos estados, es imposible realizar un rebote absolutamente perfecto, ya que el contacto que se está cerrando puede realizarse por un momento extremadamente breve y luego volver a abrirse por un tiempo antes de que se cierre definitivamente. Si el cierre breve inicial tiene la longitud correcta, puede perturbar el pestillo lo suficiente para evitar que sostenga un "cero" limpio, pero no lo suficiente como para que se cierre un "1" limpio. Esto podría causar una condición llamada "metastability"; hay formas por las cuales uno puede hacer que la metastabilidad sea extremadamente improbable (por ejemplo, en algún lugar cercano a la probabilidad de que un aparato sea destruido por un meteorito al azar) pero es difícil eliminarlo como una posibilidad.

    
respondido por el supercat

Lea otras preguntas en las etiquetas