¿Cómo funciona un bus cableado Y / O?

3

Estudiando para un examen Observando los buses de datos que usan las configuraciones Wired AND y Wired OR.

Usando la lógica de estado triple, un dispositivo puede controlar el bus y transmitir cualquier cosa por él.

No entiendo Wired AND o Wired OR. De la forma en que entiendo Wired AND en este momento, ningún dispositivo controla el Bus y la salida permanece a un voltaje constante (por ejemplo, 5 V) si no hay dispositivos que intenten usar el Bus. Sin embargo, cuando un dispositivo intente utilizar el bus, la línea pasará a 0V. Ahora, si algún dispositivo intenta usar el bus al mismo tiempo, nunca estará claro qué dispositivo está transmitiendo.

También se supone que Wired AND está activo alto, sin embargo, cuando un dispositivo utiliza el bus, la línea baja. Pensé que esto era bajo activo.

    
pregunta Jordan

2 respuestas

2

"Sin embargo, cuando un dispositivo intente utilizar el bus, la línea pasará a 0V."
Eso es exactamente: el bus está alto solo si todos los dispositivos lo configuran alto. Al igual que en una compuerta AND, la salida es alta solo si todas las entradas son altas.

La lógica de tres estados no es la forma de controlar el bus; si un dispositivo lo establece alto y otro lo establece bajo, tiene un cortocircuito. Por lo general, hay un pullup pasivo, que mantiene el autobús en su alto nivel. Cada dispositivo controla un FET de drenaje abierto para bajarlo.
Como usted dijo, en esta configuración no hay manera de determinar cuántos dispositivos están bajando simultáneamente.

De hecho, es una lógica alta activa: para la función AND, el bus está activo (alto) si todas las entradas están activas (alto). Si un dispositivo baja el bus, solo le pone un nivel bajo.

    
respondido por el stevenvh
2

En un caso de uso común para un bus cableado AND / wired-OR, existen otros medios distintos al bus mediante el cual los dispositivos pueden indicar si desean atención. Si hay cinco dispositivos que pueden requerir atención pero un procesador tiene un solo pin de interrupción, una solución común sería hacer que el pin de interrupción active algún código que preguntará a cada dispositivo si desea atención (y si es así, déle un servicio) . Si el pin sigue bajando después de que todos los dispositivos hayan sido sondeados, el ciclo de sondeo se repetirá (en caso de que un dispositivo que no quiso atención cuando se sondeó por primera vez, decida que necesita atención mientras se está revisando un dispositivo posterior).

En general, se utilizará un bus cableado AND / cableado OR cuando a menudo haya cero dispositivos que requieran atención y cuando sea útil optimizar para ese caso. Sería posible renunciar a las interrupciones y simplemente hacer que el código consulte repetidamente cada dispositivo de E / S para ver si necesita atención, incluso cuando no lo hay, pero a menudo es mucho más útil que el código haga otras cosas cuando ningún dispositivo necesita atención.

Por cierto, otro enfoque para usar un bus que está configurado eléctricamente para la operación cableada Y cableada es que los dispositivos solo manejen la línea cuando se dirija explícitamente y se le solicite hacerlo. Sin embargo, a pesar de la similitud eléctrica, tales configuraciones a menudo no se conocen como buses cableados Y / cableados O, ya que no hay posibilidad (cuando las cosas funcionan como se espera) de combinar señales de fuentes desconocidas.

    
respondido por el supercat

Lea otras preguntas en las etiquetas