Minneskretsar, låskretsar och klockade vippor

Förutom kombinatoriska kretsar behöver de flesta digitala styrsystem även minneskretsar. En enkel minneskrets är ett relä "med självhållning".
En av reläets egna kontakter parallellkopplas med tryck-knappen TILL, och då behöver man bara trycka helt kort på denna för att reläet ska förbli i till-läge. Denna koppling förekommer som motorskydd, eftersom den förhindrar att motorer startar "av sig själva" när strömmen plötsligt kommer tillbaks efter ett strömavbrott.

I digitaltekniken kallas detta för en SR-låskrets ( eng. SR-latch ). Strömställaren TILL kallas för S ( Set ) och strömställaren FRÅN för R ( Reset ), utsignalen från kretsen kallas för Q.

SR-låskretsen

Man kan göra en SR-latch av två NOR-grindar. Se figuren nedan. Genom att återföra signalerna från utgångarna till ingångarna blir det självhållning i nätet.
Nätet analyseras enklast om man tänker på att NOR-grinden har "1" som låsande insignal. Om någon ingång är "1" så blir därför utgången "0" oavsett vad den andra ingången har för värde!


SR-låskrets av NOR-grindar. Fet ledning betecknar "1".

Den övre raden visar hur låskretsen "ettställs" så att Q=1. Om S=1 och R=0 låses den övre grinden till "0". Den undre grindens ingångar får då 00 vilket ger utgången Q=1. Eftersom den övre grinden nu får "1" från två håll, gör det inget om nu S=0. Q fortsätter att vara "1". Det räcker således med att S=1 helt kort för att Q ska bli "1" och fortsätta att vara "1".

Den nedre raden visar hur låskretsen "återställs" så att Q=0. Om R=1 och S=0 låses den nedre grinden till "0". Utgången blir Q=0. Den övre grindens ingångar får 00 vilket ger "1" på utgången och "1" på ingången till den nedre grinden. Eftersom den nedre grinden nu får "1" från två håll, gör det inget om nu R=0. Q fortsätter att vara "0".

En kort "puls" S=1 "ettställer" låskretsen och en kort "puls" R=1 "återställer" den. Så länge S=0 och R=0 behåller låskretsen sitt värde.

I sanningstabellen anges insignalkombinationen S=1 och R=1 som förbjuden!. Vad skulle hända om man använde den insignalskombinationen?
Om SR-låskretsen är uppbyggd av NOR-grindar som ju har "1" som låsande insignal, så skulle båda grindarnas utgångar bli "0" på en gång. För de övriga insignalkombinationerna gäller att de båda utgångarna är varandras inverser, men detta gäller inte för den förbjudna kombinationen.

Ofta behöver man både variabler och dess inverser i kombinatoriska nät. Kan man inte lita på att låskretsens andra utgång alltid har det inverterade värdet, måste man använda extra inverterare. Det är således av omtanke till "kretsekonomin" som man förbjuder "S=1 och R=1".

Förhistorisk låskrets ]

Låskrets med NAND-grindar

För NAND-grinden är "0" låsande insignal. Om en av ingångarna är "0" så låses grindens utgång till "1".

En låskrets med NAND-grindar "ettställs" med en kort puls S=0 och "återställs" med en kort puls R=0. Så länge S=1 och R=1 behåller låskretsen sitt värde.
Låskretsens förbjudna ingångskombination är "S=0 och R=0".

En tillämpning - Avstudsning av växlingskontakt med låskrets
Ofta måste elektroniska styrsystem kombineras med elektromekaniska komponenter som strömställare och reläer. Eftersom elektroniken är "blixtsnabb" - en nanosekund kort puls kan räcka för att "ställa" en låskrets - måste man studera hur de elektromekaniska komponenterna egentligen uppför sig.

 
Alla mekaniska strömställare uppvisar ett fenomen som kallas för kontaktstuds. Detta är en rent mekanisk effekt. Vid kontaktens tillslag gör "stöt"-kraften att den kortvarigt vibrerar vid kontaktytan vilket leder till att strömkretsen hinner slutas och brytas många gånger innan vibrationen upphört. Det som gör detta till ett problem är de elektroniska kretsarnas snabbhet, kontaktstudsarna kan förväxlas med ( snabba ) knapp-tryckningar.
Figurerna visar övergången från "0" till "1" när man trycker på två olika exemplar av samma sorts tryck-knapp. Som synes är skillnaderna stora!

Avstudsning av kontakter kan ske på flera sätt, men det bästa sättet är att använda strömställare med växlingskontakter och en låskrets som i figuren ovan.
Kontakten avbildas i opåverkat läge. När man trycker på kontakten ansluts den till den nedre NAND-grinden. Den första kontaktslutningen ger "0" till ingången och "ettställer" direkt låskretsen. De efterföljande kontaktstudsarna får ingen verkan eftersom den första pulsen redan "ettställt" kretsen.
När man släpper knappen "återställs" på samma sätt låskretsen.
När kontaktarmen befinner sig mellan de två kontaktlägena kommer resistorerna att hålla båda ingångarna på "1", så låskretsen behåller då sitt värde. Den förbjudna insignalen "00" förekommer ej.

Grindad låskrets D-låskrets

Symbol för D-latch. Ingången C1 är en styringång och den styr dataingången D1 ( en ingång märkt C2 skulle styra en ingång märkt D2 ). När C=1 följer utsignalen Q insignalen D. När C=0 låses Q till sitt senaste värde. Därav beteckningen Follow/Latch för C-ingången.

Genom att komplettera SR-låskretsen med två AND-grindar och en inverterare, får man en så kallad D-låskrets. C är en styringång och D ( Data ) är den styrda ingången. När C=1 följer låskretsen insignalen D ( kretsen är "transparent" ). När C blir "0" låses utgången Q till det senaste D-värdet, och så länge som C=0 är utsignalen Q opåverkad av D.
Denna låskrets har ingen förbjuden ingångskombination.

D-låskretsen är världens vanligaste krets eftersom det är den som utgör minnescellerna i våra datorer. Med hjälp av en avkodare som ansluts till styringången C kan man ge minnescellen en "adress".


Klockade vippor

Inom digitaltekniken brukar man skilja på enkla låskretsar ( latch ) och klockade vippor ( flip-flop ).
De enkla låskretsarnas begränsning ligger i att man inte kan mata in ett nytt värde till ingången "samtidigt" som man läser av utgångsvärdet. De elektroniska kretsarnas snabbhet har gjort det nödvändigt att utveckla mer sofistikerade kretsar.

Figuren visar symbolen för en D-vippa. De klockade vipporna är betydligt mer komplicerade än låskretsarna, i allmänhet innehåller en vippa två eller tre låskretsar och någon extra grind.
En låskrets används för att "hålla" utgångsvärdet, och en annan "tar emot" ett nytt ingångsvärde. En klockpuls på styringången verkställer att det nya ingångsvärdet överförs till låskretsen på utgången. D-vippan används för att synkronisera signalflödet mellan ett styrsystems olika delar.

Figuren visar en flanktriggad D-vippa. D-ingången är som tidigare dataingång, C-ingången är klockpulsingång, därav beteckningen CP. I symbolen har styringången C försetts med ett flanktriggningstecken, en triangel. detta innebär att pulser på C1-ingången styr D1, men bara när C-ingången nås av en positiv flank, det vill säga under den korta tid då C går från "0" till "1".

Det värde som D-ingången har kort före flanken ( c:a 5 ns före ) blir till utgångsvärdet Q efter flanken ( efter c:a 5 ns ). Utgångsvärdet är sedan låst tills det inkommer en ny flank på klockpulsingången.
( Observera att klockpulsingången måste återgå till "0" för att det ska kunna bli en en ny positiv flank ).

Om skillnaden mellan D-låskretsen och D-vippan
Ett antal D-vippor i serie bildar ett så kallat skiftregister. Tanken är att värdet på vippornas utgångar, Q, ska "förflyttas" ett steg per klockpuls. Skiftregister kan användas vid multiplikation och division av binära tal, och till serie/parallellomvandling vid seriekommunikation.

Endast vippor, inte låskretsar kan användas till skiftregister.
Överst i figuren visas tre D-låskretsar i serie. Från början när C=0 är låskretsarna låsta och innehåller "1" "0" "1". När C=1 följer låskretsarna sina insignaler. Den första låskretsen har insignalen D=0 och denna signal "rusar" genom låskretsarna och nollställer dessa, "0" "0" "0". Det blir inget skiftregister med D-låskretsar!
Nederst i figuren visas tre D-vippor. Från början har D-vipporna värdet "1" "0" "1". När klockpulsen har sin positiva flank, kopieras innehållet från vippa till vippa, med resultatet "0" "1" "0". Skulle det komma ytterligare en positiv flank skulle resultatet bli "0" "0" "1", så skiftregistret med D-vippor fungerar som avsett.

Kombinationskrets, D-vippa och låskrets
Eftersom en D-vippa i sig innehåller flera låskretsar, så kan man till samma kostnad förse den med låskretsingångar av SR-typ. Klockpulsflankerna och D-ingången styr vippan, men bara om SR-ingångarna "tillåter" det. SR-ingångarna är Asynkrona, direktverkande, oberoende av klockan, medan D-ingången är synkron, och beroende av klockpulserna.
Sådana R-ingångar brukar ofta användas till nollställning av kretsarna vid systemstart.
( PR står för Preset och CLR för Clear )

JK-vippan, universalvippan

SR-låskretsens motsvarighet bland vipporna är en "förbättrad SR-vippa" den så kallade JK-vippan. J motsvarar S och K motsvarar R. Två AND-grindar i JK-vippan förhindrar att någon otillåten insignalkombination påverkar vippan. Om J=1 och K=1 kommer AND-grindarna bara att släppa fram den av J eller K som förändrar vippans värde. Vippan kommer således att byta värde för varje klockpuls så länge denna insignalkombination består. Man säger att vippan togglar ( eng. toggle, kasta om ).

Sanningstabellen kan delas upp i två delar som svarar mot två olika sätt att koppla vippan.
Om J och K är sammanbundna, dvs J=K, brukar man kalla insignalen för T och den resulterande vippan för T-vippa. Med T=1 togglar vippan, och med T=0 ligger värdet fast. T-vippor används ofta till räknare. Det finns inga T-vippor att köpa, utan detta är bara ett ritsätt för den här kopplingen.

Om J och K är sammanbundna, men med en inverterare mellan ingångarna så att J är K:s invers, kallar man den resulterande ingången för D. Detta är JK-vippan kopplad som D-vippa.

JK-vippan är således den universalvippa som enkelt kan "förvandlas" till de övriga vipp-typerna. Vill man göra ett skiftregister med JK-vippor, behöver man ingen inverterare mellan J och K. Eftersom vipporna har både utgången Q och dess invers så kopplar man bara JK-vipporna i serie. De uppför sig då som D-vippor.
Användningen av JK-vippor har ofta i praktiken visat sig ge enklare nät än vad som kan åstadkommas med de övriga vipptyperna.



Tillbaka ]

RCg från William Sandqvist KTH