Prevodníky ADC: Rozdiel medzi revíziami
Riadok 150: | Riadok 150: | ||
====ADCINCVR==== | ====ADCINCVR==== | ||
ADCINCVR – toto je najflexibilnejší PSoC ADC, ale taktiež vyžaduje najviac kódový priestor pre jednoduchý prevodník. Vzorkovaciu frekvenciu je možné jemne upraviť pomocou parametra CalcTime. Toto dovoľuje integráciu počas celého cyklu periodického rozsahu typicky 50-60Hz | ADCINCVR – toto je najflexibilnejší PSoC ADC, ale taktiež vyžaduje najviac kódový priestor pre jednoduchý prevodník. Vzorkovaciu frekvenciu je možné jemne upraviť pomocou parametra CalcTime. Toto dovoľuje integráciu počas celého cyklu periodického rozsahu typicky 50-60Hz | ||
+ | |||
+ | <center> | ||
+ | {|class="wikitable" | ||
+ | | align="center" width=500 | [[Súbor:ADC-4_2-ADCINCVR.jpg]] | ||
+ | |- | ||
+ | | align="center" width=500 | ADCINDVR - Bloková schéma | ||
+ | |} | ||
+ | </center> | ||
====ADCINC==== | ====ADCINC==== | ||
ADCINC – používa zosilňovač bežne spojený s Delta Sigma prevodníkmi namiesto sčítavača. Toto zachráni jeden digitálny blok a obmedzuje umiestnenie na jednoduchý prípad. Tento prevodník nie je tak ľahko nastaviteľný so zreteľom na vzorkovací kmitočet. | ADCINC – používa zosilňovač bežne spojený s Delta Sigma prevodníkmi namiesto sčítavača. Toto zachráni jeden digitálny blok a obmedzuje umiestnenie na jednoduchý prípad. Tento prevodník nie je tak ľahko nastaviteľný so zreteľom na vzorkovací kmitočet. | ||
+ | |||
+ | <center> | ||
+ | {|class="wikitable" | ||
+ | | align="center" width=500 | [[Súbor:ADC-4_1-ADCINC.jpg]] | ||
+ | |- | ||
+ | | align="center" width=500 | ADCINC - Bloková schéma | ||
+ | |} | ||
+ | </center> | ||
====DualADC==== | ====DualADC==== | ||
DualADC – Duálny ADC je rozvinutý ADCINCVR. Každý z 2 časovo synchronizovaných prevodníkov používa zvlášť integrátorový/komparátorový blok a zvlášť 8-bitový sčítavať pre nižších 6 bitov výsledku. Preto duálny ADC si vyžaduje o jeden digitálny blok naviac ako ADCINCVR. Vyššie bity prevodu vykonávajú v sčítači softvéru. Veľa z firmware v DualADC API spĺňa bit manipulovanie potrebné pre variabilné riešenie funkcie. | DualADC – Duálny ADC je rozvinutý ADCINCVR. Každý z 2 časovo synchronizovaných prevodníkov používa zvlášť integrátorový/komparátorový blok a zvlášť 8-bitový sčítavať pre nižších 6 bitov výsledku. Preto duálny ADC si vyžaduje o jeden digitálny blok naviac ako ADCINCVR. Vyššie bity prevodu vykonávajú v sčítači softvéru. Veľa z firmware v DualADC API spĺňa bit manipulovanie potrebné pre variabilné riešenie funkcie. | ||
+ | |||
+ | <center> | ||
+ | {|class="wikitable" | ||
+ | | align="center" width=500 | [[Súbor:ADC-4_4-DualADC.jpg]] | ||
+ | |- | ||
+ | | align="center" width=500 | DualADC - Bloková schéma | ||
+ | |} | ||
+ | </center> | ||
====DualADC8==== | ====DualADC8==== | ||
DualADC8 je zjednodušený DualADC. Použitím Single-byte prevodníka pre každý z 2 výsledných, šetrí kódový priestor a čas na kalkuláciu v prevode počas prevodu | DualADC8 je zjednodušený DualADC. Použitím Single-byte prevodníka pre každý z 2 výsledných, šetrí kódový priestor a čas na kalkuláciu v prevode počas prevodu | ||
+ | |||
+ | <center> | ||
+ | {|class="wikitable" | ||
+ | | align="center" width=500 | [[Súbor:ADC-4_5-DualADC8.jpg]] | ||
+ | |- | ||
+ | | align="center" width=500 | DualADC8 - Bloková schéma | ||
+ | |} | ||
+ | </center> | ||
====TrialADC==== | ====TrialADC==== | ||
TriADC je rozšírený ADCINCVR. Každý z 3 časovo synchronizovaných prevodníkoch sa používa oddelený integrátorový/komparátorový blok a oddelený 8-bitový odčítač pre nižších 6-bitov výsledku. Preto TriADC vyžaduje o 2 ďalšie digitálne bloky naviac ako ADCINCVR. Vyššie bity prevodu sú vykonávané v softvérovom sčítači. Množstvo z firmware v TriADC API implementuje bity potrebné pre variabilné riešenie funkcie. | TriADC je rozšírený ADCINCVR. Každý z 3 časovo synchronizovaných prevodníkoch sa používa oddelený integrátorový/komparátorový blok a oddelený 8-bitový odčítač pre nižších 6-bitov výsledku. Preto TriADC vyžaduje o 2 ďalšie digitálne bloky naviac ako ADCINCVR. Vyššie bity prevodu sú vykonávané v softvérovom sčítači. Množstvo z firmware v TriADC API implementuje bity potrebné pre variabilné riešenie funkcie. | ||
+ | |||
+ | <center> | ||
+ | {|class="wikitable" | ||
+ | | align="center" width=500 | [[Súbor:ADC-4_7-TriADC.jpg]] | ||
+ | |- | ||
+ | | align="center" width=500 | TriADC - Bloková schéma | ||
+ | |} | ||
+ | </center> | ||
====TrialADC8==== | ====TrialADC8==== | ||
Riadok 167: | Riadok 207: | ||
DualADC a TriADC sú obzvlášť užitočné v aplikáciách kde množstvo výsledkov musí byť premieňaných súčasne a multiplexné oneskorenie by malo za následok nepresné výsledky. Príkladom takejto aplikácie je výpočet napájania v PMoCBasic1 Referencie Design. | DualADC a TriADC sú obzvlášť užitočné v aplikáciách kde množstvo výsledkov musí byť premieňaných súčasne a multiplexné oneskorenie by malo za následok nepresné výsledky. Príkladom takejto aplikácie je výpočet napájania v PMoCBasic1 Referencie Design. | ||
+ | |||
+ | <center> | ||
+ | {|class="wikitable" | ||
+ | | align="center" width=500 | [[Súbor:ADC-4_8-TriADC8.jpg]] | ||
+ | |- | ||
+ | | align="center" width=500 | TriADC8 - Bloková schéma | ||
+ | |} | ||
+ | </center> | ||
===Delta Sigma=== | ===Delta Sigma=== | ||
Riadok 181: | Riadok 229: | ||
Druhy Delta Sigma prevodníkov: | Druhy Delta Sigma prevodníkov: | ||
− | + | ====DELSIG8==== | |
− | + | ====DELSIG11==== | |
− | + | ====DelSig==== | |
+ | |||
+ | <center> | ||
+ | {|class="wikitable" | ||
+ | | align="center" width=500 | [[Súbor:ADC-4_3-DelSig.jpg]] | ||
+ | |- | ||
+ | | align="center" width=500 | DelSig - Bloková schéma | ||
+ | |} | ||
+ | </center> | ||
Verzia zo dňa a času 20:16, 28. jún 2010
Analógovo-digitálne prevodníky
Analógovo-digitálny prevodník alebo analógovo- číslicový prevodník (ADC z anglického Analog-to-Digital Converter) je elektronické zariadenie na prevod analógového signálu na digitálny signál. Prevod analógového signálu na digitálny je využívaný pomerne často, keďže signály sa skoro výlučne analyzujú a spracovávajú číslicovo. Príkladom konkrétnych aplikácií analógovo-digitálneho prevodu sú elektronické diktafóny, mobilné telefóny, kamery s digitálnym záznamom, automatizované zberače dát v laboratóriách s následným digitálnym vyhodnotením a archiváciou nameraných dát, či plynový pedál v moderných automobiloch, ktorý už nie je spojený lankom s klapkou na prívod vzduchu, ale uhol jeho stlačenia je meraný potenciometrom, ďalej zdigitalizovaný - s následnou vypočítanou akciou klapky prívodu vzduchu, ktorá je ovládaná motorovým aktorom.
Druhy bežne používaných ADC:
- integračný, s dvojnásobnou integráciou - pomalý ale presný, používaný najmä v meracích prístrojoch
- s postupnou aproximáciou (kombinácia digitálno-analógového prevodníka, komparátora a príslušnej logiky) - stred v cene aj rýchlosti aj presnosti
- flash (najrýchlejší, sústava komparátorov a napäťových referencií)
Teória Analógovo-digitálnych prevodníkov
Pri digitalizácii analógovej informácie máme k dispozícii nespočetné množstvo metód. V nasledujúcom texte sú zhrnuté najjednoduchšie alebo naopak zložité, ale osvedčené.
Integračná metóda
Prevodníky postavené na dvojstupňovej integrácii sú najčastejšie využívané v digitálnych meracích prístrojoch. Dôvodom tohto použitia je ich presnosť a odolnosť voči starnutiu prvkov. Ich najchúlostivejšou časťou je integračný článok, ktorý však dnes dokážeme vyrobiť veľmi precízny.
![]() |
Integračná metóda |
Popis funkcie:
- v dobe T1 ne pripojené Vx, táto doba je konštantná a je daná časom zaplnenia čítača, čiže načítanie 2n inpulzov
- potom sa integrátor pripojí k Vref(má opačnú polaritu ako Vx), nastáva pokles a táto doba končí, keď výstupné napätie prechádza nulou a komparátor dá povel na ukončenie prevodu
- doba T2 je merítkom veľkosti signálu Vx a meria sa počtom impulzov, ktoré čítač načíta v tejto dobe
- na začiatku konverzie je spínač S1 krátko zopnutý a na výstupe integrátoru je nulové napätie, ako náhle sa otvorí na výstupe narastá napätie so strmosťou
[math]\left[\frac{dV_1}{dt}\right]_{behom T_1}=\frac{V_x}{RC}[/math]
- po načítaní 2n impulzov sa čítač nuluje, spínač S1 sa prepne na Vref a na výstupe integrátora bude napätie klesať so strmosťou
[math]\left[\frac{dV_1}{dt}\right]_{behom T_2}=-\frac{V_{ref}}{RC}[/math]
- pritom sa čítajú hodinové impulzy až do nulového napätia na výstupe integrátora, ich počet je daný vzťahom
[math]M=|-V_x|\frac{2^n}{V_{ref}}[/math]
Metóda využitia medziprevodu napätia na frekvenciu
Prevodníky pracujúce na princípe prevodu U na f sa skladajú zo štyroch základných častí:
- prevodník napätia na frekvenciu......jednoduchý napätím preladiteľný oscilátor, obvod s využívajúci integrátor
- generátor hodinového signál
- komparačné AND hradlo
- čítač frekvencie
![]() |
Metóda využitia medziprevodu napätia na frekvenciu |
Popis funkcie:
- najprv sa prevedie napätie na frekvenciu
- potom sa signál s frekvenciou závislou na vstupnom napätí privedie na porovnávacie AND hradlo
- na druhý vývod tohto hradla sa privedie hodinový signál
- na výstupe sa objaví výsledok, ktorý čítač navzorkuje a podá ďalej
Pozn. pri prevode U na f sa najčastejšie využívajú integrátory, preto by bolo možné zaradiť aj tento ADC medzi integračné;
Aproximačná metóda
Aproximačné prevodníky, v literatúre tiež ako kompenzačné alebo prevodníky s postupnou aproximáciou, sú v podstate spätno-väzbové systémy, ktoré autonómne generujú signál a ten následne porovnávajú so vstupným. Pohybujú sa v binárnom strome, odkiaľ čerpajú digitálne kombinácie potrebné kombinácie ako vzory pre generovanie analógového signálu.
![]() |
Aproximačná metóda |
Popis funkcie:
- na začiatku je register postupných aproximácií vynulovaný
- v prvom kroku je do neho zapísaná 1 ako najvyšší bit a ostatné sú nulové
- vygeneruje sa signál(zodpovedajúci 100...0) a ten sa porovná so vstupným
- podľa výsledku porovnania sa rozhodne o platnosti 1 alebo nahradení 0, ak je vstupný signál nižšej úrovne
- tento proces pokračuje pokiaľ sa nenavzorkuje daný počet bitov
- vzorkovanie sa v podstate stáva pohybom po binárnom strome úrovne rovnej rozlíšeniu aproximácie
Pozn. pohyb po binárnom strome možností je na nasledujúcom obrázku;
![]() |
Aproximačná metóda - pohyb po bipolárnom strome |
Pozn. výhoda tohto prevodníku je jeho rýchlosť, pretože na navzorkovanie N bitov potrebuje N hodinových inpulzov, čo je značné zníženie počtu voči integračnému, ktorý ich potreboval 2N
Metóda založená na sledovaní vstupného signálu
Prevodníky založené na tejto technológii sú podobné aproximačným prevodníkom, avšak nepoužívajú zložitú pamäť. Pamäť je nahradená vratným čítačom.
Popis funkcie:
- prevodník sa skladá z troch častí: komparátor, vratný čítač, n-bit DA prevodník
- signál z DA prevodníka a vstup sú privedené na vstup komparátora
- výstup komparátora je pripojený na vratný čítač, ktorý sa podľa neho inkrementuje alebo dekrementuje
- jeho hodnota je výstupom a zároveň opravným signálom, ktorý vstupuje do DA a následne do komparátora
Pozn. jeho rýchlosť je značne obmedzená neschopnosťou vykonať náhle skoky, mnohým aplikáciám však plne vyhovuje, kvôli vyhladenému a spojitému výstupu
Metóda paralelného vzorkovania
Prevodníky využívajúce túto metódu sú najrýchlejšími prevodníkmi, pretože dokážu navzorkovať celé binárne slovo naraz. Ich funkcia je založená na rozložení úrovne vstupného signálu na rezistorovom rade. Napätie je snímané na každom spoji dvoch rezistorov a je vpodstate opakom paralelného A/D prevodníka. Z toho vyplýva aj jeho najväčšia nevýhoda, čo je konštrukčná zložitosť. Na n-bitov totiž treba 2n-1 komparátorov a 2n rezistorov. Aj napriek tomu sa kvôli svojej rýchlosti často používajú. Pozn. nasledujúci obrázok je hrubá schéma jeho stavby
![]() |
Metóda paralelného vzorkovania |
ADC prevodníky v PSoC
Poznáme 3 základné druhy ADC prevodníkov implementovaných v PSoC
- Postupná aproximácia registra (SAR - Successive Approximation Register)
- Prídavný
- Delta Sigma
Postupná aproximácia registra (SAR)
SAR je zložený z komparátora a DAC prevodníka, ako je vidieť na obrázku.
![]() |
SAR ADC Bloková schéma |
Na začiatku prevádzacieho cyklu, je DAC nastavený na polovičnú veľkosť a porovnanie je uskutočnené medzi VIN a výstupom DAC. V každom krokom je DAC aktualizovaný, nasledujúci bit vybratý následne porovnaný s hodnotami DAC pomocou binárneho vyhľadávania. Tento typ prevodníka je rýchly, ale používa 100% PSoC CPU pri konverzii a vyžaduje mať stabilný vstup po celú dobu premeny. Čo sa týka SAR ADC prevodníkov, je to robené len na vzorke a má okruh, ktorý nie je k dispozícii a ešte nie je zahrnutý v PSOC.
Prídavný
Prídavné prevodníky používajú integrátor, komparátor a pár referencií ako je na obrázku (Prírastkový ADC - Bloková schéma). Vstup je integrovaný v jednej fáze cyklu. 1 pár príslušnej časti je potom integrovaný v opačnom smere v 2. fáze cyklu. Výber príslušnej súčiastky, je pozitívne alebo negatívne riadený komparátorom a vždy integrovaný späť k nule. Počet cyklov, v ktorých je porovnávaný výstup pozitívny sa započítava do digitálneho výsledku. To je algoritmus zodpovedajúci dvojakej stupnici ADC.
![]() |
Prírastkový ADC - Bloková schéma |
Prírastkový ADC vytvára 2n porovnaní aby vytvorilo n-bitovú konverziu. Prevodník integruje signál počas tvorenia vzorky. Toto má za dôsledok vyčlenenie časového úseku vysokofrekvenčného zvuku. Všetky PSoC prírastkové prevodníky sú taktované 4x na vzorkovaciu frekvenciu; čítač a časovač musia sedieť s rozdeľovačom 4-fázového hodinového generátora v analógovom stĺpci. PSoC prírastkové prevodníky sú dostupné v niekoľkých variantoch:
ADCINC12
ADCINC12 je časovaný na 4-krát vzorkovací kmitočet a potrebuje 14-bitový časovač a 14-bitový sčítavač, aby sa mohla uskutočniť 12-bitová konverzia. Prvé 2 bity oboch – časovač aj sčítač udržujú v rovnováhe rozdeľovač. Dva digitálne bloky vykonávajú nižších 8 bitov časovača a nižších 6 bitov sčítača. Vyšších 6 bitov časovača a sčítača je vykonávaných softvérom na prerušenie činnosti.
ADCINC14
ADCINC14 – používa o 2 časové bloky naviac než ADCIN12. Toto umožňuje aby 16-bitová časová funkcia bola uskutočnená bez softvéru na prerušenie činnosti, s vylúčením možnosti prerušujúcich latentných chýb.
ADCINCVR
ADCINCVR – toto je najflexibilnejší PSoC ADC, ale taktiež vyžaduje najviac kódový priestor pre jednoduchý prevodník. Vzorkovaciu frekvenciu je možné jemne upraviť pomocou parametra CalcTime. Toto dovoľuje integráciu počas celého cyklu periodického rozsahu typicky 50-60Hz
![]() |
ADCINDVR - Bloková schéma |
ADCINC
ADCINC – používa zosilňovač bežne spojený s Delta Sigma prevodníkmi namiesto sčítavača. Toto zachráni jeden digitálny blok a obmedzuje umiestnenie na jednoduchý prípad. Tento prevodník nie je tak ľahko nastaviteľný so zreteľom na vzorkovací kmitočet.
![]() |
ADCINC - Bloková schéma |
DualADC
DualADC – Duálny ADC je rozvinutý ADCINCVR. Každý z 2 časovo synchronizovaných prevodníkov používa zvlášť integrátorový/komparátorový blok a zvlášť 8-bitový sčítavať pre nižších 6 bitov výsledku. Preto duálny ADC si vyžaduje o jeden digitálny blok naviac ako ADCINCVR. Vyššie bity prevodu vykonávajú v sčítači softvéru. Veľa z firmware v DualADC API spĺňa bit manipulovanie potrebné pre variabilné riešenie funkcie.
![]() |
DualADC - Bloková schéma |
DualADC8
DualADC8 je zjednodušený DualADC. Použitím Single-byte prevodníka pre každý z 2 výsledných, šetrí kódový priestor a čas na kalkuláciu v prevode počas prevodu
![]() |
DualADC8 - Bloková schéma |
TrialADC
TriADC je rozšírený ADCINCVR. Každý z 3 časovo synchronizovaných prevodníkoch sa používa oddelený integrátorový/komparátorový blok a oddelený 8-bitový odčítač pre nižších 6-bitov výsledku. Preto TriADC vyžaduje o 2 ďalšie digitálne bloky naviac ako ADCINCVR. Vyššie bity prevodu sú vykonávané v softvérovom sčítači. Množstvo z firmware v TriADC API implementuje bity potrebné pre variabilné riešenie funkcie.
![]() |
TriADC - Bloková schéma |
TrialADC8
TriADC8 - je zjednodušený TriADC. Použitím single-byte prevodníka pre každý z dvoch výsledkov sa šetrí značná časť kódového priestoru a výpočetného času v prevode.
DualADC a TriADC sú obzvlášť užitočné v aplikáciách kde množstvo výsledkov musí byť premieňaných súčasne a multiplexné oneskorenie by malo za následok nepresné výsledky. Príkladom takejto aplikácie je výpočet napájania v PMoCBasic1 Referencie Design.
![]() |
TriADC8 - Bloková schéma |
Delta Sigma
Delta Sigma ADC prevodníky využívajú rovnakú integračnú/komparačnú topológiu ako prírastkový prevodník. Skôr než sa integruje porovnávací výstup, komparátor spracovaním vytvorí decimator, ako je znázornené na obrázku. Decimator dvojako integruje vstup pri vzorkovacom kmitočty. Výstup dvojako integruje pri rôznych rýchlostiach (typicky 1 / 64 krát vzorkovacia frekvencia) a odpočíta od posledného výstupu hodnotu, toto prinesie diferenciál. Diferenciálny proces sa opakuje stále.
![]() |
Delta Sigma ADC - Bloková schéma |
Druhy Delta Sigma prevodníkov:
DELSIG8
DELSIG11
DelSig
![]() |
DelSig - Bloková schéma |