Изучение принципов работы ЦАП и АЦП
с помощью средств смешанного аналого-цифрового моделирования САПР OrCAD
Андрей СТРОГОНОВ, д. т. н.
Данная статья знакомит с принципами работы ЦАП-АЦП с помощью смешанного аналого-цифрового моделирования в САПР OrCAD V.9.X фирмы CADENCE design systems. Несмотря на огромное число публикаций по данному вопросу в журналах «Компоненты и технологии» [1—4], “ChipNews”, «Схемотехника» и др., автор надеется, что материал будет интересен начинающим специалистам.
В позиционной системе исчисления цифровое двоичное представление величины N определяется полиномом [5]:
N = 0;-!^ 1 + ак_2212 + ^+д^2+Ад-
Вычисление полинома сводится к домно-жению отдельных битов на весовые коэффициенты, являющиеся степенями двойки, и к сложению получаемых членов. Это соответствует вычислению линейной комбинации битов. Подобные комбинации легко реализуются резисторными схемами, с помощью которых можно получить напряжение со значением двоичного числа.
Резисторная матрица обычно имеет две различные структуры: в виде двоично-взвешенных резисторов или в виде многозвен-
ной цепочки из резисторов лишь двух номиналов (К-2И). Так строятся обычно применяемые 8-, 12- и 16-битные ЦАП. При этом точность преобразования такого ЦАП зависит от качества резисторов и опорного напряжения. Наибольшее распространение получили ЦАП на резисторах И-2И с коммутацией токов и напряжений.
Схема на рис. 1а реализует суммирование с весами. Используя принцип суперпозиции, вычислим выходное напряжение, суммируя воздействия каждого индивидуального входного напряжения. Предположим, что подано только одно входное напряжение, а все остальные равны 0. Пусть напряжения на генераторах У1-У7 = 0 В, а напряжение на генераторе У8 = 5 В, что соответствует цифровой комбинации 00000001 на входе.
Рассмотрим воздействие на выход напряжения, соответствующего биту а,. Генератор напряжения VB подключен к резистору R34 с сопротивлением R. Обозначим точку на противоположном конце этого резистора через Р{. Сопротивление левой части схемы между точкой Р{ и «землей» будет равно R.
Пусть на крайнем левом генераторе V1 напряжение равно нулю. Крайний левый резистор R1B с сопротивлением R (рис. 1а) включен параллельно с резистором R27 с сопротивлением R (2OO Ом), идущим к генератору V1 (поскольку на генераторе нулевое напряжение, подключенный к нему резистор можно считать заземленным).
Параллельно включенные резисторы обладают общим сопротивлением R/2 (при параллельном соединении проводников имеем
R,xR7
R = ---г-
+ R.2
при равных сопротивлениях имеем R/2), которое последовательно с расположенным правее резистором R19 с сопротивлением R/2 дает сопротивление на «землю», равное R. Повторяя этот процесс, мы дойдем до узла Р{. Точно так же легко видеть, что сопротивление правой части схемы от узла Р{ на «землю» равно R. Таким образом, можно получить эквивалентную схему на рис. 1б.
Сопротивления правой и левой частей схемы включены в параллель и дают общее сопротивление R/2 (рис. 1в). Это сопротивление и сопротивление R резистора, подключенного к генератору ait образуют делитель напряжения. К точке Pi оказывается приложенным часть напряжения ai :
Рис. 1. Цифро-аналоговый преобразователь на резисторах R-2R: а) лестница резисторов; б) эквивалентные сопротивления левой и правой частей схемы относительно узла Pi; в) эквивалентный делитель напряжения
R
R=^
1
—Xa, = — fl; . 3
2
Напряжение в узле вычисляется по формуле:
R
R
2
1 1 1
-Х-а, = —х-а.
'+1 ^ + 2”3“!'
2 2
Таким образом, напряжение уменьшается вдвое при каждом шаге влево от узла к узлу. Выходное напряжение в узле Р7 задается формулой:
V2,
Рис. 2. Напряжения в узлах резистивной лестницы R-2R
Суммируя воздействие от всех генераторов, получим результирующее выходное напряжение:
1 f \
ч2,
Сумма в полученном выражении представляет собой полином, определяющий значение N. Таким образом, Увых пропорционально N. Коэффициент пропорциональности равен
V
или в общем случае
к2;
входные напряжения, соответствующие значениям битов а,- в преобразуемом двоичном числе. Нумерация резисторов R в лестнице:
R0, R1, R2, R3, R4, R5, R6, R7.
Просуммируем токи, проходящие через показанную общую точку схемы. Обозначим в ней напряжение через У. Каждый входной источник напряжения соединен с общей точкой через резистор, который принят как R. По закону Ома ток через каждый из этих резисторов равен (У, - V)/Ri. Выходная линия, подключенная к общей точке через резистор ROC (R15), вносит свою долю тока, равную (Увых - y)/R. Сумма этих токов должна равняться 0, то есть:
V0-V V0-V V7-V Veblx-V -0 -н—9— + ... + -z-------+ -S&-----= 0.
его выходное напряжение равно Увьа = -Ах У, где А — коэффициент усиления, тогда [5]:
,0 v, v7 ,
2о
Я.
R,
Rn
вых
А
1 1 1
— + — + ...+—+-
R0
R-, Rn
A 1
+ -
Rn
Проведя аппроксимацию данного уравнения и предполагая, что член А/Яос больше всех остальных членов, входящих в сумму, так как значение коэффициента усиления операционного усилителя бывает не менее 50 000, получаем правую часть равной
V ( А ^ V
вых _____ __ вых
Ro
я
я?
Rn
А Лс
Rn
Для 8-разрядной лестницы имеем [5]:
V =
'вых
fi Yi
— — (2 а0 +2 aj +2 а2 +... + 2 a7) = \l) 5
= 0,0026 (a0 +2^ + 4a2 +... + 128a7).
Рассмотрим пример схемотехнического аналогового моделирования резистивной лестницы. Цифровая комбинация на входе: 00000001 (1 в старшем разряде), УЭС = 5 В. Аналоговый выход (напряжения в узлах лестницы): 13,2 мВ; 26,04 мВ; 52,08 мВ; 104,2 мВ; 203,3 мВ; 416,7 мВ; 833,3 мВ; 1,667 В. На рис. 2 показаны напряжения в узлах лестницы.
Вместо лестницы резисторов для суммирования с весами в соответствии с представлением двоичного числа в виде полинома можно использовать операционный усилитель. На рис. 3 показана схема в САПР ОгСАБ, в которой операционный усилитель запрограммирован для выполнения цифро-аналогового преобразования. Сигналы У] — это
Поскольку напряжение У подано на инвертирующий вход операционного усилителя,
Выходное напряжение Увых определяется выражением:
Рис. 3. Цифро-аналоговый преобразователь на операционном усилителе AD706 с матрицей взвешенных резисторов
V =-R
Rg Rj
R1
Подставив значения R ,, равные Roc = R, R0 = R, R1 = R/2, R2 = R/4 и т. д. (рис. 3), получим:
-R
*А + Л_
R R/2 Д/128
ч /
= -(V0+2Vl+... + mV7) = -'£Vi2i.
На рис. 3 показана тестовая схема ЦАП с использованием аналоговой модели операционного усилителя AD706 фирмы Analog Devices (библиотека opamp.olb). На вход ЦАП поступает цифровая комбинация: 00000001 (1 в старшем разряде). Сопротивления резистивной матрицы (табл. 1) выбираются из ряда (в кОм).
Таблица 1. Сопротивления резистивной матрицы
R/2 R/4 R/8 R/16 R/32 R/64 R/128
п 1O 5 2,5 1 1,25 O, 3 со O, 5 t© O,
системы цифровой обработки сигналов [7], которая демонстрирует использование аналого-цифровых интерфейсов. В счетном ядре Рврке существуют три типа узлов: аналоговые, цифровые и интерфейсные. Для аналоговых узлов Р8рке рассчитывает напряжения, для цифровых —логические состояния. Интерфейсные узлы являются подсхемами 1/О (трШУоШрШО-модели, которая переводит логическое состояние в напряжение и наоборот.
Структура системы цифровой обработки сигналов состоит из 8-разрядного ЦАП при совместном использовании с 8-разрядным АЦП. Для моделирования необходимо из библиотеки ВгеакоШ:.о1Ь выбрать макромодель 8-разрядного ЦАП под именем БАС8Ьгеак и макромодель 8-разрядного параллельного АЦП под именем АБС8Ьгеак, задать аналоговый сигнал на вход АЦП и напряжение на опорном источнике. Модели БАС8Ьгеак и АБС8Ьгеак имеют описание в врке-фор-мате, поэтому могут быть использованы для смешанного аналого-цифрового моделирования. В качестве примера рассмотрим описание многобитных ЦАП в 8рке-формате:
Сопротивление резистора обратной связи RОС выбирается равным 20 кОм. Если за логическую единицу принять 0,1 В, то на входах ЦАП получим комбинацию:
V = 0, V1 = 0, V2 = 0, Vз = 0, ^ = 0,
V5 = 0, V6 = 0, V7 = 0,1.
Подставив значения в формулу, получим: Увьх = -128х У7 = -128x0,1 = -12,8 В.
Промоделировав работу схемы, получим в точке Vнапряжение 23,32 мкВ, а на аналоговом выходе напряжение -12,82 В.
Реальные схемы ЦАП достаточно сложные и требуют ключи коммутации с дополнительными схемами управления [6]. На рис. 4 показана обобщенная структура
Тип Параметры Узлы Описание
DAC nbits Out, ref, gnd, Input msb, Input lsb ЦАП
U7 DAC (4) sign ref 0 in3 in2 in1 ino dacmd1 io_std
Согласно этой макромодели, когда все входные биты, принимают значение логической 1 или логического 0, выходное напряжение ЦАП принимает значение величины опорного напряжения или «земли».
Формула, по которой определяется напряжение на выходе ЦАП (макромодель БАС8Ьгеак), имеет следующий вид [8]:
у п-1 V хЛ
^ 1=0 *■
где Утef — опорное напряжение ЦАП; D — эквивалент кода на входах ЦАП. Пусть число разрядов п = 8 и Уте^ = 10 В, тогда УцАП= = (5/256)хD для цифрового кода 00000001 имеет величину 5 В (табл. 2):
--^(24 + 24+24 +
ЦАП "
+ 23d3+ 24d4 + 2sds+ 26d6 + 27rf7). Таблица 2. Схема работы 8-разрядного ЦАП
Форма идентификации ЦАП:
Uxxx DAC (<число бит>) <out node> <ref node> <gnd node> <input msb node> <input lsb node> <timing model> <I/O model>
.subckt DAC8Break OUT REF GND + DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
+ OPTIONAL: DPWR=$G_DPWR DGND=$G_DGND
+ PARAMS: MNTYMXDLY=0 IO_LEVEL=0
U1 DAC (8) DPWR DGND OUT REF GND + DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
+ DAC8_TIMING IO_STD
+ MNTYMXDLY={MNTYMXDLY}
IO_LEVEL={IO_LEVEL}
.MODEL DAC8_TIMING UDAC .ENDS
Пример описания четырехбитного ЦАП в Spice-формате:
Цифровой код Напряжение на выходе ЦАП, В
OOOOOOO1 5
OOOOOO1O 2,55
OOOOO1OO 1,25
Результаты моделирования представлены на рис. 5. На вход АЦП IN поступает аналоговый гармонический синусоидальный сигнал Vin с параметрами offset value (смещение) 5 В, amplitude (амплитуда) 5 В, Frequency (частота) 1 Гц. Его временная дискретизация и квантование по уровню производится в АЦП. На вход CNVRT (сигнал запуска преобразования) АЦП подается однобитный источник цифрового сигнала DSTIM1 с частотой 50 Гц. Сигналы Over и Stat являются выходными. На рис. 6 показан принцип формирования сигналов Over и Stat. Выходным сигналом АЦП
Рис. 4. Структура системы цифровой обработки сигналов для изучения АЦП—ЦАП
(шина adb [7..0]) является последовательность чисел, поступающая в ЦАП. Аналоговый выходной сигнал OUT восстанавливается по этой последовательности с помощью ЦАП.
Так как число различных уровней напряжения на выходе ЦАП конечно, то сигнал на выходе, так же как и при дискретизации, — ступенчатый и представляет собой искажение, устранить которое необходимо до использования аналогового сигнала с выхода ЦАП. Для этого применяют низкочастотные сглаживающие фильтры.
Каждый раз с приходом импульса CNVRT (перепад из 0 в 1), разрешающего преобразование, на выходе Stat АЦП возникает единичный импульс (рис. 6). Если входной аналоговый сигнал перестает изменяться, то при очередном импульсе CNVRT на выходе Over появляется единичный импульс и происходит фиксация выходного сигнала АЦП.
В процессе преобразования входной п-раз-рядный цифровой сигнал превращается в аналоговый выходной сигнал (ступенчатую
кривую) с 2п дискретными уровнями или ступенями, равными 1 МЗР (единица младшего значащего разряда). Например, 10-разрядный ЦАП имеет диапазон (полную шкалу) преобразования, равный 210, то есть выходное напряжение может принимать 1024 различных выходных уровней — от нуля до максимального. 1 МЗР=1/2п.
Обратной величиной числа выходных уровней является разрешающая способность, определяемая числом разрядов и характеризующая возможность ЦАП различать смежные значения входного цифрового кода. Фактически она определяет наименьшее возможное приращение аналогового сигнала (размер ступени), различаемое на выходе, при соответствующем изменении входного преобразуемого кода на единицу младшего разряда, то есть является значением напряжения, соответствующим 1 МЗР.
Разрешающая способность определяется как отношение значения полной шкалы преобразования к значению 2п. Единицей измерения
является единица самого младшего значащего разряда (1 МЗР). Она может выражаться в процентах от полной шкалы или миллионных частях (ppm). Например, для 10-разрядного ЦАП с Уеьк = 10 В: 1 МЗР = 10 Вх1/1024 = = 9,76 мВ или 0,1% полной шкалы; для 16-разрядного ЦАП: 1 МЗР = 150 мкВ или 0,0015% полной шкалы.
Одной из основных задач преобразователя является получение точного соответствия входных и выходных сигналов. Оно характеризуется погрешностью преобразования, состоящей из методической и инструментальной погрешностей. Инструментальная вызывается неточностью изготовления элементов преобразователя, изменением параметров элементов под влиянием внешних факторов и времени и зависит от действия внутренних и внешних шумов и помех.
Абсолютная погрешность (точность) преобразования состоит из суммы погрешностей в виде смещения нуля, изменения коэффициента передачи, нелинейности, немонотонности передаточной характеристики. Погрешность смещения — это выходное напряжение ЦАП при нулевом коде на входе. Она выражается в процентах от полной шкалы или в единицах МЗР.
Погрешность (точность) преобразования SFS выражается в процентах от диапазона изменения аналогового выходного сигнала УШК в виде числа разрядов (например, n разрядов точности — это погрешность УШК/2п) или в долях МЗР. Типичная точность, требуемая от ЦАП, равна 1/2 МЗР, то есть значение погрешности равно 1/2х(УШК/2п) = VlnK/2"+1. Так, 12-разрядный ЦАП не может иметь точность преобразования меньше ±1/2 МЗР или ±2-(12+1), или ±0,0122% от полной шкалы. Фактически погрешность ±0,0122% представляет собой отклонение от 100%-ной точности, поэтому последняя составляет 99,9878%. Например, 12-разрядный ЦАП с диапазоном шкалы от 0 до 10 В при максимальном значении цифрового кода 1111 1111 1111 имеет максимальное напряжение, равное 10х(1-2-12) = 9,99756 В.
Дифференциальная нелинейность ЦАП связана с изменением единичных перепадов (размеров ступеней) и определяется как разность отклонений уровней выходного сигнала при переходе входного цифрового сигнала от какого-либо значения к смежному, или различие между фактической высотой шага и идеальным значением 1 МЗР. Заданная величина для дифференциальной нелинейности (<1 МЗР) гарантирует, что ЦАП является монотонным. Это означает, что никакие данные не потеряны, поскольку выходной сигнал всегда изменяется в соответствии с цифровым кодом на входе.
Рассмотрим применение ЦАП на матрице резисторов R-2R в составе АЦП. На рис. 7 приведена схема АЦП последовательного приближения с использованием ЦАП на матрице резисторов R-2R, компаратора и регистров в САПР OrCad. В схеме используются
как аналоговые, так и цифровые компоненты. Цифровые компоненты определены как подсхемы в библиотеке ТТЛ-вентилей 7400.olb. Операционный усилитель/компаратор также определяется как подсхема в библиотеке max-im.olb. В реальных же схемах АЦП последовательного приближения используют тактируемый фронтом синхроимпульса компаратор.
Пусть число разрядов n АЦП равно 4. Рассмотрим, как работает регистр сдвига. Он состоит из основных 4 разрядов на триггерах dffe_4-dffe_7 и двух вспомогательных, на триггерах dffe_8 и dffep_15 (рис. 8). Триггеры со входом разрешения dffe построены с использованием мультиплексора и функциональной макромодели 7474. Прямые выходы q0-q3 регистра сдвига подключены ко входам разрешения e (ee0-ee3) регистра результата (рис. 9), инверсные выходы qb0-qb3 — ко входам s0-s3.
В начальный момент времени по низкому уровню асинхронного сигнала очистки clr в старший разряд шестиразрядного регистра сдвига c асинхронным входом установки Pr (триггер dffep_15) записывается логическая «1», а прямые выходы 5 триггеров dffe_4-dffe_8 сбрасываются в «0» (рис. 8). На выходах регистра сдвига появляется код 100000(bin) с «1» в старшем разряде. C приходом единичного импульса на вход start, переводом сигнала очистки clr в «1» (с последующем его удержанием) по первому переднему фронту синхроимпульса clk на выходе datamark регистра сдвига сформируется флаг метки данных (рис. 10). При этом низкий уровень (активным является высокий уровень сигнала e) на входе разрешения e триггерров dffe_4-dffe_8 будет удерживать триггеры от переключений по переднему фронту тактового сигнала clk. По второму переднему фронту синхроимпульса логическая «1» с выхода q5 триггера dffep_15 попадет на выход триггера dffe_4, так как триггером U18a будет сформирована логическая единица, разрешающая запись в триггер dffe_4, которая будет удерживаться до появления сигнала loadreg, то есть до окончания преобразования. По третьему такту синхроимпульса логическая единица с выхода триггера dffe_4 будет записана в триггер dffe_5 и т. д., пока логическая единица не появится на прямом выходе триггера dffe_8. Инверсный выход триггера dffe_8 и логический ноль на выходе триггера U9A сформируют сигнал loadreg, равный логической «1» и сигнализирующий о завершении выполнения операции сдвига.
Регистр результата представляет собой параллельный четырехразрядный регистр и схему обрамления на элементах 2И-НЕ. Для формирования результата на выходах b3-b0 инверсные выходы qb и инверсные выходы регистра сдвига s0-s3 (которые в начальный момент времени по низкому уровню сигнала clr переводятся в «1») логически перемножаются, а результат инвертируется. Таким обра-
Рис. 10. Временные диаграммы работы проектируемого четырехразрядного АЦП
Таблица 3. Принцип работы последовательного АЦП
Двоичный код Напряжение, В Относительное изменение
регистре результата От ЦАП Входное напряжения ЦАП, В
1000 2,191 2,85 0,659
1100 3,034 2,85 -0,184
1010 2,513 2,85 0,337
1011 2,655 2,85 0,195
Окончательный результат: 1011
зом, на выходах регистра результата по низкому уровню сигнала с1г имеем код 0000(Ып). Результат сравнения компаратором поступает одновременно на все информационные входы d четырехразрядного регистра. Первоначально на выходе компаратора при опорном напряжении 5,12 В присутствует напряжение 5,152 В. Сигналами разрешения триггеров dffe-dffe_3 регистра результата управляют прямые выходы регистра сдвига. В конкретный момент времени результат сравнения компаратором может быть записан только в один из триггеров dffe-dffe_3.
Рассмотрим принцип работы АЦП с 3-го по 6-й такт синхроимпульса. По третьему такту синхроимпульса регистры сдвига и результата сформируют код 8фех) или 1000(Ып) с единицей в старшем разряде Ь3 независимо от сигнала на выходе компаратора. При входном коде 1000(Ып) ЦАП (рис. 11) при опорном напряжении, равном 5 В, сформирует аналоговое напряжение на выходе 2,191 В, то есть примерно половины шкалы опорного напряжения. Предположим, что входное напряжение Ух, которое требуется оцифровать, составляет 2,85 В. Аналоговый компаратор, построенный с использованием макромодели фирмы МАХ954, сравнивает входные напряжения, и если УцАП (2,191 В)<Увх (2,85 В), то на выходе компаратора сохраняется аналоговое напряжение 5,152 В, которое с помощью двух инверторов (макромодель 7404) преобразовывается в цифровой сигнал, в данном случае — в сигнал логической единицы. Тогда
единица в старшем разряде регистра результата Ь3 сохраняется. Это происходит потому, что в триггер dffe по третьему такту синхроимпульса записывается логическая «1», а на его инверсном выходе формируется логический ноль, который (будучи логически перемножен с сигналом 80, равным логической «1», и про-инвертирован) установит и будет удерживать
старший разряд Ь3 в единице. Если бы оказалось, что УщП > Ух, то на выходе компаратора установился бы низкий уровень сигнала, и по третьему такту синхроимпульса в триггере с!£±'е появился бы логический ноль, а на инверсном выходе триггера dffe—логическая «1». По четвертому такту синхроимпульса единица в старшем разряде оказалась бы сброшена,
так как высокий уровень сигнала s0 удерживается триггером dffe_4.
По четвертому такту синхроимпульса сигнал s1 находится в «0», а на инверсном выходе dffe_1 присутствует «1», поэтому в разряд b2 запишется «1» и на выходах схемы обрамления регистра результата установится код 1100(bin) или С (hex), на выходе ЦАП будет сформировано напряжение 3,034 В. В этом случае УцАП (3,034 В)>Увх (2,85 В), и на выходе компаратора установится низкий уровень сигнала. Это приведет к сохранению на инверсном выходе триггера dffe_1 логической единицы. По пятому такту синхроимпульса логическая «1» на выходе триггера dffe_1, будучи перемножена с сигналом s1, равным «1», и проинвертирована, даст в разряде b2 логический ноль. По этому же такту синхроимпульса в разряде b1 установится единица и в результате — код 1010(bin) или A (hex). По шестому такту синхроимпульса установится код 1011(bin) или B (hex).
Из описанного принципа работы последовательного АЦП следует, что регистр сдвига инверсными выходами s0-s3 устанавливает на выходах b3-b0 регистра результата единицу в старшем разряде, а компаратор принимает решение оставлять ее в следующем такте, если УцАП < Ух, или сбросить в ноль, если УцАП >Увх. Принцип работы последовательного АЦП показан в табл. 3.
Выводы
Смешанное аналого-цифровое моделирование в САПР OrCAD V.9.X фирмы CADENCE design systems может быть эффективно использовано для изучения принципов работы ЦАП и АЦП. ■
Литература
1. Шалагинов А. Знакомство с пакетом DesignLab 8. Урок 1-5 // Компоненты и технологии. 2001. № 2-6.
2. Шалагинов А. Знакомство с пакетом OrCAD9.1 // Компоненты и технологии. 2002. № 1.
3. Златин И. Моделирование на функциональном уровне в OrCAD 9.2 // Компоненты и технологии. 2003. № 3, 4.
4. Златин И. OrCAD 10.5 для начинающих пользователей // Компоненты и технологии. 2006. № 3,4.
5. Микропроцессоры и микрокомпьютеры: Вводный курс/ Пер. с англ. М.: Мир, 1983.
6. Применение интегральных схем: практическое руководство. В 2 кн. Кн. 1/Пер. с англ. под ред. А. Уильямса. М.: Мир, 1987.
7. Сергиенко А. Б. Цифровая обработка сигналов. СПб.: Питер, 2003.
8. Прянишников В. А. Электроника: Полный курс лекций. 3-е изд., испр. и доп. СПб.: Учитель и ученик: Корона принт, 2003.