Аналого-цифровое преобразование для начинающих. Автоматика управления отоплением дома своими руками, ч.3. Входы АЦП

Для Windows Phone 23.06.2019
Для Windows Phone

В настоящее время аналого-цифровые преобразователи (АЦП) находят все большее применение в радиолюбительских конструкциях. Это связано с появлением доступных микросхем АЦП и с преимуществами, которые дает цифровая обработка аналоговых сигналов. С помощью АЦП можно легко превратить персональный компьютер (ПК) в любой виртуальный измерительный прибор. Причем электронная часть такого прибора может быть очень простой, а вся обработка сигнала будет производиться программно.

Описываемое в статье устройство предназначено для преобразования аналогового сигнала в цифровой шестиразрядный код и может служить приставкой к ПК. Области ее применения самые разнообразные - от виртуальных измерительных приборов до различных систем записи звука.

На страницах журнала "Радио" неоднократно публиковались конструкции на базе АЦП. Однако в них в основном использовались микросхемы с двоично-десятичным выходным кодом или кодом для семиэлементных индикаторов . Данный подход не удобен для ввода информации в ПК.

В предлагаемом вниманию читателей устройстве использована микросхема КР1107ПВ1, представляющая собой быстродействующий параллельный шестиразрядный АЦП . Она предназначена для преобразования напряжения в интервале -2...0 В в один из потенциальных кодов параллельного считывания: двоичный код (прямой и обратный) и код с дополнением до двух (прямой и обратный). Эта микросхема выбрана потому, что, во-первых, она доступна широкому кругу радиолюбителей и стоит относительно недорого, а во-вторых, имеет высокое быстродействие (максимальная частота преобразования - 20 МГц, время одного преобразования - не более 100 нc).

Принципиальная схема устройства приведена на рис. 1.

За основу взята рекомендуемая схема включения КР1107ПВ1А , которая существенно упрощена без заметного ухудшения точности преобразования. Преобразуемый аналоговый сигнал через гнездо 1 розетки XS1 и резистор R4 поступает на инвертирующий вход ОУ DA1. Подобное включение использовано потому, что чаще приходится оцифровывать напряжение положительной полярности, а микросхема АЦП преобразует напряжение в интервале от 0 до -2 В. С движка подстроечного резистора R1 снимается напряжение смещения нуля. Резисторы R5 и R4 определяют требуемый коэффициент усиления ОУ. Усиленный аналоговый сигнал поступает через резисторы R7- R9 на выводы 10, 13, 15 АЦП.

Работой АЦП DA2 управляют тактовые импульсы, поступающие из ПК (через контакт 8 розетки XS2) на вывод 4. Кодирование производится после прохождения среза тактового импульса, а результат, полученный в процессе преобразования, передается в выходной регистр одновременно с фронтом очередного тактового импульса. Это позволяет фронтам тактового импульса производить следующую выборку, т. е. в тот момент, когда на выходе DA2 присутствует результат n-й выборки, на входе производится (п+2)-я выборка. Цифровой код снимается с выходов D1 - D6 и выводится на розетку XS2.

Необходимо обратить внимание, что обозначение выходов микросхемы противоположно их весу: выход D1 соответствует старшему разряду, a D6 - младшему. Вид кода (прямой, инверсный, дополнительный) на выходах микросхемы определяется уровнями сигналов на входах С1 и С2 микросхемы. Их подключение к шине +5 В соответствует подаче высокого уровня, а к общему проводу - низкого. Требуемый вид кода на выходе микросхемы задают комбинацией уровней сигналов на входах С1 и С2 в соответствии с табл. 1.

АЦП КР1107ПВ1А требует двуполярного питания напряжениями +5 и -6 В. Кроме того, необходимы два образцовых напряжения. Они определяют диапазон оцифровываемых напряжений. В данном случае одно из этих напряжений (Uoбp1) принято равным нулю (вывод 16 микросхемы соединен с общим проводом), а второе (Uoбp2) - равным -2 В, что в соответствии с определяет диапазон входных напряжений АЦП 0...-2 В. Образцовое напряжение -2 В снимается с движка подстроечного резистора R6, включенного в цепь напряжения питания отрицательной полярности. Конденсаторы С1 - С5 служат для устранения помех.

При сборке устройства используют резисторы МЛТ, ОМЛТ, оксидные и керамические конденсаторы любого типа. Подстроечный резистор R1 - также любого типа, R6 - желательно проволочный многооборотный, например, СП5-1В, СП5-14, СП5-15, СП5-2 и т. п. ОУ DA1 - практически любой, способный работать при пониженных напряжениях питания, например, КР140УД7. Для расширения частотного диапазона можно применить операционный усилитель К574УДЗ, у которого частота единичного усиления равна 10 МГц.

Питают устройство от двуполярного стабилизированного источника, обеспечивающего выходные напряжения +5 В при токе 35. ..40 мА и -6 В при токе 200 мА

Перед первым включением АЦП движок резистора R6 устанавливают в среднее положение. Включив питание, измеряют образцовое напряжение на выводе 9 микросхемы DA2 и возможно точнее устанавливают его равным -2 В. Требуемого смещения нуля добиваются подстроечным резистором R1. Контролировать положение нуля можно по выходному цифровому коду или постоянному напряжению на аналоговых входах АЦП (выводы 10, 13, 15 DA2). На этом настройку можно считать законченной.

К ПК АЦП подключают через интерфейс (рис. 2) устанавливаемый в свободный ISA разъем системной платы.

На плате интерфейса собраны четыре порта ввода/вывода с адресами ЗЕ0Н- ЗЕЗН. Элементы DD1.1-DD1.3 и DD2 образуют дешифратор адреса. На их входы поступают сигналы с шины адреса ПК, и если на ней появляется комбинация ЗЕ0Н-ЗЕЗН, на выходе DD2 формируется разрешающее напряжение низкого уровня. Сигналы, определяющие номер порта в адресном пространстве портов, соответствуют двум младшим битам шины адреса и подаются на дешифратор DD4. На него же поступают разрешающие сигналы по шине AEN (это означает, что в данном цикле отсутствует прямой доступ к памяти) и сигналы IOW, IOR, что соответствует записи во внешнее устройство и чтению из него. Сигнал с вывода 15 дешифратора поступает на вход Е шинного формирователя DD7 и разрешает передачу данных из АЦП на шину данных.

Сигнал, появляющийся на выводе 14 дешифратора DD4, служит для тактирования АЦП DA2, на выводе 13 - для сброса триггера DD6.1, а на выводе 12 - для разрешения подачи информации с него на шину данных. Триггер предназначен для синхронизации АЦП с внешним устройством, которое может вырабатывать синхроимпульсы или сигнал о готовности. Синхросигнал от внешнего устройства поступает через контакт 1 розетки XS2 на тактовый вход триггера. Состояние последнего считывается программой. Если обнаруживается высокий уровень на выводе 5 DD6.1, то это значит, что от внешнего устройства поступил импульс синхронизации. Как только состояние триггера прочитано, его необходимо сбросить, чтобы подготовиться к приему следующего тактового импульса.

Несколько слов о назначении портов. Порт с адресом ЗЕ0Н предназначен для чтения данных из АЦП (в битах D0-D5 содержится значение оцифрованного сигнала), с адресом ЗЕ1Н - для подачи тактового импульса на АЦП (при записи в этот порт любого байта происходит запуск преобразования аналогового сигнала в цифровой). Порт ЗЕ2Н служит для сброса триггера синхронизации DD6.1 после прочтения его состояния. Сброс происходит при записи любого байта в этот порт. Наконец, порт ЗЕЗН предназначен для чтения состояния триггера, которое отражается битом 5 байта, прочитанного из этого порта. Триггер нужен для того, чтобы зафиксировать синхроимпульсы малой длительности. Если при чтении из порта ЗЕЗН обнаружен высокий логический уровень на прямом выходе триггера (бит D5=1), то программа возвращает его в исходное состояние, записав в порт ЗЕ2Н любой байт.

Программа для чтения данных из АЦП, написанная на Паскале, приведена в табл. 2.

В качестве основы конструкции удобно использовать неисправную плату расширения для ISA слота. С нее удаляют все "высокие" элементы (конденсаторы, разъемы) и перерезают печатные проводники, идущие к контактным площадкам части, вставляемой в слот (вилка ХР1 на рис. 2). Детали монтируют на небольшой печатной плате, которую закрепляют с помощью стоек на плате расширения. Выводы устройства соединяют с контактами вилки ХР1 короткими отрезками монтажного провода. Назначение контактов ISA слота можно найти в .

В заключение отметим, что в большинстве случаев шести разрядов для представления аналогового сигнала вполне достаточно. Если АЦП с интервалом входных напряжений 0...2 В используется для измерения напряжения 2 В, погрешность не превысит 0,03 В (или 1,5%). При измерении напряжения 0,2 В погрешность возрастет до 15%. Для повышения точности измерений можно использовать АЦП большей разрядности или усилить измеряемое напряжение до значения, близкого к верхнему пределу интервала (например, изменить соотношение сопротивлений резисторов R5 и R4). При номиналах, указанных на схеме (см. рис. 1), устройство оцифровывает входные напряжения в интервале 0...0.5 В и способно работать с бытовым микрофоном.

Если же из соображений точности "оцифровки" слабых сигналов необходима более высокая разрядность, микросхему КР1107ПВ1А можно заменить восьмиразрядным преобразователем К1107ПВ2 (естественно, с учетом различий в "цоколевке" и энергопотреблении).

Литература

  1. Бирюков С. Термометр "Дом - улица". - Радио, 2000, №3, с. 32, 33.
  2. Новаченко И. В., Петухов В. М., Блудов И. П., Юровский А. В. Микросхемы для бытовой радиоаппаратуры. Справочник. - М.: КУбК, 1995.
  3. Данилин Н. С, Улитенко В. П., Крипак А. А. Руководство по поиску неисправностей и ремонту компьютеров IBM PC. - М.: Издательство стандартов, 1992.

Смотрите другие статьи раздела .

Аналоговые (АЦП) входы контроллера. Не каждому и не сразу понятно, что это такое и с чем его едят. Потому попытаюсь объяснить своими словами.

Вообще, что такое "аналоговый" вход? У контроллера два типа входов: цифровой и аналоговый. Цифровой может принимать только два значения: ноль и единица. Ноль - нет напряжения, единица - есть напряжение. Информация передается на цифровой вход импульсами во времени. А вот аналоговый вход способен принимать не только эти два значения, но вообще любое напряжение.

У контроллера NM8036 имеются два аналоговых входа (см. ). На каждый из этих входов может быть подано любое напряжение в пределах от 0 до напряжения питания (5 в). Например, 1,8 вольта, или 3,2 вольта... Короче, любое, но не более 5 вольт.

Что с этим напряжением делает контроллер? Очень просто: измеряет и представляет его в цифровом виде. Причем, делает он это в пределах от 0 до 1023. Это бинарные данные (bin-data), в которых верхний предел (1023) приравнивается к напряжению в 5 вольт. Это и есть Аналого-Цифровое Преобразование (АЦП).

Но фактическое напряжение - оно и есть фактическое. 5 вольт - они и есть 5 вольт. Это значение рассматривается здесь, как "Вольты". И правильно, вольты и есть.

Но здесь можно представить это напряжение и в других физических величинах (Физика). Например, подключили мы ко входу датчик давления или влажности, или тоже датчик температуры, но не цифровой, как DS1820, а терморезисторный. Этот терморезисторный датчик выдаст нам напряжение от 0 до 5 вольт (электронщики, не возбуждайтесь! Это лишь для примера.), но ведь нам важно знать температуру, а не напряжение!

Вот мы и калибруем эти значения. Нижний предел в настройках (см. Управление отоплением частного дома. Advanced Manager.) установим, например, в 16 градусов, а верхний - в 30 градусов. Вот такой вот у нас датчик, видите ли, подключен. А количество знаков после запятой поставим 2. И префикс укажем: С (то бишь, градусов цельсия).

И что мы при этом получим? А получим то, что когда датчик пришлет на вход напряжение, например, в 2,5 вольта, контроллер быстренько все пересчитает и выдаст нам три варианта результатов: 512 (bin-data), 2,5в (Вольты) и 23.00 С (градусов цельсия). Вот таким образом можно настроить работу практически с любым датчиком, выдающим на своем выходе аналоговое значение напряжения.

Существование двух аналоговых входов у контроллера - это ведь не только возможность подключения вышеперечисленных датчиков. Можно придумать немало схем, которые могут оказаться очень даже полезными для разных целей в частном доме. Перечислю навскидку возможные из них.

Простой выключатель на 2 положения. Может иметь на выходе Data либо 0 вольт, либо 5 вольт. Подключается тремя проводами: Vcc (+5в), Data (данные) и Gnd (общий провод). Таким выключателем можно устанавливать два разных режима работы нагрузок при программировании системы.

Переключатель на большее количество положений может обеспечить возможность программирования и большего количества режимов. Вот, скажем, на 3 положения. Каждое положение имеет свое напряжение на выходе. Самое нижнее положение - на выходе 1,25 в, среднее 2,5 в и верхнее 3.75 в. Увеличивая количество резистров в цепочке, можно увеличивать и количество положений переключателя.

Это были варианты ступенчатой регулировки, но ведь есть и вариант плавного регулирования. Здесь величина выходного напряжения зависит от положения движка переменного резистора. Можно применить, например, для ручной регулировки температуры. Сделать программу так, чтобы она поддерживала температуру в помещении такой, какая задана регулятором. Автоматическая регулировка - это одно, но нередко хочется где-то что-то повернуть, щелкнуть, чтобы было потеплее, или, наоборот, попрохладнее. Человек ведь существо привередливое.

Или применить такую схему для контроля, скажем, за уровнем воды в емкости, в колодце... Это несложно: поплавок на нитке, намотанной на ручку переменного резистора. Подпружиненной, естественно. Но это так, навскидку, без детальной проработки.

Если же продолжать фантазировать, то можно еще измерять уровень освещенности и в нужное время включать/отключать лампу... Короче, возможностей у этих аналоговых входов масса, NM8036 вполне может осилить немало задач не только в управлении отоплением частного дома, но и для решения многих других задач. О возможностях программирования поговорим в следующих статьях.

Кстати, по поводу регулировки температуры в помещении есть очень даже неплохое решение, взятое мною из . В ответ на чей-то вопрос автор сообщения Brokly (он же автор Advanced Manager) привел пример применения аналогового входа. Привожу дословно:
Вы бы еще сложнее че нить придумали. Поставьте контактный настенный термостат, подключите к аналоговому входу, и пусть алкаши сами его крутят. И уборщицу освободите, и пъяным забава. Да и контроллеру меньше работы, сработал термостат - можно не греть.

Как тебе такое, Мастер? А мне, знаешь, понравилось.

Продолжение следует...

Оценка 1 Оценка 2 Оценка 3 Оценка 4 Оценка 5

Микросхема PCF8591 обладает следующими возможностями:

Единственный источник питающего напряжения;
- сохранение работоспособности в диапазоне питающих напря-жений от 2,5 до 6 В;
- низкий ток потребления;
- три вывода задания slave-адреса;
- четыре аналоговых входа с возможностью программирования включения (прямое и дифференциальное);
- использование A/D преобразования с последовательным при-ближением и 8-разрядным диапазоном чисел;
- мультиплексированный D/A преобразователь с одним аналого-вым выходом.

Данная микросхема выполнена по технологии КМОП, имеет 4 аналоговых входа и 1 аналоговый выход, управляемые посредством задания данных на шине I2C. Биты А2...А0 в slave-адресе микросхемы задаются внешними сигналами по традиционному способу: подключением соответствующих выводов либо к общему проводу, либо к напряжению питания. Это позволяет использовать до 8 однотипных микросхем. В составе PCF8591 имеется только один A/D преобразователь , но использование методов мультиплексирования расширяет входные возможности микросхемы. Вход АЦП последовательно подключается к 4 сигнальным входам, и происходит считывание информации с них. К сожалению, мультиплексирование нельзя использовать для D/A преобразования, поэтому аналоговый выход только один. Максимальная скорость преобразования данных ограничена максимальным быстродействием шины I2C.

Рисунок 1. Расположение выводов микросхемы PCF8591

Рисунок 2. Блок-схема, отражающая внутреннее устройство и взаимодействие элементов микросхемы

Таблица 1. Назначение выводов PCF8591

Символ Вывод Описание
AIN0 1 Аналоговый вход (A/D)
AIN1 2 Аналоговый вход (A/D)
AIN2 3 Аналоговый вход (A/D)
AIN3 4 Аналоговый вход (A/D)
А0 5 Адресный вход 0
A1 6 Адресный вход 1
A2 7 Адресный вход 2
Vss 8 Общий провод микросхемы (питание)
SDA 9 Линия SDA шины I2C
SCL 10 Линия SCL шины I2C
OSC 11 Вывод подключения внешнего генератора
EXT 12 Внешний/внутренний генератор
AGND 13 Аналоговая «земля»
Vref 14 Опорное напряжение
AOUT 15 Аналоговый выход (D/A)
Vdd 16 Напряжение питания«+»

Slave-адрес микросхемы задается, как показано на рис.3. Он содержит фиксированную часть (биты 7...4) и изменяемую часть (биты 3...1). Бит 0, как всегда, несет в себе признак «R/W» (чтение/запись).

Рисунок 3. Slave-адрес микросхемы

Второй байт, следующий за slave-адресом, носит название байта контроля и управления. Этот байт конфигурирует микросхему под задачи пользователя. Во-первых, с его помощью можно включить аналоговый выход или отключить его. Во-вторых, возможно настро-ить аналоговые входы как в прямом, так и в дифференциальном включении. В-третьих, возможна установка (двумя битами) номера канала A/D, в котором будет происходить преобразование. Если ус-тановлен флаг автоинкремента, после каждого A/D преобразования номер входного канала будет увеличиваться на единицу. Режим ав-тоинкремента наиболее рационально использовать совместно с внут-ренним генератором, поскольку в таком режиме он будет работать непрерывно. Как сказано в документации, задержка пуска генератора при переключении каналов ведет к ошибкам преобразования данных. Рекомендуется также отключать аналоговый выход (переводить его в Z-состояние), если он не используется. Эта мера позволит сократить ток потребления микросхемы. На рис. 4 показаны возможные со-стояния байта контроля и управления.

Рисунок 4. Со-стояния байта контроля и управления

D/A преобразование

Третий байт, который должна получать микросхема PCF8591, - это байт данных для цифроаналогового преобразователя. Естественно, в этом случае в байте контроля и управления (рис. 4) должен быть активизирован аналоговый выход.

Физически D/A преобразователь состоит из резисторной матрицы, показанной на рис. 5. Точки соединения резисторов образуют ответвления, которые с помощью переключателей связываются с выходной линией. Управляет схемой декодер ответвлений. Выходное напряжение (L)AC out) подается затем на усилитель с автоматаческой балансировкой нуля (auto-zeroed unity gain amplifier). Этот усилитель может быть либо включен (через байт контроля и управления), либо переведен в высокоимпедансное (2) состояние выхода.

Рисунок 5. D/A преобразователь

Важно отметить, что D/A преобразователь используется также в процедуре A/D преобразования по методу последовательного приближения. Данный метод подробно описан в литературе, и возвращаться к нему в рамках этой книги нет смысла.

Рисунок 6. Процедура D/A преобразования

Процедура D/A преобразования показана на рис. 6. Любая точка на графике в диапазоне 00h...FFh может быть определена по формуле:

где VA0UT - выходное напряжение D/A преобразователя; VREF - опорное напряжение; VAGND - потенциал аналоговой «земли»; D - соответствующий разряд байта данных.

Обратите внимание также на рис. 7. Возможна работа с микросхемой посредством передачи цепочки байтов данных, следующих один за другим. Уровень напряжения, соответствующий заданному, появляется на выходе в момент выдачи сигнала АСК. В момент выдачи сигнала АСК, подтверждающего прием байта контроля и управления (рис. 4) на выходе микросхемы, появляются данные, содержащиеся в регистре DAC с момента окончания предыдущего цикла работы микросхемы.

Рисунок 7.

Чтобы выполнить A/D преобразование, вначале нужно передать байт контроля и управления с признаком R/W = 0. Затем осуществить считывание данных согласно рис. 8.

Рисунок 10. Дифференциальный режим измерения

Чтобы обеспечить стабильность A/D и D/A преобразований, необходим специальный источник опорного напряжения, подключаемый к выводам Vref и AGND микросхемы. Встроенный генератор не-обходим для обеспечения цикла преобразования A/D и для корректировки буферного усилителя с автоматической подстройкой нуля.

Чтобы задействовать внутренний генератор, вывод ЕХТ должен быть замкнут к Vss. Тогда на выводе OSC появится сигнал частоты преобразования, который можно проконтролировать. Если вывод ЕХТ подключить к VDD, внугренний генератор перейдет в высокоимпедансное состояние и на вывод OSC можно подавать сигнал от внешнего генератора.

Литература:
Б. Ю. Семенов, «ШИНА I2C В РАДИОТЕХНИЧЕСКИХ КОНСТРУКЦИЯХ»

Так сложилось, что основной МК с которым я работаю постоянно и на котором делаю подавляющее большинство задач это ATTiny2313 — он популярен, а, главное, это самый дешевый контроллер из всей линейки AVR с числом ног более 8. Я их брал числом около трех сотен за 18, чтоль, рублей штучка. Но вот западло — у него нет АЦП . Совсем нет. А тут он понадобился — нужно замерить сигнал с датчика. Засада. Не переходить же из-за такой фигни на более фаршированную ATTiny26 — она и стоит дороже и фиг где купишь у нас, да и что тогда делать с той прорвой ATTiny2313 что уже закуплена? Пораскинул мозгами…

А почему бы не сварганить АЦП последовательного сравнения? Конечно, быстродействие и точность будет не фонтан, зато, не меняя тип МК и всего с двумя копеечными деталями дополнительного обвеса, я получу полноценный, хоть и тормозной, 8ми разрядный АЦП, вполне удовлетворяющий моим скромным запросам!

Как работает АЦП последовательного сравнения.
Что у нас есть в ATTiny2313 аналогового? Правильно — . Теперь достаточно подать на его вход замеряемый сигнал и методично сравнивать с опорным напряжением, линейно изменяя величину опорного напряжения. На каком из опорных напряжений произойдет сработка компаратора, тому и примерно равен измеряемый сигнал +/_ шаг изменения опорного.

Осталось получить переменное опорное напряжение, а чем, из сугубо цифрового выхода контроллера, можно вытянуть аналоговый сигнал? ШИМом! Предварительно его проинтегрировав. Для интеграции используем простейший RC фильтр. Конденсатор у нас будет интегрировать заряд, а резистор не даст сдохнуть порту при зарядке кондера. Результатом прогона ШИМ’а через подобный фильтр станет достаточно стабильное постоянное напряжение.

Осталось только прикинуть номиналы фильтра. Частота среза — частота, начиная с которой, фильтр начинает глушить переменную составляющую, у Г образного RC фильтра равна обратной величине из его постоянной времени w=1/RC . Я воткнул кондер на 0.33Е-6 Ф и резистор на 470 Ом, получилось что w=6447 рад/c . Поскольку угловая частота нам никуда не уперлась, то делим ее на 2pi = 6.28 получили около килогерца, 1026.6 Гц, если быть точным. Раз частота ШИМ а у нас запросто может быть порядка десятков килогерц, то на выходе будет гладенькая такая постоянка, с незначительными пульсациями.

Теперь заворачиваем эту ботву на вход компаратора, на второй пускаем наш измеряемый сигнал и начинаем развлекаться с кодом. Получилась вот такая схема, собранная , что и . Тут, правда, не ATTiny2313, а Mega8 у которой АЦП есть, но мы пока забудем о его существовании. Красными линиями нарисован наш фильтр.

Код будет простецкий, чтобы не заморачиваться выложу и отдельные исходники в виде файлов:

  • — Головной файл
  • — Таблица векторов прерываний
  • — Инициализация периферии
  • и — Макросы и макроопределения

Прокомментирую лишь главную функцию Calc .
При вызове процедуры Calc у нас первым делом:

  1. Конфигурируется аналоговый компаратор и, главное, активизируются его прерывания.
  2. Затем в сканирующий регистр (R21) закидывается начальное значение сканирования 255.
  3. После чего это значение забрасывается в регистр сравнения ШИМ OCR1AL . ШИМ был заранее, в разделе init.asm сконфигурирован и запущен, так что сразу же на его выходе появляется сигнал скважностью (скважность это отношение длительности сигнала к периоду этого сигнала) 1 т.е., фактически, пока это просто единица.
  4. Выжидаем в функции Delay некоторое время, чтобы закончился переходный процесс (конденсатор не может мгновенно изменить свое напряжение)
  5. Уменьшем значение сканирующего регистра (что при загрузке в OCR1AL уменьшит скважность на 1/255), проверяем не стало ли оно нулю. Если нет, переходим на пункт 3.
Итогом станет последовательное уменьшение скважности сигнала с 1 до 0, с шагом в 1/255 , что будет преобразовано после фильтра в уменьшающееся напряжение. А, так как в главной процедуре у меня Calc вызывается циклически, то на входе компаратора будет пила.

Как видно, вверху есть некоторый срез. Это связано с тем, что максимальное напряжение, которое может выдать нога МК, с учетом падений на всех резисторах, порядка 4.7 вольта, а с задающего потенциоматера я могу и все 5 выкрутить. Ну еще и верхушки заваливаются чуток. Если понизить частоту, то диапазон несколько расширится.

Вот так, применив немного смекалки, а также две дополнительные детали общей суммой в один рубль и десяток строк кода, я сэкономил кучу бабла =)

Давайте рассмотрим основной спектр вопросов, которые можно отнести к принципу действия разных типов. Последовательный счет, поразрядное уравновешивание - что скрывается за этими словами? В чем заключается принцип работы АЦП микроконтроллера? Эти, а также ряд других вопросов мы рассмотрим в рамках статьи. Первые три части мы посвятим общей теории, а с четвертого подзаголовка будем изучать принцип их работы. Вы можете в различной литературе встречать термины АЦП и ЦАП. Принцип работы этих устройств немного различается, поэтому не путайте их. Так, в статье будет рассматриваться из аналоговой формы в цифровую, в то время как ЦАП работает наоборот.

Определение

Прежде чем рассматривать принцип работы АЦП, давайте узнаем, что это за устройство. Аналого-цифровые преобразователи являются приборами, которые физическую величину превращают в соответствующее числовое представление. В качестве начального параметра может выступать практически всё что угодно - ток, напряжение, емкость, сопротивление, угол поворота вала, частота импульсов и так далее. Но чтобы иметь определённость, мы будем работать только с одним преобразованием. Это "напряжение-код". Выбор такого формата работы не случаен. Ведь АЦП (принцип работы этого устройства) и его особенности в значительной мере зависят от того, какое понятие измерения используется. Под этим понимают процесс сравнения определённой величины с ранее установленным эталоном.

Характеристики АЦП

Основными можно назвать разрядность и частоту преобразования. Первую выражают в битах, а вторую - в отсчетах на секунду. Современные аналого-цифровые преобразователи могут обладать разрядностью 24 бита или скоростью преобразования, которая доходит до единиц GSPS. Обратите внимание, что АЦП может одновременно предоставлять вам в использование только одну свою характеристику. Чем большие их показатели, тем сложнее работать с устройством, да и оно само стоит дороже. Но благо можно получить необходимые показатели разрядности, пожертвовав скоростью работы прибора.

Типы АЦП

Принцип работы разнится у различных групп устройств. Мы рассмотрим следующие типы:

  1. С прямым преобразованием.
  2. С последовательным приближением.
  3. С параллельным преобразованием.
  4. Аналого-цифровой преобразователь с балансировкой заряда (дельта-сигма).
  5. Интегрирующие АЦП.

Есть много других конвейерных и комбинированных типов, которые обладают своими особенными характеристиками с разной архитектурой. Но те образцы, которые будут рассматриваться в рамках статьи, представляют интерес благодаря тому, что они играют показательную роль в своей нише устройств такой специфики. Поэтому давайте будем изучать принцип работы АЦП, а также его зависимость от физического устройства.

Прямые аналого-цифровые преобразователи

Они стали весьма популярными в 60-70-х годах прошлого столетия. В виде производятся с 80-х гг. Это весьма простые, даже примитивные устройства, которые не могут похвастаться значительными показателями. Их разрядность обычно составляет 6-8 бит, а скорость редко превышает 1 GSPS.

Принцип работы АЦП данного типа таков: на плюсовые входы компараторов одновременно поступает входной сигнал. На минусовые выводы подается напряжение определённой величины. А затем устройство определяет свой режим работы. Это делается благодаря опорному напряжению. Допустим, что у нас есть устройство, где 8 компараторов. При подаче ½ опорного напряжения будет включено только 4 из них. Приоритетным шифратором сформируется который и зафиксируется выходным регистром. Относительно достоинств и недостатков можно сказать, работы позволяет создавать быстродействующие устройства. Но для получения необходимой разрядности приходится сильно попотеть.

Общая формула количества компараторов выглядит таким образом: 2^N. Под N необходимо поставить количество разрядов. Рассматриваемый ранее пример можно использовать ещё раз: 2^3=8. Итого для получения третьего разряда необходимо 8 компараторов. Таков принцип работы АЦП, которые были созданы первыми. Не очень удобно, поэтому в последующем появились другие архитектуры.

Аналого-цифровые преобразователи последовательного приближения

Здесь используется алгоритм «взвешивания». Сокращенно устройства, работающие по такой методике, называют просто АЦП последовательного счета. Принцип работы таков: устройством измеряется величина входного сигнала, а потом она сравнивается с числами, которые генерируются по определённой методике:

  1. Устанавливается половина возможного опорного напряжения.
  2. Если сигнал преодолел предел величины из пункта №1, то сравнивается с числом, которое лежит посредине между оставшимся значением. Так, в нашем случае это будет ¾ опорного напряжения. Если опорный сигнал не дотягивает до этого показателя, то сравнение будет проводиться с другой частью интервала по такому же принципу. В данном примере это ¼ опорного напряжения.
  3. Шаг 2 необходимо повторить Н раз, что даст нам Н бит результата. Это благодаря проведению Н количества сравнений.

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

Параллельные аналого-цифровые преобразователи

Они работают подобно последовательным устройствам. Формула расчета - (2^Н)-1. Для рассматриваемого ранее случая нам понадобится (2^3)-1 компараторов. Для работы используется определённый массив этих устройств, каждое из которых может сравнивать входное и индивидуальное опорное напряжение. Параллельные аналого-цифровые преобразователи являются довольно быстрыми приборами. Но принцип построения этих устройств таков, что для поддержки их работоспособности необходима значительная мощность. Поэтому использовать их при батарейном питании нецелесообразно.

Аналого-цифровой преобразователь с поразрядным уравновешиванием

Он действует по похожей схеме, что и предыдущее устройство. Поэтому чтобы объяснить функционирование АЦП поразрядного уравновешивания, принцип работы для начинающих будет рассмотрен буквально на пальцах. В основе данных устройств лежит явление дихотомии. Иными словами, проводится последовательное сравнение измеряемой величины с определённой частью максимального значения. Могут браться значения в ½, 1/8, 1/16 и так далее. Поэтому аналого-цифровой преобразователь может выполнить весь процесс за Н итераций (последовательных шагов). Причем Н равняется разрядности АЦП (посмотрите на ранее приведённые формулы). Таким образом, мы имеем значительный выигрыш во времени, если особенно важным является быстродействие техники. Несмотря на значительную скорость, эти устройства также характеризуются низкой статической погрешностью.

Аналого-цифровые преобразователи с балансировкой заряда (дельта-сигма)

Это самый интересный тип устройства, не в последнюю очередь благодаря своему принципу работы. Он заключается в том, что происходит сравнение входного напряжения с тем, что накопилось интегратором. На вход подаются импульсы с отрицательной или положительной полярностью (всё зависит от результата предыдущей операции). Таким образом, можно сказать, что подобный аналого-цифровой преобразователь является простой следящей системой. Но это только как пример для сравнения, чтобы вы могли понимать, АЦП. Принцип работы системный, но для результативного функционирования этого аналого-цифрового преобразователя мало. Конечным результатом является нескончаемый поток единиц и нулей, который идёт через цифровой ФНЧ. Из них формируется определённая битная последовательность. Различают АЦП-преобразователи первого и второго порядков.

Интегрирующие аналого-цифровые преобразователи

Это последний частный случай, который будет рассмотрен в рамках статьи. Далее мы будем описывать принцип работы данных устройств, но уже на общем уровне. Этот АЦП является аналого-цифровым преобразователем с двухтактным интегрированием. Встретить подобное устройство можно в цифровом мультиметре. И это не удивительно, ведь они обеспечивают высокую точность и одновременно хорошо подавляют помехи.

Теперь давайте сосредоточимся на его принципе работы. Он заключается в том, что входным сигналом заряжается конденсатор на протяжении фиксированного времени. Как правило, этот период составляет единицу частоты сети, которая питает устройство (50 Гц или 60 Гц). Также он может быть кратным. Таким образом, подавляются высокочастотные помехи. Одновременно нивелируется влияние нестабильного напряжения сетевого источника получения электроэнергии на точность полученного результата.

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

АЦП двухтактного интегрирования обладают высокой точностью и Благодаря этому, а также сравнительно простой структуре построения они выполняются как микросхемы. Основной недостаток такого принципа работы - зависимость от показателя сети. Помните, что его возможности привязаны к длительности частотного периода источника питания.

Вот как устроен АЦП двойного интегрирования. Принцип работы данного устройства хотя и является довольно сложным, но он обеспечивает качественные показатели. В некоторых случаях такое бывает просто необходимым.

Выбираем АПЦ с необходимым нам принципом работы

Допустим, перед нами стоит определенная задача. Какое выбрать устройство, чтобы оно могло удовлетворить все наши запросы? Для начала давайте поговорим про разрешающую способность и точность. Очень часто их путают, хотя на практике они очень слабо зависят один от второго. Запомните, что 12-разрядный аналого-цифровой преобразователь может иметь меньшую точность, чем 8-разрядный. В этом случае разрешение - это мера того, какое количество сегментов может быть выделено с входного диапазона измеряемого сигнала. Так, 8-разрядные АЦП обладают 2 8 =256 такими единицами.

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

Чтобы иметь представление о том, что нужно, для начала необходимо просчитать физические параметры и построить математическую формулу взаимодействия. Важными в них являются статические и динамические погрешности, ведь при использовании различных компонентов и принципов построение устройства они будут по-разному влиять на его характеристики. Более детальную информацию можно обнаружить в технической документации, которую предлагает производитель каждого конкретного прибора.

Пример

Давайте рассмотрим АЦП SC9711. Принцип работы данного устройства сложен ввиду его размера и возможностей. Кстати, говоря о последних, необходимо заметить, что они по-настоящему разнообразные. Так, к примеру, частота возможной работы колеблется от 10 Гц до 10 МГц. Иными словами, оно может делать 10 млн отсчетов в секунду! Да и само устройство не является чем-то цельным, а имеет модульную структуру построения. Но используется оно, как правило, в сложной технике, где необходимо работать с большим количеством сигналов.

Заключение

Как видите, АЦП в своей основе имеют различные принципы работы. Это позволяет нам подбирать устройства, которые удовлетворят возникшие запросы, и при этом позволят разумно распорядиться имеющимися средствами.



Рекомендуем почитать

Наверх