Introduktion
Datorer tänker på ett lite lustigt sätt. De tänker binärt, så allt de tänker på är 0:or och 1:or. I digitala kretsar betyder binärt ett system som representerar information eller data med endast två möjliga värden eller tillstånd. De anges vanligen som 0 och 1 och motsvarar ”av” och ”på” i en digital krets.
Digitala kretsar, som de i mikrokontroller, använder binära signaler för att kommunicera och bearbeta data. Signalerna skapas genom att ändra spänningsnivåerna på de elektriska signaler som går genom kretsen.
En mikrokontroller kan till exempel använda en binär signal för att styra en LED. Värdet 1 kan tända LED:en, medan 0 släcker den.
Binära tal
Binära data används också för att representera tal i digitala kretsar. Varje binär siffra kan bara vara 0 eller 1. Hur räknar man med bara 0 och 1? Det liknar decimal räkning, men med endast två möjliga värden!
Låt oss lära oss att räkna till 15 binärt.
För att räkna till 15 binärt behöver vi 4 positioner för våra 0:or och 1:or. Vi börjar med noll i alla positioner, [0 0 0 0], vilket är lika med 0. Så långt går det bra! Ändrar vi siffran längst till höger till 1 får vi [0 0 0 1], som representerar talet 1 binärt.
Hur är det med 2? Vi flyttar 1:an ett steg åt vänster: [0 0 1 0]. Positionen längst till höger innehåller nu 0, precis som när vi representerade noll. Ändrar vi den till 1 räknar vi upp ett steg, så 3 blir [0 0 1 1]. För 4 kan vi inte bara ändra en 0:a till 1 för att räkna upp: vi ersätter 1:orna på fjärde och tredje plats med 0 och sätter en 1:a på andra plats. Då blir 4 [0 1 0 0]. (Samma metod användes när vi gick från 1 till 2.) Så räknar man binärt. Prova själv och se om du förstår talen i figur 1:
Figur 1: Decimaltalen och motsvarande binära representationer upp till 15.
Du har kanske redan gissat att ett tal större än 15 kräver fler än 4 positioner. Så räknar datorn och tar i princip emot och lämnar all information, från bildskärmspixlar till de mest komplexa beräkningarna i ditt favoritspel! Datorer är mycket snabba på att räkna binärt.
Logiska grindar
Logiska grindar är digitala kretsars grundläggande byggstenar. Precis som lego kan de kombineras i olika konstruktioner för olika ändamål. Några heter AND, OR, NOT, NAND, NOR, XOR och XNOR.
De avbildade grindarna har två ingångar och en utgång, förutom NOT som har en ingång. Det finns också grindar med fler ingångar. NOT kallas även inverterare eftersom den ändrar 1:or till 0:or och tvärtom. Varje grind har en symbol i digitala kretsar, se figur 2:
Figur 2: Logiska grindar. De två linjerna från vänster är ingångarna. Den ensamma linjen till höger är utgången.
En AND-grind ger bara logisk 1 när alla ingångar är logisk 1. Om utgången blir 0 eller 1 beror på kombinationen av grindens två ingångar. Här följer kombinationerna för de övriga grindarna:
OR: Ger logisk 1 när minst en ingång är logisk 1.
NOT: Ger ingångens komplement: logisk 1 blir logisk 0 och tvärtom.
NAND: Kombinerar AND och NOT. Den ger bara logisk 0 när alla ingångar är logisk 1.
NOR: Kombinerar OR och NOT. Den ger bara logisk 1 när alla ingångar är logisk 0.
XOR: Ger logisk 1 när exakt en av de två ingångarna är logisk 1.
XNOR: Kombinerar XOR och NOT. Den ger logisk 1 när de två ingångarna är lika.
Genom att kombinera grindarna kan digitala kretsar fatta beslut utifrån digitala insignaler. Färre grindar kan minska yta och effektförbrukning, men tidsförhållanden och tillförlitlighet beror också på genomförandet. Boolesk algebra ger matematiska metoder för att förenkla logikuttryck och samtidigt behålla önskad funktion.
Boolesk algebra
Låt oss utforska AND-grinden närmare. Figur 3 nedan visar en krets som implementerar en AND-grind.

Figur 3: Illustration av en AND-grindkrets.
Spänningskällor: Vin, A och B
Transistorer: T1 och T2
Resistorer: Ra, Rb och Rout
I bloggen om [analoga kretsar] lärde vi oss hur transistorer fungerar som brytare. I principexemplet ansluts 5 V matning till T1 vid Vin, medan A och B styr transistorerna. När någon transistor är av är utgången Vout låg. När båda leder kan utgången vara hög. En verklig transistorkrets ger inte automatiskt exakt 5 V: spänningsfall, belastning och drivning spelar roll. Figurerna visar logiskt beteende och ersätter inte en komplett elektrisk konstruktion.

Figur 4: Det idealiserade AND-beteendet ger hög utgång endast när både A och B är höga.
Digital elektronik skiljer mellan hög och låg, eller 1 och 0. När exemplets 5 V och 0 V ersätts med 1:or och 0:or får vi sanningstabeller. Det är början på digital elektronik.

Figur 5: Sanningstabell för en AND-grind.
Sanningstabeller kan beskrivas med ekvationer. Alla grindar har en sanningstabell och en egen ekvation, även om matematiken för digital elektronik skiljer sig från vanlig aritmetik. Som nämnts kallas den boolesk algebra.
Tänk dig en ganska komplex digital krets som den nedan. Den har tre ingångar, A, B och C, och en utgång, Z.

Figur 6: En digital krets.
Ingångar: A, B och C
Utgång: Z
Det kan se smart och praktiskt ut, men kanske kan det förbättras. Hur? Med boolesk algebra. Vi börjar med att skriva det booleska uttrycket för figur 6.
Uttrycket för kretsen ovan är:
Figur 7: Booleskt uttryck för kretsen i figur 6.
Sedan använder vi boolesk algebra för att reducera det komplexa uttrycket till enklaste form.

Figur 8: Olika uttryck härledda med boolesk algebra. Varje uttryck beskriver kretsen i figur 6.
Alla uttryck ovan är ekvivalenta. De kan beskriva olika kretskonstruktioner, men alla gör exakt samma sak. Därför kan deras beteende beskrivas med samma sanningstabell nedan.
Figur 9: Sanningstabell för kretsen i figur 6 och alla uttryck i figur 8.
Vi började med den stora komplexa kretsen i figur 6 och reducerade den med boolesk algebra till en krets med samma sanningstabell men 2 grindar i stället för 7.
Figur 10: Den reducerade kretsen från figur 6.
Den reducerade kretsen behöver färre komponenter, vilket kan minska kostnad, effekt och fördröjning. Faktiska tidsförhållanden och tillförlitlighet måste fortfarande kontrolleras. Därför är boolesk algebra ett kraftfullt verktyg för digitala kretsar och datorer.
Den booleska algebrans lagar
För att använda verktyget behöver vi lära oss lagarna. Det kräver övning eftersom de är ganska många:
- Noll- och ettlagarna
- Identitetslagarna
- Idempotens
- Komplement
- Dubbel negation
- De Morgans lag
- Associativitet
- Kommutativitet
- Distributivitet
- Absorption
Om du vill fördjupa förståelsen av digitala kretsar genom att lära dig mer boolesk algebra är den här webbplatsen en bra start. Allt förklaras från grunden och sedan visas några exempel.
Datorn lagrar ofta information om digitala kretsars operationer i minneselement och register.
Minneselement och register
Dessa kretsar lagrar binär information. Register och minnen som RAM, ROM och EPROM har olika strukturer och syften. Tänk på ett bibliotek som sorterar och förvarar information i särskilda avdelningar så att den enkelt hittas och används. Att konstruera lagringen kräver förståelse för digital logik och styrning. Varför lagra data? Vi kan vilja bearbeta, jämföra eller dela information i minneselement och register. Det görs med sekventiella kretsar.
Sekventiella kretsar
Sekventiella kretsar har tillstånd: utgångarna beror på ingångar och lagrad tidigare information. Synkrona kretsar uppdaterar tillstånd enligt en klocka; asynkrona kretsar kräver ingen gemensam klocka. De organiserar följder av operationer och kan delas in i dessa två typer.
Synkrona sekventiella kretsar
I synkrona sekventiella kretsar uppdateras tillståndselement som vippor vid bestämda klockflanker. Kombinationslogik beräknar nästa tillstånd och utgångar från aktuella ingångar och lagrat tillstånd. Konstruktionen måste uppfylla tidskrav så att värden samplas tillförlitligt.
Asynkrona sekventiella kretsar
Asynkrona sekventiella kretsar ändrar tillstånd utan gemensam klocka, utifrån ändrade ingångar och intern tidsstyrning. De har fortfarande tillstånd och kan använda återkoppling; de är inte rent kombinatoriska kretsar. Beteendet beror på ingångar och tidigare tillstånd, så tidsförhållanden och kapplöpningseffekter kräver noggrann konstruktion.
Aritmetiska kretsar
Dessa kretsar utför aritmetiska operationer som addition, subtraktion, multiplikation och division.
Dataomvandlare
Dataomvandlare omvandlar digitala signaler till analoga och tvärtom, exempelvis ADC:er och DAC:er. De förenar den verkliga analoga världen med den digitala – tänk på dem som översättare. Har du undrat hur en termostat vet och visar temperaturen? Den mäter temperatur med en sensor och omvandlar mätvärdet genom beräkningar för att visa rätt temperatur digitalt.