4. ЦАП И АЦП

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

4.1 ЦАП С МАТРИЦЕЙ РЕЗИСТОРОВ R-2R

В ЦАП используется метод суммирования токов, пропорциональных весовым коэффициентам двоичных разрядов. К входу матрицы подключается прецизионный источник опорного напряжения Uo с током потребления Iвх = Io * 2n.

r2r.gif (3135 bytes)

Эквивалентное сопротивление цепи справа от "сечения 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.

r2rou.gif (4010 bytes)

Электронные ключи Кл управляются входными сигналами 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)В. Передаточная характеристика такого ЦАП показана на рисунке.

unipolar.gif (8548 bytes)

Верхний квадрант относится к -Uо, а нижний к +Uо.

На рисунке внизу показано применение униполярного ЦАП для формирования пилообразного напряжения.

daprimer.gif (3171 bytes)

 

4.2 БИПОЛЯРНЫЙ ЦАП

 

bipolar.gif (9571 bytes)

 

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 (на весы кладется самая большая гиря). Если входное напряжение больше напряжения соответствующего этой единице (груз тяжелее гири), единица в старшем разряде сохраняется (гиря остается на весах), если наоборот - единица заменяется нулем (гиря снимается). Затем единица записывается в предпоследний разряд (ставится следующая гиря) и процесс уравновешивания повторяется. Количество приближений равно числу разрядов преобразователя.

ad-vesy.gif (2975 bytes)

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

adporaz.gif (4834 bytes)

 

В момент 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 период повторения тактовых импульсов внутреннего генератора. Временные диаграммы и условное обозначение АЦП приведены рисунке.

da-vrem.gif (5147 bytes)

По этому принципу действия выпускаются преобразователи типов 572ПВ1 и 1113ПВ1(А..В).  Зависимость прямого двоичного кода D от входного напряжения: D = |(Uвх * 2^n)| / Uo, где D десятичный эквивалент кода на входе АЦП.

 

4.5 АЦП ПАРАЛЛЕЛЬНОГО ТИПА

В таком АЦП весь диапазон входного напряжения разбивается на 2^n интервалов. Каждому интервалу соответствует опорное напряжение Uо(i), снимаемое с делителя напряжения, и свой аналоговый компаратор, сравнивающий Uвх с Uо(i).

 

 da-paral.gif (8954 bytes)

Для любого входного напряжения в диапазоне (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          дополнительный обратный.

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

diagr.gif (1518 bytes)

В момент t0 положительным фронтом сигнала C происходит защелкивание кода от предыдущего цикла преобразования. В момент t1 компараторы открываются и начинается сравнение входного напряжения с опорным в текущем цикле. Когда тактовый сигнал C станет равным нулю (момент t2), шифратор отпирается по входу C и начинает преобразование текущего значения Uвх в код. Следующий цикл преобразования начинается в момент t3, когда производится запоминание в регистре текущего кода и его появление на выходах в момент t4, одновременно с началом сравнения на входах компараторов следующего значения напряжения. Время преобразования Tпр = Tclk, т.е. примерно на порядок меньше, чем у АЦП последовательных приближений. По такой схеме выполняются преобразователи типа 1107ПВ1,..5.

 

4.6 ЗАДАЧИ И УПРАЖНЕНИЯ

 

На входы цифроаналогового преобразователя поданы следующие сигналы: D3D2D1D0 = 0100 , Uo = -8v. Укажите абсолютное значение напряжения на выходе ЦАП.

dac1.gif (1473 bytes)

Пояснения к решению :1) Вспомним, что Uвых = - (Uo / 2^n) * D, где n- число разрядов ЦАП ( из условия задачи видно, что n = 4 ). 2) D - десятичный эквивалент двоичного кода на входе ЦАП = 0100(BIN) = 4(DEC).

Поэтому ответом будет:  2 вольта.

 

Напряжение Uo цифроаналогового преобразователя равно 16 вольт. Укажите число разрядов n ЦАП, если при увеличении двоичного кода на цифровых входах ЦАП на единицу, Uвых изменилось с -1,5в до -1,75в.

da.gif (1597 bytes)

Пояснения к решению : 1) Уравнение Uвых = - (Uo/2^n)*D, где n- число разрядов ЦАП, необходимо решить относительно n при известных D и Uвых.

Ответ: 6 разрядов.

 

На входы АЦП поданы следующие сигналы: Uвх = 2.5v, Uo = 8v. Укажите двоичный код D3D2D1D0 на выходе АЦП.

adc1.gif (1448 bytes)

Пояснения : Уравнение для ЦАП необходимо решить относительно выходного кода. D = (Uвх * 2^n) / Uo , далее все просто..

 

К входам D3D2D1D0 счетчика приложены сигналы 0111. Uo = -8v. Укажите значение напряжения на выходе ЦАП с учетом знака после прихода 3-го импульса на входе C.

ct-dac1.gif (2830 bytes)

Пояснения : 1)Из рисунка видно, что счетчик суммирующий (+1). 2)Сигналом L=1 в счетчик записывается BIN-код = 0111 = 7(DEC). 3)С приходом 3-го счетного импульса код на входе ЦАП станет равным 4)Остается найти напряжение на выходе ЦАП по приведенной ранее формуле (не забыв про знак).

Ответ:  5 вольт.

 

На вход C счетчика поступило 2 импульса. Вычислите напряжение на выходе униполярного ЦАП в момент времени отмеченный знаком +, с учетом значений на входах Di и временных диаграмм L,C. Внизу рисунка приведено содержимое памяти.

crd1.gif (3798 bytes)

 Адрес : 0 1 2 3 4 5 6 7 8 9 a b c d e f
 Код   : 1 8 e f b 6 9 2 7 c a d 4 0 5 3

Пояснения : 1)Сигналом (L)oad производится загрузка кода Q3Q2Q1Q0 = D3D2D1D0 = 0100(BIN) = 4(DEC). 2)Отмечаем, что счетчик вычитающий (-1), поэтому 2 импульса уменьшат код на его выходах до двух. 3)Из схемы видно, что выход Q0 соединен с входом A1,..,Q2 c A0,.. и.т.д то есть код на входах A3..A0 памяти будет другим (=4). 4)Находим код Y3Y2Y1Y0, соответствующий полученному адресу A3A2A1A0 и преобразуем его в BIN код (b = 1011). 5)Переставляем биты этого кода Y0 -> X2 , Y1 -> X3 , Y2 -> X0 , Y3 -> X1. 6)Полученный код 1110 преобразуем обратно в десятичное число, подставляем в формулу ЦАП и получаем ответ, не забывая про знак.

Ответ:  U = -14 вольт