TFE4110 Digitalteknikk med kretsteknikk RAPPORT LAB 3 TERNING av June Kieu Van Thi Bui Valerij Fredriksen Labgruppe 201 Lab utført 09.03.2012 Rapport levert: 16.04.2012 FAKULTET FOR INFORMASJONSTEKNOLOGI, MATEMATIKK OG ELEKTRONIKK
RAPPORT LAB 3
Sammendrag Denne lab øvingen var en introduksjon innen digitalteknikk. Vi skulle se på hvordan vi kan styre en krets med rene digitalsignaler. Kretsen består av en analog del, oscillatoren, som går over i en hel digital del ved logikken som teller mellom en og seks i takt med oscillatoren og logikken som oversetter det binære signalet til styresignaler for LED. I denne oppgaven går vi litt innpå den analoge delen og forklarer virkemåten, men hovedfokuset ligger på den digitale delen. Ved hjelp av digitalteknikk, boolske utrykk og Karnaugh diagram så nærmere på hvordan vi kan bruke IC teknologien bestående av NOR og NAND porter til å lage en digital omformer. Digitalomformeren skulle konvertere tall fra tallgenerator og slå på de riktige lysene på terningen som tilsvarte det tilfeldig genererte tallet. Etter at vi har loddet opp kretsen vi har designet, testet vi kretsen ved hjelp av oscilloskopet. Vi så nærmere på oscillatorens frekvens, tall som ble generert, dutycycle og hvordan det henger sammen med sannsynligheten for hver av LED på terningen.
Innhold 1. Innledning.... s. 1 2. Teori.. s. 2 2.1 Tilfeldig tallgenerator s. 2 2.2 Terning... s. 4 3. Målemetode og arbeidsbeskrivelse.. s. 5 3.1 Forenkling av boolske utrykkene... s. 5 3.2 Kretsskjema over terningen s. 6 4. Resultater. s. 7 4.1 Oscilloskopfrekvens & duty-cycle.. s. 7 4.2 Teller signal Q.. s.8 5. Utstyrsliste.. s. 9 5.1 Komponenter s. 9 6. Diskusjon. s.10 7. Konklusjon.. s.11 8. Vedlegg s.12 9. Litteraturreferanser.. s.13
1. Innledning Denne laboratorieøvingen går ut på å designe en logisk oversetter fra 001 BIN -011 BIN til styresignaler for LED. Her er skjematisk representasjon av arbeidet vi skal utføre. Ut fra tilfeldig tallgenerator får vi et 3-bits signal. Vi skal først se på hva er det minste antall signaler vi trenger får å kunne vise alle 6 terningkast. Ut fra dette vil vi kunne generere minterm utrykk for å styre alle terningkast. Deretter må vi forenkle utrykkene for så tilpasse utrykkene komponentbiblioteket vårt som består kun av tre NAND og tre NOR porter. Vi får utdelt et kretskort med ICen, men vi selv må designe hvordan ting skal være koblet sammen. Til slutt gjenstår det bare å teste slutt produktet. I og med at tilfeldigheten i denne tilfeldigtallgeneratoren går ut på at den teller veldig fort, er vi interessert i å vite hvor fort den egentlig teller? Er dette raskt nok? Er tallene statistisk jevnt fordelt? Det siste kan vi sjekke både ved å selv teste ut tallene vi får ut og notere verdiene vi får, og i tillegg vil vi se nærmere på duty-cycle. side 1
2. Teori Denne terningen er delt i tre hoved deler. Vi har den tilfeldige tallgeneratoren, logikken som oversetter det binære tallsignalet fra generatoren til hvilke lysdioder skal lyse og de fysiske komponentene av terningen. 2.1 Tilfeldig tallgenerator Den tilfeldige tallgeneratorens virkemåte er relativt enkel. Den består av en oscillator som teller opp. Figur 1: Skjematisk tegning av oscillatoren Oscillatoren består av en NAND-, en NOR-port, 3 resistanser og 2 kondensatorer. De boolske portene befinner seg i en IC. Denne ICen har en intern diode som skal beskytte elektronikken mot ESD. Over denne ligger det 0.7V, det er også grunnen til at spenningen ved C og E overstiger V DD rett etter at de går over til logisk høy. Etter oscillatoren er det en logiskenhet som sjekker om tallet er syv, hvis ja vil logikken sette tallet til én og oscillatoren vil dermed starte forfra. Tilfeldigheten i terningen ligger i at oscillatoren teller veldig fort (ca. 900Hz) og med menneskelig reaksjon er det umulig å kontrollere hvilke tall du får ut. Kondensatorene C1 og C2 sørger for en tidsforsinkelse i kretsen, disse igjen gjør at kretsen vil hele tiden kunne skifte tilstander. Dermed fungerer denne som en oscillator. Vi trykker ned bryteren, setter A til logisk høy og ser hvordan det påvirker kretsen på neste side. side 2
Figur 2: Tidsdiagram for oscillatoren A er nå låst til høy for så lenge som vi holder knappen nede, E er opprinnelig høy. Den første NOR porten (U1-4) vil dermed gi en nuller ut til B. Det er ingen ladning over C1, når B blir momentant satt til null, vil C følge etter. Så vil C1 begynne å lades opp og C går mot logisk høy. Dette medfører at etter en viss tidsforsinkelse vil C gå over fra å bli tolket som en nuller, til å bli tolket som en ener. U2-1 er i praksis en inverter som vi kommer tilbake til. D er dermed alltid det motsatte av C. Så fort C blir tolket som en ener, vil D bli til en nuller. Det er heller ingen ladning over C2 ettersom det var ingen spenningsforskjell mellom D og E. E vil dermed umiddelbart følge D, men etter hvert som C2 lades, vil E gå mot logisk høy. Men før C2 lades opp og E blir til høy, vil den ha forandre tilstanden på B, ettersom 1XOR0 gir 1, vil B bli høy. C vil fortsatt være høy, men C1 vil lades ut. Dermed når C2 er ferdig ladet opp, og E blir til 1 igjen, er vi tilbake til starten hvor B vil gå lav og C1 lades opp igjen. side 3
2.2 Terning Figur 3: Terning Den fysiske terningen er skjematisk tegnet over. Vi ser raskt at for å vise hvilken som helst terning verdi trenger vi kun 4 signaler. I tillegg bruker vi aldri mer enn 3 samtidig. Lysdiodene i denne terningen er satt til aktiv lav. Det betyr at det ene beinet er koblet til V DD og det andre til S X, dermed hvis utgangen S 0 er høy, vil spenningsforskjellen over S 0 være ~0, slik at lysdioden ikke lyser. Hvis den derimot er satt til lav, vil det være en spenningsforskjell slik at lysdioden lyser. Diodene er satt til aktiv lav for å unngå den indreresistansen i ICene. Ved å koble aktiv lavt unngår vi mye av den indreresistansen som igjen betyr mer strøm gjennom dioden, noe som betyr mer lys! Tabell 2.2.1: Sannhetstabell for terning Vi generer så minterm utrykkene for S0-S3: side 4
3. Målemetode og arbeidsbeskrivelse Før vi kunne begynne å lodde, måtte vi forenkle utrykkene fra forrige side. Vi hadde kun 3 NAND og NOR porter til disposisjon og de har kun to innganger hver. Vi må derfor forenkle utrykkene vi har fra forrige side. 3.1 Forenkling av boolske utrykkene Ettersom vi kan bruke kun NAND og NOR porter, bestemmer vi oss for hvordan vi kan lage inverter med disse. Figur 4: Invertere fra NAND og NOR porter Det er totalt 4 forskjellige måter å lage inverter med NAND og NOR porter. Vi skal bruke de to nederste variantene, da slipper vi å dra ledninger over hele kretskortet. Vi bruker så Karnaugh diagram (se vedlegg) for å forenkle utrykkene fra forrige side og ender opp med. I første omgang er utrykkene forenklet, men vi har hverken invertere eller AND & OR porter. Vi bruker inverter designet fra fig.4 og DeMorgans lover får å gjøre om utrykkene over på NAND og NOR form, resultatet er vist over. Vi ser også at vi trenger totalt to NAND og to NOR porter, mens vi har tre av hver til disposisjon. side 5
3.2 Kretsskjema over terningen Figur 5: Kretsskjema over terningen Den endelige skjematiske representasjonen av terningen er vist over. De to unummererte portene er i bruk av oscillatoren. side 6
4. Resultater Oscillatoren fra kapittel 2.1 bruker en NAND og en NOR port. Utgangen D i U2 tilsvarer pinne 3 på U2. Vi påtrykket 5V på kortet og trykket ned SW1 (satt A til logisk høy) og så på resultatet på oscilloskopet. 4.1 Oscilloskopfrekvens & duty-cycle Figur 6: Oscilloskopfrekvens Etter at vi har målt frekvensen til 912Hz, skulle vi lodde sammen kretsen vi har designet (fig.5). Vi har også regnet ut sannsynligheten for at hver av signalene er på, basert av verdiene fra tabell 2.2.1, verdiene for duty-cycle er også gitt i tabellen under. Tabell 4.1 Signal P(S X =1) T H (ms) T P (ms) Duty-cycle S 0 50.00 % 1.12 2.24 50 % S 1 16.67 % 1.1 6.7 16.4 % S 2 50.00 % 3.3 6.5 50.8 % S 3 83.33 % 5.5 6.6 83.3 % side 7
4.2 Teller signal Q Deretter målte vi på Q0, Q1, Q2 og så om resultatet samsvarer med 001 BIN -011 BIN. Figur 7: Signalene Q0 (Øverst), Q1 (Midten) og Q3 ut fra U3 Til slutt ønsker vi å se om den tilfeldige tallgeneratoren virkelig gir ut tilfeldige tall. Trykker på knappen 60 ganger og noterer utfallet hver gang. Resultatene er gjengitt i tabellen under. Tabell 4.2 Tall Antall ganger Sannsynlighet 1 11 18.33 % 2 10 16.67 % 3 7 11.67 % 4 12 20.00 % 5 12 20.00 % 6 8 13.33 % side 8
5. Utstyrsliste Oscilloskop: Tektronix TDS2014 SN: G04-0311 Signalgenerator: GW Instek GFG-8250A SN: B03-0358 Digitalt multimeter: LG DM-441B SN: GR-4177 Strømforsyning: Mascot-719 SN: B02-0452 5.1 Komponentliste ICer 1stk - U1 4011BE (m/sokkel) 1stk - U2 4001BE (m/sokkel) 1stk - U3 4029BE (m/sokkel) Dioder 7stk D1..D7 LED 3stk D8..D10 1N4448 Resistanser 2stk R1, R2 470kΩ 1stk R3 220Ω 1stk R4 10kΩ 1stk R5 1kΩ Kondensatorer 2stk C1, C2 2.2nF 3stk C3..C5 100nF Diverse 1stk SW1 Trykkbryter side 9
6. Diskusjon Slik vi ser det fra fig.7, er tallene ut fra tallgeneratoren riktige. 011 BIN er helt til venstre, og halvveis i andre ruten fra sentrum starter telleren på nytt som forventet. Ut fra verdiene i tabell 4.1 ser vi at sannsynligheten for at hver av signalene er på er veldig nærme duty-cycle verdiene vi målte. Det betyr at verdiene ut fra telleren er veldig jevnt fordelt og det skal være tilnærmet lik sannsynlighet for å rulle hvilken som helst verdi. Ut fra resultatene i tabell 4.2 at resultatene er relativt jevnt fordelt. Ulikheter skyldes mest av alt den statistisk lave datamengden. Om vi hadde rullet flere ganger, er det sannsynlig at resultatene ville fordelt seg jevnere. Dette kan vi trygt påstå basert på våre målinger av duty-cycle og sannsynligheten vi har regnet ut på forhånd. Vi målte frekvensen til 912Hz. Vanlig menneskelig reaksjonstid for olympiske deltagere er ca. 166ms, men noen av de beste resultatene målt er rundt 100ms [1]. I løpet av 100ms vil denne tilfeldige tallgeneratoren telle ca. 90 ganger. Det er derfor trygt å si at så langt menneskeligreaksjon rekker, er denne terningkastgeneratoren tilfeldig! side 10
7. Konklusjon I denne laboratorieoppgaven har vi jobbet med å implementere en terning i den digitale verden. Vi har benyttet oss av en 1-6 teller på tre bits binærform, logiske NAND- og NOR-porter og 7 LED-dioder. Terningen fungerte som forventet, vi fant ingen anomalier ved målinger, alle LEDene fungerte fint og kretsen responderte veldig bra. Alle målinger har gitt forventede eller tilnærmet forventede resultater. For å kunne ha fått enda bedre resultater burde vi ha gjort flere tester av terningen slik at man kunne da få en jevn statistikkfordeling av ulike øyne i det lange løpet, enn bare med 60 kast. side 11
8. Vedlegg side 12
9. Litteraturreferanser [1] http://en.wikipedia.org/wiki/mental_chronometry#types [2] Hergum, Helland, Hermansen, Digitalteknikk med kretsteknikk Laboratoriehefte, NTNU Institutt for elektronikk og telekommunikasjon, 2011, s. 37-51 [3] Digital Design and Basic Electrical Circuits part Gajski: kapittel 3.3 3.8, 4.1-4.3 side 13