Интересными свойствами обладает сумматор-накопитель, показанный на рисунке 4.
Рис. 4 - Сумматор-накопитель
На рисунке показан простейший сумматор-накопитель. На один вход сумматора подается число К, а на второй - число с выхода регистра. В начале работы регистр обнуляется (сброс). Если на входы В сумматора DD1 подать некоторое число К, то при подаче импульса на вход С регистра (такт) в него запишется число К (в начальный момент на выходе регистра лог.0). Это же число К попадет на входы А сумматора и по следующему такту в регистр запишется уже число 2К, которое опять попадет на входы А сумматора. На выходе сумматора появится число 3К и по следующему такту запишется в регистр и т. д. То есть, в сумматоре-накопителе постепенно нарастает число. Когда в сумматоре-накопителе накопленное число превышает его объем, равный 2n-1, на выходе переноса появляется сигнал лог. 1, а на выходах S число nK-2n.
Применение таких сумматоров весьма разнообразно. Если вместо регистра установить ОЗУ (это делается в многоканальных системах), тогда такой узел становится важнейшей частью микропроцессора. Посмотрим на эти свойства сумматора-накопителя. Поскольку сигнал переноса сумматора появляется через W=2n/K тактовых импульсов, то такой сумматор является обратным преобразователем входного числа К в число W. Это число можно подсчитать на счетчике. Ну а если выразить частоту появления имульсов переноса через число К, получится вот это:
Это значит, что получается преобразователь кода числа К в частоту импульсов. Такой преобразователь можно использовать в электронных музыкальных инструментах (ЭМИ), всяких звонках и т. п.
С помощью сумматоров-накопителей можно производить умножение числа на некоторый постоянный коэффициент, можно забабахать квадратичный накопитель и еще много всякой хренотени.
Арифметико-логическое устройство (АЛУ) - это многофункциональное устройство, которое выполняет над входными числами различные арифметические и логические операции. Схемотехнически АЛУ представляется вот так:
Рис. 1 - Арифметико-логическое устройство
АЛУ имеет входы чисел А0-А3 и В0-В3, входы управления S0-S3, М, вход переноса С0, выход результата F0-F3, выход переноса С4, выход равенства кодов К, выходы Р и G для схемы быстрого переноса. Работа АЛУ поясняется таблицей функционирования, изображенной ниже. Вход М определяет вид выполняемых операций (при М=1 над А и В выполняется 16 лог. операций, при М=0 выполняются арифметические операции). Знаком \/ обозначается лог. сложение, арифметическое сложение обозначается плюсиком (+), умножение (только логическое) - знаком "х", А1 - число А, сдвинутое на один разряд вправо.
№ операции
Состояние входов S
Состояние входа М
S3
S2
S1
S0
M=1
M=0 (С=0)
А
А\/1
А+B
(А+B)\/1
А+B
(А+B)\/1
А+B
(А\/A)x(B\/1)
B
(А+B)\/A(B\/1)
АxB\/AxB
A-B
AxB
AxB
A+B
A\/AxB\/1
AxB+AxB
A\/B\/1
B
(A+B)\/AxB\/1
AxB
AxB
A\/A\/1
A+B
(A+B)\/A1\/1
A+B
(A+B)\/A\/1
А
A
АЛУ могёт выполнять следующие операции:
Арифметическое суммирование чисел (при М=0 операция №10).
Арифметическое вычитание чисел (при М=0 операция №7).
Сравнение чисел - операция №7 при С0=1. Если А=В, то К=1, если A>B, то С4=0, если A<B, то С4=1.
Формирование модуля числа А. При М=1 на входы S3-S0 параллельно подается знак числа А равный 1 при положительном числе А. Если А отрицательно - 0. Для S=1 выполняется 16-я операция, S=0 - 1-я. Также для числа В (11-я и 6-я операции соответственно), но нужно иметь знак и его инверсию.
Мультиплексирование чисел А и В. При М=1 и 16-й операции на выход поступает число А, 11-я операция - число В. 1-я и 6-я операции выполняют мультиплексирование с инверсией.
Увеличение числа А в 1,5 раза - 13 операция.
Довольно неплохо для какой-то "железки" в пластмассовом корпусе.
Наращивание разрядности АЛУ делается также, как и в сумматорах, т. е. выход переноса С4 АЛУ младших разрядов подключается ко входу переноса С0 АЛУ старших разрядов. Но при большом числе разрядов время выполнения операций увеличивается из-за большого числа переносов из разряда в разряд. Для ускорения этого процесса используются спешиал микросхемы, которые зовут схемами ускоренного переноса (555ИП4, 564ИП4). Одна такая микросхемка обслуживает до 4-х АЛУ. Выходы G и Р АЛУ втыкаем на аналогичные входы G и Р схемы ускоренного переноса, а выходы переноса последней втыкаем на входы переноса АЛУ. Вход переноса АЛУ младшего разряда подключается к входу переноса микросхемы переноса. При этом объединяются входы М всех АЛУ. Получается 16-ти разрядное АЛУ.
Цифро-аналоговые преобразователи предназначены для преобразования цифровых кодов в аналоговые величины, например, напряжение, ток, сопротивление и т. п. Принцип преобразования заключается в суммировании всех разрядных токов (или напряжений), взвешенных по двоичному закону и пропорциональных значению опорного напряжения. Другими словами, преобразование заключается в суммировании токов или напряжений, пропорциональных весам двоичных разрядов, причем суммируются только токи тех разрядов, значения которых равны лог. 1. В двоичном коде вес от разряда к разряду изменяется вдвое. Наиболее распространены две схемы суммирования токов - параллельная и последовательная. На рисунке 1 приведена схема параллельного суммирования токов.
Рис. 1 - Параллельная схема суммирования токов
Ключи S переключаются при уровне лог. 1, тем самым подключая резики к источнику опорного напряжения. Через резики протекает соответствующий весу разряда ток. Сопротивление резиков прогрессивно изменяется в два раза от разряда к разряду.
При высокой разрядности сопротивления резиков должны быть согласованы с высокой точностью. Особо жесткие требования предъявляются к резикам старших разрядов, поскольку разброс тока в них не должен превышать тока младшего разряда. Вообще же, разброс сопротивления в n-м разряде должен быть меньше, чем:
Δ R / R = 2-n
Отсюда следует, что разброс сопротивления, к примеру, в третьем разряде не должен превышать 12,5%, в 10-м разряде - уже 0,098%.
Такая схема обладает целой кучей недостатков, хотя она проста. К примеру, при различных входных кодовых состояниях потребляемый от источника опорного напряжения (ИОН) ток будет также различным, что несомненно повлияет на величину выходного напряжения ИОН, а это уже не есть гуд. Кроме того, сопротивления весовых резисторов могут отличаться в тысячи раз, а это затрудняет реализацию таких резиков в полупроводниковых ИС. Помимо этого, сопротивления резиков старших разрядов могут быть соизмеримы с сопротивлением замкнутого ключа, а это приведет к погрешностям преобразования. И еще, в разомкнутом состоянии к ключам прикладывается довольно высокое напряжение, а это затрудняет их построение.
Не теряя времени даром, умные люди придумали несколько иную структуру, в которой устранены указанные выше недостатки. Это реализовано в схеме ЦАП AD7520, разработанном фирмой Analog Devices в 1973 г., по крайней мере так считают буржуи, ну и черт с ними. Отечественным аналогом является небезызвестная 572ПА1. В настоящее время по этой схеме строят большинство ЦАПов. Сруктура приведена на рисунке 2.
В такой схеме задание весовых коэффициентов осуществляется с помощью резистивной матрицы постоянного сопротивления. Основным элементом матрицы является делитель R-2R, показанный на рис. 3. При этом должно выполняться условие: если делитель нагружен на сопротивление нагрузки, то его входное сопротивление также должно быть равно сопротивлению нагрузки.
Рис. 3 - Элемент матрицы постоянного сопротивления
Поскольку ключи S соединяют нижние выводы резиков с общей шиной питания, источник опорного напряжения работает на постоянную нагрузку, следовательно, его значение стабильно и не изменяется при любом входном коде ЦАП, в отличие от предыдущей схемы. Кроме того, резики 2R соединяются с общей шиной через низкое сопротивление замкнутых ключей S, напряжения на ключах небольшие (в пределах нескольких милливольт), что значительно упрощает построение ключей и схем управления ими, а также использовать опорное напряжение в широком диапазоне да еще и разнополярное. В качестве ключей используются МОП-транзисторы. Поскольку выходной ток в таком преобразователе изменяется линейно, то имеется возможность умножения аналогового сигнала на цифровой код, если вместо опорного напряжения использовать аналоговый сигнал. Такие ЦАП называются перемножающими (по буржуйски MDAC). Примером применения перемножающего ЦАП может служить элементарный цифровой регулятор громкости, скажем, на 572ПА1. Вместо опорного напряжения подается входной сигнал.
Для последовательной схемы требования к точности резиков намного меньше, чем для параллельной. Для ЦАП, имеющих высокую разрядность, необходимо согласовывать сопротивления ключей с разрядными токами. Особенно это важно для старших разрядов. Сие обстоятельство снижает точность. Кроме того, такие ЦАП имеют низкое быстродействие из-за нехилой емкости МОП-ключей.
Помимо вышерассмотренных (и наиболее употребительных) схем существуют ЦАП на источниках тока, обладающие более высокой точностью. В таких ЦАПах весовые токи формируются не резиками небольшого сопротивления, а транзисторными источниками тока, имеющими высокое динамическое сопротивление. Примером может служить отечественный ЦАП 594ПА1.
В качестве переключателей тока могут также использоваться биполярные дифференциальные каскады. Транзисторы работают в активном режиме, а это позволяет сократить время установления.
Аналого-цифровые преобразователи (АЦП) предназначены для преобразования аналоговой величины в цифровой код. Другими словами, АЦП - это устройства, которые принимают аналоговые сигналы и генерируют соответствующие им цифровые.
В принципе, вполне реально осуществить преобразование различных физических величин непосредственно в цифровую форму. Однако, процесс этот весьма сложен и кое-где непригоден. Поэтому наиболее рациональным является сначала преобразование чего-то там в функционально связанные с ними электрические сигналы, а затем с помощью преобразователя напряжение-код в цифровые. Именно последние и понимаются, как АЦП.
Сама суть преобразования аналоговых величин заключается в представлении некой непрерывной функции (например, напряжения) от времени в последовательность чисел, отнесенных к неким фиксированным моментам времени. Если говорить простым языком, то пусть, к примеру, есть какой-то сигнал (непрерывный) и для преобразования его в цифровой необходимо этот самый сигнал представить в виде последовательности определенных чисел, каждое из которых относится к определенному моменту времени. Для преобразования аналогового (непрерывного) сигнала в цифровой необходимо выполнить три операции: дискретизация, квантование и кодирование. Во многих умных книжках последняя операция исключается. Об этом немного ниже. Итак, разберем пока непонятные понятия.
Дискретизация - это представление непрерывной функции (т. е. какого-то сигнала) в виде ряда дискретных отсчетов (по-буржуйски дискрет означает отличный, различный). По-другому можно сказать, что дискретизация - это преобразование непрерывной функции в непрерывную последовательность. Давайте глянем на рисунок 1, где изображен принцип дискретизации.
Рис. 1 - Принцип дискретизации
На рисунке показана наиболее распространненая равномерная дискретизация. Сначала имеется непрерывный сигнал S(t). Затем он подвергается разбиению на равные промежутки времени Δt. Вот эти промежутки "дельта тэ" и есть дискретные отсчеты, называемые периодами дискретизации. В результате получается последовательность отсчетов (дискретных) с шагом в Δt. По сути в основе дискретизации непрерывных сигналов лежит возможность представления их, т. е. сигналов в виде взвешенных сумм некоторых коэффициентов, обозначим их как ai, иначе называемых отсчетами, и набора элементарных функций, обозначим их как fi(t), используемых при восстановлении сигнала по его отсчетам.
Период дискретизации выбирается из условия:
Δt = 1/2Fв,
где Fв - максимальная частота спектра сигнала. Это выражение есть не что иное, как теорема Котельникова, которая гласит: Любой непрерывный сигнал можно абсоолютно точно восстановить на выходе идеального полосового фильтра (ПФ) с полосой Fв, если дискретные отсчеты взяты через интервал Δt = 1 / 2Fв. А это значит, что частота дискретизации должна быть вдвое больше максимальной частоты сигнала. На практике, например, это хорошо иллюстрирует обычный компакт диск (КД или CD) или, как его называют, AudioCD. КД записывают с частотой дискретизации 44,1 кГц. А это значит, что максимальная верхняя частота будет равна 22 кГц, что, как считается, вполне достаточно для уха человека (помните, частотный диапазон для уха человека равен 20...20 000 Гц). Про компакт диски будет отдельная глава.
При квантовании шкала сигнала разбивается на уровни. Отсчеты помещаются в подготовленную сетку и преобразуются в ближайший номер уровня квантования. Опять посморим на рисунок:
Рис. 2 - Квантование
На рисунке изображено равномерное квантование. Одним из основных параметров является δ - шаг квантования. Соответственно, при равномерном квантовании шаг квантования одинаков. Итак, согласно определению запихиваем отсчеты в подготовленную сетку. Первый (слева направо) отсчет находится ближе к уровню 3 (уровни квантования - по вертикальной оси). Второй - к 5-му уровню и т. п. Таким образом, вместо последовательности отсчетов получаем последовательность чисел, соответствующих уровням квантования.
При равномерном квантовании динамический диапазон получается довольно большим, а это не есть гуд. Поэтому придумали так называемое неравномерное квантование, при котором динамический диапазон уменьшается. Ну понятно, наверное, что шаг квантования δ будет различным при различных уровнях. При малых уровнях сигнала шаг небольшой, при больших он увеличивается. На практике же неравномерное квантование практически не используется. Вместо этого применяют компрессоры, причем америкосы используют μ-компрессоры, европейцы - А-компрессоры (грэческая буковка μ читается "мю"). Характеристика компрессора показана на рисунке 3.
Рис. 3 - Амплитудная характеристика компрессора
Для восстановления ужатого динамического диапазона используют декомпрессор или экспандер. Понятно, что амплитудная характеристика экспандера обратна компрессору.
Кодирование - это сопоставление элементов сигнала с некоторой кодовой комбинацией символов. Широко используется двоичный код.
Ну а теперь перейдем собственно к АЦП. АЦП бывают последовательные и параллельные. Начнем с параллельных.