Какво представляват ADC (аналогово-цифрови преобразуватели) и как работят?

Ключови изводи

  • ADC се използват широко за преобразуване на аналогови сигнали, като звук и светлина, в цифрови стойности, които могат да се използват в различни приложения.
  • Честотата на дискретизация на ADC определя броя на показанията, направени за секунда, като по-високите честоти на дискретизация позволяват по-точно представяне на сигнала.
  • Битрейтът на ADC влияе върху качеството на получената проба, като повече битове водят до по-плавни и по-прецизни измервания. Различните типове ADC предлагат различни компромиси по отношение на скорост, прецизност и консумация на енергия.

Аналогово-цифровите преобразуватели (ADC) са невероятно полезни за превръщане на явления от реалния свят в стойности, които можем да използваме в проекти за програмиране. Но как ADC може да преобразува аналогови сигнали в цифрови, които можем да използваме навсякъде?

За какво се използват ADC?

Ще намерите ADC почти навсякъде. Те са на телефона ви и преобразуват гласа ви в низ от двоични стойности. Те са в колата ви и измерват въртенето на колелата ви. Те са в осцилоскопите, помагат за улавянето на сигнали и представянето им. И все пак, мястото, където повечето хора ще са ги използвали, е светът на видео и аудио, където навлизането на светлина и звук в дигиталното пространство е фундаментално.

Какво е честота на извадка? Как честотата на дискретизация влияе на ADC?

Един от най-критичните основни показатели на ADC е честотата на дискретизация: броят на показанията, направени всяка секунда.

Осцилоскоп от много висок клас може да вземе десет милиарда проби в секунда. Смелият малък ADC MCP3008 може да поеме сравнително скромните двеста хиляди. В аудио света честотата на дискретизация от 44 100 за секунда (44,1 kHz) е типична.

Колкото повече проби вземем, толкова по-точно можем да представим сигнала. Понякога това е от съществено значение; понякога не е. Да кажем, че изграждаме фейдър банка (предназначена да контролира електрониката, както бихте видели на осветление или аудио бюро) с няколко дузини потенциометри. В този случай стойностите, които трябва да измерим, е малко вероятно да се променят милиони пъти в секунда, тъй като пръстите ни не могат да се движат толкова бързо. Просто се нуждаем от достатъчно проби, за да бъде резултатът плавен и отзивчив.

  Създавайте отзивчиви уебсайтове със системата за управление на съдържанието SiteSupra

Какво е битрейт? Влияе ли битрейтът на качеството на ADC?

Трябва да помислим и за качеството на пробата, която получаваме. Това до голяма степен се определя от битрейта, който ни казва колко състояния на включване и изключване можем да използваме за цифрово представяне на напрежението. Колкото повече битове имаме, толкова повече възможни стойности можем да запишем във всяка дадена проба и толкова по-плавен и прецизен е крайният резултат.

Писали сме за двоичния код и как работи, така че ако не сте сигурни, това е добро място да започнете. Колко бита са ни необходими? Отново зависи от това какво се опитваме да постигнем. Понякога може да сме ограничени от протокола, който използваме. Например, протоколът MIDI 1.0 е ограничен до седем-битови (и понякога четиринадесет-битови) стойности. В други случаи ограничаващият фактор може да бъде човешкото възприятие. Ако повишената точност не доведе до осезаемо подобрение на резултата, може да не си струва.

Как мултиплексирането подобрява качеството на ADC?

Популярни ADC чипове като ADS1115 и на MCP3008 предлагат много входове. Но под капака те наистина съдържат само един ADC. Това е възможно благодарение на вградените в тези устройства мултиплексори. Мултиплексорите са абсолютно навсякъде в света на електрониката и телекомуникациите. Те са цифрови превключватели, които действат като контрол на трафика за вашия ADC. ADC може да вземе проби от един канал, след това от следващия и след това от следващия. Така че, ако имате осем канала и честота на семплиране от 200 000, можете да се въртите през всички тях, като вземете 25 000 семпъла на канал.

Какви видове ADC има?

ADC работят по различни начини в зависимост от цената и необходимите възможности.

Flash ADC работи чрез много сложен делител на напрежение. Банка от резистори разделя референтното напрежение на стъпки, които след това се тестват спрямо входа чрез група от компаратори. Флаш ADC са светкавично бързи, но са ограничени, когато става дума за битова дълбочина поради броя на необходимите компаратори. Те също са жадни за власт по същата причина.

ADC с подгрупа се стреми да компенсира тези слабости, като разделя работата между две отделни единици: една за грубо изчисляване на напрежението и след това втора за прецизно изчисляване. Като разделяме нещата, можем да намалим броя на компараторите. Някои подгрупови ADC ще разделят работата на три етапа, с вградена корекция на грешки по пътя.

  Сигурността на блокчейн, обяснена с прости думи

SAR (Регистър на последователно приближение) ADC вършат работата си чрез един вид двоично търсене. Да предположим, че имаме осем бита за попълване. SAR ще започне от 10000000, което е средната стойност (00000000 е долната, а 11111111 е горната). Ако напрежението надхвърли тази средна точка, SAR ще запази най-лявата цифра като 1; ако не стане, SAR ще зададе най-лявата цифра на 0. Можем да повторим процеса със следващата цифра и така нататък рекурсивно. Това ще накара предполагаемата стойност постепенно да се придвижи към действителната стойност:

По този начин ние непрекъснато стесняваме търсенето, като разделяме възможностите наполовина и питаме дали резултатът е по-висок или по-нисък от средната точка. В този случай стойността е някъде между 0 и 255; след няколко итерации ADC установи, че е около 77.

Сигма-делта преобразувателите са може би най-трудните за разбиране. Използват се за високопрецизни музикални и измервателни приложения. Те работят чрез свръхсемплиране на сигнал и прецизиране на резултата с помощта на дяволски сложно филтриране и математика. Този процес ефективно намалява честотата на дискретизация, като същевременно увеличава прецизността. Тези ADC са страхотни, когато шумът и прецизността са по-важни от скоростта.

И накрая, имаме интегриращи ADC, които са дори по-бавни от сигма-делта тези. Те работят с помощта на кондензатор, чиято скорост на зареждане може да се използва за определяне на входното напрежение. Честотата на дискретизация тук често се синхронизира с честотата на захранването, което може да се използва за поддържане на шума до абсолютен минимум.

Какво е теория на Найкуист-Шанън?

Да кажем, че искаме да опишем цифрово аналогов сигнал. За да направим това, имаме нужда от поне две точки за всеки даден цикъл: една отгоре и една отдолу. Следователно нашата честота на вземане на проби трябва да бъде поне два пъти по-висока от най-високата честота, която очакваме да измерим.

Това е известно като честотата на Найкуист, на името на шведско-американския физик Хари Никвист. Теорията е кръстена на Никвист и Клод Шанън (изтъкнат математик и криптограф), но не и на Едмънд Уитакър, който излезе с идеята преди двамата.

На когото и да приписваме теорията, в нея има проблем. Невъзможно е да се знае предварително кога горната и долната част на вълната ще пристигнат. Какво ще стане, ако вземем нашите проби по средата на входящата форма на вълната? Наблюдавайте как промяна във входящия сигнал може напълно да изравни нашия уловен резултат:

  Как да промените тапета и темата на вашия Google Chromebook

Или дори халюцинирайте нови вълнови форми, които дори не са съществували преди:

Тези халюцинации са известни като псевдоними.

Проблемът с псевдонимите

Вероятно ще сте запознати с илюзията за „колелото на каруцата“, която понякога възниква, когато се заснеме въртящ се обект. Колелата на автомобил или лопатките на хеликоптер изглежда се въртят назад – само много бавно. В някои случаи остриетата може да спрат напълно (с откровено странни резултати – вижте видеото по-долу!).

Докато играете на по-стара видео игра, може също да сте забелязали, че успоредните линии понякога създават странни изкривяващи се артефакти. Огради, стълбища и раирани джъмпери започват да изглеждат наистина много странно. Или какво ще кажете за онези странни свистящи звуци, които понякога получавате, когато слушате някой да говори по цифрова връзка с лошо качество? Това е изкривяване, но особен вид изкривяване. Какво е с всички тези грозни честоти, излизащи от шума? Ако слушате хармонично богато съдържание, като барабанен комплект, ефектът е още по-очевиден – особено във високия клас.

Ако разберете причината за едно от тях, вие сте на път да разберете всички тях. В случая с колелото на вагона фиксираната честота на кадрите означава, че не можем да уловим правилно движението. Ако нещо се завърта на 350° всеки кадър, съвсем естествено е да се усети, че всъщност е преместено назад с 10°. С други думи, няма достатъчно информация, за да представи вярно какво се случва. Пробите, които вземаме, не са подравнени с това, което се опитваме да измерим.

Това не е проблем, който е уникален за аналогово-цифровото преобразуване. В много от тези случаи ние преобразуваме един вид цифров сигнал в друг.

И така, какво е решението? Има няколко. Можем да приложим специален филтър, за да се справим с тези артефакти, което правят много ADC под капака. Или можем да вземем много, много повече проби, отколкото са ни необходими. Колкото повече проби вземем, толкова по-точна става нашата картина на вълната:

Проба с по-добро качество за най-добри резултати

Ако намирате подобни неща за интересни, добрата новина е, че едва сме навлезли в тази тема. Тук има много дълбочини: ADC са изключително сложни.

Но от гледна точка на крайния потребител или на средния ентусиаст на Arduino, те също са много прости. Влизат напрежения и излизат числа. Така че, каквото и да искате да измерите – независимо дали е съдържанието на влага в парче почва, трептенията на човешка гласова кутия или поток от фотони, пречупващи се през леща – шансовете са добри, че има ADC, който ще направи работа.