Що таке АЦП (аналогово-цифрові перетворювачі) і як вони працюють?

Основні моменти

  • Аналого-цифрові перетворювачі (АЦП) відіграють важливу роль у перетворенні аналогових сигналів, наприклад, звуку чи світла, на цифрові дані, придатні для різноманітних застосувань.
  • Частота дискретизації АЦП визначає кількість вимірювань, які здійснюються за одиницю часу, і її збільшення дозволяє отримати більш точне відображення сигналу.
  • Розрядність АЦП впливає на якість вихідних даних, причому більша кількість бітів забезпечує більш згладжені та точні вимірювання. Існують різні типи АЦП, що відрізняються за швидкістю, точністю та енергоефективністю.

Аналого-цифрові перетворювачі (АЦП) є надзвичайно важливими для конвертації реальних фізичних явищ у цифровий формат, який можна використовувати в програмуванні. Але як саме АЦП перетворюють аналогові сигнали на цифрові, придатні для різноманітних застосувань?

Сфери застосування АЦП

АЦП використовуються практично скрізь. Вони є в ваших смартфонах, трансформуючи ваш голос у послідовність двійкових чисел. Вони присутні в автомобілях, вимірюючи обертання коліс. Також вони використовуються в осцилографах для фіксації та відображення сигналів. Найбільш поширеним є їх застосування у відео- та аудіотехніці, де перетворення аналогових сигналів у цифровий формат є основою.

Поняття частоти дискретизації та її вплив на роботу АЦП

Одним з ключових показників АЦП є частота дискретизації, тобто кількість вимірювань, що здійснюються за секунду.

Висококласні осцилографи можуть робити до десяти мільярдів вимірювань за секунду, тоді як простіший АЦП MCP3008 обмежується відносно невеликими двомастами тисячами. У звукозапису зазвичай використовується частота дискретизації 44 100 вимірювань за секунду (44,1 кГц).

Чим більше вимірювань ми робимо, тим точніше відтворюємо сигнал. У деяких ситуаціях це критично, а в інших — ні. Наприклад, у створенні панелі фейдерів для керування електронікою, де використовується кілька десятків потенціометрів, значення не будуть змінюватися мільйони разів за секунду, оскільки пальці рухаються не так швидко. Достатня кількість вимірювань тут необхідна для плавного та чутливого результату.

Вплив розрядності на якість АЦП

Важливим є також якість отриманого вимірювання. Вона визначається розрядністю, яка показує, скільки станів (включено або вимкнено) використовується для цифрового відображення напруги. Більша розрядність дає змогу записувати більше можливих значень для кожного вимірювання, що робить результат точнішим та плавнішим.

Раніше ми розглядали двійковий код та його принципи, тому, якщо є неясність, варто переглянути цю тему. Яка розрядність потрібна? Це залежить від цілей. Іноді є обмеження, пов’язані з протоколами, наприклад, MIDI 1.0, який обмежується семибітовими (а інколи й чотирнадцятибітовими) значеннями. В інших випадках обмеженням може бути людське сприйняття. Якщо підвищена точність не дає помітного покращення результату, то вона може бути зайвою.

Мультиплексування та його роль у покращенні якості АЦП

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

Види АЦП

АЦП функціонують різними способами, вибір яких залежить від вартості та необхідних параметрів.

Flash ADC використовують складний подільник напруги. Масив резисторів ділить опорну напругу на дискретні значення, які порівнюються з вхідною напругою через компаратори. Flash ADC є дуже швидкими, але їх розрядність обмежена кількістю необхідних компараторів. Вони також мають високе енергоспоживання через ту ж причину.

Піддіапазонні АЦП зменшують недоліки Flash ADC, розподіляючи роботу між двома блоками: перший виконує приблизну оцінку напруги, а другий її уточнює. Завдяки такому розподілу, кількість компараторів зменшується. Деякі піддіапазонні АЦП розділяють процес на три етапи з вбудованою корекцією помилок.

SAR (Регістр послідовного наближення) АЦП працюють за принципом двійкового пошуку. Для прикладу, маючи вісім бітів для заповнення, SAR починає зі значення 10000000, що є серединою між мінімальним 00000000 та максимальним 11111111. Якщо напруга більша за це середнє значення, SAR залишає крайній лівий біт як 1, інакше він стає 0. Цей процес повторюється для наступних бітів рекурсивно, поступово наближаючи значення до фактичного:

Таким чином, пошук постійно звужується, розділяючи діапазон можливостей навпіл і визначаючи, чи є результат вищим чи нижчим за середину. У цьому випадку значення лежить між 0 та 255, і після кількох ітерацій АЦП визначив, що воно приблизно 77.

Сигма-дельта перетворювачі є складнішими для розуміння. Вони використовуються для високоточних вимірювань у музиці та обробці сигналів. Їх робота полягає в передискретизації сигналу та покращенні результату шляхом складної фільтрації та математичних операцій. Цей процес зменшує частоту дискретизації, водночас підвищуючи точність. Такі АЦП ідеальні там, де шум і точність важливіші за швидкість.

Нарешті, є інтегруючі АЦП, які є ще повільнішими за сигма-дельта. Вони використовують конденсатор, швидкість зарядки якого визначає вхідну напругу. Частота дискретизації тут синхронізується з частотою живлення, що мінімізує шум.

Теорема Найквіста-Шеннона

Для цифрового відтворення аналогового сигналу потрібно щонайменше дві точки на кожен цикл: одна у верхній, а інша в нижній точці. Отже, частота дискретизації має бути щонайменше вдвічі вищою за найвищу частоту, яку потрібно виміряти.

Це відомо як частота Найквіста, названа на честь шведсько-американського фізика Гаррі Найквіста. Теорія названа на честь Найквіста та Клода Шеннона (математика та криптографа), хоча Едмунд Віттакер сформулював її раніше за них обох.

Проблема полягає в тому, що неможливо точно визначити, де буде верхня та нижня точки сигналу. Що, якщо вимірювання відбуваються посередині вхідного сигналу? Зверніть увагу, як зміна вхідного сигналу може вплинути на кінцевий результат:

Або навіть створювати галюцинації у вигляді нових хвиль, яких не було:

Ці галюцинації називаються псевдонімами.

Проблема псевдонімів

Ви, ймовірно, знайомі з ілюзією “колеса вагона”, коли обертовий об’єкт виглядає так, ніби він рухається назад. У деяких випадках він може навіть зупинитися (що виглядає досить дивно).

У старих відеоіграх ви могли помічати дивні артефакти спотворення на паралельних лініях, таких як паркани, сходи та смугасті об’єкти. А як щодо дивних свистячих звуків, які іноді чути через поганий цифровий зв’язок? Це спотворення особливого виду. Також не слід забувати про неприємні шуми. Якщо ви слухаєте контент з багатими гармоніками, наприклад, ударну установку, ефект стає ще більш очевидним, особливо на високих частотах.

Зрозумівши причину одного з цих ефектів, ви зрозумієте й інші. У випадку з колесом вагона, фіксована частота кадрів не дозволяє правильно відобразити рух. Якщо щось повертається на 350° кожного кадру, виникає враження, що воно повернулося назад на 10°. Іншими словами, недостатньо інформації для достовірного відтворення того, що відбувається. Вимірювання не відповідають тому, що намагаються виміряти.

Ця проблема характерна не тільки для аналого-цифрового перетворення. У багатьох випадках відбувається перетворення одного цифрового сигналу в інший.

Як вирішити цю проблему? Є кілька підходів. Можна застосувати спеціальний фільтр, як це роблять багато АЦП. Або можна робити набагато більше вимірювань, ніж потрібно. Чим більше вимірювань ми робимо, тим точніше відтворюється хвиля:

Зразок з вищою якістю для найкращих результатів

Якщо ця тема вас зацікавила, то слід зазначити, що це лише початок. АЦП є надзвичайно складними пристроями.

Однак для звичайного користувача або ентузіаста Arduino вони досить прості. Напруга подається на вхід, а на виході отримуються цифрові значення. Отже, що б ви не хотіли виміряти, чи то вологість ґрунту, коливання голосових зв’язок або потік фотонів через лінзу, є велика ймовірність, що АЦП впорається з цим завданням.