4. ЦАП И АЦП
Цифроаналоговые преобразователи (ЦАП) численные данные преобразуют в аналоговый сигнал, чаще в напряжение или в ток и служат для связи цифровых и выходных устройств. Аналого-цифровые преобразователи (АЦП) осуществляют обратное преобразование и являются промежуточными звеньями между датчиками сигналов и цифровыми схемами их обработки.
4.1 ЦАП С МАТРИЦЕЙ РЕЗИСТОРОВ R-2R
В ЦАП используется метод суммирования токов, пропорциональных весовым коэффициентам двоичных разрядов. К входу матрицы подключается прецизионный источник опорного напряжения Uo с током потребления Iвх = Io * 2n.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron3.files\\addatest.files\\r2r.gif" \* MERGEFORMATINET
Эквивалентное сопротивление цепи справа от "сечения 0" равно Rэ0 = 2R. Сопротивление цепи справа от "сечения 1" равно Rэ1 = R + 2R||Rэ0 = 2R. Значком || обозначено параллельное соединение двух сопротивлений. Рассуждая таким образом найдем, что Rэn-1 = R + 2R||Rэn-2 = 2R и полное сопротивление цепи со стороны входа, на который подается напряжение Uo, равно Rэ = 2R||Rэn-1 = R, т.е. равно номиналу R независимо от числа звеньев матрицы. Теперь можно найти величину тока
Io*2n = Uo/R (1)
Нетрудно подсчитать, что ток в узле n-1 делится пополам, одна половина ответвляется в сопротивление 2R, а другая в сопротивление Rэn-1 тоже равное 2R. Половина, попадающая в узел n-2, также делится пополам и т.д. Величина тока в каждой "ветке" равна Io*2i, т.е. пропорциональна весовому коэффициенту 2i. Суммирование токов осуществляется с помощью операционного усилителя (ОУ), включенного по схеме сумматора (см. рис.64). Часть схемы, слева от ОУ, выпускается промышленно в виде микросхем, например К572ПА1,2 и 1108ПА1.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron3.files\\addatest.files\\r2rou.gif" \* MERGEFORMATINET
Электронные ключи Кл управляются входными сигналами di цифрового кода. Левое положение ключа на рисунке эквивалентно нулевому значению i-го разряда, а правое - единичному. Относительно ОУ необходимо сделать известные допущения:
1)Коэффициент усиления ОУ без ОС стремится к бесконечности,
2)Rвх обоих входов тоже бесконечно велико.
Отсюда следует, что во-первых разность потенциалов dUвх на входах ОУ близка к нулю, т.к dUвх = Uцап / (К = бесконечности) и следовательно потенциал инверсного входа ОУ тоже близок к нулю и, во-вторых, током каждого входа ОУ можно пренебречь. Сумма токов втекающих в узел (*) и вытекающих из него равна нулю, поэтому можно записать: Ioc + сумма(Io * 2i * di) = 0 или сумма(Io * 2i * di) = -Iос. Подставляя в последнее выражение значение Io из формулы (1) получим: -Iос = (Uо/(R * 2n)) * (сумма(di*2i)). В свою очередь, Uцап = Iос * Rос. Подставляя сюда значение Iос и учитывая, что Rос = R получим окончательную формулу напряжения на выходе ЦАП:
n-1
___
Uо \ Uо*D
Uцап = - ---- > (2i * di) = - ---- , (2)
2n /__ 2n
i=0
где D = сумма(2i * di) - десятичный эквивалент цифрового кода на входах ЦАП. Пусть число разрядов n = 10 и Uо = -10.24В, тогда Uцап = (10.24/1024)*D и находится в пределах (0, 0.01, 0.02 ... 10.22, 10.23)В. Передаточная характеристика такого ЦАП показана на рисунке.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron3.files\\addatest.files\\unipolar.gif" \* MERGEFORMATINET
Верхний квадрант относится к -Uо, а нижний к +Uо.
На рисунке внизу показано применение униполярного ЦАП для формирования пилообразного напряжения.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron3.files\\addatest.files\\daprimer.gif" \* MERGEFORMATINET
4.2 БИПОЛЯРНЫЙ ЦАП
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron3.files\\addatest.files\\bipolar.gif" \* MERGEFORMATINET
4.3 ЧЕТЫРЕХКВАДРАНТНЫЙ ЦАП
Недостаток биполярного ЦАП - ненулевое значение входного кода при нулевом выходном напряжении. Преодолеть этот недостаток можно, если договориться какие-то двоичные числа считать положительными, а другие - отрицательными. Одним из двоичных кодов для чисел со знаком является "дополнительный до двух" код, в котором число с противоположным знаком находится инверсией исходного числа и увеличением результата на единицу. Причем старший бит обозначает знак числа. Если он равен единице, число отрицательное, если равен нулю - положительное. Минимальное отрицательное 10-ти разрядное число 10..00(BIN) = - 512(DEC). Максимальное положительное 01..11(BIN) = 511. Максимальное отрицательное 10-ти разрядное число 11..11(BIN) = -1(DEC). Минимальное положительное 00..01(BIN) = 1(DEC). Проинвертировав старший бит, получим передаточную характеристику расположенную в зависимости от знака Uо в четырех квадрантах, с нулем посередине. Такой ЦАП называется четырехквадрантным.
4.4 АЦП ПОРАЗРЯДНОГО УРАВНОВЕШИВАНИЯ (ПОСЛЕДОВАТЕЛЬНЫХ ПРИБЛИЖЕНИЙ)
Метод аналогичен взвешиванию груза. В старший разряд регистра записывается 1 (на весы кладется самая большая гиря). Если входное напряжение больше напряжения соответствующего этой единице (груз тяжелее гири), единица в старшем разряде сохраняется (гиря остается на весах), если наоборот - единица заменяется нулем (гиря снимается). Затем единица записывается в предпоследний разряд (ставится следующая гиря) и процесс уравновешивания повторяется. Количество приближений равно числу разрядов преобразователя.
Пусть число разрядов АЦП равно 10 (см. рисунок внизу). ЦАП начинает цикл преобразования с приходом "положительного" импульса на вход R. Высоким уровнем этого сигнала регистр RG1 обнуляется, а переход сигнала R к нулю запускает внутренний генератор и схему управления.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron3.files\\addatest.files\\adporaz.gif" \* MERGEFORMATINET
В момент t0 в старший разряд регистра RG1 записывается лог."1" (гиря с наибольшим весом). На выходах регистра RG1 появляется код 10..00(BIN) = 2^(n-1) = 512. ЦАП генерирует напряжение Uцап(n-1) = Uо * 2^(n-1) / 2^n = Uо / 2. Аналоговый компаратор сравнивает напряжения, и если Uцап(n-1) <= Uвх, то единица в старшем разряде сохраняется, если Uцап(n-1) > Uвх, в старший разряд записывается ноль.
В момент t1 единица записывается в предпоследний разряд (n-2) и на выходах регистра RG1 появится код: Qn-1,1,0,0,..,0 равный сумме двух кодов: (Qn-1) * 2^(n-1) - значения старшего бита, полученного в предыдущем такте, и 2^(n-2) = 0100..0(BIN) = 256 - цифрового кода с уменьшенным в два раза "весом". Выходное напряжение Uцап(n-2) = Uцап(n-1) * Q(n-1) + Uо *2^(n-2) / 2^n = (Uo / 2) * Q(n-1) + Uо / 4 опять сравнивается с входным. Если Uцап(n-2) <= Uвх, то единица в предпоследнем разряде сохраняется, если Uцап(n-2) > Uвх, в (n-2)-ой разряд записывается ноль.
Описанный процесс производится в общей сложности n-раз. В конце цикла преобразования схема управления вырабатывает импульс готовности ~RDY, который записывает полученный код в выходной регистр. Этот же импульс выводится наружу, для оповещения. Время преобразования Tпреобр = tclk*n. где tclk = t(i+1)-ti период повторения тактовых импульсов внутреннего генератора. Временные диаграммы и условное обозначение АЦП приведены рисунке.
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron3.files\\addatest.files\\da-vrem.gif" \* MERGEFORMATINET
По этому принципу действия выпускаются преобразователи типов 572ПВ1 и 1113ПВ1(А..В). Зависимость прямого двоичного кода D от входного напряжения: D = |(Uвх * 2^n)| / Uo, где D десятичный эквивалент кода на входе АЦП.
4.5 АЦП ПАРАЛЛЕЛЬНОГО ТИПА
В таком АЦП весь диапазон входного напряжения разбивается на 2^n интервалов. Каждому интервалу соответствует опорное напряжение Uо(i), снимаемое с делителя напряжения, и свой аналоговый компаратор, сравнивающий Uвх с Uо(i).
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron3.files\\addatest.files\\da-paral.gif" \* MERGEFORMATINET
Для любого входного напряжения в диапазоне (0 .. ¦Uo¦)В найдется такой i-ый компаратор, входное напряжение на котором будет больше или равно опорному U(i). В этом случае на выходе этого компаратора напряжений и на выходах всех компараторов с номерами меньшими i появится "1", а на выходах остальных "0". Приоритетный шифратор сформирует двоичный код, равный наивысшему номеру входа на котором еще присутствует единица. Полученный код через управляемые инверторы/повторители, выполненные на элементах равнозначности, защелкивается в выходном регистре. Учитывая логику работы шифратора, заключающуюся в том, что если на его входах с 1-го по (n-1)-ый одни нули, то единица обязательно должна быть на нулевом входе, можно сэкономить на нулевом компараторе. В этом случае нулевой вход шифратора постоянно подключен к "1", и если входное напряжение находится в пределах 0 <= ¦Uвх¦ < ¦U(1)¦, то нулевой код на выходе генерируется автоматически. Элементы ИСКЛЮЧАЮЩЕЕ-ИЛИ-НЕ при значении Mi = 0 инвертируют выходной сигнал шифратора, а при Mi = 1 повторяют его. Зависимость выходного кода от режима дана ниже:
M1 M0 Выходной код
1 1 прямой
0 0 обратный
0 1 дополнительный прямой
1 0 дополнительный обратный.
Быстродействие достигается, как за счет параллельного принципа работы, так и за счет конвейерного передвижения информации внутри АЦП (см. рисунок).
INCLUDEPICTURE "D:\\MyDoc\\Komp_El\\KE_Dict\\electron3.files\\addatest.files\\diagr.gif" \* MERGEFORMATINET
В момент t0 положительным фронтом сигнала C происходит защелкивание кода от предыдущего цикла преобразования. В момент t1 компараторы открываются и начинается сравнение входного напряжения с опорным в текущем цикле. Когда тактовый сигнал C станет равным нулю (момент t2), шифратор отпирается по входу C и начинает преобразование текущего значения Uвх в код. Следующий цикл преобразования начинается в момент t3, когда производится запоминание в регистре текущего кода и его появление на выходах в момент t4, одновременно с началом сравнения на входах компараторов следующего значения напряжения. Время преобразования Tпр = Tclk, т.е. примерно на порядок меньше, чем у АЦП последовательных приближений. По такой схеме выполняются преобразователи типа 1107ПВ1,..5.