Давайте рассмотрим основной спектр вопросов, которые можно отнести к принципу действия аналого-цифровых преобразователей (АЦП) разных типов. Последовательный счет, поразрядное уравновешивание – что скрывается за этими словами? В чем заключается принцип работы АЦП микроконтроллера? Эти, а также ряд других вопросов мы рассмотрим в рамках статьи. Первые три части мы посвятим общей теории, а с четвертого подзаголовка будем изучать принцип их работы. Вы можете в различной литературе встречать термины АЦП и ЦАП. Принцип работы этих устройств немного различается, поэтому не путайте их. Так, в статье будет рассматриваться преобразование сигналов из аналоговой формы в цифровую, в то время как ЦАП работает наоборот.
Прежде чем рассматривать принцип работы АЦП, давайте узнаем, что это за устройство. Аналого-цифровые преобразователи являются приборами, которые физическую величину превращают в соответствующее числовое представление. В качестве начального параметра может выступать практически всё что угодно – ток, напряжение, емкость, сопротивление, угол поворота вала, частота импульсов и так далее. Но чтобы иметь определённость, мы будем работать только с одним преобразованием. Это «напряжение-код». Выбор такого формата работы не случаен. Ведь АЦП (принцип работы этого устройства) и его особенности в значительной мере зависят от того, какое понятие измерения используется. Под этим понимают процесс сравнения определённой величины с ранее установленным эталоном.
Основными можно назвать разрядность и частоту преобразования. Первую выражают в битах, а вторую — в отсчетах на секунду. Современные аналого-цифровые преобразователи могут обладать разрядностью 24 бита или скоростью преобразования, которая доходит до единиц GSPS. Обратите внимание, что АЦП может одновременно предоставлять вам в использование только одну свою характеристику. Чем большие их показатели, тем сложнее работать с устройством, да и оно само стоит дороже. Но благо можно получить необходимые показатели разрядности, пожертвовав скоростью работы прибора.
Принцип работы разнится у различных групп устройств. Мы рассмотрим следующие типы:
Есть много других конвейерных и комбинированных типов, которые обладают своими особенными характеристиками с разной архитектурой. Но те образцы, которые будут рассматриваться в рамках статьи, представляют интерес благодаря тому, что они играют показательную роль в своей нише устройств такой специфики. Поэтому давайте будем изучать принцип работы АЦП, а также его зависимость от физического устройства.
Они стали весьма популярными в 60-70-х годах прошлого столетия. В виде интегральных схем производятся с 80-х гг. Это весьма простые, даже примитивные устройства, которые не могут похвастаться значительными показателями. Их разрядность обычно составляет 6-8 бит, а скорость редко превышает 1 GSPS.
Принцип работы АЦП данного типа таков: на плюсовые входы компараторов одновременно поступает входной сигнал. На минусовые выводы подается напряжение определённой величины. А затем устройство определяет свой режим работы. Это делается благодаря опорному напряжению. Допустим, что у нас есть устройство, где 8 компараторов. При подаче ½ опорного напряжения будет включено только 4 из них. Приоритетным шифратором сформируется двоичный код, который и зафиксируется выходным регистром. Относительно достоинств и недостатков можно сказать, что такой принцип работы позволяет создавать быстродействующие устройства. Но для получения необходимой разрядности приходится сильно попотеть.
Общая формула количества компараторов выглядит таким образом: 2^N. Под N необходимо поставить количество разрядов. Рассматриваемый ранее пример можно использовать ещё раз: 2^3=8. Итого для получения третьего разряда необходимо 8 компараторов. Таков принцип работы АЦП, которые были созданы первыми. Не очень удобно, поэтому в последующем появились другие архитектуры.
Здесь используется алгоритм «взвешивания». Сокращенно устройства, работающие по такой методике, называют просто АЦП последовательного счета. Принцип работы таков: устройством измеряется величина входного сигнала, а потом она сравнивается с числами, которые генерируются по определённой методике:
Данный принцип работы позволяет получать устройства с относительной высокой скоростью преобразования, которыми и являются АЦП последовательного приближения. Принцип работы, как видите, прост, и данные приборы отлично подходят для различных случаев.
Они работают подобно последовательным устройствам. Формула расчета – (2^Н)-1. Для рассматриваемого ранее случая нам понадобится (2^3)-1 компараторов. Для работы используется определённый массив этих устройств, каждое из которых может сравнивать входное и индивидуальное опорное напряжение. Параллельные аналого-цифровые преобразователи являются довольно быстрыми приборами. Но принцип построения этих устройств таков, что для поддержки их работоспособности необходима значительная мощность. Поэтому использовать их при батарейном питании нецелесообразно.
Он действует по похожей схеме, что и предыдущее устройство. Поэтому чтобы объяснить функционирование АЦП поразрядного уравновешивания, принцип работы для начинающих будет рассмотрен буквально на пальцах. В основе данных устройств лежит явление дихотомии. Иными словами, проводится последовательное сравнение измеряемой величины с определённой частью максимального значения. Могут браться значения в ½, 1/8, 1/16 и так далее. Поэтому аналого-цифровой преобразователь может выполнить весь процесс за Н итераций (последовательных шагов). Причем Н равняется разрядности АЦП (посмотрите на ранее приведённые формулы). Таким образом, мы имеем значительный выигрыш во времени, если особенно важным является быстродействие техники. Несмотря на значительную скорость, эти устройства также характеризуются низкой статической погрешностью.
Это самый интересный тип устройства, не в последнюю очередь благодаря своему принципу работы. Он заключается в том, что происходит сравнение входного напряжения с тем, что накопилось интегратором. На вход подаются импульсы с отрицательной или положительной полярностью (всё зависит от результата предыдущей операции). Таким образом, можно сказать, что подобный аналого-цифровой преобразователь является простой следящей системой. Но это только как пример для сравнения, чтобы вы могли понимать, что такое дельта-сигма АЦП. Принцип работы системный, но для результативного функционирования этого аналого-цифрового преобразователя мало. Конечным результатом является нескончаемый поток единиц и нулей, который идёт через цифровой ФНЧ. Из них формируется определённая битная последовательность. Различают АЦП-преобразователи первого и второго порядков.
Это последний частный случай, который будет рассмотрен в рамках статьи. Далее мы будем описывать принцип работы данных устройств, но уже на общем уровне. Этот АЦП является аналого-цифровым преобразователем с двухтактным интегрированием. Встретить подобное устройство можно в цифровом мультиметре. И это не удивительно, ведь они обеспечивают высокую точность и одновременно хорошо подавляют помехи.
Теперь давайте сосредоточимся на его принципе работы. Он заключается в том, что входным сигналом заряжается конденсатор на протяжении фиксированного времени. Как правило, этот период составляет единицу частоты сети, которая питает устройство (50 Гц или 60 Гц). Также он может быть кратным. Таким образом, подавляются высокочастотные помехи. Одновременно нивелируется влияние нестабильного напряжения сетевого источника получения электроэнергии на точность полученного результата.
Когда оканчивается время заряда аналого-цифрового преобразователя, конденсатор начинает разряжаться с определённой фиксированной скоростью. Внутренний счетчик устройства считает количество тактовых импульсов, которые формируются во время этого процесса. Таким образом, чем больше временной промежуток, тем значительнее показатели.
АЦП двухтактного интегрирования обладают высокой точностью и разрешающей способностью. Благодаря этому, а также сравнительно простой структуре построения они выполняются как микросхемы. Основной недостаток такого принципа работы – зависимость от показателя сети. Помните, что его возможности привязаны к длительности частотного периода источника питания.
Вот как устроен АЦП двойного интегрирования. Принцип работы данного устройства хотя и является довольно сложным, но он обеспечивает качественные показатели. В некоторых случаях такое бывает просто необходимым.
Допустим, перед нами стоит определенная задача. Какое выбрать устройство, чтобы оно могло удовлетворить все наши запросы? Для начала давайте поговорим про разрешающую способность и точность. Очень часто их путают, хотя на практике они очень слабо зависят один от второго. Запомните, что 12-разрядный аналого-цифровой преобразователь может иметь меньшую точность, чем 8-разрядный. В этом случае разрешение – это мера того, какое количество сегментов может быть выделено с входного диапазона измеряемого сигнала. Так, 8-разрядные АЦП обладают 28=256 такими единицами.
Точность – это суммарное отклонение полученного результата преобразования от идеального значения, которое должно быть при данном входном напряжении. То есть первый параметр характеризует потенциальные возможности, которые имеет АЦП, а второй показывает, что же мы имеем на практике. Поэтому нам может подойти и более простой тип (например, прямые аналого-цифровые преобразователи), который позволит удовлетворить потребности благодаря высокой точности.
Чтобы иметь представление о том, что нужно, для начала необходимо просчитать физические параметры и построить математическую формулу взаимодействия. Важными в них являются статические и динамические погрешности, ведь при использовании различных компонентов и принципов построение устройства они будут по-разному влиять на его характеристики. Более детальную информацию можно обнаружить в технической документации, которую предлагает производитель каждого конкретного прибора.
Давайте рассмотрим АЦП SC9711. Принцип работы данного устройства сложен ввиду его размера и возможностей. Кстати, говоря о последних, необходимо заметить, что они по-настоящему разнообразные. Так, к примеру, частота возможной работы колеблется от 10 Гц до 10 МГц. Иными словами, оно может делать 10 млн отсчетов в секунду! Да и само устройство не является чем-то цельным, а имеет модульную структуру построения. Но используется оно, как правило, в сложной технике, где необходимо работать с большим количеством сигналов.
Как видите, АЦП в своей основе имеют различные принципы работы. Это позволяет нам подбирать устройства, которые удовлетворят возникшие запросы, и при этом позволят разумно распорядиться имеющимися средствами.
fb.ru
»
Введение
В качестве отправной точки дадим определение аналого-цифровому преобразованию. Аналого-цифровое преобразование – это процесс преобразования входной физической величины в ее числовое представление. Аналого-цифровой преобразователь – устройство, выполняющее такое преобразование. Формально, входной величиной АЦП может быть любая физическая величина – напряжение, ток, сопротивление, емкость, частота следования импульсов, угол поворота вала и т.п. Однако, для определенности, в дальнейшем под АЦП мы будем понимать исключительно преобразователи напряжение-код.
Понятие аналого-цифрового преобразования тесно связано с понятием измерения. Под измерением понимается процесс сравнения измеряемой величины с некоторым эталоном, при аналого-цифровом преобразовании происходит сравнение входной величины с некоторой опорной величиной (как правило, с опорным напряжением). Таким образом, аналого-цифровое преобразование может рассматриваться как измерение значения входного сигнала, и к нему применимы все понятия метрологии, такие, как погрешности измерения.
Основные характеристики АЦП
АЦП имеет множество характеристик, из которых основными можно назвать частоту преобразования и разрядность. Частота преобразования обычно выражается в отсчетах в секунду (samples per second, SPS), разрядность – в битах. Современные АЦП могут иметь разрядность до 24 бит и скорость преобразования до единиц GSPS (конечно, не одновременно). Чем выше скорость и разрядность, тем труднее получить требуемые характеристики, тем дороже и сложнее преобразователь. Скорость преобразования и разрядность связаны друг с другом определенным образом, и мы можем повысить эффективную разрядность преобразования, пожертвовав скоростью.
Типы АЦП
Существует множество типов АЦП, однако в рамках данной статьи мы ограничимся рассмотрением только следующих типов:
Среднюю нишу в ряду разрядность-скорость занимают АЦП последовательного приближения. Типичными значениями является разрядность 12-18 бит при частоте преобразования 100KSPS-1MSPS.
Наибольшей точности достигают сигма-дельта АЦП, имеющие разрядность до 24 бит включительно и скорость от единиц SPS до единиц KSPS.
Еще одним типом АЦП, который находил применение в недавнем прошлом, является интегрирующий АЦП. Интегрирующие АЦП в настоящее время практически полностью вытеснены другими типами АЦП, но могут встретиться в старых измерительных приборах.
АЦП прямого преобразования
АЦП прямого преобразования получили широкое распространение в 1960-1970 годах, и стали производиться в виде интегральных схем в 1980-х. Они часто используются в составе «конвейерных» АЦП (в данной статье не рассматриваются), и имеют разрядность 6-8 бит при скорости до 1 GSPS.
Архитектура АЦП прямого преобразования изображена на рис. 1
Рис. 1. Структурная схема АЦП прямого преобразования
Принцип действия АЦП предельно прост: входной сигнал поступает одновременно на все «плюсовые» входы компараторов, а на «минусовые» подается ряд напряжений, получаемых из опорного путем деления резисторами R. Для схемы на рис. 1 этот ряд будет таким: (1/16, 3/16, 5/16, 7/16, 9/16, 11/16, 13/16) Uref, где Uref – опорное напряжение АЦП.
Пусть на вход АЦП подается напряжение, равное 1/2 Uref. Тогда сработают первые 4 компаратора (если считать снизу), и на их выходах появятся логические единицы. Приоритетный шифратор (priority encoder) сформирует из «столбца» единиц двоичный код, который фиксируется выходным регистром.
Теперь становятся понятны достоинства и недостатки такого преобразователя. Все компараторы работают параллельно, время задержки схемы равно времени задержки в одном компараторе плюс время задержки в шифраторе. Компаратор и шифратор можно сделать очень быстрыми, в итоге вся схема имеет очень высокое быстродействие.
Но для получения N разрядов нужно 2^N компараторов (и сложность шифратора тоже растет как 2^N). Схема на рис. 1. содержит 8 компараторов и имеет 3 разряда, для получения 8 разрядов нужно уже 256 компараторов, для 10 разрядов – 1024 компаратора, для 24-битного АЦП их понадобилось бы свыше 16 млн. Однако таких высот техника еще не достигла.
АЦП последовательного приближения
АЦП последовательного приближения реализует алгоритм «взвешивания», восходящий еще к Фибоначчи. В своей книге «Liber Abaci» (1202 г.) Фибоначчи рассмотрел «задачу о выборе наилучшей системы гирь», то есть о нахождении такого ряда весов гирь, который бы требовал для нахождения веса предмета минимального количества взвешиваний на рычажных весах. Решением этой задачи является «двоичный» набор гирь. Подробнее о задаче Фибоначчи можно прочитать, например, здесь: http://www.goldenmuseum.com/2015AMT_rus.html.
Аналого-цифровой преобразователь последовательного приближения (SAR, Successive Approximation Register) измеряет величину входного сигнала, осуществляя ряд последовательных «взвешиваний», то есть сравнений величины входного напряжения с рядом величин, генерируемых следующим образом:
1. на первом шаге на выходе встроенного цифро-аналогового преобразователя устанавливается величина, равная 1/2Uref (здесь и далее мы предполагаем, что сигнал находится в интервале (0 – Uref).
2. если сигнал больше этой величины, то он сравнивается с напряжением, лежащим посередине оставшегося интервала, т.е., в данном случае, 3/4Uref. Если сигнал меньше установленного уровня, то следующее сравнение будет производиться с меньшей половиной оставшегося интервала (т.е. с уровнем 1/4Uref).
3. Шаг 2 повторяется N раз. Таким образом, N сравнений («взвешиваний») порождает N бит результата.
Рис. 2. Структурная схема АЦП последовательного приближения.
Таким образом, АЦП последовательного приближения состоит из следующих узлов:
1. Компаратор. Он сравнивает входную величину и текущее значение «весового» напряжения (на рис. 2. обозначен треугольником).
2. Цифро-аналоговый преобразователь (Digital to Analog Converter, DAC). Он генерирует «весовое» значение напряжения на основе поступающего на вход цифрового кода.
3. Регистр последовательного приближения (Successive Approximation Register, SAR). Он осуществляет алгоритм последовательного приближения, генерируя текущее значение кода, подающегося на вход ЦАП. По его названию названа вся данная архитектура АЦП.
4. Схема выборки-хранения (Sample/Hold, S/H). Для работы данного АЦП принципиально важно, чтобы входное напряжение сохраняло неизменную величину в течение всего цикла преобразования. Однако «реальные» сигналы имеют свойство изменяться во времени. Схема выборки-хранения «запоминает» текущее значение аналогового сигнала, и сохраняет его неизменным на протяжении всего цикла работы устройства.
Достоинством устройства является относительно высокая скорость преобразования: время преобразования N-битного АЦП составляет N тактов. Точность преобразования ограничена точностью внутреннего ЦАП и может составлять 16-18 бит (сейчас стали появляться и 24-битные SAR ADC, например, AD7766 и AD7767).
Дельта-сигма АЦП
И, наконец, самый интересный тип АЦП – сигма-дельта АЦП, иногда называемый в литературе АЦП с балансировкой заряда. Структурная схема сигма-дельта АЦП приведена на рис. 3.
Рис.3. Структурная схема сигма-дельта АЦП.
Принцип действия данного АЦП несколько более сложен, чем у других типов АЦП. Его суть в том, что входное напряжение сравнивается со значением напряжения, накопленным интегратором. На вход интегратора подаются импульсы положительной или отрицательной полярности, в зависимости от результата сравнения. Таким образом, данный АЦП представляет собой простую следящую систему: напряжение на выходе интегратора «отслеживает» входное напряжение (рис. 4). Результатом работы данной схемы является поток нулей и единиц на выходе компаратора, который затем пропускается через цифровой ФНЧ, в результате получается N-битный результат. ФНЧ на рис. 3. Объединен с «дециматором», устройством, снижающим частоту следования отсчетов путем их «прореживания».
Рис. 4. Сигма-дельта АЦП как следящая система
Ради строгости изложения, нужно сказать, что на рис. 3 изображена структурная схема сигма-дельта АЦП первого порядка. Сигма-дельта АЦП второго порядка имеет два интегратора и две петли обратной связи, но здесь рассматриваться не будет. Интересующиеся данной темой могут обратиться к [3].
На рис. 5 показаны сигналы в АЦП при нулевом уровне на входе (сверху) и при уровне Vref/2 (снизу).
Рис. 5. Сигналы в АЦП при разных уровнях сигнала на входе.
Более наглядно работу сигма-дельта АЦП демонстрирует небольшая программа, находящаяся тут: http://designtools.analog.com/dt/sdtutorial/sdtutorial.html.
Теперь, не углубляясь в сложный математический анализ, попробуем понять, почему сигма-дельта АЦП обладают очень низким уровнем собственных шумов.
Рассмотрим структурную схему сигма-дельта модулятора, изображенную на рис. 3, и представим ее в таком виде (рис. 6):
Рис. 6. Структурная схема сигма-дельта модулятора
Здесь компаратор представлен как сумматор, который суммирует непрерывный полезный сигнал и шум квантования.
Пусть интегратор имеет передаточную функцию 1/s. Тогда, представив полезный сигнал как X(s), выход сигма-дельта модулятора как Y(s), а шум квантования как E(s), получаем передаточную функцию АЦП:
Y(s) = X(s)/(s+1) + E(s)s/(s+1)
То есть, фактически сигма-дельта модулятор является фильтром низких частот (1/(s+1)) для полезного сигнала, и фильтром высоких частот (s/(s+1)) для шума, причем оба фильтра имеют одинаковую частоту среза. Шум, сосредоточенный в высокочастотной области спектра, легко удаляется цифровым ФНЧ, который стоит после модулятора.
Рис. 7. Явление «вытеснения» шума в высокочастотную часть спектра
Однако следует понимать, что это чрезвычайно упрощенное объяснение явления вытеснения шума (noise shaping) в сигма-дельта АЦП.
Итак, основным достоинством сигма-дельта АЦП является высокая точность, обусловленная крайне низким уровнем собственного шума. Однако для достижения высокой точности нужно, чтобы частота среза цифрового фильтра была как можно ниже, во много раз меньше частоты работы сигма-дельта модулятора. Поэтому сигма-дельта АЦП имеют низкую скорость преобразования.
Они могут использоваться в аудиотехнике, однако основное применение находят в промышленной автоматике для преобразования сигналов датчиков, в измерительных приборах, и в других приложениях, где требуется высокая точность. но не требуется высокой скорости.
Немного истории
Самым старым упоминанием АЦП в истории является, вероятно, патент Paul M. Rainey, «Facsimile Telegraph System,» U.S. Patent 1,608,527, Filed July 20, 1921, Issued November 30, 1926. Изображенное в патенте устройство фактически является 5-битным АЦП прямого преобразования.
Рис. 8. Первый патент на АЦП
Рис. 9. АЦП прямого преобразования (1975 г.)
Устройство, изображенное на рисунке, представляет собой АЦП прямого преобразования MOD-4100 производства Computer Labs, 1975 года выпуска, собранный на основе дискретных компараторов. Компараторов 16 штук (они расположены полукругом, для того, чтобы уравнять задержку распространения сигнала до каждого компаратора), следовательно, АЦП имеет разрядность всего 4 бита. Скорость преобразования 100 MSPS, потребляемая мощность 14 ватт.
На следующем рисунке изображена продвинутая версия АЦП прямого преобразования.
Рис. 10. АЦП прямого преобразования (1970 г.)
Устройство VHS-630 1970 года выпуска, произведенное фирмой Computer Labs, содержало 64 компаратора, имело разрядность 6 бит, скорость 30MSPS и потребляло 100 ватт (версия 1975 года VHS-675 имела скорость 75 MSPS и потребление 130 ватт).
Литература
W. Kester. ADC Architectures I: The Flash Converter. Analog Devices, MT-020 Tutorial. www.analog.com/static/imported-files/tutorials/MT-020.pdf
W. Kester. ADC Architectures II: Successive Approximation ADC. Analog Devices, MT-021 Tutorial. www.analog.com/static/imported-files/tutorials/MT-021.pdf
W. Kester. ADC Architectures III: Sigma-Delta ADC Basics. Analog Devices, MT-022 Tutorial. www.analog.com/static/imported-files/tutorials/MT-022.pdf
W. Kester. ADC Architectures IV: Sigma-Delta ADC Advanced Concepts and Applications. Analog Devices, MT-023 Tutorial. www.analog.com/static/imported-files/tutorials/MT-023.pdf
habr.com
Аналого-цифровые преобразователи (АЦП) — это устройства, предназначенные для преобразования аналоговых сигналов в цифровые. Для такого преобразования необходимо осуществить квантование аналогового сигнала, т. е. мгновенные значения аналогового сигнала ограничить определенными уровнями, называемыми уровнями квантования.
Характеристика идеального квантования имеет вид, приведенный на рис. 3.92.
Квантование представляет собой округление аналоговой величины до ближайшего уровня квантования, т. е. максимальная погрешность квантования равна ±0,5h (h — шаг квантования).
К основным характеристикам АЦП относят число разрядов, время преобразования, нелинейность и др. Число разрядов — количество разрядов кода, связанного с аналоговой величиной, которое может вырабатывать АЦП. Часто говорят о разрешающей способности АЦП, которую определяют величиной, обратной максимальному числу кодовых комбинаций на выходе АЦП. Так, 10-разрядный АЦП имеет разрешающую способность (210 = 1024)−1, т. е. при шкале АЦП, соответствующей 10В, абсолютное значение шага квантования не превышает 10мВ. Время преобразования tпp — интервал времени от момента заданного изменения сигнала на входе АЦП до появления на его выходе соответствующего устойчивого кода.
Характерными методами преобразования являются следующие: параллельного преобразования аналоговой величины и последовательного преобразования.
По параллельному методу входное напряжение одновременно сравниваются с n опорными напряжениями и определяют, между какими двумя опорными напряжениями оно лежит. При этом результат получают быстро, но схема оказывается достаточно сложной.
При Uвх = 0, поскольку для всех ОУ разность напряжений (U+ − U−) < 0 (U+, U− — напряжения относительно общей точки соответственно неинвертирующего и инвертирующего входа), напряжения на выходе всех ОУ равны −Епит а на выходах кодирующего преобразователя (КП) Z0, Z1, Z2 устанавливаются нули. Если Uвх > 0,5U, но меньше 3/2U, лишь для нижнего ОУ (U+ − U−) > 0 и лишь на его выходе появляется напряжение +Епит, что приводит к появлению на выходах КП следующих сигналов: Z0 = 1, Z2 = Zl = 0. Если Uвх > 3/2U, но меньше 5/2U, то на выходе двух нижних ОУ появляется напряжение +Епит, что приводит к появлению на выходах КП кода 010 и т. д.
Посмотрите интересное видео о работе АЦП:
Это АЦП последовательного счета, который называют АЦП со следящей связью (рис. 3.94). В АЦП рассматриваемого типа используется ЦАП и реверсивный счетчик, сигнал с которого обеспечивает изменение напряжения на выходе ЦАП. Настройка схемы такова, что обеспечивается примерное равенство напряжений на входе Uвх и на выходе ЦАП −U. Если входное напряжение Uвх больше напряжения U на выходе ЦАП, то счетчик переводится в режим прямого счета и код на его выходе увеличивается, обеспечивая увеличение напряжения на выходе ЦАП. В момент равенства Uвх и U счет прекращается и с выхода реверсивного счетчика снимается код, соответствующий входному напряжению.
Метод последовательного преобразования реализуется и в АЦП время — импульсного преобразования (АЦП с генератором линейно изменяющегося напряжения (ГЛИН)).
Принцип действия рассматриваемого АЦП рис. 3.95) основан на подсчете числа импульсов в отрезке времени, в течение которого линейно изменяющееся напряжение (ЛИН), увеличиваясь от нулевого значения, достигает уровня входного напряжения Uвх. Использованы следующие обозначения: СС — схема сравнения, ГИ — генератор импульсов, Кл — электронный ключ, Сч — счетчик импульсов.
Отмеченный во временной диаграмме момент времени t1 соответствует началу измерения входного напряжения, а момент времени t2 соответствует равенству входного напряжения и напряжения ГЛИН. Погрешность измерения определяется шагом квантования времени. Ключ Кл подключает к счетчику генератор импульсов от момента начала измерения до момента равенства Uвх и Uглин. Через UСч обозначено напряжение на входе счетчика.
Код на выходе счетчика пропорционален входному напряжению. Одним из недостатков этой схемы является невысокое быстродействие.
Такой АЦП реализует метод последовательного преобразования входного сигнала (рис. 3.96). Использованы следующие обозначения: СУ — система управления, ГИ — генератор импульсов, Сч — счетчик импульсов. Принцип действия АЦП состоит в определении отношения двух отрезков времени, в течение одного из которых выполняется интегрирование входного напряжения Uвх интегратором на основе ОУ (напряжение Uи на выходе интегратора изменяется от нуля до максимальной по модулю величины), а в течение следующего — интегрирование опорного напряжения Uоп (Uи меняется от максимальной по модулю величины до нуля) (рис. 3.97).
Пусть время t1 интегрирования входного сигнала постоянно, тогда чем больше второй отрезок времени t2 (отрезок времени, в течение которого интегрируется опорное напряжение), тем больше входное напряжение. Ключ КЗ предназначен для установки интегратора в исходное нулевое состояние. В первый из указанных отрезков времени ключ К1 замкнут, ключ К2 разомкнут, а во второй, отрезок времени их состояние является обратным по отношению к указанному. Одновременно с замыканием ключа К2 импульсы с генератора импульсов ГИ начинают поступать через схему управления СУ на счетчик Сч.
Поступление этих импульсов заканчивается тогда, когда напряжение на выходе интегратора оказывается равным нулю.
Напряжение на выходе интегратора по истечении отрезка времени t1 определяется выражением
Uи(t1) = − ( 1/RC) · t1∫0Uвхdt= − ( Uвх · t1 ) / ( R·C)
Используя аналогичное выражение для отрезка времени t2, получим
t2 = − ( R·C/Uоп) ·Uи(t1)
Подставив сюда выражение для Uи(t1), получим t2 =( Uвх / Uоп)·t1 откуда Uвх = Uoa · t2/t1
Код на выходе счетчика определяет величину входного напряжения.
Одним из основных преимуществ АЦП рассматриваемого типа является высокая помехозащищенность. Случайные выбросы входного напряжения, имеющие место в течение короткого времени, практически не оказывают влияния на погрешность преобразования. Недостаток АЦП — малое быстродействие.
Наиболее распространенными являются АЦП серий микросхем 572, 1107, 1138 и др. (табл. 3.3) Из таблицы видно, что наилучшим быстродействием обладает АЦП параллельного преобразования, а наихудшим — АЦП последовательного преобразования.
Предлагаем посмотреть ещё одно достойное видео о работе и устройстве АЦП:
pue8.ru
Аналого-цифровые преобразователи (АЦП) являются устройствами, которые принимают входные аналоговые сигналы и генерируют соответствующие им цифровые сигналы, пригодные для обработки микропроцессорами и другими цифровыми устройствами.
Аналого-цифровой преобразователь[1][2][3] (АЦП, англ.Analog-to-digital converter, ADC) — устройство, преобразующее входной аналоговый сигналв дискретный код (цифровой сигнал). Обратное преобразование осуществляется при помощи ЦАП (цифро-аналогового преобразователя, DAC).
Как правило, АЦП — электронноеустройство, преобразующеенапряжениев двоичный цифровой код. Тем не менее, некоторые неэлектронные устройства с цифровым выходом, следует также относить к АЦП, например, некоторые типыпреобразователей угол-код. Простейшим одноразрядным двоичным АЦП являетсякомпаратор.
Цифро-аналоговый преобразователь (ЦАП) — устройство для преобразования цифрового (обычно двоичного) кода в аналоговый сигнал(ток,напряжениеилизаряд). Цифро-аналоговые преобразователи являютсяинтерфейсоммежду дискретным цифровым миром и аналоговыми сигналами.
Аналого-цифровой преобразователь(АЦП) производит обратную операцию.
Звуковой ЦАП обычно получает на вход цифровой сигнал в импульсно-кодовой модуляции(англ.PCM, pulse-code modulation). Задача преобразования различных сжатых форматов в PCM выполняется соответствующими кодеками.
Принцип аналого-цифрового преобразования информации.
В большинстве случаев получаемый непосредственно от источника информации сигнал оказывается представленным в форме непрерывно меняющегося по своему значению напряжения либо тока (рис. 10.69). Таков, в частности, характер электрического сигнала, соответствующего телефонным, телевизионным и другим видам сообщения. Для передачи таких сообщений по линии связи или для их обработки (например, при отфильтровании помех) могут быть использованы две формы: аналоговая или цифровая. Аналоговая форма предусматривает оперирование со всеми значениями сигнала, цифровая форма с отдельными его значениями, представленными в форме кодовых комбинаций. Преобразование сигналов из аналоговой формы в цифровую выполняется в устройстве, называемом аналого-цифровым преобразователем (АЦП). В преобразователе сигналов из аналоговой формы в цифровую можно выделить следующие процессы: дискретизацию, квантование, кодирование. Рассмотрим сущность этих процессов. При этом для определенности в последующем изложении будем считать, что преобразование в цифровую форму осуществляется над сигналом, представленным в форме меняющегося во времени напряжения.
Дискретизация непрерывных сигналов. Процесс дискретизации заключается в том, что из непрерывного во времени сигнала выбираются отдельные его значения, соответствующие моментам времени, следующим через определенный временной интервал Т (на рис. 10.69 моменты). Интервал Т называется тактовым интервалом времени, а моменты временив которые берутся отсчеты, — тактовыми моментами времени.
Следующая операция, выполняемая при аналого-цифровом преобразовании сигналов, — кодирование. Смысл ее состоит в следующем. Округление значения напряжения, осуществляемое при операции квантования, позволяет эти значения представлять числами — номерами соответствующих уровней квантования. Для диаграммы, представленной на рис. 10.70, образуется последовательность чисел: 3, 6, 7, 4, 1, 2 и т.д. Далее, получаемая таким образом последовательность чисел представляется двоичным кодом.
Цифро-аналоговые преобразователи Ниже будут рассмотрены цифро-аналоговые преобразователи (ЦАП), построенные по принципу суммирования напряжений или токов, пропорциональных весовым коэффициентам двоичного кода. Схема ЦАП с суммированием напряжений. Одна из таких схем с суммированием напряжений на операционном усилителе приведена на рис. 10.71. Триггеры образуют регистр, в который помещаются двоичные числа, предназначенные для перевода в пропорциональные им значения напряжения на выходе. Будем считать, что напряжение на выходе каждого из триггеров может принимать одно из двух возможных значений: Е — при состоянии 1 и 0 при состоянии 0. Напряжения с выходов триггеров передаются на выход ЦАП через операционный усилитель, работающий в режиме взвешенного суммирования напряжений (аналогового сумматора). Для каждого триггера предусматривается отдельный вход в сумматоре с определенным коэффициентом передачи. Таким образом, напряжение с выхода триггера n-го разряда передается на выход усилителя с коэффициентом передачи:; этот коэффициент для (n-1)-го разряда:; для (n-2)-го разряда:и т. д.
Если в состоянии 1 находятся одновременно триггеры нескольких разрядов, то напряжение на выходе усилителя равно сумме напряжений, передаваемых на этот выход от отдельных триггеров. Пусть цифры отдельных разрядов двоичного числа в регистре . Тогда напряжение на выходе усилителяЗдесь N — десятичное значение двоичного числа, введенного в регистр. Из последнего выражения видно, что напряжение на выходе ЦАП пропорционально значению числа в регистре. Рассмотрим работу ЦАП в случае, когда на триггерахпостроен двоичный счетчик. Если подать на вход этого счетчика последовательность импульсов, то с приходом каждого очередного импульса число в счетчике будет увеличиваться на единицу и напряжение на выходе ЦАП будет возрастать на ступеньку, соответствующую единице младшего разряда счетчика. Величина такой ступеньки. Таким образом, напряжение на выходе ЦАП будет иметь ступенчатую форму, как показано на рис. 10.72. После поступленияимпульсов все разряды счетчика будут содержать 1, на выходе ЦАП образуется максимальное напряжение
Недостатки рассмотренной схемы преобразователя:
используются высокоточные резисторы с различными сопротивлениями;
трудно обеспечить высокую точность выходного напряжения триггеров
studfiles.net
ЦСУА 3.1
Л Е К Ц И Я 3
Цифро-аналоговый и аналогово-цифровой преобразователи.
Общепринятая аббревиатура ЦАП и АЦП. В англоязычной литературе применяются термины DAC и ADC.
Цифро-аналоговые преобразователислужат для преобразования информации из цифровой формы в аналоговый сигнал. ЦАП широко применяется в различных устройствах автоматики для связи цифровых ЭВМ с аналоговыми элементами и системами.
ЦАП в основном строятся по двум принципам:
взвешивающие — с суммированием взвешенных токов или напряжений, когда каждый разряд входного слова вносит соответствующий своему двоичному весу вклад в общую величину получаемого аналогового сигнала; такие ЦАП называют также параллельными или многоразрядными (multibit).
Sigma-Delta, по принципу действия обратные АЦП (принцип работы сложен, здесь обсуждаться не будет).
Принцип работы взвешивающего ЦАПсостоит в суммировании аналоговых сигналов, пропорциональных весам разрядов входного цифрового кода, с коэффициентами, равными нулю или единице в зависимости от значения соответствующего разряда кода.
ЦАП преобразует цифровой двоичный код Q4Q3Q2Q1 в аналоговую величину, обычно напряжение Uвых.. Каждый разряд двоичного кода имеет определенный вес i-го разряда вдвое больше, чем вес (i-1)-го. Работу ЦАП можно описать следующей формулой:
Uвых=e*(Q1 1+Q2*2+Q3*4+Q4*8+…),
где e — напряжение, соответствующее весу младшего разряда, Qi — значение i -го разряда двоичного кода (0 или 1).
Например, числу 1001 соответствует
Uвых=е*(1*1+0*2+0*4+1*8)=9*e.
ЦСУА 3.2
Упрощенная схема реализации ЦАП представлена на рис1. В схеме i – й ключ замкнут при Qi=1, при Qi=0 – разомкнут. Резисторы подобраны таким образом, что R>>Rн.
Принцип работы АЦПсостоит в измерении уровня входного сигнала и выдаче результата в цифровой форме. В результате работы АЦП непрерывный аналоговый сигнал превращается в импульсный, с одновременным измерением амплитуды каждого импульса. ВнутреннийЦАПпреобразует цифровое значение амплитуды в импульсы напряжения или тока нужной величины, которые расположенный за ним интегратор (аналоговый фильтр) превращает в непрерывный аналоговый сигнал. Для правильной работы АЦП входной сигнал не должен изменяться в течение времени преобразования, для чего на его входе обычно помещается схема выборки-хранения, фиксирующая мгновенный уровень сигнала и сохраняющая его в течение всего времени преобразования. На выходе АЦП также может устанавливаться подобная схема, подавляющая влияние переходных процессов внутри АЦП на параметры выходного сигнала
В основном применяется три типа АЦП:
параллельные — входной сигнал одновременно сравнивается с эталонными уровнями набором схем сравнения (компараторов), которые формируют на выходе двоичное значение.
последовательного приближения– в котором при помощи вспомогательного ЦАП генерируется эталонный сигнал, сравниваемый с входным. Эталонный сигнал последовательно изменяется по принципу половинного деления. Это позволяет завершить преобразование за количество тактов, равное разрядности преобразователя, независимо от величины входного сигнала.
с измерением временных интервалов— используются различные принципы преобразования уровней в пропорциональные временные интервалы, длительность которых измеряется при помощи тактового генератора высокой частоты. Иногда называются также считающими АЦП.
Краткое описание принципа работы параллельных АЦП.
Преобразователи этого типа осуществляют одновременно квантование сигнала с помощью набора компараторов, включенных параллельно источнику сигнала (см. рис.). Пороговые уровни компараторов установлены с помощью резистивного делителя в соответствии с используемой шкалой квантования. В таком АЦП количество компараторов равно 2N—1, где N — разрядность цифрового кода (для восьмиразрядного — 255). При подаче на такой набор компараторов исходного сигнала на выходах последних будет иметь место проквантованный сигнал, представленный в унитарном коде. Для преобразования этого кода в двоичной используются логические схемы, называемые обычно кодирующей логикой. Такая чрезвычайно простая структура параллельных АЦП делает их самыми быстрыми из известных преобразователей и позволяет достигать частот преобразования 100…200 МГц. Однако их объем приблизительно удваивается с каждым новым разрядом, что в общем ограничивает их число. Обычно оно не превышает 6… 8. В этом типе кодирующей логики используется непосредственный переход от унитарного кода, имеющего место на выходе компараторов, к двоичному.
Структурная схема 3-разрядного параллельного АЦП
Пример: Максимальное входное напряжение 10В должно соответствовать коду «5» на выходе АЦП. Тогда требуемое значение опорного напряжения может быть найдено из соотношения:
, откуда
Краткое описание принципа работы последовательных АЦП.
Преобразователь этого типа является наиболее распространенным вариантом последовательных АЦП с двоично-взвешенными приближениями (см. рис.). В основе работы этого класса преобразователей лежит принцип последовательного сравнения измеряемой величины с 1/2, 1/4, 1/8 и т.д. от возможного максимального значения ее. Это позволяет для m-разрядного АЦП выполнить весь процесс преобразования за m последовательных шагов приближения (итераций) и позволяет получить с помощью таких АЦП в зависимости от числа используемых разрядов до 105-106преобразований в секунду. В то же время статическая погрешность этого типа преобразователей, определяемая в основном используемым в нем ЦАП, может быть очень малой, что позволяет реализовать разрешающую способность до 16 двоичных разрядов.
Сигнал готовности данных
Структурная схема АЦП последовательных приближений: 1 — ЦАП; 2 — источник опорного напряжения; 3 — генератор тактовых импульсов; 4 — программное устройство управления и счетчик.
ЦСУА 3.4
Этот преобразователь состоит из компаратора, счетчика и ЦАП. На один вход компаратора поступает входной сигнал, а на другой — сигнал обратной связи с ЦАП. Работа преобразователя начинается с прихода импульса запуска, который включает накопительный счетчик. Выходной код последнего подается на ЦАП, осуществляющий его преобразование в напряжение обратной связи. Процесс преобразования продолжается до тех пор, пока напряжение обратной связи сравняется с входными напряжениями и сработает компаратор, который своим выходным сигналом прекратит поступление счетных импульсов на счетчик и осуществит считывание с него выходного кода, представляющего цифровой эквивалент входного напряжения в момент окончания преобразования
Вопросы программирования АЦП и ЦАП
Микропроцессорный тренажер, изучаемый в данном курсе и используемый при проведении лабораторных работ, снабжен многофункциональной платой 5710 производства американской фирмы OctagonSystems.
Состав платы 5710.
Плата 5710 содержит два канала аналогового вывода (два 12-ти разрядных АЦП DAC813 производства фирмыBurr-Brown), 16 однопроводных или 8 дифференциальных каналов аналогового ввода, обеспечиваемые одной 12-ти разрядной микросхемой АЦП последовательного типаAD574 фирмыAnalogDevices, и коммутатором аналоговых сигналов. Кроме того, плата снабжена микросхемой таймера – счетчикаIntel82C54, и микросхемой программируемого параллельного интерфейса 82С55. Одна такая плата оборудована всем необходимым для построения современной цифровой системы управления, например, электроприводом прокатного стана.
Сначала рассмотрим программирование ЦАП. .
Последовательность действий должна быть следующей.
Масштабирование и преобразование данных. Данные должны быть отмасштабированы таким образом, чтобы выводимое на ЦАП число не превышало его разрядность. В нашем случае разрядность ЦАП – 12. То есть, диапазоном засылаемых в ЦАП чисел является 0-4095.
Для диапазона выводимых ЦАП значений аналогового сигнала 5В, таблица соответствия входных и выходных значений имеет вид:
дискретный код | 0 | 2047 | 4095 |
аналоговый сигнал | -5В | 0В | +5В |
Для того, чтобы сформировать на выходе ЦАП напряжение V, лежащее в диапазоне 5В, необходимо воспользоваться следующей формулой:
, и округлить получаемое число до ближайшего целого.
Пример. Для получения на выходе ЦАП напряжения V=—2.75 В, необходимо на ЦАП выдать код
.
Для диапазона выводимых ЦАП значений аналогового сигнала 0, +10В, таблица соответствия входных и выходных значений имеет вид:
дискретный код | 0 | 2047 | 4095 |
аналоговый сигнал | 0В | +5В | +10В |
Для того, чтобы сформировать на выходе ЦАП напряжение V, лежащее в диапазоне 0, +10В, необходимо воспользоваться следующей формулой:
ЦСУА 3.5
, и округлить получаемое число до ближайшего целого.
Пример. Для получения на выходе ЦАП напряжения V=-+2.75 В, необходимо на ЦАП выдать код
Разделение данных на младший значащий байт (LSB least significant bit)и старший значащий полубайт (MSB) [most significant bit].
Дело в том, что хотя разрядность ЦАПа – 12, но за один раз записать в регистры ЦАПа двенадцатиразрядное число нельзя, потому что разрядность шины данных у модуля 5710 – 8.
Делается это так. Необходимо подготовленный Code разделить без остатка на 256 (девятиразрядное число). Это и будет MSB. Затем необходимо найти остаток от деления Code на 256 – это и будет LSB.
Пример. Для рассмотренного выше 1 случая Code=922. Это число при делении без остатка на 256 дает 3. Остаток от деления составит .
Таким образом, получаем MSB=3, LSB=154.
Пример. Для рассмотренного выше 2 случая Code=1126. Это число при делении без остатка на 256 дает 4. Остаток от деления составит 1126-4*256=102.
Таким образом, получаем MSB=4, LSB=102.
Вывод подготовленных таким образом старшего и младшего полубайта в соответствующие регистры.
Таблица адресов регистров микросхем ЦАП:
LSB | MSB | |
DAC0 | BASE+0x0C | BASE+0x0D |
DAC1 | BASE+0x0E | BASE+0x0F |
Где BASE=0x110 — базовый адрес платы 5710.
Программирование АЦП
Алгоритм действий при программировании АЦП такова.
Выбор номера канала. Поскольку плата 5710 снабжена мультиплексором аналоговых сигналов, осуществляющем подключение только одного из сигналов на вход АЦП, то необходимо в регистр мультиплексора выдать номер канала. Нумерация каналов ведется от 0 до 15 в случае однопроводной схемы включения, а в случае дифференциального подключения, в качестве номеров каналов берутся нечетные числа от 1 до 15 (1, 3, 5, — 15). При однопроводном включении можно использовать все 16 каналов, при дифференциальном – только 8.
Адресом регистра выбора номера канала в плате 5710 является BASE+0x09.
Желательно осуществить небольшую выдержку времени (порядка нескольких микросекунд) для того, чтобы закончились переходные процессы в мультиплексоре, возникающие в момент переключения канала. Данная операция повышает точность измерения, поскольку переходные процессы мультиплексора могут вносить высокочастотные помехи в измеряемый сигнал.
Выдать команду начала преобразования. Делается это занесением в регистр по базовому адресу платы 5710 любого числа (обычно 0).
Ждать сигнала готовности данных. По окончании процесса преобразования АЦП выставляет бит готовности данных. Это нулевой бит по базовому адресу платы. Данные готовы для считывания программой, если этот бит установлен в единицу.
ЦСУА 3.6
Чтение и компоновка данных. Как и в случае с ЦАП, мы не сможем за одно обращение считать двенадцатиразрядный код. Чтение данных производится поочередно за две операции. Сначала по адресуBASE+0x02 считываются данные с 4 по 11-й бит (старший байт, илиMSB). Затем по адресуBASE+0x03 считываются данные с 0 по 3-й бит (младший полубайт, илиLSB). При этом физически биты с 0 по 3-й физически расположены с 4 по 7 в считываемом слове, см. таблицу.
Таким образом, данные размещаются по двум независимым адресам и должны быть программным путем скомбинированы для достижения 12-ти разрядного результата.
Другими словами, биты MSB c 0 по 7-й должны стать битами с 4-го по 11-й в результирующем 12-ти разрядном числе. А биты LSB c 4-го по 7-й должны стать битами с 0-го по 3-й. Делать это можно операциями циклического сдвига вправо и влево.
Пример на языке С: Code=((MSB<<4)+(LSB>>4)).
Преобразование данных из кода в инженерные единицы (вольты).
Считанный код представляет собой 12-ти разрядное число в диапазоне от 0 до 4095. Таблица соответствия дискретных кодов аналоговым значениям приведена выше.
Для получения значения в вольтах можно пользоваться формулой, обратной вышеприведенной для ЦАП:
.
Для случая Code=922 получим: .
.
Для случая Code=1126 получим: .
studfiles.net
Давайте рассмотрим основной спектр вопросов, которые можно отнести к принципу действия аналого-цифровых преобразователей (АЦП) разных типов. Последовательный счет, поразрядное уравновешивание – что скрывается за этими словами? В чем заключается принцип работы АЦП микроконтроллера? Эти, а также ряд других вопросов мы рассмотрим в рамках статьи. Первые три части мы посвятим общей теории, а с четвертого подзаголовка будем изучать принцип их работы. Вы можете в различной литературе встречать термины АЦП и ЦАП. Принцип работы этих устройств немного различается, поэтому не путайте их. Так, в статье будет рассматриваться преобразование сигналов из аналоговой формы в цифровую, в то время как ЦАП работает наоборот.
Давайте рассмотрим основной спектр вопросов, которые можно отнести к принципу действия аналого-цифровых преобразователей (АЦП) разных типов. Последовательный счет, поразрядное уравновешивание – что скрывается за этими словами? В чем заключается принцип работы АЦП микроконтроллера? Эти, а также ряд других вопросов мы рассмотрим в рамках статьи. Первые три части мы посвятим общей теории, а с четвертого подзаголовка будем изучать принцип их работы. Вы можете в различной литературе встречать термины АЦП и ЦАП. Принцип работы этих устройств немного различается, поэтому не путайте их. Так, в статье будет рассматриваться преобразование сигналов из аналоговой формы в цифровую, в то время как ЦАП работает наоборот.
Определение
Прежде чем рассматривать принцип работы АЦП, давайте узнаем, что это за устройство. Аналого-цифровые преобразователи являются приборами, которые физическую величину превращают в соответствующее числовое представление. В качестве начального параметра может выступать практически всё что угодно – ток, напряжение, емкость, сопротивление, угол поворота вала, частота импульсов и так далее. Но чтобы иметь определённость, мы будем работать только с одним преобразованием. Это «напряжение-код». Выбор такого формата работы не случаен. Ведь АЦП (принцип работы этого устройства) и его особенности в значительной мере зависят от того, какое понятие измерения используется. Под этим понимают процесс сравнения определённой величины с ранее установленным эталоном.
Характеристики АЦП
Основными можно назвать разрядность и частоту преобразования. Первую выражают в битах, а вторую — в отсчетах на секунду. Современные аналого-цифровые преобразователи могут обладать разрядностью 24 бита или скоростью преобразования, которая доходит до единиц GSPS. Обратите внимание, что АЦП может одновременно предоставлять вам в использование только одну свою характеристику. Чем большие их показатели, тем сложнее работать с устройством, да и оно само стоит дороже. Но благо можно получить необходимые показатели разрядности, пожертвовав скоростью работы прибора.
Типы АЦП
Принцип работы разнится у различных групп устройств. Мы рассмотрим следующие типы: 1. С прямым преобразованием. 2. С последовательным приближением. 3. С параллельным преобразованием. 4. Аналого-цифровой преобразователь с балансировкой заряда (дельта-сигма). 5. Интегрирующие АЦП. Есть много других конвейерных и комбинированных типов, которые обладают своими особенными характеристиками с разной архитектурой. Но те образцы, которые будут рассматриваться в рамках статьи, представляют интерес благодаря тому, что они играют показательную роль в своей нише устройств такой специфики. Поэтому давайте будем изучать принцип работы АЦП, а также его зависимость от физического устройства.
Прямые аналого-цифровые преобразователи
Они стали весьма популярными в 60-70-х годах прошлого столетия. В виде интегральных схем производятся с 80-х гг. Это весьма простые, даже примитивные устройства, которые не могут похвастаться значительными показателями. Их разрядность обычно составляет 6-8 бит, а скорость редко превышает 1 GSPS. Принцип работы АЦП данного типа таков: на плюсовые входы компараторов одновременно поступает входной сигнал. На минусовые выводы подается напряжение определённой величины. А затем устройство определяет свой режим работы. Это делается благодаря опорному напряжению. Допустим, что у нас есть устройство, где 8 компараторов. При подаче ½ опорного напряжения будет включено только 4 из них. Приоритетным шифратором сформируется двоичный код, который и зафиксируется выходным регистром. Относительно достоинств и недостатков можно сказать, что такой принцип работы позволяет создавать быстродействующие устройства. Но для получения необходимой разрядности приходится сильно попотеть.
Общая формула количества компараторов выглядит таким образом: 2^N. Под N необходимо поставить количество разрядов. Рассматриваемый ранее пример можно использовать ещё раз: 2^3=8. Итого для получения третьего разряда необходимо 8 компараторов. Таков принцип работы АЦП, которые были созданы первыми. Не очень удобно, поэтому в последующем появились другие архитектуры.
radiodvor.com
Итак, перед нами стоит задача — микроконтроллер должен знать температуру в комнате. Вариант «взять градусник и набрать по кнопочкам» по понятным причинам исключается.
Мы поступим так:
Если все эти этапы осуществляются в одном устройстве, то оно будет называться цифровым датчиком. Они проще для работы, но дороже.
Теперь рассмотрим все эти этапы преобразования отдельно.
Тут все зависит от параметра. Если параметром является емкость, то разговор будет совсем особым. Если же датчик сразу дает напряжение, то этот шаг уже выполнен самим датчиком. А если (как у KTY81) параметром является сопротивление, то преобразование в напряжение необходимо выполнить.
Нужно учитывать, что любое преобразование вносит погрешность. Эти погрешности бывают самыми разными. На практике я сталкивался с изменением линейности, смещением, «обрезанием» нижней или верхней границы.
Ничего общего тут сказать нельзя. Каждый вид преобразования индивидуален. В нашем примере используется делитель напряжения. Надо учитывать, что резистор, стоящий вверху, также имеет температурный коэффициент (гораздо менее выраженный, чем у терморезистора, но все равно не нулевой). Значит, при нагреве или остывании платы кривая куда-то «поплывет». Все это нужно учитывать при проектировании устройства. Если нас интересует просто комнатная температура (точность — 1оС), то такие мелочи несущественны и могут быть проигнорированы. Но если вы проектируете термометр с погрешностью не более 0.1оС для широкого диапазона температур, то все эти вопросы становятся очень существенными.
Тут бы самое то поговорить про особенности процесса АЦПирования, но вы тогда забудете про последний этап, который не менее важен. Поэтому подробно про АЦП будет сказано после, а сейчас — исключительно в двух словах.
Задача АЦП — выдать цифровой код для напряжения в заданном диапазоне, измерение проводится с заданной погрешностью. Ответ будет представлять собой целое число в четко заданном диапазоне. Для нашего случая это может быть измерение напряжения в диапазоне 0… 5 В.
Первый важный момент (его мне напомнили в комментариях): в процессе преобразования АЦП имеет дело с напряжением, которое накопилось на устройстве выборки-хранения — или конденсатор, коммутируемый аналоговым ключом. Это важно помнить, т. к. конденсатор заряжается не моментально из-за своей емкости.
Второй важный момент: АЦП производит преобразование непрерывной величины напряжения в дискретный код. Сейчас разъясню — покажу на примере.
Итак, мы имеем некоторое напряжение x. Мы уверены в том, что оно больше некоторого 0 и меньше некоторого +U. Уверены? Тогда смело подаем на вход АЦП, которое ограничено 0 и +U вольтами.
Есть много всяких разновидностей и вариантов процедуры измерения (вот, например, прекрасная статья про сигма-дельта АЦП), я же возьму самый простой и понятный.
Измерение проводится в несколько шагов. У нас первый шаг — диапазон 0… U. Делим его пополам и сравниваем: x > 1/2U или же x < 1/2U? В нашем случае x < 1/2U. Прекрасно, тогда результат первого шага — знак «меньше», что отмечается первым двоичным числом «0», результат лежит в диапазоне 0… 1/2U.
Второй шаг — предыдущий результат «0», диапазон 0… 1/2U. Снова делим диапазон пополам и делаем сравнение: x > 1/4U или x < 1/4U? Оказалось выше, что отмечается двоичным числом «1», которое добавляется к имеющемуся. Результат: «01», 1/4U < x < 1/2U.
Третий шаг: снова выше середины. Получаем «011», 3/8U < x < 1/2U.
Четвертый шаг — у нас середина будет 7/16U, новое сравнение. Потом дальше и дальше…
Суть понятна?
UPD: меня попросили проверить правильность еще нескольких преобразований. Выложу тут результаты нескольких 16-битных преобразований для желающих поупражняться:
Диапазон измерений, Напряжение на АЦП, Результирующий код
В мВ
5 4 999 1111-1111-1111-0010
5 735 0010-0101-1010-0001
3.3 735 0011-1001-0000-0100
1 735 1011-1100-0010-1000
2.5 0.01 0000-0000-0000-0000
2.5 8 900 дымок над АЦП
Как мы видим, у нас на каждом шагу есть зона неопределенности, в которой и лежит искомый результат. Каждым новым шагом мы зону неопределенности делим пополам. И так, за заданное количество шагов мы получим результат. Количество шагов называется разрядностью АЦП — первая исключетльно важная характеристика АЦП. Количество разрядов определяют количество битов, необходимых для представления результата. Поэтому, например, АЦП с разрядностью 10 назовут 10-битным АЦП. Как правило, в англоязычной документации так и пишут — «16-bit, sampling analog-to-digital (A/D) converter» (это я про ADS8320).
Каждый шаг занимает время — пусть и микроскопическое в масштабах Вселенной, но тем не менее вполне конечное (а часто недостаточно малое). Количество всех шагов и образует время преобразования — вторая фундаментальная величина (на самом деле оно — время преобразования — зависит еще и от массы других параметров, но они значительно меньше влияют на общее время, чем разрядность).
Вот по этим двум параметрам и еще допустимый диапазон измерений (что является ответом на вопрос «что такое 0 и что такое +U?») производится первичный выбор АЦП из всей кучи имеющихся.
Разрядность и диапазон измерения прямым образом влияют на результирующую погрешность преобразования. Какова погрешность у нашего примера?
Первый шаг дает результат в 1/2U (если у нас U = 5В, то точность будет 2.5В). Значит, точность первого шага — 50% от исходного диапазона. Если мы на этом остановимся, то точность у нас будет… хм… скромненькая, прямо скажем, поэтому мы двигаемся дальше.
Второй шаг еще раз делит искомую область пополам. Точность становится 1/4U = 25% = 1.25В.
Третий шаг… Давайте, впрочем, изобразим это в таблице:
Шаг Диапазон Точность
1 2^-1U = 2.5В 50%
2 2^-2U = 1.3В 25%
3 2^-3U = 625мВ 13%
4 2^-4U = 312.5мВ 6%
5 2^-5U = 156.3мВ 3%
6 2^-6U = 78.1мВ 2%
7 2^-17U = 39.1мВ 781*10^-3%
8 2^-8U = 19.5мВ 391*10^-3%
9 2^-9U = 9.8мВ 195*10^-3%
10 2^-10U = 4.9мВ 98*10^-3%
11 2^-11U = 2.4мВ 49*10^-3%
12 2^-12U = 1.2мВ 24*10^-3%
13 2^-13U = 610.3мкВ 12*10^-3%
14 2^-14U = 305.2мкВ 6*10^-3%
15 2^-15U = 152.6мкВ 3*10^-3%
16 2^-16U = 76.3мкВ 2*10^-3%
17 2^-7U = 38.1мкВ 762*10^-6%
18 2^-18U = 19мкВ 381*10^-6%
19 2^-19U = 9.5мкВ 190*10^-6%
20 2^-20U = 4.8мкВ 95*10^-6%
21 2^-21U = 2.4мкВ 48*10^-6%
22 2^-22U = 1.2мкВ 24*10^-6%
23 2^-23U = 0.6мкВ 12*10^-6%
24 2^-24U = 0.3мкВ 6*10^-6%
Поражают воображения числа внизу таблицы? А именно такие АЦП и используются как правило. В составе микроконтроллеров ATmega, например, используются 10-битные. Предел на сегодняшний день (то, что я встречал) — 24-х битные. И цена их отнюдь не фантастическая, а вполне реальная. UPD: впрочем, на момент написания статьи реальным пределом, при котором получается стабильно точный результат, был 22 бита. А оставшиеся 2 бита — просто для маркетинга. UPD 2: Впрочем, и это не предел! В комментариях подсказывают: есть уже и 31-битные. Вот, загляните в гости к «Техасскому инструментальному заводу» и взгляните на ADS1281. Там, впрочем, хитро написано: в заголовке речь про 24-хбитный преобразователь, в характеристиках про 31 бит. И кто их — техасцев — поймет?..
Но! Точность преобразования все равно конечна! И поэтому результат будет таким, каким был на картинке — ступеньками. Ступеньки могут быть сколь угодно малыми (почти сколь угодно…), но все равно это будет ступенька. Это надо четко понимать. И подбирать параметры исходя из требуемой точности.
Диапазон самого последнего сравнения называют ценой младшего разряда. Этот параметр используется при преобразовании получившегося кода в величину.
Обычно точность измерений при подходе к последним шагам падает. И часто последние разряды будут «шуметь» — вы напряжение не меняете, а код скачет. Поэтому еще говорят об эффективных разрядах — это те разряды, которые свое значение не меняют при неизменном значении на входе. Обычно у 24-х битных АЦП шумят последние 2 — 3 разряда.
Что собою представляет эта функция F(x)? Если мы ее считаем линейной (для простоты), то ответ будет достаточно простой:
y = F(x) = K*x + B.
Простая линейная функция… И в большинстве случаев ее хватает. Но — опять же — только для линейной зависимости кода (с учетом всех перипетий его получения) от исходной величины. Углубляясь в дебри — можно использовать, если надо, квадратичную и более функцию. Я где-то слышал, что делали тензометр — измеритель веса. Он должен был работать в диапазоне от 0 до 5 тонн. И там с помощью кубической функции аппроксимации добились точности в пару килограмм — и это круто!
Так вот, задача теперь заключается в получении этих самых K и B. Как их узнать? Из математики известно, для получения этих констант достаточно знать два значения код-величина. И тогда получаем решение. Где их взять — эти две пары?
Тут есть 2 взаимодополняющих подхода для получения ответа — теоретический и экспериментальный. На практике один дополняет другой.
Для начала мы заглянули в описание KTY81/110и увидели, что при 20оС значение сопротивления у резистора равно… приблизительно… 961 Ом.… Угу, а еще оно равно минимум 950 Ом и максимум 972… Впрочем, я отвлекся.
Итак, для 20оС сопротивление равно 961 Ом. Дальше у меня был делитель напряжения. Допустим, там это сопротивление превратилось в 3.124В. Какой у нас там шаг? — 1.22мВ на один код (т. е. 12-битное АЦП). Т. е. мы должны взять 3.124В и разделить на этот шаг — получим код 2560. Прекрасно! А 100оС соответствует 1696 Ома — после делителя 4.076В — после АЦП код 3340.
Просчитали — и получили значение.
Но вся беда в том, что это только лишь тео-ория… А на практике завод не может гарантировать такую высокую точность KTY81/110 (о чем в описании честно и сказано). И мы не должны забывать о том, что используем делитель напряжения, где сверху резистор, и он тоже не шибко точный. А источник напряжения-то в делителе — тоже не идеален… Словом, от датчика к датчику будут различия. Что хорошо — величину этого различия можно всегда просчитать и вывести погрешность. Если она устраивает — все ОК, продаем датчик. Если же нет, то необходимо откалибровать данный датчик.
Для этого пары код-значения получают экспериментально.
Я это для измерителя температуры делал так.
Первая точка — моя температура тела 36.6оС (хочется верить). Засовываю датчик под мышку и смотрю — ага, код такой-то. Запомнили!
Вторая точка — кипящий чайник. Вот он, электрочайник, кипит и бурлит на столе (за час отладки программы я доливал туда воду не раз и в комнате было туманно…) Засовываю датчик туда — ага, получил вторую точку!
В итоге получилось неплохо — в пределах погрешности, к которой я стремился.
Но вначале я записал в программу то, что было в документации. Потом исправлял для каждого нового датчика.
А что надо сделать для нелинейной характеристики? То же самое, только формула усложняется, больше точек код-значение и существенно сложнее формула получения констант.
В нашем-то примере надо было все-таки делать нелинейную аппроксимацию! Но на некотором участке кривая получается почти линейной. А у нас есть условие — «мерять комнатную температуру». «Комнатная» — это от 10оС (ну мало ли, котел сломался зимой, окна нараспашку!) до 40оС (ну мало ли, кондиционер сломался по летней жарище, окна нараспашку). Как мы видим на нашем графике, на этом участке кривая почти прямая. Прекрасно! Мы надеемся, что у нас в доме меньше 10оС не будет (а если будет — нам уже будет не до датчиков!), и нелинейный участок нас интересовать не будет. Все! Значит, порядок!
В этом и заключается магия четкого отслеживания всех погрешностей и условий работы прибора: если в заданных условиях получившаяся у нас в результате всех преобразований погрешность допустима, то к большей точности стремиться не надо. У нас, скажем, допустима погрешность в 1оС. Попадаем в нее (в условиях комнатной температуры)? Да. Тогда считаем, что устройство работает правильно!
Ширина ступеньки — это код. Высота ступеньки — это величина. Код у нас растет монотонно — все время увеличивается на 1-цу. Следовательно, у всех ступенек ширина будет одинаковая. А вот величина может быть и не очень равномерно-монотонной. Если у нас линейная аппроксимация, то высота будет везде одинаковая. Но вот если любая другая, то высота будет плавать в зависимости от диапазона.
Высота ступеньки — шаг изменения исходной величины — задает нам погрешность. В случае линейной аппроксимации погрешность для всего диапазона кодов (и, значит, исходной величины) одинаковая. Но в случае остальных вариантов погрешность будет зависеть от кода (и от величины). Это надо учитывать при последующей оценке погрешности измерений.
Впрочем, на практике это не очень важно, поэтому углубляться не будем, а перейдем к кой-чему, что было нами забыто.
Например, по ходу заряда аккумуляторы постепенно начинают нагреваться. Вначале процесса заряда они нагреваются несущественно, но к концу нагрев растет экспоненциально. Если 1) измерять температуру на аккумуляторах с высокой точностью, 2) знать их емкость и прочие характеристики, а также 3) четко управлять током заряда, то по температуре можно предсказать оставшееся время заряда.
Тогда нам в цепочку преобразований надо вставить еще один этап — график «температура -> время заряда». У этого преобразования будут тоже свои погрешности и особенности. Впрочем, это совсем отдельная тема, и она специфична для каждого случая. Поэтому рассматривать ее тут подробно бессмысленно.
При всех этих действиях у нас погрешность скачет туда-сюда. Каждый узел устройства, каждый шаг преобразования тем или иным образом увеличивает погрешность. Об этом надо помнить и везде закладывать такую погрешность, чтобы сумма всех этих погрешностей в конце не превысила требования к прибору. Под «суммой» тут имеется в виду не арифметическое сложение, а… ну-у… сумма, в общем.
Вы уже познакомились с зависимостью точности преобразования от разрядности? Нет??? Тогда знакомьтесь, иначе дальше ничего не поймете! Ну а коли познакомились (не правда ли, приятное знакомство!), двигаемся дальше.
Там было сказано, что АЦП характеризуется тремя важными параметрами:
Впрочем, самое то сделать оговорку. Нижняя граница может быть и отрицательной. Есть еще дифференциальный режим измерения — когда есть два входа — нижнее значение и измеряемое. Тогда мы меряем напряжение между ними (а не разницу между данным напряжением и 0). Это используется в случае так называемого «дифференциальног опдключения». Объяснять специфику тут долго, да и выходит оно за рамки статьи. Вкратце: диф. подключение позволяет здорово минимизироват ьвлияние помех. Разницы почти нет. Поэтому для упрощения дальнейшего изложения будем говорить только об измерении текущего напряжения между 0 и опорным.
Увеличивая опорное напряжение, мы «растягиваем» как гармошку «лестницу» результата. Т. е. меняется цена разряда. Уменьшая — соответственно, наоборот. Как правило, опорное напряжение — это константа.
Для создания опорного напряжения используют отдельную микросхему. Она дает высокоточное напряжение (0.1% точности у REF5050), слабо зависящее от температуры. Ток у таких источников питания совсем небольшой (у того же элемента +-10мА), но этого вполне хватает для АЦП. И вообще, запомните: АЦП потребляет мизерный ток от измеряемого сигнала (он измеряется в микроамперах, а часто и в наноамперах). Но, как всегда, есть исключения: в комментариях enclis отметил, что «есть такой класс усилителей/буферов — драйверы АЦП. Из-за входных сопротивлений и емкостей тех же высокоскростных АЦП приходится очень быстро прокачивать несколько мА, а иногда и десятки мА.»
Скорость преобразования, или же, что корректней, частота дискретизации — это следующий ключевой момент, и его надо учитывать в случае периодических измерений. Допустим, у вас меняется ток в устройстве, и вы хотите быстро реагировать на эти изменения. Значит, вы должны уметь их быстро отслеживать. Насколько быстро? Это уже характеристика АЦП.
Загляните на выбор АЦП у Analog Devices. Вы увидите таблицу (или их уже две?..) «Resolution (Bits) x ADC Throughput Rate (SPS)». Это, соответственно, «разрешение (биты) х частота семплирования (SPS)». Разрядность (оно же разрешение) уже рассмотрели, измеряется в битах. Частота семплирования (SPS — samples per second) — это количество выборок (измерений) в секунду. Величина 10 SPS означает, что за секунду это АЦП может произвести 10 измерений. Да-да, SPS — это те же Герцы.
Правда, 10 SPS — это уже из разряда очень высокоточных измерений! В простых случаях все начинается с 1k («k» — это тут KSPS, то есть тысячи SPS)…
Вот такие времена наступили! Меньше 1k измерений в секунду уже никого (почти) не интересует. Дальше — больше: 100k (100 тысяч), 1M (1 миллион), 250+M (более 250 миллионов). Дык, мы уже доросли и до миллиарда измерений в секунду! Есть уже 58 GSPS — собственно, без таких АЦП невозможны современные оптические сети. Такие вот нынче цифры — меряет от доли микровольта до 5 Вольт меньше чем за микросекунду!
На практике необходимо прежде всего решить для себя — какая частота измерений вам нужна? Полоса частот видеосигнала, если я не ошибаюсь, составляет с десяток МГц — это будет один АЦП. Нужно измерять потребление тока в домашней электросети 50 Гц — там будет совсем другой АЦП.
Слишком быстрое АЦП тоже не нужно — микроконтроллер должен успевать обработать результат.
Лично я как максимальную величину устанавливаю ту скорость, что мне выдает мой контроллер (что мой алгоритм успеет обработать). Эта величина у меня никогда не была выше 1 MSPS. Минимальная величина — это предполагаемая частота, увеличенная (грубо) в 10 раз. Тут вы видите примеры различных частот дискретизации.
Если вы измеряете, например, обычные колебания (синусоиду), то необходимо учитывать ее частоту. Если вы выберете частоту АЦП, близкую к частоте колебаний, то вы можете получить красивую, но совсем неправильную информацию о колебаниях. На рисунке представлен как раз этот случай — исходные колебания (синя кривая) опрашиваются весьма, но недостаточно быстро (зеленые линии), в итоге получаем, по сути дела, эффект биения (красная кривая) — результат сложения двух колебаний близких частот.
А вообще — есть теорема Найквиста-Котельникова по поводу выбора частоты дискретизации. Исходя из этой теоремы надо оценить спектр сигнала, найти максимальную гармонику… Испугал? Если да, то запомните простое правило, которое я для себя вывел: нужно делать где-то в 10 раз бОльшую частоту дискретизации, чем частота изменения сигнала. UPD: это правило теоретически некорректное и не всегда правильное, но для быстрого подбора АЦП сойдет.
Тему АЦП можно мурыжить бесконечно — но тут я, наверное, и остановлюсь. Для начального понимания вопроса тут написано достаточно, а дальше нужно погружаться в описания микросхем и мучить вопросами специалистов.
Также пора завершать всю тему про датчики. Надеюсь, своей статьей я кому-то сэкономил время (и место на рабочем столе). Если уважаемые читатели увидят какие-нибудь неточности, очепятки и ошибки — пишите, благо сервис позволяет их исправлять!
Литература
[1] моя голова
[2] Интернет
[3] мои железяки, где используются датчики
P. S.Хочу поучаствовать в конкурсе, поэтому добавляю:
we.easyelectronics.ru