Wie funktioniert ein verdrahteter UND/ODER-Bus?

Lernen für eine Prüfung Betrachten von Datenbussen mit verdrahteten UND- und verdrahteten ODER-Konfigurationen.

Unter Verwendung der Tristate-Logik ist ein Gerät in der Lage, die Kontrolle über den Bus zu erlangen und alles über ihn zu übertragen.

Ich verstehe Wired AND oder Wired OR nicht. So wie ich Wired AND im Moment verstehe - kein Gerät hat die Kontrolle über den Bus und der Ausgang bleibt auf einer konstanten Spannung (z. B. 5 V), wenn keine Geräte versuchen, den Bus zu verwenden. Wenn jedoch ein Gerät versucht, den Bus zu verwenden, wird die Leitung auf 0 V gezogen. Wenn nun ein Gerät gleichzeitig versucht, den Bus zu verwenden, ist nie klar, welches Gerät sendet.

Auch Wired AND soll aktiv hoch sein, aber wenn ein Gerät den Bus verwendet, wird die Leitung niedrig. Ich hätte gedacht, dass dies aktiv niedrig ist.

Antworten (2)

"Wenn jedoch ein Gerät versucht, den Bus zu verwenden, wird die Leitung auf 0 V gezogen."
Genau das ist es: Der Bus ist nur dann hoch, wenn alle Geräte ihn hoch setzen. Genau wie bei einem UND-Gatter ist der Ausgang nur dann hoch, wenn alle Eingänge hoch sind.

Tri-State-Logik ist nicht die Art, den Bus zu steuern; Wenn ein Gerät es hoch und ein anderes niedrig einstellt, haben Sie einen Kurzschluss. Normalerweise gibt es einen passiven Pullup, der den Bus auf seinem hohen Pegel hält. Jedes Gerät steuert einen Open-Drain-FET, um ihn auf Low zu ziehen.
Wie Sie sagten, gibt es in diesem Setup keine Möglichkeit festzustellen, wie viele Geräte es gleichzeitig niedrig ziehen.

Dies ist in der Tat eine aktive hohe Logik: Für die UND-Funktion ist der Bus aktiv (hoch), wenn alle Eingänge aktiv (hoch) sind. Wenn ein Gerät den Bus auf Low zieht, legt es nur einen niedrigen Pegel darauf.

In einem üblichen Verwendungsfall für einen verdrahteten UND/verdrahteten ODER-Bus gibt es einige andere Mittel als den Bus, durch die Geräte anzeigen können, ob sie Aufmerksamkeit wünschen. Wenn es fünf Geräte gibt, die möglicherweise Aufmerksamkeit erfordern, aber ein Prozessor einen einzigen Interrupt-Pin hat, wäre eine übliche Lösung, den Interrupt-Pin einen Code auslösen zu lassen, der jedes Gerät der Reihe nach fragt, ob es Aufmerksamkeit wünscht (und wenn ja, es warten). . Wenn der Pin immer noch niedrig ist, nachdem alle Geräte abgefragt wurden, wird der Abfragezyklus wiederholt (falls ein Gerät, das beim ersten Abfragen keine Aufmerksamkeit wollte, entscheidet, dass es Aufmerksamkeit wünscht, während ein späteres Gerät gewartet wird).

Im Allgemeinen wird ein verdrahteter UND/verdrahteter ODER-Bus verwendet, wenn es häufig keine Geräte gibt, die Aufmerksamkeit erfordern, und wenn es nützlich ist, für diesen Fall zu optimieren. Es wäre möglich, auf Interrupts zu verzichten und den Code einfach jedes E/A-Gerät wiederholt abzufragen, um zu sehen, ob es Aufmerksamkeit benötigt, auch wenn keine Aufmerksamkeit benötigt, aber es ist oft viel nützlicher, Code andere Dinge tun zu lassen, wenn keine Geräte Aufmerksamkeit erfordern.

Übrigens, ein anderer Ansatz für die Verwendung eines Busses, der elektrisch für den Betrieb mit verdrahtetem UND/verdrahtetem ODER konfiguriert ist, besteht darin, dass Geräte die Leitung nur ansteuern, wenn sie ausdrücklich adressiert und dazu aufgefordert werden. Trotz der elektrischen Ähnlichkeit werden solche Konfigurationen jedoch oft nicht als Wired-AND/Wired-OR-Busse bezeichnet, da es (wenn alles wie erwartet funktioniert) keine Möglichkeit gibt, Signale aus unbekannten Quellen zu kombinieren.

Beispielsweise wird die Slave-Select-Reihe von SPI-Geräten häufig verwendet, um Geräte explizit zu adressieren, die sich einen gemeinsamen SPI-Bus teilen.
@ajs410: SPI mit einer gemeinsamen Datenrückgabe wäre ein Beispiel für mehrere Geräte, die sich eine gemeinsame Leitung teilen, aber nur darüber sprechen, wenn sie adressiert sind. Ich denke, die meisten SPI-Geräte verwenden 3-Zustands-Ausgänge, was ein Draht-oder-Verhalten ausschließt, aber da sie in der Kategorie von Bussen sind, die im Allgemeinen nicht als verdrahtetes UND/verdrahtetes ODER bezeichnet werden, spielt das keine Rolle.