ADC-ji so ključni za pretvorbo vseh vrst analognih signalov v digitalne, toda kako dejansko delujejo?

Ključni zaključki

  • ADC se pogosto uporabljajo za pretvorbo analognih signalov, kot sta zvok in svetloba, v digitalne vrednosti, ki se lahko uporabljajo v različnih aplikacijah.
  • Hitrost vzorčenja ADC določa število odčitkov na sekundo, pri čemer višje hitrosti vzorčenja omogočajo natančnejšo predstavitev signala.
  • Bitna hitrost ADC vpliva na kakovost dobljenega vzorca, pri čemer več bitov povzroči bolj gladke in natančne meritve. Različne vrste ADC ponujajo različne kompromise glede hitrosti, natančnosti in porabe energije.

Analogno-digitalni pretvorniki (ADC) so neverjetno uporabni za pretvarjanje resničnih pojavov v vrednosti, ki jih lahko uporabimo v programskih projektih. Toda kako lahko ADC pretvori analogne signale v digitalne, ki jih lahko uporabljamo kjer koli?

Za kaj se uporabljajo ADC?

ADC-je boste našli skoraj povsod. So na vašem telefonu in pretvorijo vaš glas v niz binarnih vrednosti. So v vašem avtu in merijo vrtenje vaših koles. So v osciloskopih, pomagajo zajeti signale in jih predstaviti. Vendar pa jih bo večina ljudi uporabljala v svetu videa in zvoka, kjer je dostop svetlobe in zvoka v digitalni prostor temeljnega pomena.

Kaj je stopnja vzorčenja? Kako hitrost vzorčenja vpliva na ADC?

Ena najbolj kritičnih glavnih meritev ADC je stopnja vzorčenja: število odčitkov vsako sekundo.

Zelo zmogljiv osciloskop lahko sprejme deset milijard vzorcev na sekundo. Pogumni mali MCP3008 ADC zmore razmeroma skromnih dvesto tisočakov. V avdio svetu je tipična hitrost vzorčenja 44.100 na sekundo (44,1 kHz).

Več vzorcev kot vzamemo, natančneje lahko predstavimo signal. Včasih je to bistveno; včasih pa ni. Recimo, da gradimo fader banko (narejeno za krmiljenje elektronike, kot bi jo videli na mizi za razsvetljavo ali zvok) z nekaj ducati potenciometri. V tem primeru se vrednosti, ki jih moramo izmeriti, verjetno ne bodo spreminjale milijonkrat na sekundo, saj se naši prsti ne morejo premikati tako hitro. Potrebujemo le dovolj vzorcev, da bo rezultat gladek in odziven.

Kaj je bitna hitrost? Ali bitna hitrost vpliva na kakovost ADC?

Pomisliti moramo tudi na kakovost vzorca, ki ga dobimo. To je v veliki meri določeno z bitno hitrostjo, ki nam pove, koliko stanj vklopa in izklopa lahko uporabimo za digitalno predstavitev napetosti. Več bitov kot imamo, več možnih vrednosti lahko posnamemo v katerem koli vzorcu in bolj gladek in natančen je končni rezultat.

Pisali smo o binarni obliki in o tem, kako deluje, tako da če niste prepričani, je to dobro mesto za začetek. Koliko bitov potrebujemo? Spet je odvisno od tega, kaj poskušamo doseči. Včasih smo morda omejeni s protokolom, ki ga uporabljamo. Na primer, protokol MIDI 1.0 je omejen na sedembitne (in občasno štirinajstbitne) vrednosti. V drugih primerih je lahko omejevalni dejavnik človeško dojemanje. Če večja zvestoba ne povzroči opaznega izboljšanja rezultata, se morda ne splača.

Kako multipleksiranje izboljša kakovost ADC?

Priljubljeni ADC čipi, kot je ADS1115 in MCP3008 ponuja veliko vložkov. Toda pod pokrovom v resnici vsebujejo samo en ADC. To je mogoče zaradi multiplekserjev, vgrajenih v te naprave. Multiplekserji so absolutno povsod v svetu elektronike in telekomunikacij. So digitalna stikala, ki delujejo kot nadzor prometa za vaš ADC. ADC lahko vzorči en kanal, nato naslednjega in nato naslednjega. Torej, če imate osem kanalov in hitrost vzorčenja 200.000, se lahko vrtite po vseh in vzamete 25.000 vzorcev na kanal.

Katere vrste ADC obstajajo?

ADC delujejo na različne načine, odvisno od stroškov in zahtevanih zmogljivosti.

A Flash ADC deluje preko zelo zapletenega napetostnega delilnika. Banka uporov razdeli referenčno napetost na stopnje, ki se nato testirajo glede na vhod prek banke primerjalnikov. Flash ADC-ji so bliskovito hitri, vendar so glede bitne globine omejeni zaradi števila potrebnih primerjalnikov. Iz istega razloga so tudi lačni energije.

A Podrazpon ADC skuša izravnati te slabosti z razdelitvijo dela med dve ločeni enoti: ena za grobo določitev napetosti in nato druga za natančno določitev. Z razdelitvijo stvari lahko zmanjšamo število primerjalnikov. Nekateri ADC-ji podrazredov bodo delo razdelili na tri stopnje, z vgrajenim popravljanjem napak.

SAR (Register zaporednega približevanja) ADC-ji opravljajo svoje delo prek neke vrste binarno iskanje. Recimo, da imamo osem bitov za zapolnitev. SAR se bo začel pri 10000000, kar je srednja vrednost (00000000 je spodnja vrednost in 11111111 je najvišja). Če napetost preseže to srednjo točko, bo SAR ohranil skrajno levo številko kot 1; če se ne, bo SAR skrajno levo številko nastavil na 0. Postopek lahko ponovimo z naslednjo števko in tako naprej rekurzivno. To bo povzročilo, da se ugibana vrednost postopoma premika proti dejanski vrednosti:

Na ta način nenehno zožujemo iskanje, razdelimo možnosti na pol in sprašujemo, ali je rezultat višji ali nižji od sredine. V tem primeru je vrednost nekje med 0 in 255; po nekaj ponovitvah je ADC ugotovil, da je okoli 77.

Sigma-delta pretvornike je verjetno najtežje razumeti. Uporabljajo se za visoko natančne glasbene aplikacije in aplikacije za merjenje signala. Delujejo tako, da prevzorčijo signal in izpopolnijo rezultat z uporabo hudičevo zapletenega filtriranja in matematike. Ta postopek učinkovito zmanjša hitrost vzorčenja, hkrati pa poveča natančnost. Ti ADC-ji so odlični, ko sta hrup in natančnost pomembnejša od hitrosti.

Končno imamo Vključevanje ADC, ki so celo počasnejši od sigma-delta. Delujejo s pomočjo kondenzatorja, s stopnjo napolnjenosti katerega lahko določimo vhodno napetost. Hitrost vzorčenja je tukaj pogosto sinhronizirana z napajalno frekvenco, kar se lahko uporabi za čim manjši hrup.

Kaj je Nyquist-Shannonova teorija?

Recimo, da želimo analogni signal opisati digitalno. Da bi to naredili, potrebujemo vsaj dve točki za vsak dani cikel: eno na vrhu in eno na dnu. Tako mora biti naša frekvenca vzorčenja vsaj dvakrat večja od najvišje frekvence, ki jo pričakujemo za merjenje.

To je znano kot Nyquistova frekvenca po švedsko-ameriškem fiziku Harryju Nyquistu. Teorija je poimenovana po Nyquistu in Claudu Shannonu (izjemna matematika in kriptografa), ne pa po Edmundu Whittakerju, ki je prišel na idejo pred obema.

Komurkoli pripisujemo teorijo, je s tem problem. Nemogoče je vnaprej vedeti, kdaj bosta prišla zgornji in spodnji del valovne oblike. Kaj če vzamemo naše vzorce na sredini vhodne valovne oblike? Opazujte, kako lahko premik v dohodnem signalu popolnoma izravna naš zajeti rezultat:

Ali celo halucinirati nove valovne oblike, ki prej sploh niso obstajale:

Te halucinacije so znane kot vzdevki.

Težava z vzdevki

Verjetno ste seznanjeni z iluzijo "kolesa vagona", ki se včasih pojavi, ko posnamete vrteči se predmet. Zdi se, kot da se kolesa na avtomobilu ali lopatice na helikopterju vrtijo nazaj – le zelo počasi. V nekaterih primerih se lahko rezila povsem ustavijo (z odkrito čudnimi rezultati – oglejte si spodnji video!).

Med igranjem starejše video igre ste morda tudi opazili, da vzporedne črte včasih povzročijo čudne artefakte zvijanja. Ograje, stopnišča in črtasti skakalci začnejo videti zelo nenavadno. Kaj pa tisti čudni žvižgajoči zvoki, ki jih včasih slišite, ko nekoga poslušate govoriti prek digitalne povezave slabe kakovosti? To je distorzija, vendar posebna vrsta distorzije. Kaj je z vsemi temi grdimi frekvencami, ki izhajajo iz hrupa? Če poslušate harmonično bogato vsebino, kot je komplet bobnov, je učinek še bolj očiten – še posebej v visokem razredu.

Če razumete vzrok enega od teh, ste na dobri poti, da razumete vse. V primeru kolesa vagona fiksna hitrost sličic pomeni, da ne moremo pravilno zajeti gibanja. Če se nekaj zavrti za 350° vsak okvir, je povsem naravno zaznati, da se je dejansko premaknilo nazaj za 10°. Z drugimi besedami, ni dovolj informacij, da bi verodostojno predstavili, kaj se dogaja. Vzorci, ki jih jemljemo, niso usklajeni s tem, kar poskušamo izmeriti.

To ni težava, ki je značilna samo za analogno-digitalno pretvorbo. V mnogih od teh primerov pretvarjamo eno vrsto digitalnega signala v drugo.

Torej, kaj je rešitev? Več jih je. Lahko bi uporabili poseben filter za obravnavo teh artefaktov, kar počne veliko ADC pod pokrovom. Ali pa lahko vzamemo veliko, veliko več vzorcev, kot jih potrebujemo. Več vzorcev kot vzamemo, bolj natančna postane slika valovanja:

Vzorec z višjo kakovostjo za najboljše rezultate

Če se vam zdijo te stvari zanimive, je dobra novica ta, da smo se komaj potopili v to temo. Tukaj je veliko globin: ADC so izjemno zapleteni.

Toda z vidika končnega uporabnika ali povprečnega navdušenca nad Arduinom so tudi zelo preprosti. Napetosti vstopijo in številke pridejo ven. Torej, karkoli že želite izmeriti – naj bo to vsebnost vlage v zaplati prsti, nihanje človeški glasovni predal ali tok fotonov, ki se lomi skozi lečo – obstaja velika verjetnost, da obstaja ADC, ki bo opravil služba.