Як відбувається перетворення аналогового сигналу в цифровий

В електроніці сигнали ділять на: аналогові, дискретні та цифрові. Почнемо з того, що все, що ми відчуваємо, бачимо, чуємо в більшості своїй є аналоговим сигналом, а то, що бачить процесор комп’ютера – це цифровий сигнал. Звучить не зовсім зрозуміло, тому давайте розбиратися з цими визначеннями і з тим як один вид сигналів перетворюється в інший.

типи сигналів

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

Для людини «холодно» може бути по різному, це і осіння прохолода і зимовий мороз, і легкі заморозки, але не завжди «холодно» це негативна температура, як і «тепло» – не завжди позитивна температура.

Звідси випливає, що у аналогового сигналу дві особливості:

1. Безперервність у часі.

2. Число величин сигналу прагне до нескінченності, тобто аналоговий сигнал можна точно поділити на частини або проградуювати, розбивши шкалу на конкретні ділянки. Способи вимірювання – засновані на одиниці вимірювань, і їх точність залежить лише від ціни поділки шкали, чим вона менша, тим точніше вимір.

дискретні сигнали – це сигнали, які представляють собою послідовність звітів або вимірювань будь-якої величини. Вимірювання таких сигналів не безупинні, а періодичні.

Спробую пояснити. Якщо ви встановили термометр де-небудь він вимірює аналогову величину – це випливає з вищеописаного. Але ви, фактично стежачи за його показаннями, отримуєте дискретну інформацію. Дискретний – значить окремий.

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

цифрові сигнали – це набір рівнів, типу 1 і 0, високий і низький, є чи ні. Глибина відображення інформації в цифровому вигляді обмежена розрядністю цифрового пристрою (набору логіки, мікроконтролера, процесора etc.) Виходить що для зберігання бульових даних він підходить ідеально. Приклад, можна навести такий, для хранений даних типу «День» і «Ніч», досить 1 біта інформації.

біт – це мінімальна величина подання інформації в цифровому вигляді, в ньому може зберігатися тільки два типи значень 1 (логічна одиниця, високий рівень), або 0 (логічний нуль, низький рівень).

В електроніці біт інформації представляється у вигляді низького рівня напруги (близьке до 0) і високого рівня напруги (залежить від конкретного пристрою, часто збігається з напругою живлення даного цифрового вузла, типові значення – 1.7, 3.3. 5В, 15В).

Всі проміжні значення між прийнятими низьким і високим рівнем є перехідною областю і можуть не володіти конкретним значенням, залежно від схемотехніки, як пристрою в цілому, так і внутрішньої схеми мікроконтролера (або будь-якого іншого цифрового пристрою) можуть мати різний перехідний рівень, наприклад для 5 -тівольтовой логіки за нуль можуть прийматися значення напруги від 0 до 0.8В, а за одиницю від 2В до 5В, при цьому проміжок між 0.8 і 2В – це невизначена зона, фактично з її допомогою відділяється нуль від одиниці.

Чим точніші і ємні значення потрібно зберігати, тим більше потрібно біт, наведемо таблицю-приклад з відображенням в цифровому вигляді чотирьох значень часу доби:

Ніч – Ранок – День – Вечір

Для цього нам потрібно вже 2 біта:

Аналогово-цифрове перетворення

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

Таке перетворення потрібно для взаємодії цифрової техніки з навколишнім середовищем.

Так як аналоговий електричний сигнал повторює своєю формою вхідний сигнал, він не може бути записаний в цифровому вигляді «так як є» оскільки він має нескінченне число значень. Прикладом можна привести процес запису звуку. Він в первинному вигляді виглядає так:

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

Тепер спробуйте це уявити у вигляді набору типу «111100101010100», досить складно, чи не так?

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

Як відбувається перетворення?

Спочатку подивіться на схему типового перетворення аналогового сигналу в цифровий і назад. Пізніше ми до неї повернемося.

Фактично це складний процес, який складається з двох основних етапів:

1. Дискретизація сигналу.

2. Квантування за рівнем.

Дискретизація сигналу це визначення проміжків часу, на яких вимірюється сигнал. Чим коротше ці проміжки – тим точніше вимір. Періодом дискретизації (Т) називається відрізок часу від початку зчитування даних до його кінця. Частота дискретизації (f) – це зворотна величина:

fд = 1 / Т

Після зчитування сигналу відбувається його обробка і збереження в пам’ять.

Виходить, що за час, який зчитуються і обробляються показання сигналу, він може змінитися, таким чином, відбувається перекручування вимірюваної величини. Є така теорема Котельникова та з неї випливає таке правило:

Частота дискретизації повинні бути як мінімум в 2 рази більше ніж частота діскретізіруемого сигналу.

Це скріншот з вікіпедії, до витягу з теореми.

Для визначення чисельного значення необхідно квантування за рівнем. Квант – це певний проміжок вимірюваних значень, усереднено приведений до певного числа.

X1 … X2 = Xy

Тобто сигнали величиною від X1 до X2, умовно прирівнюється до певного значення Xy. Це нагадує ціну поділки стрілочного вимірювального приладу. Коли ви знімаєте показання, часто ви їх дорівнювала по найближчій позначці на шкалі приладу.

Так і з квантуванням за рівнем, чим більше квантів, тим точніші вимірювання і тим більше знаків після коми (сотих, тисячних і так далі значень) вони можуть містити.

Точніше сказати число знаків після коми швидше визначається розрядністю АЦП.

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

Справа показано квантування сигналу, і запис у вигляді двох біт даних. Як бачите, цей фрагмент сигналу розбитий уже на чотири значення. Виходить, що в результаті плавний аналоговий сигнал перетворився в цифровий «ступінчастий» сигнал.

Кількість рівнів квантування визначається за формулою:

Де n – кількість розрядів, N – рівень квантування.

Ось приклад сигналу розбитого на більше число квантів:

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

На цій картинці зображено перетворення аналогового сигналу в цифровий вигляд, а зліва від осі ординат (вертикальної осі) запис в цифровому 8-бітному вигляді.

Аналогово-цифрові перетворювачі

АЦП або Аналогово-цифровий перетворювач може виконуватися у вигляді окремого пристрою або бути вбудованим в мікроконтролер.

Раніше в мікроконтролери, наприклад сімейства MCS-51, не містили в своєму складі АЦП, використовувалася для цього зовнішня мікросхема і виникала необхідність писати підпрограму обробки значень зовнішньої ІМС.

Зараз вони є в більшості сучасних мікроконтролерів, наприклад AVR AtMEGA328, який є основою більшості популярних плат Ардуіно, він вбудований в сам МК. Мовою Arduino читання аналогових даних здійснюється просто – командою AnalogRead (). Хоча в процесорі, який встановлений в тій же не менш популярною Raspberry PI його немає, так що не все так однозначно.

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

Найстарішим запатентованим варіантом АЦП, є патент Paul M. Rainey, «Facsimile Telegraph System,” U.S. Patent 1,608,527, Filed July 20, 1921, Issued November 30, 1926. Це 5-ти бітний АЦП прямого перетворення. З назви патенту приходять думки про те, що використання цього приладу було пов’язано з передачею даних через телеграф.

Якщо говорити про сучасних АЦП прямого перетворення мають наступну схему:

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

Хто не сильний, то вхідні ланцюг працює таким чином:

Аналоговий сигнал надходить на вхід «+», на все відразу. На виходи з позначенням «-» надходить опорна напруга, яке розкладається за допомогою ланцюжка резисторів (резистивного дільника) на ряд опорних напруг. Наприклад, ряд для цього ланцюга виглядає на зразок такого співвідношення:

Urefi = (1/16, 3/16, 5/16, 7/16, 9/16, 11/16, 13/16) * Uref

У дужках через кому зазначено, яку частину від загального опорного напруги Uref подають на вхід кожного вхідного напруги.

Тобто кожен з елементів має два входи, коли напруга на вході зі знаком «+» перевищує напругу на вході зі знаком «-», то на його виході з’являється логічна одиниця. Коли на позитивному (неінвертуючому) вході напруга менше, ніж на негативно (инвертирующем), то на виході – нуль.

Напруга ділитися таким чином, щоб вхідна напруга розбити на потрібну кількість розрядів. При досягненні напруги на вході на виході відповідного елемента з’являється сигнал, схема обробки виводить «правильний» сигнал в цифровому вигляді.

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

Однак є величезний недолік паралельних ланцюгів – це необхідність великого числа компараторів, для отримання АЦП високої розрядності. Щоб отримати, наприклад 8 розрядів, потрібно 2 ^ 8 компараторів, а це цілих 256 штук. Для десятирозрядних (в Ардуіно 10-розрядний АЦП, до речі, але іншого типу) потрібно 1024 компаратора. Судіть самі про доцільність такого варіанту обробки, і де він може знадобитися.

Є й інші види АЦП:

  • послідовного наближення;

  • дельта-сигма АЦП.

висновок

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

Знання принципів перетворення обов’язково для всіх хто працює з мікроконтролерами, адже не в кожній навіть сучасній системі вбудовані такі перетворювачі, доводиться використовувати зовнішні мікросхеми. Для прикладу можна навести таку плату, розроблену спеціально під GPIO-роз’єм Raspberry PI, з прецизійним АЦП на ADS1256.

Олексій Бартош

Ссылка на основную публикацию