logo search
HCS12 с применением языка С - royallib

6.1.1. Случай квадратичного генератора

Прежде, чем обсудить первый случай, приведем некоторую основную информацию о восстановлении сигнала. Полезная методика создания аналогового сигнала заданной формы, состоит в том, чтобы разделить сигнал на ряд аналоговых данных. Аналоговые значения в отдельных точках преобразуются затем в двоичные коды от $00 до $FF. При этом минимальный сигнал в 0 В соответствует числу $00, а максимальный сигнал, например, в 5 В соответствует числу $FF. Аналоговые данные, расположенные между этими двумя экстремальными значениями преобразуются по линейному закону в 8-разрядный двоичный код. Не правда ли эта методика что-то вам напоминает? Конечно, это процесс аналого-цифрового преобразования (АЦП), который мы уже обсуждали в главе 4.

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

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

Рис.6.1. Цифро-аналоговый преобразователь

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

Например, когда на входе ЦАП формируется код $CA, старший двоичный бит умножается на половину значения UMAX . Следующий по старшинству бит умножается на четвертую часть UMAX и так далее. Все взвешенные биты суммируются, давая в результате аналоговое значение.

Примем, что FS = VRH – VRL представляет собой максимальный размах напряжения для 8-разрядного 5-вольтового ЦАП. В этом случае высокий уровень опорными напряжениями составляет 5 В, а низкий — с 0 В. А как определить, например, аналоговое выходное напряжение соответствующее двоичному входному коду $CA?

Это напряжение можно определить, используя следующую взвешенную сумму для входного кода $CA:

UВЫХ = 5 [(1×1/2) + (1×1/4) + (0×1/8) + (0×1/16) + (1×1/32) + (0×1/64) + (1×1/128) + (0×1/256)] = 3,945 В

Аналоговый сигнал может быть затем создан путем цифровых данных на входах ЦАП, чтобы получить аналоговую реконструкцию. Методика восстановления аналогового сигнала из отдельных двоичных точек может использоваться при многих различных типах сигналов [Barrett 1979, Welch 1997].

Обсудим теперь сбой в разрабатываемом квадратичном генераторе. На рис. 6.2 показано, как эта методика может использоваться, чтобы генерировать сигналы, связанные квадратичной зависимостью (напряжения синусоидальной и косинусоидальной формы). Схема включает в себя программируемый кварцевый CMOS генератор PXO1000 фирмы Statek. Частота генератора устанавливается вручную с помощью DIP переключателей. Генератор является таймером для 8-разрядного двоичного счетчика на базе CMOS, который обеспечивает непрерывный счет от $00 до $FF. Выходной сигнал этого счетчика подается на две отдельных NMOS микросхемы памяти EPROM размером 2048 б, которые сохраняют данные для синусоидальной и косинусоидальной волны. Выходные сигналы с микросхем памяти подаются на отдельные 8-разрядные CMOS цифро-аналоговые преобразователи, которые опять преобразуют отдельные двоичные данные в аналоговый сигнал. Сигналы с ЦАП подаются на операционные усилители, которые осуществляют сдвиг нулевого уровня выходного сигнала ЦАП, и могут также обеспечить подстройку коэффициента усиления.

Рис. 6.2. Квадратичный генератор

На бумаге проект работает вполне правильно. Однако, когда схема была реализована, оказалось, что она является хорошим генератором помех. В чем была проблема? В первоначальном проекте отсутствовали резисторы сопротивлением 4.7 К в выходных цепях NMOS памяти. В главе 5 мы указали, что мы можем обычно напрямую связывать входы и выходы микросхем одного семейства. Однако, при соединении микросхем из различных семейств, мы должны быть очень осторожны. Обратите внимание, что в этом проекте, мы переходим от счетчика CMOS к памяти NMOS и затем обратно на ЦАП CMOS. Мы должны тщательно спроектировать интерфейс между CMOS и NMOS и затем интерфейс NMOS к CMOS. Чтобы эта схема правильно работала, должны быть включены нагрузочные резисторы в выводы NMOS. Это позволяет входам ЦАП на базе CMOS правильно распознавать состояния выходов NMOS. Нагрузочные резисторы показаны на рис. 6.2.

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