Usando buffers de 3 estados para multiplexación

0

Hace un tiempo, mientras memorizaba los números de pieza de la serie 74xx, encontré el concepto de un dispositivo con una salida de "3 estados". La idea, lo mejor que puedo decir, es que el dispositivo genera lógica baja, lógica alta o "no conectado", básicamente.

Estaba muy interesado cuando leí esto. Suena como si pudieras usarlo para hacer un multiplexor con menos puertas. Por ejemplo, parece que puedes tomar algo como esto:

simular este circuito : esquema creado usando CircuitLab

Y conviértelo en algo como esto:

simular este circuito

(El editor de esquemas no parece tener el símbolo para el búfer de 3 estados ... a menos que me esté perdiendo algo).

Esto usa muchas menos puertas y parece que hace el mismo trabajo.

... o lo hace? Mirándolo hoy, sabiendo lo que ahora sé, veo dos problemas potenciales:

  1. Si Select va de alto a bajo, la fila superior de compuertas detiene inmediatamente la salida, pero hay un retraso de propagación desde la compuerta NO, por lo que hay un breve intervalo antes de que la segunda fila de compuertas comience a conducir la salida . Eso significa que, para un retardo de puerta, las salidas del circuito se dejan flotando.

  2. Peor aún, si Select va de bajo a alto, hay potencialmente un retraso de una puerta si ambas filas de puertas intenten impulsar las salidas, probablemente a diferentes niveles.

Al navegar por este sitio, tengo la fuerte impresión de que dejar flotando cualquier entrada de la puerta es un desastre catastrófico , y que tal cosa debe evitarse a cualquier costo. Tal vez algunas resistencias desplegables resolverían eso; No estoy seguro.

Luego está el hecho de que si (por ejemplo) AND2 intenta conducir Z1 bajo y AND5 para hacerlo alto, ahora tenemos un cortocircuito. Presumiblemente, esto causará la destrucción instantánea de los CI involucrados. (No creo que pueda freír mi fuente de alimentación; se supone que tiene una protección contra sobrecargas. Asimismo, no creo que existe el peligro de un incendio real o explosión ...)

En resumen (¡jaja!), parece que este circuito solo funciona si todos los retrasos de propagación pueden ser exactamente 0 attosegundos, lo que parece poco probable.

Pero entonces, si no es posible usar puertas de 3 estados ... ¿por qué existen? ¿He malinterpretado fundamentalmente para qué son o algo así?

    

2 respuestas

1

Lo tienes correcto, pero te estás tropezando con tu cerebro por su simplicidad. Tri-state significa que las salidas se pueden apagar para que no pongan datos (actuales) en un bus de datos común.

También tiene razón en que tiene que haber un tiempo de "APAGADO" en el que el bus de datos no sea manejado por ningún dispositivo, por lo que ve la mayoría de los buses de datos con resistencias de pull-up o pull-down para que no es 'flotante', lo que generaría ruido y tendría estados desconocidos en las líneas de datos.

Después de tantos pico o nano segundos, otro dispositivo puede salir del modo de triple estado y manejar el bus de datos con cualquier información que tenga.

Este tiempo de retardo también se aplica al bus de direcciones si la CPU / MPU lo comparte con un controlador DMA u otra CPU / MPU.

En todos los casos, la demora antes de la toma DEBE estar incorporada en el hardware (respuesta más rápida) o en el software (más lento pero funciona) para que no tenga una 'colisión' entre 2 dispositivos que manejan el bus al mismo tiempo.

Las colisiones pueden provocar datos corruptos o un IC fallido, por lo que el tiempo de espera, por pequeño que sea, es muy importante.

    
respondido por el Sparky256
1

Los buffers de 3 estados se usan en computadoras para multiplexar diferentes periféricos en un bus común.

Los problemas de la superposición no son tan graves como temes. La capacitancia en las entradas normales las mantendrá en el nivel lógico anterior, durante los pocos momentos antes de que el nuevo controlador haga valer su salida.

Los problemas que podrían surgir con la superposición tampoco son tan graves. Todas las compuertas tienen salidas con una capacidad de accionamiento limitada y pueden soportar un cortocircuito por unos momentos. Aunque dos salidas que luchan por tomar un bus a diferentes niveles podrían llevar el nivel de bus a un nivel lógico no válido, esto solo ocurrirá en una pequeña ventana de tiempo, y cualquier diseño de sistema adecuado no intentará leer el estado del bus en ese momento. tiempo.

    
respondido por el Neil_UK

Lea otras preguntas en las etiquetas