¿Se pueden usar puertas de transmisión para implementar la lógica de 3 estados?

1

En mi aplicación necesito usar una línea común compartida entre dos periféricos, tengo que indicar a los dispositivos cuando el bus está libre o no, por lo tanto no puedo tener una salida push-pull donde la salida sea 0 o 1, ya que estos estados se utilizan generalmente para la transmisión de datos.

En su lugar, preferiría tener un escenario de drenaje abierto, donde la salida "flote", para indicar al dispositivo que el bus está libre.

Ahora para lograr esto, quiero usar una puerta de transmisión, donde se usa el tercer estado (abierto) controlando el pin de habilitación, si la habilitación está activada (la lógica normal de 2 estados, 0 o 1 donde la entrada fluye a salida), de lo contrario, el pin de salida flota.

Ahora mi pregunta es, si esta configuración es similar a la forma en que se usa la lógica de 3 estados en los microcontroladores / microprocesadores, donde una resistencia de extracción interna controla la lógica del pin de salida, si es diferente, entonces de qué manera difiere?

También me he perdido algo, ¿tengo que leer algo más para completar mi comprensión?

EDIT

La línea está controlada por una salida de tótem, donde solo se controlan las señales de lógica 1 (5v) y lógica 0 (0v).

    
pregunta Barath Bushan

2 respuestas

4

La pregunta parece bastante confusa en varios aspectos ...

1) No está claro si desea implementar la lógica de 3 estados o una interconexión de drenaje abierto.

En el primero, el dispositivo de conducción SÍ usa una salida push-pull, que coloca 0 o 1 en el bus. Mientras tanto, los otros dispositivos deben abstenerse de conducir hasta que algún sistema separado indique que es su turno.

En este último, el bus siempre es llevado a '1' por una resistencia, y cualquier dispositivo puede llevarlo a '0'. En este caso, no hay daño si varios dispositivos manejan el bus simultáneamente, aunque cualquier mensaje puede estar dañado.

2) Dice que desea un bus "flotante" para indicar que el bus está libre. En ningún caso, esto es normalmente posible (no hay una primitiva lógica que pueda detectar que un bus está flotando). Esta es la razón por la que en la lógica de tres estados debe haber otro sistema (lógica de arbitraje de bus) para realizar un seguimiento de quién tiene el bus y darle un giro a cada dispositivo.

Ahora, con respecto a la cuestión específica de las puertas de transmisión: cualquiera de estos sistemas se puede implementar de manera trivial utilizando puertas de transmisión, aunque existen otras formas, y algunas veces mejores.

La lógica de tres estados se puede implementar utilizando una salida normal de empujar-tirar (tótem-polo) y una puerta de transmisión entre la salida de empujar-tirar y el bus. El árbitro de bus simplemente enciende o apaga la puerta de transmisión. A menudo es más económico desactivar ambos transistores en la salida push-pull.

La lógica de drenaje abierto se puede implementar con una compuerta de transmisión simplemente conectando un lado a tierra y el otro al bus. Ahora simplemente enciéndelo para bajar el autobús.

    
respondido por el Brian Drummond
3

Eche un vistazo a las comunicaciones de la CII entre chips aquí . Creo que esto ayudará a completar su comprensión. Es una manera estándar de la industria de implementar un sistema multi-periférico usando líneas comunes como reloj y datos. Las salidas de drenaje abierto se utilizan con resistencias pull-up para evitar problemas de alimentación eléctrica cuando un dispositivo quiere tener un nivel bajo mientras el otro está alto.

    
respondido por el Andy aka

Lea otras preguntas en las etiquetas