Разрядность ацп что это
Раскладываем по полочкам параметры АЦП
Привет, Хабр! Многие разработчики систем довольно часто сталкиваются с обработкой аналоговых сигналов. Не все манипуляции с сигналами можно осуществить в аналоговой форме, поэтому требуется переводить аналог в цифровой мир для дальнейшей постобработки. Возникает вопрос: на какие параметры стоит обратить внимание при выборе микроконтроллера или дискретного АЦП? Что все эти параметры означают? В этой статье постараемся детально рассмотреть основные характеристики АЦП и разобраться на что стоит обратить внимание при выборе преобразователя.
Введение
Рис. 1: Идеальная характеристика АЦП
Статические параметры
Рис. 4: Дифференциальная нелинейность
Рис. 5: Интегральная нелинейность
Динамические параметры
Наглядно данное выражение продемонстрированно на рисунке 7.
Рис. 7: Отношение сигнал/шум
Для оценки SNR АЦП при разработке системы можно воспользоваться следующей формулой:
Первые 2 слагаемых учитывают уровень сигнала и ошибку квантования (нужно понимать, что формула верна для сигнала размаха полной шкалы). Третье слагаемое учитывает эффект передискретизации (выигрыш по обработке или processing gain): если полоса обрабатываемого сигнала (BW Свойство переноса спектра при дискретизации
Рис 12: дискретизация непрерывного сигнала
По фильтрующему свойству дельта-функции:
После дискретизации :
где
С помощью формулы Релея вычислим спектр:
Из этого выражения следует что спектр сигнала будет повторяться во всех зонах Найквиста.
Итак, если есть хороший антиэлайзинговый фильтр, то соблюдая критерий Найквиста, можно оцифровывать сигнал с частотой дискретизации намного ниже полосы АЦП. Но использовать субдискретизацию нужно осторожно. Следует учитывать, что динамические параметры АЦП деградируют (иногда очень сильно) с ростом частоты входного сигнала, поэтому оцифровать сигнал из 6-й зоны так же «чисто», как из 1-й не получится.
Несмотря на это субдискритезация активно используется. Например, для обработки узкополосных сигналов, когда не хочется тратиться на дорогой широкополосный быстродействующий АЦП, который вдобавок имеет высокое потребление. Другой пример – выборка ПЧ (IF-sampling) в РЧ системах. Там благодаря undersampling можно исключить из радиоприемного тракта лишнее аналоговое звено — смеситель (который переносит сигнал на более низкую несущую или на 0).
Сравним архитектуры
На данный момент в мире существует множество различных архитектур АЦП. У каждой из них есть свои преимущества и недостатки. Не существует архитектуры, которая бы достигала максимальных значений всех, описанных выше параметров. Проанализируем какие максимальные параметры скорости и разрешения смогли достичь компании, выпускающие АЦП. Также оценим достоинства и недостатки каждой архитектуры (более подробно о различных архитектурах можно прочитать в статье на хабр).
Тип архитектуры | Преимущества | Недостатки | Максимальное разрешение | Максимальная частота дискретизации |
flash | Быстрый преобразователь. Преобразование осуществляется в один такт. | Высокое энергопотребление. Ограниченное разрешение. Требует большой площади кристалла ( | 14 бит 128 КВыб/с AD679 | 3 бит 26 ГВыб/с HMCAD5831 |
folding-interpolated | Быстрый преобразователь. Преобразование осуществляется в один такт. Требует меньшее число компараторов благодаря предварительной «свёртке» всего диапазона обработки в некоторый более узкий диапазон. Занимает меньше площади. | Ошибки, связанные с нелинейностью блока свёртки. Задержка на установление уровней в блоке свёртки, которая уменьшает максимальную fs. Среднее разрешение. | 12 бит 6.4 ГВыб/с ADC12DL3200 | 12 бит 6.4 ГВыб/с ADC12DL3200 |
SAR | Высокая точность. Низкое энергопотребление. Легка в использовании. | Ограниченная скорость. | 32 бит 1 МВыб/с LTC2500 | 10 бит 40 МВыб/с XRD64L43 |
pipeline | Быстрый преобразователь. Самая высокая точность среди быстрых АЦП. Не занимает большую площадь. Имеет меньшее потребления, среди аналогичных быстрых преобразователей. | Конвейерная задержка. | 24 бит 192 КВыб/с AK5386 | 12 бит 10.25 ГВыб/с AD9213 |
dual-slope | Средняя точность преобразования. Простота конструкции. Низкое потребление. Устойчивость к изменениям факторов внешней среды. | Обрабатывает низкочастотные Сигналы (низкая fs). Посредственное разрешение. | 12+знаковый бит 10 Выб/с TC7109 | 5+знак бит 200 КВыб/с HI3-7159 |
∑-Δ | Самая высокая точность пре- Образования благодаря эффекту «Noise shaping» (специфическая фильтрация шума квантования) и передискретизации. | Не может работать с широкополосным сигналом. | 32 бита 769 КВыб/с AK5554 | 12 бит 200МВыб/с ADRV9009 |
Информацию для таблицы брал на сайте arrow, поэтому если что-то упустил поправляйте в комментариях.
Что такое АЦП
АЦП применяется в цифровой технике. В частности, почти все современные микроконтроллеры имеют встроенный АЦП.
Как вы уже наверняка знаете, микропроцессоры (как и компьютерные процессоры) не понимают ничего, кроме двоичных чисел. Из этого следует, что микропроцессор (который является основой любого микроконтроллера) не может напрямую обработать аналоговый сигнал.
Для того, чтобы объяснить это микропроцессору, который, как мы помним, понимает только двоичные числа, используется АЦП, который, как я уже сказал, преобразует аналоговый сигнал в двоичный код. Далее в общих чертах рассмотрим работу АЦП.
Принцип работы АЦП
Итак, мы узнали, что АЦП преобразует аналоговый сигнал в цифровой. Но как он это делает?
Итак, первым делом АЦП должен преобразовать аналоговый сигнал в дискретный. Для чего это нужно?
А как же, например, напряжение 4,3 В? Да никак. Оно просто округляется, и АЦП преобразует его в число 4. Этот простой пример отображён на рисунке ниже.
Расскажу и об этом, но сначала о разрядности АЦП.
Разрядность АЦП
Это значит, что измеряемый диапазон (сигнал на входе АЦП или на аналоговом входе микроконтроллера) мы можем разбить на 256 значений. Таким образом мы можем определить точность измеряемого значения, которую может обеспечить данный АЦП. Сделать это можно по формуле:
Например, если у нас 8-разрядный АЦП, и мы хотим измерять напряжение в диапазоне 0. 255В, то точность измерений будет:
256 / 2 8 = 256 / 256 = 1 В
Если же мы хотим измерять напряжение с этим же АЦП в диапазоне 0. 15В, то точность измерений будет:
16 / 2 8 = 16 / 256 = 0,0625 В
Из этого следует, что для того, чтобы повысить точность, требуется либо сузить диапазон измеряемых значений, либо повысить разрядность АЦП. Например:
256 / 212 = 256 / 4096 = 0,0625 В
То есть 12-разрядный АЦП обеспечит уже довольно высокую точность даже при измерении сигналов с относительно большим диапазоном значений.
АЦП микроконтроллера обычно измеряет только напряжение в диапазоне от 0 до напряжения питания микроконтроллера.
Характеристики АЦП
Все эти характеристики описаны в документации на АЦП (если он выполнен в виде отдельной микросхемы) или в документации на микроконтроллер (если АЦП встроен в микроконтроллер).
Кроме разрядности, о которой мы уже говорили, можно назвать ещё несколько основных характеристик.
1 LSB = 1 / 2 8 = 1 / 256 = 0,004 В
Иными словами, эта характеристика определяет, насколько “кривой” может быть линия на графике выходного сигнала, которая в идеале должна быть прямой (см. рис.).
Абсолютная точность. Также измеряется в LSB. Иными словами, это погрешность измерения. Например, если эта характеристика равна +/- 2 LSB, а LSB = 0,05 В, то это означает, что погрешность измерений может достигать +/- 2*0,05 = +/- 0,1В.
Есть у АЦП и другие характеристики. Но для начала и этого более чем достаточно.
Подключение АЦП
АЦП в основном измеряют напряжение.
Попробую рассказать о том (в общих чертах), как подключить аналоговый датчик к АЦП и как потом разобраться с теми значениями, которые будет выдавать АЦП.
Если температурный датчик имеет стандартный выход, то, как правило, напряжение (или ток) на выходе датчика изменяется по линейному закону. То есть мы можем легко определить, какое напряжение будет на выходе датчика при заданной температуре.
Определить напряжение по температуре визуально можно по графику (см. рис. выше). Но микроконтроллер глаз не имеет (хотя, конечно, можно поразвлекаться и создать устройство на микроконтроллере, способное распознавать образы и определять значение температуры по напряжению на графике, но оставим эти развлечения фанатам робототехники)))
То есть в шкалу от 0 до 1 нам надо впихнуть диапазон от 0 до 200 (всего 201).
Находим коэффициент преобразования:
К = U / Tд = 1 / 200 = 0,005 (1)
Теперь у нас есть все необходимые данные, чтобы в программе микроконтроллера преобразовать значение на выходе АЦП в значение температуры.
Мы помним, что мы сместили диапазон температур на 50 градусов. Это надо учитывать при преобразовании значения на выходе АЦП в температуру.
А формула будет такая:
Например, если на выходе АЦП 0,5 В, то
Теперь нам надо определить дискретность, то есть желаемую точность измерений.
Как вы помните, абсолютная погрешность может составлять несколько LSB. К тому же ещё существуют нелинейные искажения, которые обычно равны 0,5 LSB. То есть общая погрешность АЦП может доходить до 2-3 LSB.
В нашем случае это:
Uп = 3 LSB * 0,005 = 0,015 В
Если в вашем случае не так всё гладко, то снова используем формулу, выведенную из (1):
Тд = Uп / K = 0,015 / 0,005 = 3
Если погрешность в 3 градуса вас устраивает, то можно ничего не менять. Ну а если нет, то придётся подобрать АЦП с большей разрядностью либо подыскать другой датчик (с другим температурным диапазоном или с другим выходным напряжением).
Тогда абсолютная погрешность будет:
Тд = Uп / K = 0,015 / 0,01 = 1,5 градуса.
Это уже более-менее приемлемо. Ну а если у вас будет датчик с выходом 0. 5В (это тоже стандартный сигнал), то
А абсолютная погрешность будет:
Тд = Uп / K = 0,015 / 0,05 = 0,3 градуса.
Это уже вообще ништяк.
Но! Не забывайте, что здесь мы рассматриваем только погрешность АЦП. Но и у самого датчика тоже есть погрешность, которую также надо учитывать.
Но всё это уже из области электроники и метрологии, поэтому данную статью я здесь и закончу.
А в конце на всякий случай приведу формулу обратного преобразования температуры в напряжение:
Разрядность АЦП
Помню тот день, как сейчас. Мне дали ответственное задание: надо было написать программу для трубообточного станка на плк SIEMENS S1200. И так как это была моя первая программа, то у меня возникли трудности, о которых я расскажу в данной статье. В данной статье речь пойдёт о таком понятии, как Разрядность АЦП.
Что такое АЦП
Это аналого-цифровой преобразователь.
Контроллеры воспринимают информацию в двоичной системе. Т.е. всю информацию он переводит в комбинации, которые состоят из двух цифр 0 и 1 (цифровой сигнал).
Если с дискретными входами всё понятно. Пришёл сигнал +24 Вольта (как пример) на вход контроллера, и он его пометил как единица; не пришёл, то как 0.
А как же нам преобразовать аналоговый сигнал в цифровой двоичный код? Ведь там значение колеблется от 0 до 10 Вольт. Т.е. этот сигнал имеет очень много значений. И поэтому нам надо разбить измеряемый диапазон на определённое количество значений.
Разрядность АЦП
Разрядность АЦП – это количество битов в числе на выходе аналого-цифрового преобразователя. (Разрядность выходного значения).
Чем больше разрядность, тем точнее измеряемое значение.
Настало время моих любимых примеров:
К аналоговому входу (0-10 В) подключен датчик давления. Предел измеряемых значений датчика от 0 до 10 Бар.
Разрядность АЦП= 1111111111111111. (16-разрядный). Если мы воспользуемся калькулятором и переведём двоичное значение 1111111111111111 в десятичное, то получим следующее число:
Что это за число? Это количество значений, которое может выдать наш АЦП.
Т.е если у нас датчик давления, у которого предел измерения от 0 до 10 бар, будет выдавать 10 бар (10 вольт) – это максимальное значение выдаваемое датчиком, то уже в программе мы получим значение равное 65535. А если будет приходить 0 вольт, то и получим 0 в программе.
Если на аналоговый вход приходит 5 бар (5 вольт), то в программе будет 32767.Мы поделили максимальное значение пополам.
В результате у нас получается следующее:
Диапазон измеряемых значений от 0 до 10 бар (0-10 вольт) переносится на диапазон от 0 до 65535 (в программе).
Из этих данных мы можем определить шаг измерения показаний. Т.е полный диапазон датчика надо разделить на разрядность. Получим минимальный шаг измеряемой величины.
0-10 бар-это 11 значений. 11/65535=0,000167 Вольт – это точность измерений.
Сейчас приведу пример расчёта по вычислению значения на выходе АЦП.
У нашего датчика предел измерений от 0 до 10. Из максимального значения вычитаем минимальное и получаем число 10. Разрядность нашего АЦП равна 65535. Делим это число на 10 и получаем 6553,5. И теперь это число умножаем на показание нашего датчика. Т.е.в данный момент датчик у нас показывает 3 бара. 3 умножаем на 6553,5 и получаем число на выходе ацп 19660,5. Всё легко и просто. Поехали дальше…
Увидели, допустим, мы следующее число, которое пришло к нам в контроллер 23565. Нам надо перевести это число на понятный нам диапазон 0-10 бар. Что надо сделать?
Воспользуемся формулой линейной интерполяции:
f(X) = f(X1)+( f(X2) — f(X1) )*(X — X1)/(X2 — X1)
Х1 — это минимальное число из диапазона от 0 до 65535 (0)
Х – это число в данный момент (23565)
Х2 – это максимальноечисло из диапазона от 0 до 65535 (65535)
f(X1) – это минимальное число из нашего диапазона давлений 0-10 бар (0 бар)
f(X2) – это максимальное число из нашего диапазона давлений 0-10 бар (10 бар)
f(X)- это число которое мы ищем.
Подставляем всё в формулу и получаем следующее:
f(X) = f(X1)+( f(X2) — f(X1) )*(X — X1)/(X2 — X1) = 0 + (10 — 0)*(23565 — 0)/(65535 — 0) = 3.5958
Т.е. значение в контроллере 23565 при пересчёте на наш диапазон 0-10 бар будет равно 3.5958 Бар.
Характеристика АЦП
Основная характеристика АЦП – это разрядность. Также не малое значение имеет вид аналогового сигнала, подаваемого на АЦП. Токовый сигнал на АЦП не подают. Сначала он преобразовывается в напряжение, а потом идёт на АЦП. Обычно это просто резистор 500 Ом, который преобразовывает 4-20 ма в 2-10 вольт.
Часто последний бит разрядности занимает знак, и тогда разрядность надо делить пополам. Т.е у нас получается разрядность не 2 в степени 8, а два в степени 7. Плюс иногда ограничивают диапазон значений под диагностику, т.е. на программном уровне уменьшают разрядность АЦП.
Не забываем ещё про наименьшее входное напряжение (LSB-Least significant bit), которое видит АЦП. Для того, чтобы его найти надо опорное напряжение поделить на разрядность нашего АЦП (опорное напряжение указывается в документации).Также у АЦП имеется погрешность измерения, которая измеряется в LSB.
Что такое АЦП и чем оно отличается от ЦАП
Разбираемся с АЦП и ЦАП, какие задачи они решают, в чем их достоинства и недостатки.
Аналого-цифровой преобразователь
Аналого-цифровой преобразователь или АЦП — это устройство, преобразующее входной аналоговый сигнал в дискретный цифровой код. АЦП осуществляет операции дискретизации и квантования. Напомню, при дискретизации, отсчеты непрерывного сигнала берутся только в определенные моменты или дискреты времени, а при квантовании значение сигнала в эти моменты времени округляется до одного из фиксированных уровней, квантованные уровни затем представляются в двоичном виде. Таким образом, мы получаем цифровой сигнал из аналогового.
Как устроен АЦП
В большинстве АЦП есть устройство выборки и хранения, которые фиксируют и сохраняют значение напряжения на своем входе, в моменты замыкания ключа, а моменты замыкания ключа определяется задающим генератором, именно его частота и определяет частоту дискретизации выходного сигнала. Сигнал на выходе устройства выборки и хранения затем, округляется до одного из уровней квантования.
Как же АЦП понимает, с каким уровней квантования проассоциировать значение сигнала?
Рассмотрим простейший одноразрядный АЦП, компаратор. Он принимает на свой вход два значения напряжения, в том случае, если напряжение на первом входе больше чем на втором, он выдает логическую единицу, в противном случае 0.
Допустим, мы зафиксировали значение на втором ходе, это наш пороговый уровень, и когда изменяющейся во времени сигнал на первом входе больше этого уровня, устройство показывает 1, когда меньше 0.
Теперь представим, что компараторов несколько, когда входной сигнал превышает определённый уровень, срабатывает соответствующий компаратор, выходы всех компараторов затем преобразуется схемой приоритетного кодера в двоичное представление. АЦП в которых каждом из уровней квантования соответствует компаратор называются АЦП прямого преобразования или флеш АЦП.
Характеристики АЦП
Во-первых, АЦП отличаются по частоте дискретизации, она определяется задающим генератором. В зависимости от назначения частота дискретизации может измеряться в килогерцах, мегагерцах и даже гигагерц.
Далее идет разрядность, то есть количество бит в коде, которыми мы представляем отсчеты сигнала. От количества бит, зависит количество уровней квантования, оно определяется, как 2 в степени количество бит, если у нас 3 бита, то это 8 возможных уровней квантования, если у нас 8 бит это 256 уровней.
Диапазон входного сигнала это минимальные и максимальные значения напряжения на входе АЦП при которых устройство работает корректно. Слишком маленький сигнал АЦП может не различить и принять за нулевой уровень, слишком большие могут вызвать искажения, которые приведут к потере информации. Обычно АЦП оперируют единицами вольт.
Отношение сигнал-шум об этом параметре есть подробная статья.
Передаточная характеристика — это по определению зависимость числового эквивалента выходного кода от величины входного аналогового сигнала, она имеет вид ступенчатой функции.
Посмотрим на рисунок выше, окрестность значения входного напряжения 0,5 вольт будет приравнено к четвертому уровню квантования, то есть значение к примеру 0,52 или 0,47 также будут представлены кодом 100.
Если мы рассматриваем АЦП с равномерным квантованием, то длина всех ступенек будет одинаковой, в некоторых АЦП специально используются неравномерное квантование, но их мы пока не рассматриваем. Неравномерность ступенек в АЦП с равномерным квантование это одна из характеристик неидеальности, мы называем ее нелинейностью.
Нелинейность АЦП
Нелинейность АЦП — это отличие реальной передаточной характеристики от линейной.
Линейная система передает входной сигнал на выход, без изменения его формы, возможно усиление или аттенюация.
Нелинейная система искажает форму выходного сигнала. В том случае, когда характеристика отличается от прямой линии, форма пиков сигнала изменяется это называется нелинейным искажением, крайне нежелательно явление. При искажениях мы безвозвратно теряем информацию.
Для АЦП, желательно, чтобы в рабочем диапазоне входных сигналов формы передаточных характеристик аппроксимировались прямой, но на практике небольшие отклонения все же присутствуют, поэтому для всех АЦП производитель указывает параметры интегральной и дифференциальной нелинейности.
Шум квантования
В АЦП происходит округление реального значения аналогового сигнала. Точность представления, то насколько близок уровень квантования к реальному значению зависит от разрядности АЦП, количества бит.
Сигнал ошибки или разницы мы называем шумом квантования, хотя шумом его можно считать только в рамках математической модели, так как он зависит от сигнала.
Если мы квантуем непрерывный сигнал, то и шум квантования будет непрерывным. Если мы говорим о квантовании дискретного сигнала, то и на ошибки также будет дискретным. Понятно, что для того чтобы уменьшить шум квантования надо повышать разрядность АЦП, но из-за этого увеличивается стоимость, энергопотребление, могут понизиться другие характеристики.
Существует техника уменьшения влияния шума квантования без увеличения разрядности, и с ними вы можете ознакомиться самостоятельно при желании.
Джиттер
Джиттер это фазовый шум вызванный нестабильностью задающего генератора. Когда мы рассматриваем идеальный процесс дискретизации непрерывного сигнала, шаг временной сетке или период дискретизации неизменен, но в реальности импульсы задающего генератора могут идти не через равные промежутки времени, это приводит к тому что мы передаем устройству выборки и хранения не совсем то значение, которое должны были бы передать в случае идеально ровной временной сетки.
Эти отклонения, от так называемых реальных значений, также можно представить в виде дискретного шума. Нестабильность генераторов обычно измеряется в пика и фемпто секундах, поэтому на медленный АЦП она особо не влияет.
Шум квантования вносит гораздо больший вклад, но если сам сигнал изменяется очень быстро, если мы говорим о частотах дискретизации в сотни мегагерц и единицах гигагерц, то в этом случае уже джиттер может стать главной проблемой.
Цифро-аналоговый преобразователь
Цифро-аналоговый преобразователь — это устройство преобразующее входной цифровой сигнал в аналоговый.
На вход устройства поступают дискретные отсчеты в виде цифрового кода, которые затем преобразуются в напряжение. Напряжение это соответствует набору уровней, как и случае с АЦП, многие ЦАП, используют равномерный уровни при преобразовании.
Уровень напряжения остается неизменным до момента прихода следующего отсчета на вход, таким образом формируется ступенчатый непрерывный сигнал, который в дальнейшем может быть сглажен фильтром нижних частот.
Один из простейших видов ЦАП широтно-импульсный модулятор (ШИМ) он часто используется для управления скоростью электромоторов.