Опубликован: 16.10.2006 | Уровень: для всех | Доступ: свободно | ВУЗ: Национальный исследовательский ядерный университет «МИФИ»
Лекция 15:

Разработка более сложных цифровых устройств

Второй возможный способ перебора адресов памяти генератора аналоговых сигналов состоит в применении накапливающего сумматора с переменным шагом суммирования (рис. 15.12).

Опрос памяти с помощью накапливающего сумматора

Рис. 15.12. Опрос памяти с помощью накапливающего сумматора

В память, как и в предыдущем случае, заносится массив кодов выборок периода требуемого сигнала. Но при генерации опрашиваются не все адреса памяти подряд, а только адреса с шагом, задаваемым входным кодом накапливающего сумматора M (см. раздел 4.2.1). Чем больше этот шаг, тем быстрее будет пройден весь объем памяти и тем больше будет частота выходного сигнала генератора. И, соответственно, чем меньше шаг, тем больше времени потребуется на опрос всех адресов памяти, тем меньше будет частота выходного сигнала генератора.

При изменении шага опроса памяти изменяется и количество выборок на период выходного сигнала, что приводит к изменению точности воспроизведения формы сигнала. Количество выборок К на период выходного сигнала вычисляется по формуле К = 2n/M, где n — количество разрядов адреса памяти, Муправляющий код накапливающего сумматора. А частота выходного аналогового сигнала определяется формулой fВЫХ = fГ M/2n, где fГ — частота задающего кварцевого генератора. То есть выходная частота прямо пропорциональна управляющему коду M, а не обратно пропорциональна, как в предыдущем случае.

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

Другое важное достоинство данного решения состоит в том, что по мере роста частоты выходного сигнала генератор сам пропорционально уменьшает количество выборок на период выходного сигнала, поэтому требования к быстродействию ЦАП, формирующего выходной сигнал, не слишком жесткие. ЦАП может быть в несколько раз более медленным, чем в предыдущем случае, при такой же максимальной выходной частоте. Или, можно сказать и так, при том же самом ЦАП генератор может выдавать выходные сигналы с гораздо более высокой частотой. Точно так же снижаются и требования к быстродействию памяти. Это приводит к тому, что объем памяти в данном случае может быть гораздо больше, чем в предыдущем.

Но ничто не дается даром, поэтому данный метод имеет и существенный недостаток. С ростом частоты выходного сигнала его форма будет передаваться все более грубо, ступеньки будут все больше. На рис. 15.13 приведен пример воспроизведения формы синусоидального сигнала, записанного в память объемом 32Кх8 для двух разных шагов наращивания адреса М (количество выборок на период К = 16 и К = 48 ). Понятно, что точность воспроизведения формы сигнала сильно зависит от кода М. Это может привести к тому, что некоторые фрагменты сигналов сложной формы могут быть пропущены. К тому же в случае, когда количество выборок на период выходного сигнала К не равно целому числу, периоды выходного сигнала будут несколько отличаться один от другого. Смягчает этот недостаток уже упоминавшееся обстоятельство, что в природе сигналы сложной формы обычно низкочастотные, а именно низкочастотные сигналы воспроизводятся при данном методе наиболее точно.

Опрос памяти с разными шагами (количество выборок на период К = 16 и К = 48)

Рис. 15.13. Опрос памяти с разными шагами (количество выборок на период К = 16 и К = 48)

Исходя из всех этих соображений, останавливаем свой выбор именно на этом, втором методе.

Примем для дальнейшего проектирования, что минимальное количество выборок на период выходного сигнала будет равно 32, а максимальное будет равно количеству адресов памяти. Так как от генератора требуется большой диапазон выходных частот (частоты могут различаться в 1000 раз), объем памяти должен быть большим. Если минимальное количество выборок на период равно 32, то максимальное количество выборок на период потребуется в тысячу раз больше, то есть 32000. Поэтому количество адресов памяти не должно быть меньше 32000. Возьмем память с количеством адресов, равным 32К.

Количество разрядов данных памяти, определяющее точность задания величины выборок выходного сигнала, не стоит брать слишком большим. Ведь на формируемый аналоговый сигнал будут накладываться помехи от цифровой части схемы, поэтому чрезмерно точное задание величин выборок выходного сигнала окажется попросту излишним. Поэтому выберем количество разрядов данных памяти равным 8, то есть память будет иметь организацию 32Кх8.

Спроектируем накапливающий сумматор для генератора аналоговых сигналов.

Как уже отмечалось, частота выходного аналогового сигнала прямо пропорциональна управляющему коду накапливающего сумматора М. Абсолютная погрешность установки частоты составит 0,5/М. Поэтому для малых частот погрешность установки частоты будет максимальной. Например, если коду М = 1 будет соответствовать частота 20 Гц, то следующее разрешенное значение частоты будет равно 40 Гц (при М = 2). Это не слишком удобно, хорошо бы иметь точность установки частоты не ниже хотя бы 10% во всем частотном диапазоне. Возьмем, например, абсолютную погрешность установки частоты 0,5 Гц. Значит, при М = 1 генератор должен выдавать частоту 1 Гц. Такие низкие частоты мы можем просто не использовать, зато частота 20 Гц (при М = 20) будет иметь точность установки 2,5%. Разрешенные значения частот вблизи 20 Гц составят при этом 19 Гц, 20 Гц, 21 Гц.

Выберем теперь величину тактовой частоты накапливающего сумматора (то есть частоты задающего кварцевого генератора). Максимальная частота выходного сигнала нашего генератора должна быть равна 20 кГц, при этом на период выходного сигнала должно приходиться 32 выборки. То есть тактовая частота накапливающего сумматора должна быть не менее 20 кГц • 32 = 640 кГц. Выберем с запасом тактовую частоту равной 1 МГц. Максимальная частота выходного аналогового сигнала при 32 выборках на период будет при этом составлять 1 МГц/32 = 31,25 кГц.

Количество разрядов накапливающего сумматора должно быть таким, чтобы он обеспечивал весь выбранный частотный диапазон. Нетрудно подсчитать, что нам потребуется 20-разрядный накапливающий сумматор (так как 220 = 1048576), то есть при тактовой частоте 1 МГц минимальный период выходного сигнала составит 1048576 тактов или чуть более одной секунды, что примерно соответствует частоте выходного сигнала в 1 Гц.

Если использовать 4-разрядные микросхемы полных сумматоров (ИМ3 или ИМ6), то для построения 20-разрядного сумматора потребуется 5 микросхем сумматоров. Для запоминания выходного кода сумматоров надо будет использовать три микросхемы 8-разрядных регистров, причем регистры эти должны быть со входом сброса (например, ИР35) для начального сброса накапливающего сумматора.

Получившаяся в итоге схема накапливающего сумматора приведена на рис. 15.14. В качестве тактового сигнала она использует в режиме генерации сигнал с кварцевого генератора частотой 1 МГц (разрешающий сигнал "Ген."), а в режиме записи в память кодов выборок — строб записи в память "-Зап.". На входы адреса памяти подаются сигналы 15 старших выходных разрядов накапливающего сумматора, а 5 младших разрядов накапливающего сумматора не используются. Код частоты М подается на 15 младших входных разрядов накапливающего сумматора, а на старшие 5 разрядов поданы нулевые сигналы. В результате при максимальном коде М=32767 накапливающий сумматор будет переполняться за 32 такта (выходная частота 31,25 кГц), а при минимальном коде М=1 — за 1048576 тактов (выходная частота около 1 Гц).

Накапливающий сумматор генератора аналоговых сигналов

Рис. 15.14. Накапливающий сумматор генератора аналоговых сигналов

Перед началом записи в память накапливающий сумматор должен быть сброшен в нуль сигналом "–Сброс НС". Во время записи в память каждый строб записи "–Зап." должен увеличивать на единицу адрес памяти, поэтому код частоты М должен быть установлен в данном режиме равным 32 (двоичный код 100000).

Условия правильной работы накапливающего сумматора следующие. За период тактового генератора должны успеть сработать регистр и сумматор. В нашем случае это условие довольно легко выполняется, так как период тактового генератора 1 мкс. Но при построении более высокочастотных генераторов аналоговых сигналов требуется более высокая тактовая частота, и при этом может уже сказаться накопление задержек переноса пяти микросхем сумматоров. При тактовой частоте больше 10 МГц это уже может вызвать большие проблемы. Точно так же за период следования стробов записи в памяти "-Зап." должны успевать срабатывать регистр и сумматоры. Это условие обычно значительно проще выполнить, чем первое.

Посмотрим, какой будет частота сигнала помехи и какой должна быть частота среза выходного аналогового низкочастотного фильтра (см. рис. 15.10). При управляющем коде частоты М больше или равном 32 каждый тактовый импульс будет вызывать изменение адреса памяти. Поэтому частота помехи будет равна частоте тактового генератора (1 МГц). Это соответствует частоте выходного сигнала, большей 32 Гц. Однако нам надо обеспечить нижнюю частоту выходного аналогового сигнала 20 Гц.

Если код частоты М будет лежать в пределах от 16 до 31, то адрес памяти будет изменяться не реже одного раза на два такта тактового генератора. Частота помехи будет не менее 500 кГц. То есть при частоте выходного сигнала, большей 16 Гц, частота сигнала помехи будет в пределах от 500 кГц до 1 МГц. Максимальная частота выходного аналогового сигнала равна 31,25 кГц. Значит, частота среза фильтра должна быть такой, чтобы сильно ослаблять частоты, большие 500 кГц, но не искажать частоты, меньшие 31,25 кГц. Эти частоты различаются в 16 раз, поэтому фильтр построить не слишком сложно.

В результате мы получаем, что выбранная схема накапливающего сумматора обеспечивает диапазон частот выходного аналогового сигнала от 16 Гц до 31,25 кГц, причем погрешность установки частоты составляет 0,5 Гц во всем частотном диапазоне. Количество выборок сигнала на период будет изменяться от 32 на верхнем краю частотного диапазона до 32К на нижнем краю частотного диапазона. Это вполне удовлетворяет требованиям к генератору, сформулированным в начале данного раздела.

Переходим теперь к проектированию схемы управления для генератора аналоговых сигналов.