ISSN 0351-6652 Letnik 27 (1999/2000) Številka 5 Strani 270-274 Jože Pahor: ANALOGNO DIGITALNA PRETVORBA Ključne besede: fizika, računalništvo, elektronika, pretvorniki, prevajalniki. Elektronska verzija: http://www.presek.si/27/1416-Pahor.pdf © 2000 Društvo matematikov, fizikov in astronomov Slovenije © 2010 DMFA - založništvo ANALOGNO DIGITALNA PRETVORBA Računalniki delajo z digitalnimi podatki. Pogovarjajo se z besedami, kot so 10010000 ali 11001100. Tega jezika ne razumemo, zato imamo tipkovnico, ki, denimo, pritisk na tipko A spremeni v vzorec ali besedo 01000001, številko 1 pa v vzorec 00110001. Kar se v računalniku dogaja pomembnega za nas, pove računalnik prek zaslona. Tudi tja pošilja računalnik sporočila v svojem jeziku. Tipkovnico in zaslon smo si oblikovali po meri, da bi nam bilo komuniciranje čim laže. Tipkovnica prevaja naše znake v sporočila, ki jih razume računalnik, monitor pa napravi računalnikova sporočila razumljiva nam. Marsikdaj pa si želimo, da bi bil računalnik bolj vsestranski. Namesto da bi se pogovarjal le z nami, bi se morda sam ozrl naokoli. Zakaj bi mu vtipkovali, da je temperatura v sobi 18° C? Ce zna danes vsak računalnik sam pogledati na koledar in na uro, zakaj ne bi gledal še na termometer? Ura in koledar sta v računalnik že vgrajena; morda termometra, barometra ali kakšnega drugačnega merilnika res ne gre vgrajevati v prav vsak računalnik, marsikdaj pa bi nam prišlo prav, da bi znal računalnik tudi meriti. Naučimo ga! Potrebujemo torej merilnik temperature. Običajni termometer ne bo dober, saj računalnik ne zna prebrati, do kje se je v cevki povzpelo živo srebro. Bolj pripraven bo termometer z električnim izhodom. Termometer LM335, kapsula s tremi žicami, ki ga. lahko poceni kupimo, daje npr, na izhodu po 10 mV za vsako stopinjo nad absolutno ničlo. Pri sobni temperaturi 20° C, kar je 293 K, bo na izhodu napetost 2930 m V ali 2,93 V. Pravimo, da je naša meritev analogna. Napetost, ki jo daje čutilo, oponaša merjeno količino. V našem primeru je to temperatura. S takim podatkom računalnik nima kaj početi, zalo potrebujemo enoto, ki prevede napetost v ustrezni vzorec euic in ničel. Enoti pravimo ana-logno-digitalni pretvornik, postopku pa analogno-digitalna pretvorba. Tak pretvornik kaže slika 1. Vhodni signal je v našem primeru 2,93 V, vzorec Slika. 1. Električni termometer LM335 daje napetost '¿.93V kot odgovor na temperaturo 293K. Analogno digitalni pretvornik odgovori Li vzorcem 010. Računalništvo 271 lil 110 101 100 uu 010 001 000 Slika 2. Odzivi pretvornika na različne vhodne napetosti. 010, kar po dogovoru s slike 2 ustreza napetosti od 2 do 3 V, pa se pojavi na treh izhodnih žicah.1 Vzorec, ki ga sestavljajo le trije zaporedni dvojiški podatki, je kratek, S tremi biti, kar pomeni največ trimestna dvojiška števila, seveda temperature ne moremo posebno natančno izraziti. Imamo le osem možnosti, s katerimi povemo številke od 0 do 7. Za večjo natančnost boino potrebovali več bitov: osem, deset, morda celo štirinajst. Kaj je v škatlici z napisom analogno-digitalni pretvornik? Čeprav ne obvladamo elektronike, nas vseeno zanima, kako pretvarjamo analogne signale v digitalne. Rešitev je cela kopica. Oglejmo si prvo! Imamo neznano napetost Ux; ob začetku meritve pa ustvarimo enakomerno rastočo napetost U(t), kot kaže slika 3. Sprožimo uro štopa-rico in čakamo, da sta obe napetosti enaki. Cim večja je neznana napetost UT, tem dlje traja, da rastoča napetost doseže napetost Ux, in tein več naštejemo do trenutka, ko se izenačita. Rezultat štetja, ki ga dobimo v digitalni obliki, recimo 7 ali 12, je kar digitalni zapis napetosti Ux. Ker pa moramo rezultat povedati računalniku, štejemo dvojiško: 0000, 0001. 0010, 0011 itd. Imamo torej idejo za prvi pretvornik, ne vemo pa še, kako bi ga uresničili s pomočjo elektronike. Škatla, ki je analogno-ti igi t al ni pretvornik, bo najbrž vsebovala več povezanih manjših škatel, od katerih bo vsaka opravljala razmeroma preprosto nalogo. Potrebujemo generator sunkov, ki se ponavljajo v enakomernih presledkih. Takemu generatorju pravimo običajno ura (slika 4). Sunke prešteva dvojiški števec, kadar mu to velimo. V ta namen ima števec poleg števnega vhoda tudi kontrolni vhod. Slika '.i. Prešteli smo do 13, preden je napetost U(t) dosegla Ux. 1 0 in 1 so le simbolični zapisi električnih signalov. Na žici, kjer je signal 0, bi lahko izmerili napetosti od 0 do 0,3 V; na žici, kjer je signal 1, pa bi bile napetosti od 3 do 5 V. Kadar je, vzemimo, kontrolni vhod pri napetosti nič, števec šteje, kadar pa je na kontrolnem vhodu napetost, ki pomeni logično 1. števec miruje. Kdaj naj števec šteje, oz. kdaj naj počiva, odloča vezje, ki mu pravimo komparator. To je neke vrste tehtnica, ki primerja napetosti Ux in U(i) in pove, katera od njiju je večja. Komparator se torej obnaša kot zelo občutljiva lekarniška tehtnica: Če je ena stran le slika 4- Analogno digitalni pretvornik sestavlja malo težja od druge, se sko- več Pogostejših enot. delica na težji strani prevesi do tal, kjer obsedi (slika 5). Slika 5. Komparator primerja U(t) in Ux: a) U(t) več kot UXl b) U(t) le malo več kot U;r, c) U(t) enako Ux, d) I/(i) manj kot Ux. Naša analogno-digitalna pretvorba traja precej manj kot pa opis. Kljub temu je fizikom marsikdaj predolga. Čas pretvorbe je odvisen od tega, kako hitro zmoremo šteti. Ce je perioda ure tisoči nko sekunde in če bi radi svoje analogne rezultate prevedli v trimestno decimalno število (kar ustreza deset bitnemu dvojiškemu številu), potem traja pretvorba celo sekundo. Seveda je lahko ura dosti hitrejša, saj so elektronski števci hitrejši od nas. Najhitrejši pretvornik, ki je deloval na opisani način, je uporabljal uro s frekvenco 450 MHz. Pretvorba, ki je dajala do štirinajst bitne rezultate, pa je trajala okoli 40 milijonin sekunde. Marsikdaj je to predolgo. Kako skrajšati čas pretvorbe? Poglejmo še enkrat svojo metodo. Pri iskanju neznanega števila x smo odgovarjali na zaporedna vprašanja: je x manjši od ena. je x manjši od dve, je x manjši od tri.., Pri velikih x je bilo iskanje odgovora dolgotrajno. Hitrejša pot do neznanega števila Je x (ki naj bo tu kvečjemu 15) je naslednja. Najprej si osvežimo, kaj pomeni binarni zapis 0110. Naše število 0110 ne oilO -premore osmice, sestavljata ga pa štirica in dvojka, ravno tako ne vsebuje nobene enice (slika 6): Je B □ 0110 = 0-8 + 1-4+ 1 -2 + 0-1. Slika 6. Vzorcc 0110 je navodilo, kako sestavimo število 6 iz gradnikov, vrednih 1, 2, 4 in 8. Spet bomo skušali sestavo neznanega števila dognati tako, da zastavljamo vprašanja. Začeli bomo z o srnico. Je x večji ali enak 8? Če je odgovor pritrdilen, si zapomnimo, da neznano število vsebuje osmico. Naše neznano število je ne vsebuje. Na vprašanje, ali je x večji ali enak 4, je odgovor pritrdilen. Število x torej vsebuje 4. Zdaj dodamo štirici dvojko in se vprašamo, ali je x večji ah enak 6, Ob pritrdilnem odgovoru si zapomnimo, da število £ vsebuje tudi 2. Dodamo 1 in vprašamo, ali je x večji ah enak 7. Če ni, ne vsebuje 1. Nizu pritrdilnih in ni kalnih odgovorov priredimo niz enic in ničel. Rezultat je binarni zapis neznanega števila x. Če na opisani način raziskujemo sestavo majhnih števil, ne ohčutimo prednosti. A pri številu do 1023 opravimo že z desetimi vprašanji, medtem ko jih je treba pri prvi metodi v povprečju 512. Kako elektronik porabi opisani recept za pretvorbo, si bomo ogledali morda kdaj drugič. Štirinajst bitni pretvorniki, ki delajo po novem receptu, opravijo pretvorbo v štirili do šestih mikrosekundah. Ti pretvorniki pa še zdaleč niso najhitrejši. Pri obeh dosedanjih pretvornikih smo reševali nalogo z vrsto zaporednih vprašanj eni enoti. Morda pa lahko skrajšamo pretvorbo tako, da naslovimo vsa vprašanja hkrati množici enot? Če neznano napetost Ux pokažemo sedmim komparatorjem, ki so nastavljeni na zaporedne nivoje od 1 do 7 voltov (slika 7), dobimo vseh sedem odgovorov istočasno. V našem primeru, ko je vrednost neznane napetosti 5,3 V, spodnjih pet komparatorjev pove, da je neznana napetost večja, zgornja dva pa, da ni večja. Ko pripišemo potrdilnim odgovorom vrednost 1, nikalnim pa vrednost 0, je skupek odgovorov 1111100, 274 Računalništvo Novo število pa ni posebno prikladno -predolgo je. Tega se zavemo dosti bolj, če si predstavljamo osem bitni pretvornik, kjer bi se v odgovoru zvrstile najprej eniee, ki jim slede ničle; vseli skupaj 255. Do mnogo krajšega dvojiškcga zapisa bi prišli, če bi prešteli vse enice. Vendar bi tako spet izgubili čas, ki smo ga pridobili. Do sem je trajala pretvorba namreč le 5 do 10 nanosekund (5 ■ 10~9 s). Poiskati bo treba drugačno rešitev. Potrebujemo prevajalnik, ki bo prevajal sedem bitne vzorce v tri bitne: U =7V 0000000 1000000 naj da naj da 000 001 in 1111111 naj da 111, Prevajalnik bo škatla, v katero bo vodilo sedem žic, iz nje pa tri (slika 8). Seveda pa s tremi biti ne bomo zadovoljni, osmih bi bili bolj veseli. Kaj pa nam ponuja tržišče? Trudimo se, da spravimo čim več v eno samo integrirano vezje. Tako je naš novi analogno-digitalni pretvornik drobceno vezje, ki vsebuje vse naštete elemente, to je 255 komparatorjev, uporovno verigo in prevajalnik. Celotno osem bitno pretvorbo opravi v 20 do 30 ns (20 do 30 ■ 10"9 s). Smo s tem prišli do konca? Ne! Spoznali smo le načela, po katerih delajo nekateri analogno-digi talni pretvorniki. Kako napraviti števec, kako napraviti komparator, kako sestaviti prevajalnik, ki prevaja dolge vzorce v binarna števila - o tem pa morda kdaj drugič. Ux = 5,3 V D 0 D 0 D £ Slika 7, Vezje v eni sapi pove, da je neznana napetost večja od 5 V, pa manjša od 6 V. PRETVORNIK 1 D 1 Slika 8. Prevajalnik, ki prevaja, dolge vzorce v binarna števila. Jože Pahor