Программируемые аналоговые ИС Anadigm:
применение конфигурируемых аналоговых модулей в составе программы AnadigmDesigner2
Александр ЩЕРБА
shcherba@prosoft.ru
Статья посвящена описанию принципов работы программируемых аналоговых схем (ПАИС), описанию конфигурируемых аналоговых модулей, распространяемых в составе программы AnadigmDesigner2, и способах загрузки конфигурационных данных в ПАИС.
Введение
Традиционно схемы аналоговой обработки сигналов выполняются на дискретных компонентах — операционных усилителях, компараторах, мультиплексорах и т. п. При этом в ряде случаев аналоговая часть занимает большую часть площади печатной платы и имеет высокую стоимость. Решить проблему создания разнообразных аналоговых устройств, снизив стоимость и габариты, позволяет использование программируемых аналоговых интегральных схем — ПАИС (FPAA), лидером в производстве которых является компания Anadigm (компания Anadigm была выделена из состава компании Motorola в 2000 году). Обработка сигнала внутри ПАИС осуществляется схемами на переключаемых конденсаторах. В отличие от цифровых систем, где сигнал дискретен по времени и квантован по уровню, в дискретно-аналоговых системах сигнал дискретен только по времени
(рис. 1), в силу этого выходной аналоговый сигнал можно восстановить без искажений по его выборкам [1]. Так, при входном сигнале
1 мВ точность преобразования будет не хуже ±0,1%.
Компания Апа^ш производит два типа ПАИС — динамически и статически конфигурируемые. В отличие от статически программируемых схем, где конфигурационные данные загружаются при включении ПАИС и остаются неизменными во время ее работы, динамически конфигурируемая схема позволяет изменять полностью или частично функциональную структуру в реальном времени в работающем устройстве, что дает возможность создавать уникальные схемы аналоговой обработки сигналов.
Архитектура ПАИС
Основу ПАИС составляют четыре конфигурируемых аналоговых блока (КАБ), каж-
дый из которых содержит наборы элементов — 8 программируемых конденсаторов,
2 операционных усилителя, 1 компаратор и 1 регистр последовательного приближения (рис. 2). Используя этот набор элементов, можно создавать конфигурируемые аналоговые модули (КАМ): усилители, выпрямители, интеграторы, дифференциаторы, сумматоры, перемножители и т. п. Необходимо отметить, что на базе одного КАБ можно создать несколько КАМ.
Программируемые конденсаторы, применяемые в КАБ, могут принимать относительное значение емкости от 0 до 255 единиц. В отличие от традиционных аналоговых схем, в схемах на переключаемых конденсаторах не важны абсолютные значения емкости, а только соотношение между ними, которое выдерживается с точностью не хуже 0,1%. При этом параметры таких схем практически не будут зависеть от времени работы (старение) или изменения температуры окружа-
Локальные входы
Общие входы
чь
чь
чь
чь
чь
чь
чь
чь
ОУ1 О
ОУ2 “
компа-~~ ратор - 1>
регистр
последовательного
приближения
Рис. 2. Структура КАБ
1/fcCj
1/fcC,
b_
c,
Рис. 3. Инвертирующий усилитель на переключаемых конденсаторах
ющей среды, так как отношение емкостей останется неизменным. Каждый КАБ содержит статические и динамические ключи. Динамические ключи управляются входными и тактовыми сигналами, а также логикой регистра последовательного приближения. Статические ключи определяют общие схемы коммутации блоков, значения емкости конденсаторов, подключение входов. Замена резисторов конденсаторами позволяет повысить точность и уменьшить количество подключаемых к микросхеме внешних элементов. В качестве примера можно привести замещение схемы инвертирующего усилителя схемой на переключаемых конденсаторах (рис. 3).
Конфигурируемые аналоговые модули
Библиотеки конфигурируемых аналоговых модулей распространяются в составе программы AnadigmDesigner2 бесплатно. Программа имеет интуитивно понятный интерфейс (рис. 4).
Таблицу конфигурируемых аналоговых модулей (CAM Browser) можно вызвать в AnadigmDesigner2 с помощью горячей клавиши «М». Более подробно о работе интерфейса AnadigmDesigner2 можно прочитать в статьях, опубликованных ранее [2].
Аналогово-цифровой преобразователь (ADC-SAR)
КАМ создает 8-разрядный аналогово-цифровой преобразователь (АЦП) последовательного приближения со встроенным источником опорного напряжения. Используется две тактовые частоты: CLOCKA (частота выборки) и CLOCKB (частота последовательного приближения). Входное дифференциальное напряжение в диапазоне от -3 до +3 В АЦП преобразовывается в 8-разрядный последовательный код. По желанию одна из ячеек входа/выхода может быть настроена на передачу тактовых сигналов (CLOCKA и CLOCKB) (рис. 5).
где Ufe — входное напряжение; Ugba — входное напряжение; К — постоянная времени дифференциатора; At — половина периода тактовой частоты CLOCKA.
Делитель (Divider)
КАМ извлекает частное двух входных сигналов. Напряжение на входе X (левый вход) делится на напряжение на входе Y (нижний вход) (рис. 8, 9). Для работы КАМ используется АЦП, поэтому напряжение на входе Y квантовано в диапазоне от -3 до +3 В с шагом ~0,0235 В. Коэффициент нормирования D (Divisor Factor) может быть выбран из диапазона от 0,33 до 4,0:
иТ
UY квантованное xD
Компаратор (Comparator)
КАМ создает компаратор с различными программируемыми параметрами и гистерезисом (Hysterysis) 0 или 10 мВ. Доступны три различных конфигурации: нуль-индикатор (Signal Ground) (рис. 6а), с двумя входами (Dual Input) (рис. 6б) и с управляемым источником опорного напряжения (Variable Reference) (рис. 6в).
о ФіЬьл
Рис. 8. Условное обозначение делителя
Рис. 4. Окно интерфейса программы AnadigmDesigner2 для проектирования схем на базе ПАИС
Дифференциатор
(Differentiator)
Выходное напряжение на выходе КАМ (рис. 7) будет пропорционально скорости изменения входного напряжения в течение одной фазы тактового импульса CLOC^ (Phase):
A U*
U^=-Kx-
At
Рис. 9. Пример реализации функции входные синусоидальные сигналы сдвинуты по фазе на 90° относительно друг друга с помощью фазового фильтра
Билинейный фильтр (FilterBilinear)
На базе этого КАМ можно создать (рис. 10): билинейный фильтр (6 дБ/окт) низких (low Pass) и высоких (High Pass) частот, фазовый
Внешний конденсатор
ИЕІв їв ьів їв !-i
И ш И ш И
Рис. 10. Условное обозначение билинейного фильтра: а) низких частот; б) высоких частот; в) фазового фильтра; г) полюсного фильтра
(All Pass) и полюсной (Pole and Zero) фильтр. Частота среза (Corner Frequency) может быть установлена пользователем в широком диапазоне значений. Пользователю доступно поле с коэффициентом передачи фильтра (Gain) (рис. 11).
Биквадратичный фильтр (FilterBiquad)
На базе этого КАМ можно создать: биква-дратичный фильтр (12 дБ/окт) низких частот (low Pass), высоких частот (High Pass), полосовой (Band Pass), режекторный (Band Stop) и полюсной фильтр (Pole and Zero) (рис. 12). Настройки аналогичны настройкам билинейных фильтров, за исключением дополнительного поля Quality, которое влияет на АЧХ фильтра.
Вход
09Ю1;1 Ю2:255 AN221E04 LOAD ORDER: 1 03
■ J- пЗ ■;< ■
■
04
—tL
nS — І Г" ; I п2
12'
■ф !В ■
Выход
Рис. 13. Условное обозначение и схема включения билинейного фильтра низкой частоты с внешними конденсаторами
кой частотой среза с помощью внешних конденсаторов. Так как обработка сигнала внутри ПАИС полностью дифференциальная, то для построения фильтра используется пара идентичных конденсаторов. Входной порт должен быть сконфигурирован для работы в режиме Bypass. Подключение конденсаторов к ПАИС следующее: один конденсатор подключается между позитивным входом и негативным выходом, а второй между негативным входом и позитивным выходом (рис. 13).
Необходимо отметить, что AnadigmDesigner2 не имеет инструмента для моделирования
внешних компонентов, подключаемых к ПАИС, в частности конденсаторов, поэтому для того чтобы симулятор не выдавал ошибки во время моделирования работы микросхемы, необходимо подключить генератор сигналов к верхнему входу фильтра (рис. 14). Настройки этого сигнального генератора могут быть любыми, они не повлияют на форму сигнала и работу фильтра (рис. 15).
Однофазный усилитель (GainHalf)
Этот КАМ усиливает входной сигнал в течение одной фазы (Ф2) тактового импульса
Рис. 12. Условное обозначение биквадратичных фильтров: а) низких частот; б) высоких частот; в) полосовой фильтр; г) режекторный фильтр; д) полюсной фильтр
Билинейный фильтр низкой частоты с внешними конденсаторами (FiUerLowFreqBttmear)
На базе этого КАМ можно создавать фильтры низких частот с экстремально низ-
Рис. 14. Схема включения для корректной симуляции работы фильтра и осциллограмма работы f^= 1 Гц, CLOCKA = 250 кГц, Gain = 1, Coner Frequency = 1 Гц, External Cap Value = 29,4 нФ
диад
■■■fWfcgi ■■
Рис. 16. Осциллограмма и условное обозначение однофазного усилителя
Рис. 11. Окно настройки билинейного фильтра
Рис. 15. Окно настройки билинейного фильтра низкой частоты с внешними конденсаторами
(Input Sampling Phase), в течение второй фазы (Ф1) тактового импульса напряжение на выходе усилителя будет равно напряжению внутренней земли ПАИС (рис. 16).
КАМ может работать в качестве инвертирующего усилителя (Inverting). Коэффициент усиления (G) задается в поле Gain:
ивых /ивх =
Усилитель с защелкой (GainHold)
КАМ создает инвертирующий усилитель с программируемым коэффициентом усиления. Входной сигнал усиливается в течение одной фазы и остается «замороженным» в течение второй фазы тактового импульса (рис. 17). Как видно из рисунка, осциллограмма становится более «зубчатой», так как сигнал на выходе КАМ остается одинаковой амплитуды в течение двух фаз тактового сигнала. Фактически частота дискретизации уменьшается в два раза. Достоинством КАМ является меньший расход ресурсов ПАИС.
►
Рис. 18. Условное обозначение инвертирующего усилителя
жений от 0,05 до 4,0 В. Выходное напряжение ивых можно рассчитать по формуле:
ивых = & х ивх,
если \ахивх\<ио1,
ивых = знак(ивх )хUOL,
если \С хивх \>и01,
где UO
напряжение ограничения.
Инвертирующий усилитель (GainInv)
КАМ создает инвертирующий усилитель (рис. 18) с программируемым коэффициентом усиления. Коэффициент усиления (Gain) может быть установлен из диапазона значений от 0,01 до 100.
Усилитель или фильтр с управляемым 2-канальным мультиплексором (GainSwitch)
В отличие от усилителя (фильтра) с контролем полярности (рис. 21) компаратор управляет двухканальным мультиплексором
Усилитель-ограничитель
(GainLimiter)
КАМ создает усилитель с программируемым коэффициентом усиления и программируемым напряжением ограничения (рис. 19). Напряжение ограничения (Output Voltage Limit) можно выбрать из диапазона напря-
с программируемым усилением для каждого из каналов (Gainl и Gain2).
Усилитель с управляемым коэффициентом усиления (GainVoltageControlled)
Управление усилителем осуществляется напряжением, подаваемого на второй вход (рис. 22). Количество шагов (Count Value) в сетке усиления может быть C = 255, при этом максимальный коэффициент усиления рассчитывается по формуле GMaxc = 255/C и GMaKC = (255/C)2 при каскадном соединении (Cascaded) (рис. 22б). Коэффициент усиления не может превышать 100. Таблица соответствия коэффициента усиления определенному напряжению загружается из внешнего файла с помощью кнопки “Lookup Table”. Файл должен иметь расширение CSV, содержать 255 строк, в каждую из которых заносится коэффициент усиления, соответствующий определенному диапазону управляющих напряжений. Файл можно создать, используя приложение MS Excel.
Усилитель или фильтр с контролем полярности (GainPolarity)
КАМ создает однофазный усилитель (Half Cycle) (рис. 20а) или билинейный фильтр низких частот (Low Pass Bilinear Filter) (рис. 20б) с контролем полярности и программируемым коэффициентом передачи. Полярность усилителя или фильтра управляется компаратором, который является частью этого КАМ.
Модуль выборки/хранения («защелка») (Hold)
Напряжение на входе запоминается на одной фазе тактового сигнала (Input Sampling Phase) и хранится на выходе в течение следующей фазы.
Управляемый модуль выборки/хранения или слежения (HoldVoltageControlled) Доступны два режима работы модуля (Mode): выборка/хранение (Sample/Hold) (рис. 24) и выборка/слежение (Pause/Run) (рис. 25). Управление осуществляется с помощью входящего в состав КАМ компарато-
Рис. 24. Осциллограмма и условное обозначение модуля выборки-хранения
Рис. 25. Осциллограмма и условное обозначение модуля выборки-слежения
где ивх — входное напряжение; ивых — входное напряжение; К — постоянная времени интегрирования (Integration Constant); At — половина периода тактовой частоты CLOCKA.
Выходное значение может быть сброшено с помощью сигнала, поступающего на интегратор от встроенного компаратора (Compare Control).
Перемножитель (Multiplier)
Напряжение на выходе КАМ пропорционально произведению двух входных сигналов (рис. 27). Пользователь может задать коэффициент нормирования M (Multiplication Factor) от 0,33 до 4. Как и в случае делителя, при работе КАМ используется АЦП.
Щьіх = M x Ux xU^(KSaHmoSaHHoe).
Рис. 27. Осциллограмма работы перемножителя
Рис. 29. Условное обозначение генератора
Пиковый детектор (PeakDetect)
Этот КАМ создает пиковый детектор, частота CLOCKB влияет на диапазон выбора константы спада (Decay Time Constant) пикового детектора. Возможно детектирование как положительных, так и отрицательных пиков сигнала (рис. З0).
Рис. 30. Осциллограмма и условное обозначение пикового детектора
ра по высокому (Control High) или низком уровню (Control Low). С помощью этих модулей мы можем зафиксировать значение сигнала на время, необходимое для проведения изменения или расчета следующими за КАМ цепями схемы.
Интегратор
(Integrator)
Напряжение на выходе КАМ пропорционально интегралу по времени от входного напряжения (рис. 26):
Аиыа/At = ±KxUex,
Рис. 26. Осциллограмма и условное обозначение интегратора
Перемножитель с фильтром низкой частоты (MultiplierFilterLowFreq)
На выходе перемножителя включен фильтр низкой частоты с внешними конденсаторами (рис. 28). Для построения низкочастотного фильтра используется пара идентичных внешних конденсаторов. Порядок подключения конденсаторов такой же, как и в билинейном фильтре низкой частоты с внешними конденсаторами.
Генератор (OscillatorSine)
С помощью этого КАМ можно создать генератор (рис. 29) синусоидальных колебаний с программируемой частотой (Oscillation Frequency) и амплитудой от 0,3 до 3 В (Peak Amplitude).
Синтезатор периодического сигнала (PeriodicWave)
КАМ синтезирует периодический сигнал с максимальной длиной формы (CounterReset Value) 255 шагов для одноканальной конфигурации синтезатора и 127 шагов для двухка-
Рис. 31. Условное обозначение периодического сигнала синтезатора
нальной (Dual Waveform). Значения формы сигнала загружаются через меню настройки модуля (Lookup Table) с помощью внешнего файла формата CSV. С помощью внешнего сигнала возможен ручной перезапуск синтезатора (Reset->On).
Полупериодный выпрямитель (RectifierHalf)
КАМ производит однополупериодное положительное (Positive HalfWave), отрицательное (Negative HalfWave) или двухполу-периодное (Full Wave) выпрямление сигнала (рис. 32).
Рис. 32. Осциллограмма и условное обозначение двухполупериодного выпрямителя.
Выпрямитель с ФНЧ (RectifierFilter)
Этот КАМ отличается от полупериодного выпрямителя наличием на выходе программируемого фильтра низкой частоты (рис. 33).
Рис. 33. Условное обозначение выпрямителя с ФНЧ
Инвертирующий выпрямитель (RectifierHold)
КАМ пропускает положительный (Positive HalfWave) или отрицательный (Negative Half Wave) сигнал с инвертированием полярности (рис. 34). Коэффициент усиления (Gain) можно выбрать из диапазона 0,01-100.
Рис. 34. Осциллограмма и условное обозначение
Модуль извлечения квадратного корня (Square Root)
Значение уровня на выходе КАМ равно квадратному корню по модулю от входного сигнала с сохранением полярности входного сигнала (рис. 35):
U8ux =
знаках )xV/UJ.
Сумматор с биквадратичным фильтром (Sum/Difference Stage with Biquadratic Filter)
КАМ представляет собой двухканальный сумматор с раздельными биквадратичными фильтрами для каждого канала. Для первого канала можно выбрать один из типов фильтра: высокой (рис. 36а), низкой частоты (рис. 36б) или полосовой фильтр (рис. 36в). Кроме этого пользователь может менять полярность второго фильтра (Input 2 Polarity), коэффициент пропускания первого (Gainl) и второго канала (Gain2) и добротность (Quality Factor). Особенностью этого КАМ является одинаковая для обоих каналов добротность (Quality Factor) и частота среза или пропускания (Corner Frequency).
Интегрирующий сумматор (SumIntegrator)
КАМ производит суммирование по двум или трем каналам (Input 3 On) с последующим интегрированием (рис. 37). Причем для каждого канала можно задать коэффициент интегрирования и действие — сложение или вычитание (Non-inverting/Inverting).
Возможен сброс значения интегрирования по внешнему сигналу с помощью встроенного компаратора по высокому (Control Hight) или низкому уровню (Control Low).
Сумматор с инверсным выходом (Inverting Sum Stage)
КАМ суммирует входной сигнал по двум или трем (Inputs) каналам и производит инвертирование суммы (рис. 38). Независимо по каждому входу можно установить весовой коэффициент суммирования (Gain) в диапазоне от 0,01 до 100.
Рис. 38. Условное обозначение сумматора с инверсным выходом
Трансимпедансный усилитель (Transimpedance)
Этот КАМ преобразует входной ток в напряжение. КАМ подключается к входной ячейке, сконфигурированной с режиме “Input” -> “Bypass” (рис. 39).
Рис. 39. Условное обозначение и схема подключения трансимпедансного усилителя
Источник опорного напряжения (Voltage)
КАМ создает источник опорного напряжения +2 В (рис. 40а) или -2 В (рис. 40б).
Нуль детектор (ZeroCross)
К2
И И
Рис. 40. Условное обозначение источника опорного напряжения: а) +2 В; б) —2 В
На выходе КАМ формируется импульс шириной тактового сигнала в момент перехода суммы значений входных сигналов из отрицательной в положительную область (рис. 41). Настройки КАМ аналогичны настройкам компаратора.
НИН
Рис. 36. Условное обозначение сумматора с биквадратичными фильтрами
Ячейки ввода/вывода
Для ввода/вывода сигналов из ПАИС используются специальные ячейки ввода/вывода. ПАИС могут быть сконфигурированы в одно из пяти основных состояний (таблица).
Кроме этих основных состояний ячейки могут быть дополнительно настроены на организацию выборки-хранения входных или выходных сигналов (Sample and Hold), вывод тактовых сигналов (Single-ended Digital), внутренней «земли» ПАИС (VMR) и сигналов состояния ПАИС.
Загрузка конфигурации в ПАИС
Наиболее простой способ конфигурирования ПАИС — загрузка данных конфигурации непосредственно из внешнего ПЗУ. ПАИС поддерживает SPI EPROM (рис. 42б) и Serial EPROM (рис. 42а). Конфигурационный интерфейс устройства разработан так, чтобы принимать данные как от последовательных ПЗУ, так и от любого из трех основных типов интерфейсов: синхронного последовательного интерфейса SSI, последовательного периферийного интерфейса SPI или традиционной внешней периферийной процессорной шины данных. Конфигурационные данные для записи в ПЗУ, можно сохранить в файл с помощью меню Configure/Write Configuration data to a File. Данные могут быть сохранены в одном из 10 форматов (HEX, BIN и др.) [2].
При подаче напряжения питания на микросхему конфигурационная память ПАИС очищается, после чего конфигурационная логика автоматически загружает данные из EPROM. После завершения загрузки данных ПАИС автоматически активирует аналоговую структуру.
При использовании в одном устройстве нескольких ПАИС загрузку конфигурации мож-
но выполнять с помощью одной микросхемы EPROM (рис. 43). В этом случае конфигурационные данные будут последовательно загружены из EPROM во все ПАИС.
В приложениях, требующих динамического переконфигурирования аналоговой структуры в процессе работы, необходимо использовать внешний контроллер, позволяющий выполнять вычисления новых значений схемы, собирать эти значения в блок конфигурационных данных и передавать его в ПАИС. В этом случае новые конфигурационные данные загружаются в специальную область памяти ПАИС — теневое ОЗУ, а затем с приходом очередного такта синхронизации копируется в конфигурационную память, после чего микросхема начинает работать в новой конфигурации без прерывания процесса обработки сигнала. ■
Литература
1. Гауси М., Лакер К. Активные фильтры с переключаемыми конденсаторами / Пер. с англ. М.: Радио и связь, 1986.
2. Полищук А. Система автоматизированного проектирования программируемых аналоговых интегральных схем AnadigmDesigner2. Часть 1. Первый шаг: знакомство с интерфейсом // Компоненты и технологии. 2005. № 6-7.
Таблица. Основные состояния ячеек ввода/вывода
Input(вход)
Output (выход)
Independent
Amplifier
(независимый
усилитель)
Low Offset Chopper (усилитель)
ш
Ячейка ввода/вывода не используется
Ячейка используется для ввода сигналов в ПАИС
Ячейка используется для вывода сигналов из ПАИС
Усилитель может быть использован внешними цепями схемы независимо от ПАИС
Ввод сигналов в ПАИС через усилитель с прерыванием. KE = 0...60 дБ, шаг 10 дБ
FPGA EEPROM (АТ17С65-10РС)
OE/RESET_B -SER_EN_B СЕ_В -DATA -CEO В CLK -
3 х AN221E04
26 Load Order 1
Рис. 43. Загрузка конфигураций с одной EEPROM в несколько ПАИС
SPI EEPROM (АТ25080-10РС)
CS_B
WP в SI
SO
HOLD_B SCK
AN221E04
20
<
27
<
30
26
<
CFGFLGb
OUTCLK/ MODE
SPIMEM
DIN CS1b
ACLK/SPIP
DCLK
crystal
23
I
FPGA EEPROM (AT17C65-10PC)
OE/RESET_B SER_EN_B CE_B
DATA
CEO В CLK
AN221E04
3 (32
4 ,33
1, 30
2 26
ERRb
ACTIVATE
DIN MODE
ACLK/SPIP CS1b
DCLK
23
crystal __
i—i
I
25
,22
PL
Рис. 42. Подключение ПАИС к ПЗУ: а) EEPROM FPGA; б) EEPROM SPI
Off