In een digitaal systeem kan een signaal doorgaans in twee toestanden bestaan:logisch 1 of logisch 0. In bepaalde situaties kan er echter een derde toestand ontstaan, de zogenaamde drietoestandstoestand.
De drietoestandstoestand doet zich voor wanneer de uitvoer van een digitaal apparaat is losgekoppeld of "zweeft". Dit betekent dat de output niet actief naar een hoge of lage toestand wordt gestuurd, maar in plaats daarvan een onbepaalde waarde aanneemt die kan worden beïnvloed door externe factoren.
Tri-state-omstandigheden worden vaak gebruikt in situaties waarin meerdere apparaten op dezelfde uitgangslijn zijn aangesloten. Door één apparaat in een driestatus te brengen, kan de uitgangslijn effectief worden "geopend", waardoor een ander apparaat de controle over de lijn kan overnemen zonder conflicten te veroorzaken. Deze functie is vooral handig in busgebaseerde systemen, waar veel apparaten een gemeenschappelijke data- of adreslijn kunnen delen.
Hier is een vereenvoudigde illustratie van een toestand met drie toestanden:
```
+---------+
| Apparaat A |
Uitvoer --------->| Buffer met drie toestanden |--------- Invoer
| Apparaat B |
+---------+
```
In dit voorbeeld zijn zowel apparaat A als apparaat B aangesloten op dezelfde uitgangslijn, die door een driestatusbuffer loopt. Wanneer apparaat A gegevens wil verzenden, stuurt het de uitvoer actief naar een hoge of lage status. Wanneer apparaat B gegevens wil verzenden, wordt de uitvoer in een driestatustoestand gebracht, waardoor de gegevens van apparaat A door de buffer kunnen gaan en op de uitvoerlijn kunnen verschijnen.
Door gebruik te maken van tri-state-omstandigheden kunnen meerdere apparaten via een gedeelde lijn communiceren zonder elkaar te storen. Door de tri-state-conditie in en uit te schakelen, kunnen apparaten effectief om de beurt gegevens verzenden zonder de noodzaak van complexe arbitragelogica. |