A/D převodníky
Kompletní průvodce · Flash · SAR · Dual-Slope · Sigma-Delta
Úvod: Proč A/D převodníky vůbec existují?
Svět kolem nás je analogový – teplota, zvuk, tlak, napětí se mění plynule, spojitě, bez skoků. Počítače a digitální obvody ale pracují pouze s nulami a jedničkami. Existuje tedy zásadní propast mezi fyzickým světem a digitálním zpracováním. Tuto propast překlenuje A/D převodník (analogově-digitální převodník, anglicky ADC – Analog-to-Digital Converter).
Představ si teploměr, jehož výstupem je napětí – čím vyšší teplota, tím vyšší napětí. Toto napětí se mění plynule. Počítač ale nedokáže „číst" napětí přímo – potřebuje číslo. A/D převodník toto napětí změří a řekne: „toto napětí odpovídá číslu 137" – a toto číslo pak počítač zpracuje. Bez A/D převodníků by neexistovaly digitální fotoaparáty, MP3 přehrávače, měřicí přístroje, moderní medicínské přístroje ani bezdrátová komunikace.
1. Charakteristika, použití, přesnost a princip převodu
Co je charakteristika A/D převodníku?
Charakteristika A/D převodníku popisuje vztah mezi vstupním analogovým signálem (nejčastěji napětím) a výstupním digitálním číslem. Ideálně by tento vztah měl být přesně lineární – dvojnásobné napětí dává dvojnásobné číslo. V praxi ale existují odchylky.
Rozlišení
Rozlišení je nejdůležitější parametr, udávaný v bitech – typicky 8, 10, 12, 16 nebo 24 bitů. Pokud má převodník rozlišení n bitů, dokáže rozlišit 2ⁿ různých úrovní. Například 8bitový převodník rozlišuje 256 úrovní, 12bitový již 4096 úrovní. Čím více bitů, tím jemnější „kroky" a tím přesnější převod.
Nejmenší rozlišitelný krok se nazývá LSB (Least Significant Bit) a jeho velikost v napětí se vypočítá jako:
kde Uref je referenční napětí (rozsah převodníku) a n je počet bitů. Pokud máme 12bitový převodník s rozsahem 5 V, pak LSB = 5 / 4096 ≈ 1,22 mV. Převodník nedokáže rozlišit dvě napětí, která se liší o méně než 1,22 mV – zobrazí je jako stejné číslo.
Kvantizační chyba
Kvantizační chyba vzniká nevyhnutelně při každém A/D převodu. Protože převodník rozděluje spojitý rozsah napětí na konečný počet kroků, každé analogové napětí se zaokrouhlí na nejbližší digitální úroveň. Tato chyba zaokrouhlení je maximálně ±½ LSB. Je to jako měřit délku pravítkem s milimetrovými dílky – vždy zaokrouhlíš na nejbližší milimetr. Tuto chybu nelze odstranit, pouze zmenšit zvýšením rozlišení.
Kde se A/D převodníky používají?
Použití je doslova všudypřítomné. V zvukové technice mikrofon převádí zvukové vlny na napětí, A/D převodník z něj udělá digitální data. V medicíně EKG, EEG, CT skenery snímají analogové biologické signály. V průmyslové automatizaci se měří teplota, tlak, poloha, průtok. V komunikaci mobilní telefony, Wi-Fi, SDR (Software Defined Radio) převádí signály. V obrazové technice digitální fotoaparáty a skenery.
Princip převodu
Samotný proces A/D převodu se skládá z několika fází:
- Vzorkování (Sampling) – V pravidelných časových intervalech „vyfotíme" okamžitou hodnotu signálu. Platí Nyquistův–Shannonův teorém: frekvence vzorkování musí být alespoň dvojnásobek nejvyšší frekvence v signálu. Jinak dochází k aliasingu – falešné frekvence ve výsledku.
- Sample & Hold – Obvod „zmrazí" napětí po dobu převodu. Funguje jako kondenzátor, který se rychle nabije a pak je odpojen od vstupu – napětí zůstane stabilní.
- Kvantování – Zachycené napětí se porovná s diskrétními úrovněmi a přiřadí se mu nejbližší digitální hodnota. Zde nutně vzniká kvantizační chyba.
- Kódování – Výsledné číslo se zakóduje do binárního formátu a vydá na výstup.
Shannonův–Kotelnikovův teorém
Shannonův–Kotelnikovův teorém (často označovaný také jako Nyquistův–Shannonův teorém) je základní zákon digitálního zpracování signálu. Určuje, jak často musíme vzorkovat analogový signál, aby bylo možné ho přesně rekonstruovat.
kde fs je vzorkovací frekvence a fmax je nejvyšší frekvence obsažená v signálu.
Příklad: Lidské ucho slyší přibližně do 20 kHz, proto se audio signál běžně vzorkuje na 44,1 kHz (např. CD kvalita), což splňuje podmínku teorému.
2. Analogový vs. digitální signál
Analogový signál
Analogový signál je spojitý v čase i v hodnotách. „Spojitý v čase" znamená, že existuje v každém okamžiku – není to posloupnost oddělených hodnot, ale nepřetržitá křivka. „Spojitý v hodnotách" znamená, že může nabývat jakékoli hodnoty v daném rozsahu – mezi 1,5 V a 1,6 V existuje nekonečně mnoho hodnot.
Přirovnání: vodní hladina v nádrži. Výška hladiny se mění plynule – nikdy neskočí z 10 cm na 20 cm přes prázdno. Vždy prochází všemi hodnotami mezi nimi. Výhodou je věrná kopie fyzikální reality, nevýhodou je citlivost na šum.
Digitální signál
Digitální signál je diskrétní v čase i v hodnotách. Existuje jen v určitých okamžicích a může nabývat jen určitých hodnot. Binární digitální signál zná jen dvě hodnoty: 0 a 1, které odpovídají dvěma napěťovým rozsahům.
Přirovnání: schodiště. Stojíš buď na 1. schodu, nebo na 2. schodu – ne na 1,37 schodu. Obrovskou výhodou je odolnost vůči šumu a možnost přesného kopírování bez ztráty kvality.
3. Popis a funkce převodníků
Paralelní (Flash) A/D převodník
Princip
Paralelní převodník je nejjednodušší na pochopení a zároveň nejrychlejší ze všech typů. Jeho princip je přímočarý: porovnáme vstupní napětí najednou se všemi možnými referenčními úrovněmi.
Referenční napětí Uref se rozdělí pomocí odporového děliče na 2ⁿ − 1 stejných úrovní. Díky přesnému odporovému děliči je Uref rovnoměrně rozděleno na dílčí komparátory – každý dílčí odpor představuje jeden krok ULSB. Ke každé úrovni je připojen jeden komparátor, který vydá logickou 1, pokud je vstupní napětí Ux větší než jeho referenční úroveň, nebo logickou 0 v opačném případě.
Všechny komparátory pracují současně, paralelně. V jediném okamžiku se vstupní napětí porovná se všemi referenčními úrovněmi najednou. Výsledkem je tzv. termometrický kód – řetězec jedniček a nul, kde jedničky jsou dole (komparátory s nižší referencí, které jsou překonány) a nuly nahoře. Hranice mezi nimi odpovídá poloze vstupního napětí. Tento termometrický kód pak dekodér přemění na standardní binární číslo.
Výstup z komparátorů je většinou ještě přiveden na D. klopný obvod (registr) a až poté do dekodéru – to zajistí synchronizaci a správné načasování.
Kdy je komparátor 0 a kdy 1?
Pokud je Ux = 0 V, na výstupech všech komparátorů je logická „0". Pokud je Ux větší než referenční úroveň konkrétního komparátoru (Ux > Uref0,...,n), na výstupu příslušného komparátoru se objeví „1". Dekodér z tohoto vzoru jedniček a nul vytvoří finální binární výstup Y.
Tabulka stavů 3-bitového flash převodníku
Níže je úplná tabulka stavů 3-bitového flash převodníku se 7 komparátory (K1–K7) a 3-bitovým výstupem (Y3 Y2 Y1). Princip termometrického kódu je zřetelně vidět – jedničky „narůstají" zdola nahoru s rostoucím vstupním napětím.
| Ux/UREF | K7 | K6 | K5 | K4 | K3 | K2 | K1 | Y3 | Y2 | Y1 |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1/8 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
| 2/8 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
| 3/8 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 |
| 4/8 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
| 5/8 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
| 6/8 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
| 7/8 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Kaskádní zapojení (sériově-paralelní převodník)
Pro 8bitový paralelní A/D převodník by bylo zapotřebí 255 komparátorů – to je prakticky nemožné realizovat s dobrou přesností na jednom čipu (technologická náročnost výroby přesných odporů). Řešením je kaskádní (sériově-paralelní) zapojení, kde se dva převodníky nižšího rozlišení zapojí za sebou.
V kaskádním zapojení první 4bitový flash převodník (A/D₁) určí 4 nejvýznamnější bity (MSB). Jeho výsledek se převede zpět na analogové napětí přes D/A převodník (DAC), který vytvoří UDA. Zbytkové napětí UR = Ux − UDA pak zpracuje druhý 4bitový převodník (A/D₂) a určí 4 nejméně významné bity (LSB). Výsledkem je 8bitové číslo složené z obou polovin. Takové zapojení dvou 4-bitových stupňů potřebuje jen 2 × (2⁴−1) = 30 komparátorů místo 255 – obrovská úspora. Nevýhodou je delší doba převodu a nutnost mezikroku přes DAC.
Výhody a nevýhody flash převodníku
Hlavní výhodou je extrémní rychlost – převod proběhne v jediném taktu hodin, typicky za nanosekudy. Flash převodníky se používají v aplikacích vyžadujících velmi vysoké vzorkovací frekvence – digitální osciloskopy, radar, telekomunikace. Vyrábějí se především v 8–10 bitovém rozlišení, protože s každým dalším bitem se počet komparátorů zdvojí. Přesnost není moc velká kvůli technologické náročnosti výroby přesných odporů v děliči.
Kompenzační A/D převodníky
Kompenzační převodníky jsou tzv. automatické kompenzátory napětí – hledají výsledek postupně, ne najednou. Jsou nejpoužívanějším typem, jednoduché na výrobu a relativně rychlé. Místo toho, aby porovnávaly vstup se všemi úrovněmi najednou (jako flash), generují interní napětí a porovnávají ho se vstupem, dokud se dostatečně neshodují.
Všechny kompenzační převodníky mají společnou základní strukturu: D/A převodník (DAC) generuje interní referenční napětí; komparátor porovnává vstupní napětí se zpětnovazebním napětím získaným z DAC; a řídicí logika mění testovaný kód na základě výsledku komparátoru. Převod pokračuje, dokud není rozdíl minimální.
Kompenzační čítací A/D převodník
Čítací převodník se nazývá také přírůstkový nebo „převodník se stupňovitým napětím". Funguje takto: čítač je inkrementován na základě hodinových impulzů a výstupu komparátoru. Průběh jednoho převodu:
- Signál „Start převodu" – obsah čítače se vynuluje a výstup komparátoru je logická „1" (UVST > UDA = 0).
- S každým hodinovým impulzem se zvýší hodnota čítače o 1 – čímž také narůstá napětí UDA na výstupu D/A převodníku. Napětí UDA roste stupňovitě.
- Jakmile UDA ≥ UVST – výstup komparátoru se překlopí na „0", čítání se zastaví a výstup komparátoru vydá signál „konec převodu".
- Hodnota převáděného napětí je uložena v čítači (resp. v paměťové části) a vydána jako n-bitový výstup.
Proč je tento přístup pomalý? Protože vždy začíná od nuly a přičítá po jednom LSB. V nejhorším případě (vstup blízko maxima) musí projít všemi 2ⁿ kroky. Pro 12bitový převodník je to až 4096 taktů – příliš pomalé pro dynamické signály. Dobu převodu označujeme Tp.
Sledovací A/D převodník
Sledovací převodník (Tracking ADC) je přímé vylepšení čítacího. Místo toho, aby pokaždé začínal čítání od nuly, využívá obousměrný (vratný) čítač – může čítat nahoru i dolů. Průběžně sleduje pohyb vstupního signálu:
Směr čítání je řízen výstupem komparátoru – pokud je UA > Uda (vstup je větší než interní napětí DAC), čítač čítá vpřed (inkrementuje). Pokud UA < Uda, čítač čítá vzad (dekrementuje). Tento mechanismus zajišťuje, že napětí Uda neustále „sleduje" vstupní signál. Převodník tak poskytuje okamžitou hodnotu Ux.
Výhodou je rychlá reakce na malé změny – pokud se signál mění pomalu, převodník potřebuje jen 1–2 kroky na aktualizaci výsledku. Nevýhodou je, že špatně reaguje na rychlé změny signálu – při skokové změně může trvat dlouho, než sledovací převodník „dožene" novou hodnotu. Dochází k jevu slope overload. Dalším problémem jsou oscilace převodníku – pokud je vstupní napětí přesně na hranici mezi dvěma digitálními úrovněmi, čítač neustále překlápí mezi nimi.
Převodník s postupnou aproximací (SAR)
SAR převodník je nejrozšířenějším typem A/D převodníku vůbec a zaslouží si podrobné vysvětlení, protože jeho princip je geniálně elegantní. Jedná se o postupnou kompenzaci napětí od MSB po LSB.
Princip – binární vyhledávání
SAR hledá výsledek metodou půlení intervalu (binary search). Místo toho, aby procházel hodnoty od nuly, vždy testuje střed aktuálního intervalu a podle výsledku porovnání zahodí polovinu intervalu.
Přirovnání: hraješ hru „hádej číslo od 1 do 1024". Místo hádání 1, 2, 3... začneš uprostřed: „Je to víc než 512?" Každým pokusem eliminuješ přesně polovinu zbývajících možností. Pro 10bitový převodník stačí přesně 10 kroků bez ohledu na hodnotu výsledku – zásadní rozdíl oproti čítacímu převodníku, který potřebuje až 1024 kroků.
Krok za krokem
Nejdříve se vynuluje aproximační registr. Poté se MSB nastaví na „1" → D/A převodník vytvoří UDA = Uref/2. Pak se porovná: pokud je UDA > Ux, bit se zachová (nastavená „1" zůstane). Pokud je UDA ≤ Ux, bit se vynuluje. Postup se opakuje pro každý následující bit (MSB−1, MSB−2, … LSB), přičemž každý nový bit se přidává k předchozímu výsledku.
Převodník s dvojitou integrací (Dual-Slope)
Dual-slope je pomalejší, ale velmi přesný a odolný proti brumu a šumu. Analogový signál je transformován na časový interval, který je následně digitalizován. Převod je složen ze dvou fází.
Příprava: nulování čítače a vybití kondenzátoru
Před začátkem převodu se čítač vynuluje a kondenzátor integrátoru se zcela vybije (spínačem S). Tím jsou zajištěny definované počáteční podmínky.
1. fáze – integrace vstupního napětí
Signálem „start" se otevře hradlo a do čítače začnou přicházet hodinové impulzy. Zároveň je na přepínači připojeno UVST. Po konstantní dobu Tx se integruje UVST – napětí na výstupu integrátoru ui lineárně roste úměrně velikosti UVST. Obsah čítače roste konstantní rychlostí. Po naplnění čítače (přetečení) se přepne přepínač na konstantní UREF s opačnou polaritou vůči UVST.
2. fáze – integrace reference (vybíjení)
Na vstupu integrátoru je nyní konstantní napětí opačné polarity → napětí na výstupu integrátoru ui začne lineárně klesat rychlostí úměrnou velikosti UREF. Čítač se znovu nuluje a čítá příchozí impulzy od nuly po dobu TREF (dobu vybití kondenzátoru). Jakmile ui = 0, komparátor změní svůj výstup a vydá signál „stop" → hradlo se uzavře → hodnota je uložena v čítači.
Obsah čítače je úměrný době TREF, která je přímo úměrná velikosti UVST. Klíčová vlastnost: hodnoty R a C integrátoru se v rovnici vykrátily – přesnost nezávisí na přesnosti analogových součástek, jen na přesnosti UREF a hodinového signálu. Měřené napětí je tedy úměrné době druhé integrace.
Sigma-Delta (ΣΔ) převodník
Sigma-delta je nejsofistikovanější a v současnosti nejrozšířenější typ pro aplikace vyžadující vysokou přesnost a vysoké rozlišení. Je rozdělen na analogovou a digitální část:
Analogová část je jednoduchá a pomalejší – obsahuje integrátor, komparátor, zdroj UREF a obvody pro slučování analogových signálů. Digitální část je složitější a rychlá – provádí číslicovou filtraci a decimaci vzorkovaného signálu.
Základní myšlenka: přemodulace a decimace
Sigma-delta pracuje na zcela jiné filozofii. Místo toho, aby měřil každý vzorek s vysokou přesností, vzorkuje velmi rychle s nízkou přesností (extrémní případ: 1bitový výstup) a pak průměrováním a filtrací získá vysokou přesnost.
Oversampling (přemodulace): Vzorkovací frekvence je n-krát větší než fmax vstupního signálu. Klasické A/D převodníky využívají minimální vzorkovací frekvenci dle Shannon/Kotělnikov/Nyquistova teorému. Sigma-delta používá mnohem větší počet vzorků – oversampling. Kvantizační šum se tím „rozmyje" do širšího frekvenčního pásma a v pásmu zájmového signálu ho je méně.
Noise Shaping (tvarování šumu): Pomocí zpětné vazby (smyčky) se kvantizační šum aktivně přesunuje do vyšších frekvencí – mimo pásmo zájmového signálu. Signál zůstane čistý a šum je vytlačen do vysokých frekvencí.
Jak funguje modulátor uvnitř?
Na základě výstupu z komparátoru se překlápí výstup z D/A převodníku. Smyčka pracuje takto: vstupní signál X₁ vstupuje do diferenčního zesilovače (Δ – delta), který vypočte rozdíl mezi X₁ a zpětnovazebním signálem X₅ z 1-bitového DAC. Tento rozdíl je integrován (Σ – sigma). Výstup integrátoru X₃ vstupuje do 1-bitového komparátoru, který vydá „1" nebo „0". Výstup komparátoru se vrátí zpět přes 1-bitový DAC jako zpětná vazba X₅. Hustota jedniček v 1-bitovém datovém proudu odpovídá úrovni vstupního napětí – jde o PDM (Pulse Density Modulation – Pulzně-hustotní modulace).
Digitální filtr a decimace
Číslicový filtr (digitální dolní propust) potlačuje šum způsobený vzorkováním – odfiltruje přesunutý vysokofrekvenční šum, který noise shaping vytlačil nad fs/2. Na výstupu filtru jsou vícebitová data.
Decimace signálu pak redukuje délku signálu – odstraňuje vybrané vzorky (např. každý N-tý → N-krát kratší signál). Tím se vzorkovací frekvence sníží na standardní hodnotu. Typické výstupní vzorkovací kmitočty jsou 44,1 kHz / 96 kHz / 192 kHz (audio standard). Doba převodu: jednotky µs.
Srovnání všech typů A/D převodníků
| Typ | Princip | Rychlost | Rozlišení | Typické použití |
|---|---|---|---|---|
| Flash (paralelní) | Paralelní porovnání se všemi úrovněmi | Velmi rychlý řádově ns, 1 takt |
8–10 bitů | Osciloskopy, radar, telekomunikace |
| Čítací | Čítání od 0, porovnání po LSB | Pomalý až 2ⁿ taktů |
Libovolné | Jednoduché aplikace, výukové obvody |
| Sledovací | Obousměrný čítač sleduje signál | Střední závisí na změnách |
Libovolné | Pomalu se měnící signály |
| SAR (postupná aproximace) | Binární vyhledávání, n kroků | Rychlý přesně n taktů |
10–18 bitů | MCU, voltmetry, osciloskopy, průmysl |
| Dvojitá integrace (dual-slope) | Integrace vstupu + reference, měření času | Pomalý ms, jen Hz–kHz |
16–24 bitů | Multimetry, laboratorní přístroje, váhy |
| Sigma-Delta (ΣΔ) | Oversampling + noise shaping + decimace | Střední jednotky µs |
16–32 bitů | Audio technika, precizní měření, senzory |