In de binaire logica zijn de twee niveaus logisch hoog en logisch laag, die in het algemeen overeenkomen met respectievelijk de binaire getallen 1 en 0. Signalen met een van deze twee niveaus kunnen worden gebruikt in booleaanse algebra voor het ontwerpen of analyseren van digitale schakelingen.
Actieve toestandEdit
Het gebruik van het hogere of het lagere spanningsniveau om een van beide logische toestanden weer te geven is arbitrair. De twee mogelijkheden zijn actief-hoog en actief-laag. Actief-hoog en actief-laag toestanden kunnen naar believen worden gemengd: een alleen-lezen geheugen geïntegreerde schakeling kan bijvoorbeeld een chip-select signaal hebben dat actief-laag is, maar de data- en adresbits zijn conventioneel actief-hoog. Soms wordt een logisch ontwerp vereenvoudigd door de keuze van het actieve niveau om te keren (zie de wetten van De Morgan).
Logisch niveau | Actief-hoog signaal | Actief-laag signaal |
---|---|---|
Logisch hoog | 1 | 0 |
Logisch laag | 0 | 1 |
De naam van een actief-laag signaal wordt historisch geschreven met een balk erboven om het te onderscheiden van een actief-hoog signaal. Bijvoorbeeld, de naam Q, gelezen “Q bar” of “Q not”, vertegenwoordigt een actief-laag signaal. De conventies die gewoonlijk worden gebruikt zijn:
- een balk erboven (Q)
- een voorloopschuine streep (/Q)
- een n voorvoegsel of achtervoegsel met kleine letters (nQ of Q_n)
- een # achter (Q#), of
- een “_B” of “_L” achtervoegsel (Q_B of Q_L).
Veel besturingssignalen in de elektronica zijn actief-laag signalen (meestal reset lijnen, chip-select lijnen enzovoort). Logische families zoals TTL kunnen meer stroom afgeven dan ze kunnen genereren, waardoor de fanout en de ruisimmuniteit toenemen. Het maakt ook wired-OR logica mogelijk als de logische poorten open-collector/open-drain zijn met een pull-up weerstand. Voorbeelden hiervan zijn de I²C bus en het Controller Area Network (CAN), en de PCI Local Bus.
Sommige signalen hebben een betekenis in beide toestanden en de notatie kan dit aangeven. Zo is het gebruikelijk dat een lees/schrijf-lijn wordt aangeduid met R/W, waarmee wordt aangegeven dat het signaal hoog is in geval van lezen en laag in geval van schrijven.
Logische spanningsniveausEdit
De twee logische toestanden worden gewoonlijk weergegeven door twee verschillende spanningen, maar twee verschillende stromen worden gebruikt in sommige logische signaleringen, zoals digitale current loop interface en current-mode logic. Voor elke logische familie zijn hoge en lage drempels gespecificeerd. Wanneer het signaal onder de lage drempelwaarde ligt, is het “laag”. Boven de hoge drempel is het signaal “hoog”. Tussenliggende niveaus zijn ongedefinieerd, hetgeen resulteert in zeer implementatiespecifiek circuitgedrag.
Het is gebruikelijk om enige tolerantie toe te staan in de gebruikte spanningsniveaus; bijvoorbeeld, 0 tot 2 volt zou logica 0 kunnen vertegenwoordigen, en 3 tot 5 volt logica 1. Een spanning van 2 tot 3 volt zou ongeldig zijn en alleen optreden in een foutconditie of tijdens een overgang van het logische niveau. Er zijn echter maar weinig logische circuits die een dergelijke toestand kunnen detecteren, en de meeste apparaten zullen het signaal gewoon interpreteren als hoog of laag op een ongedefinieerde of apparaatspecifieke manier. Sommige logische apparaten bevatten Schmitt-triggeringangen, waarvan het gedrag veel beter gedefinieerd is in het drempelgebied en die beter bestand zijn tegen kleine variaties in de ingangsspanning. Het probleem van de circuitontwerper is om omstandigheden te vermijden die tussenliggende niveaus produceren, zodat de schakeling zich voorspelbaar gedraagt.
Technologie | L-spanning | H spanning | Noten |
---|---|---|---|
CMOS | 0 V tot 1/3 VDD | 2/3 VDD tot VDD | VDD = voedingsspanning |
TTL | 0 V tot 0.8 V | 2 V naar VCC | VCC = 5 V ±10% |
Bijna alle digitale schakelingen gebruiken een consistent logicaniveau voor alle interne signalen. Dat niveau varieert echter van systeem tot systeem. Om twee logische families met elkaar te verbinden, waren vaak speciale technieken nodig, zoals extra pull-up weerstanden of speciaal gebouwde interfacecircuits die level shifters worden genoemd. Een level-shifter verbindt een digitale schakeling die een bepaald logisch niveau gebruikt met een andere digitale schakeling die een ander logisch niveau gebruikt. Vaak worden twee level-shifters gebruikt, één op elk systeem: Een lijndriver converteert van interne logische niveaus naar standaard interface lijnniveaus; een lijnontvanger converteert van interface niveaus naar interne spanningsniveaus.
Bijv. TTL niveaus zijn anders dan die van CMOS. In het algemeen komt een TTL-uitgang niet hoog genoeg om door een CMOS-ingang betrouwbaar als een logische 1 te worden herkend, vooral als hij alleen is aangesloten op een CMOS-ingang met hoge ingangsimpedantie die geen stroom van betekenis levert. Dit probleem werd opgelost door de uitvinding van de 74HCT-familie van apparaten die gebruik maken van CMOS-technologie maar TTL-ingangslogica-niveaus. Deze apparaten werken alleen met een 5 V voeding.