Uоп через резистор 2R. Коэффициент усиления тот же самый, так что на выходе будет напряжение Uоп/2. Самый сложный случай, когда код принимает значение «11» и подключаются оба резистора. При этом ОУ надо рассматривать как сумматор токов. Напряжение на выходе будет определяться суммой токов через резисторы 2R умноженной на величину сопротивления обратной связи R т. е. будет равно (Uоп/2R + Uоп/4R)∙R или просто 3 Uоп/4.
Способ построения цепочки R-2R с любым числом звеньев ясен (рис. 10.3, б). Крайние резисторы со значением 2R включены параллельно и в сумме дают сопротивление R поэтому следующее звено оказывается состоящим из тех же номиналов по 2R и в сумме тоже даст R и т. д. Какой бы длины цепочку ни сделать, она будет делить входное напряжение в двоичном соотношении: на самом правом по схеме конце цепочки будет напряжение Uоп, на следующем отводе Uоп/2, на следующем Uоп/4 и т. д. Фактически это и есть наша двоичная линейка.
Так можно всего с помощью двух типономиналов резисторов, отличающихся ровно в два раза, строить ЦАП в принципе любой разрядности. Например, восьмиразрядный ЦАП будет содержать всего 16 резисторов и 8 ключей (с переключением), не считая резистора обратной связи, который у нас для наглядности был равен также R но может быть любого удобного номинала. В интегральных ЦАП часто этот резистор вообще не устанавливают, а выносят соответствующие выводы наружу, так что можно легко получать любой масштаб напряжения по выходу. Например, если в нашей схеме сделать этот резистор равным 1,33R то на выходе мы получим напряжения, равные Uоп, 2Uоп/3, Uоп/3 и 0. Правда, неудобство такой простейшей схемы заключается в том, что выходные напряжения будут с обратным знаком, но эта проблема легко решается: на рис. 10.3, в показан простейший вариант ЦАП с положительным выходом.
Большинство интегральных ЦАП построено на основе описанного принципа суммирования взвешенных токов или напряжений, хотя есть, конечно, и другие способы. Получив таким способом аналоговое напряжение из цифрового значения, мы можем теперь перейти к рассмотрению аналого-цифровых преобразователей (АЦП), один из распространенных классов которых содержит указанные ЦАП.
Номенклатура аналого-цифровых преобразователей существенно больше, чем ЦАП. Однако все разнообразие их типов можно свести к трем разновидностям: это АЦП параллельного действия, последовательного приближения и интегрирующие. Все эти типы АЦП встречаются на практике, т. к. обладают разными свойствами, и потому применимы в разных областях.
АЦП параллельного действия
АЦП параллельного действия — это зеркально отраженный простейший ЦАП на основе дешифратора, о котором шла речь ранее. В таких АЦП имеется делитель из k одинаковых резисторов, к каждой ступени которого подключен компаратор, сравнивающий напряжение на делителе с входным сигналом. Выходы компараторов образуют равномерный код, вроде того, что получается на выходе дешифратора-распределителя. Они подключены к шифратору с к входами, который преобразует этот код в двоичный с числом разрядов и, равным величине log(k) (округленной, естественно, до большего целого). Трудности тут те же, что и при построении основанных на подобном принципе ЦАП: для n-разрядного кода требуется k = 2n резисторов и компараторов, причем резисторов точно согласованных между собой, и компараторов также с как можно более идентичными характеристиками. Поэтому более чем 8-разрядные, такие АЦП практически не делают. А зачем их делают вообще? По одной простой причине — этот тип АЦП самый быстродействующий из всех, преобразование происходит фактически мгновенно и лимитируется только быстродействием применяемых компараторов и логики. Фактическое быстродействие АЦП такого типа может составлять десятки и сотни миллионов отсчетов в секунду (наиболее совершенных, например, МАХ108 — даже до 1,5 млрд). Все остальные типы АЦП, как мы увидим, значительно медленнее.
АЦП последовательного приближения
АЦП последовательного приближения как раз и относятся к тем, что используют рассмотренные ранее ЦАП с коммутируемыми резисторами. Хотя самим в настоящее время такие АЦП строить не приходится, но для успешного их использования следует хорошо понимать, как они работают. Именно такого типа АЦП встроены в микроконтроллеры семейства AVR (см. часть II этой книги).
АЦП последовательного приближения работает по следующему принципу. Берется ЦАП нужной разрядности (именно поэтому мы рассматривали ЦАП раньше, чем АЦП). На его цифровые входы подается с некоего регистра код по определенному правилу, о котором далее. Выход ЦАП соединяется с одним из входов компаратора, на другой вход которого подается преобразуемое напряжение. Результат сравнения подается на схему управления, которая связана с этим самым регистром — формирователем кодов.
Есть несколько вариантов алгоритма преобразования. Самый простой выглядит следующим образом: сначала все разряды кода равны нулю. В первом такте самый старший разряд устанавливается в единицу. Если выход ЦАП при этом превысил входное напряжение, т. е. компаратор перебросился в противоположное состояние, то разряд возвращается в состояние логического нуля, в противном же случае он остается в состоянии логической единицы. В следующем такте процедуру повторяют для следующего по старшинству разряда. Такой метод позволяет за число тактов, равное числу разрядов, сформировать в регистре код, соответствующий входному напряжению. Способ довольно экономичен в смысле временных затрат, однако имеет один существенный недостаток: если за время преобразования входное напряжение меняется, то схема может «ошибаться», причем иногда вплоть до полного сбоя. Поэтому в такой схеме обязательно приходится предусматривать устройство выборки-хранения (УВХ), о которых далее.
В другой модификации этой же схемы формирование кодов осуществляет реверсивный счетчик, подобный 561ИЕ11, с нужным числом разрядов. Выход компаратора попросту подключают к выводу переключения направления счета. Изначально счетчик полностью сбрасывают, после чего подают на него тактовые импульсы. Как только счетчик досчитает до соответствующего значения кода, и выход ЦАП превысит входное напряжение, компаратор переключает направление счета, и счетчик отрабатывает назад. После окончания этого периода установления, в идеале, если напряжение на входе меняется мало, величина кода все время колеблется в пределах младшего разряда. Здесь выбросы не так страшны, но большое время установления и неизвестное заранее время реакции на быстрые изменения входного сигнала являются недостатком такого АЦП, получившего название следящего.
В большинстве случаев для АЦП последовательного приближения приходится ставить на входе устройства выборки-хранения (УВХ). В простейшем случае это аналоговый электронный ключ, на вход которого подается измеряемый сигнал, а на выходе стоит конденсатор. До начала измерения ключ открыт и напряжение на конденсаторе равно входному напряжению со всеми его изменениями. По команде начала измерения ключ запирается и в дальнейшем в качестве измеряемого фигурирует уже напряжение, запасенное на конденсаторе, изменения на входе на измерительную схему не влияют. Все, казалось бы, просто, но наличие УВХ, прежде всего, достаточно сильно замедляет процесс, т. к. ключ имеет конечное сопротивление и конденсатор должен иметь время для зарядки. Кроме того, ключ вместе с конденсатором образует ФНЧ, который может искажать форму сигнала. К тому же, как бы ни было велико входное сопротивление компаратора, оно конечно, и притом ключ также имеет не бесконечно большое сопротивление в закрытом состоянии, присутствует в схеме обычно и элемент для сброса конденсатора, наконец, конденсатор также имеет собственные утечки, — все это вынуждает увеличивать емкость конденсатора и еще больше снижать быстродействие схемы. В интегральных АЦП подобного рода иногда даже предоставляется выбор между точностью (числом разрядов) и быстродействием.
Кроме выборки-хранения, в АЦП последовательного приближения требуется также время на вывод данных и подготовку к следующему циклу измерения. Все указанные причины приводят к тому, что наиболее распространенные 12-разрядные АЦП последовательного приближения имеют реальное быстродействие не выше 50—200 кГц. Как пример достаточно быстродействующей модели, приведем МАХ1132, который имеет разрешение 16 бит при частоте выборок 200 кГц. АЦП последовательного приближения очень распространены и применяются там, где требуется средняя точность (до 12 разрядов) при среднем быстродействии.
Интегрирующие АЦП
Наиболее точные и одновременно самые медленные — интегрирующие АЦП. Разных типов интегрирующих АЦП вообще-то не меньше десятка, но здесь мы подробно рассмотрим только две их разновидности. Кстати, интегрирующие АЦП являются примером того, что цифровая техника вовсе не всегда достигает наивысшей точности в сравнении с аналоговой, т. к. центральный узел этих, как мы уже сказали, наиболее точных преобразователей — чисто аналоговый интегратор на ОУ.
Схема самого простого интегрирующего АЦП показана на рис. 10.4. Это так называемый АЦП с однократным интегрированием. В начале преобразования на С-вход динамического D-триггера поступает положительный фронт, который устанавливает выход Q в состояние логической единицы. Она является разрешающим уровнем для элемента «И-НЕ», и на вход счетчика поступают импульсы. Одновременно через выход Q¯ запирается транзистор VT1. Конденсатор начинает заряжаться от источника стабильного тока. При равенстве значения входного измеряемого напряжения и напряжения на конденсаторе компаратор срабатывает и обнуляет триггер («ворота» на логическом элементе «И-НЕ» запираются, транзистор открывается и разряжает конденсатор, счетчик обнуляется). Число импульсов, накопленных в счетчике к этому моменту, пропорционально входному напряжению.