Программируемые аналоговые интегральные схемы ИС Anadigm: применение конфигурируемых аналоговых модулей в составе программы Anadigm Designer2
Статья посвящена описанию принципов работы программируемых аналоговых схем (ПАИС), описанию конфигурируемых аналоговых модулей, распространяемых в составе программы AnadigmDesigner2, и способах загрузки конфигурационных данных в ПАИС.
Введение
Традиционно схемы аналоговой обработки сигналов выполняются на дискретных компонентах — операционных усилителях, компараторах, мультиплексорах и т. п. При этом в ряде случаев аналоговая часть занимает большую часть площади печатной платы и имеет высокую стоимость. Решить проблему создания разнообразных аналоговых устройств, снизив стоимость и габариты, позволяет использование программируемых аналоговых интегральных схем — ПАИС (FPAA), лидером в производстве которых является компания Anadigm (компания Anadigm была выделена из состава компании Motorola в 2000 году). Обработка сигнала внутри ПАИС осуществляется схемами на переключаемых конденсаторах. В отличие от цифровых систем, где сигнал дискретен по времени и квантован по уровню, в дискретно-аналоговых системах сигнал дискретен только по времени (рис. 1), в силу этого выходной аналоговый сигнал можно восстановить без искажений по его выборкам [1]. Так, при входном сигнале 1 мВ точность преобразования будет не хуже ±0,1%.
Компания Anadigm производит два типа ПАИС — динамически и статически конфигурируемые. В отличие от статически программируемых схем, где конфигурационные данные загружаются при включении ПАИС и остаются неизменными во время ее работы, динамически конфигурируемая схема позволяет изменять полностью или частично функциональную структуру в реальном времени в работающем устройстве, что дает возможность создавать уникальные схемы аналоговой обработки сигналов.
Архитектура ПАИС
Основу ПАИС составляют четыре конфигурируемых аналоговых блока (КАБ), каждый из которых содержит наборы элементов — 8 программируемых конденсаторов, 2 операционных усилителя, 1 компаратор и 1 регистр последовательного приближения (рис. 2). Используя этот набор элементов, можно создавать конфигурируемые аналоговые модули (КАМ): усилители, выпрямители, интеграторы, дифференциаторы, сумматоры, перемножители и т. п. Необходимо отметить, что на базе одного КАБ можно создать несколько КАМ.
Программируемые конденсаторы, применяемые в КАБ, могут принимать относительное значение емкости от 0 до 255 единиц. В отличие от традиционных аналоговых схем, в схемах на переключаемых конденсаторах не важны абсолютные значения емкости, а только соотношение между ними, которое выдерживается с точностью не хуже 0,1%. При этом параметры таких схем практически не будут зависеть от времени работы (старение) или изменения температуры окружающей среды, так как отношение емкостей останется неизменным. Каждый КАБ содержит статические и динамические ключи. Динамические ключи управляются входными и тактовыми сигналами, а также логикой регистра последовательного приближения. Статические ключи определяют общие схемы коммутации блоков, значения емкости конденсаторов, подключение входов. Замена резисторов конденсаторами позволяет повысить точность и уменьшить количество подключаемых к микросхеме внешних элементов. В качестве примера можно привести замещение схемы инвертирующего усилителя схемой на переключаемых конденсаторах (рис. 3).
Конфигурируемые аналоговые модули
Библиотеки конфигурируемых аналоговых модулей распространяются в составе программы AnadigmDesigner2 бесплатно. Программа имеет интуитивно понятный интерфейс (рис. 4).
Таблицу конфигурируемых аналоговых модулей (CAM Browser) можно вызвать в AnadigmDesigner2 с помощью горячей клавиши «M». Более подробно о работе интерфейса AnadigmDesigner2 можно прочитать в статьях, опубликованных ранее [2].
Аналогово-цифровой преобразователь (ADC-SAR)
КАМ создает 8-разрядный аналогово-цифровой преобразователь (АЦП) последовательного приближения со встроенным источником опорного напряжения. Используется две тактовые частоты: CLOCKA (частота выборки) и CLOCKB (частота последовательного приближения). Входное дифференциальное напряжение в диапазоне от –3 до +3 В АЦП преобразовывается в 8-разрядный последовательный код. По желанию одна из ячеек входа/выхода может быть настроена на передачу тактовых сигналов (CLOCKA и CLOCKB) (рис. 5).
Компаратор (Comparator)
КАМ создает компаратор с различными программируемыми параметрами и гистерезисом (Hysterysis) 0 или 10 мВ. Доступны три различных конфигурации: нуль-индикатор (Signal Ground) (рис. 6а), с двумя входами (Dual Input) (рис. 6б) и с управляемым источником опорного напряжения (Variable Reference) (рис. 6в).
Дифференциатор (Differentiator)
Выходное напряжение на выходе КАМ (рис. 7) будет пропорционально скорости изменения входного напряжения в течение одной фазы тактового импульса CLOCKА (Phase):
где Uвх — входное напряжение; Uвых — входное напряжение; К — постоянная времени дифференциатора; Δt — половина периода тактовой частоты CLOCKА.
Делитель (Divider)
КАМ извлекает частное двух входных сигналов. Напряжение на входе X (левый вход) делится на напряжение на входе Y (нижний вход) (рис. 8, 9). Для работы КАМ используется АЦП, поэтому напряжение на входе Y квантовано в диапазоне от –3 до +3 В с шагом ~0,0235 В. Коэффициент нормирования D (Divisor Factor) может быть выбран из диапазона от 0,33 до 4,0:
Билинейный фильтр (FilterBilinear)
На базе этого КАМ можно создать (рис. 10): билинейный фильтр (6 дБ/окт) низких (Low Pass) и высоких (High Pass) частот, фазовый (All Pass) и полюсной (Pole and Zero) фильтр. Частота среза (Corner Frequency) может быть установлена пользователем в широком диапазоне значений. Пользователю доступно поле с коэффициентом передачи фильтра (Gain) (рис. 11).
Биквадратичный фильтр (FilterBiquad)
На базе этого КАМ можно создать: биквадратичный фильтр (12 дБ/окт) низких частот (Low Pass), высоких частот (High Pass), полосовой (Band Pass), режекторный (Band Stop) и полюсной фильтр (Pole and Zero) (рис. 12). Настройки аналогичны настройкам билинейных фильтров, за исключением дополнительного поля Quality, которое влияет на АЧХ фильтра.
Билинейный фильтр низкой частоты с внешними конденсаторами (FilterLowFreqBilinear)
На базе этого КАМ можно создавать фильтры низких частот с экстремально низкой частотой среза с помощью внешних конденсаторов. Так как обработка сигнала внутри ПАИС полностью дифференциальная, то для построения фильтра используется пара идентичных конденсаторов. Входной порт должен быть сконфигурирован для работы в режиме Bypass. Подключение конденсаторов к ПАИС следующее: один конденсатор подключается между позитивным входом и негативным выходом, а второй между негативным входом и позитивным выходом (рис. 13).
Необходимо отметить, что AnadigmDesigner2 не имеет инструмента для моделирования внешних компонентов, подключаемых к ПАИС, в частности конденсаторов, поэтому для того чтобы симулятор не выдавал ошибки во время моделирования работы микросхемы, необходимо подключить генератор сигналов к верхнему входу фильтра (рис. 14). Настройки этого сигнального генератора могут быть любыми, они не повлияют на форму сигнала и работу фильтра (рис. 15).
Однофазный усилитель (GainHalf)
Этот КАМ усиливает входной сигнал в течение одной фазы (Ф2) тактового импульса (Input Sampling Phase), в течение второй фазы (Ф1) тактового импульса напряжение на выходе усилителя будет равно напряжению внутренней земли ПАИС (рис. 16).
КАМ может работать в качестве инвертирующего усилителя (Inverting). Коэффициент усиления (G) задается в поле Gain:
Усилитель с защелкой (GainHold)
КАМ создает инвертирующий усилитель с программируемым коэффициентом усиления. Входной сигнал усиливается в течение одной фазы и остается «замороженным» в течение второй фазы тактового импульса (рис. 17). Как видно из рисунка, осциллограмма становится более «зубчатой», так как сигнал на выходе КАМ остается одинаковой амплитуды в течение двух фаз тактового сигнала. Фактически частота дискретизации уменьшается в два раза. Достоинством КАМ является меньший расход ресурсов ПАИС.
Инвертирующий усилитель (GainInv)
КАМ создает инвертирующий усилитель (рис. 18) с программируемым коэффициентом усиления. Коэффициент усиления (Gain) может быть установлен из диапазона значений от 0,01 до 100.
Усилитель-ограничитель (GainLimiter)
КАМ создает усилитель с программируемым коэффициентом усиления и программируемым напряжением ограничения (рис. 19). Напряжение ограничения (Output Voltage Limit) можно выбрать из диапазона напряжений от 0,05 до 4,0 В. Выходное напряжение Uвых можно рассчитать по формуле:
где UOL — напряжение ограничения.
Усилитель или фильтр с контролем полярности (GainPolarity)
КАМ создает однофазный усилитель (Half Cycle) (рис. 20а) или билинейный фильтр низких частот (Low Pass Bilinear Filter) (рис. 20б) с контролем полярности и программируемым коэффициентом передачи. Полярность усилителя или фильтра управляется компаратором, который является частью этого КАМ.
Усилитель или фильтр с управляемым 2-канальным мультиплексором (GainSwitch)
В отличие от усилителя (фильтра) с контролем полярности (рис. 21) компаратор управляет двухканальным мультиплексором с программируемым усилением для каждого из каналов (Gain1 и Gain2).
Усилитель с управляемым коэффициентом усиления (GainVoltageControlled)
Управление усилителем осуществляется напряжением, подаваемого на второй вход (рис. 22). Количество шагов (Count Value) в сетке усиления может быть C = 255, при этом максимальный коэффициент усиления рассчитывается по формуле Gмакс = 255/C и Gмакс = (255/C)² при каскадном соединении (Cascaded) (рис. 22б). Коэффициент усиления не может превышать 100. Таблица соответствия коэффициента усиления определенному напряжению загружается из внешнего файла с помощью кнопки “Lookup Table”. Файл должен иметь расширение CSV, содержать 255 строк, в каждую из которых заносится коэффициент усиления, соответствующий определенному диапазону управляющих напряжений. Файл можно создать, используя приложение MS Excel.
Модуль выборки/хранения («защелка») (Hold)
Напряжение на входе запоминается на одной фазе тактового сигнала (Input Sampling Phase) и хранится на выходе в течение следующей фазы.
Управляемый модуль выборки/хранения или слежения (HoldVoltageControlled)
Доступны два режима работы модуля (Mode): выборка/хранение (Sample/Hold) (рис. 24) и выборка/слежение (Pause/Run) (рис. 25). Управление осуществляется с помощью входящего в состав КАМ компаратора по высокому (Control High) или низком уровню (Control Low). С помощью этих модулей мы можем зафиксировать значение сигнала на время, необходимое для проведения изменения или расчета следующими за КАМ цепями схемы.
Интегратор (Integrator)
Напряжение на выходе КАМ пропорционально интегралу по времени от входного напряжения (рис. 26):
где Uвх — входное напряжение; Uвых — входное напряжение; К — постоянная времени интегрирования (Integration Constant); Δt — половина периода тактовой частоты CLOCKA.
Выходное значение может быть сброшено с помощью сигнала, поступающего на интегратор от встроенного компаратора (Compare Control).
Перемножитель (Multiplier)
Напряжение на выходе КАМ пропорционально произведению двух входных сигналов (рис. 27). Пользователь может задать коэффициент нормирования M (Multiplication Factor) от 0,33 до 4. Как и в случае делителя, при работе КАМ используется АЦП.
Перемножитель с фильтром низкой частоты (MultiplierFilterLowFreq)
На выходе перемножителя включен фильтр низкой частоты с внешними конденсаторами (рис. 28). Для построения низкочастотного фильтра используется пара идентичных внешних конденсаторов. Порядок подключения конденсаторов такой же, как и в билинейном фильтре низкой частоты с внешними конденсаторами.
Генератор (OscillatorSine)
С помощью этого КАМ можно создать генератор (рис. 29) синусоидальных колебаний с программируемой частотой (Oscillation Frequency) и амплитудой от 0,3 до 3 В (Peak Amplitude).
Пиковый детектор (PeakDetect)
Этот КАМ создает пиковый детектор, частота CLOCKB влияет на диапазон выбора константы спада (Decay Time Constant) пикового детектора. Возможно детектирование как положительных, так и отрицательных пиков сигнала (рис. 30).
Синтезатор периодического сигнала (PeriodicWave)
КАМ синтезирует периодический сигнал с максимальной длиной формы (Counter Reset Value) 255 шагов для одноканальной конфигурации синтезатора и 127 шагов для двухканальной (Dual Waveform). Значения формы сигнала загружаются через меню настройки модуля (Lookup Table) с помощью внешнего файла формата CSV. С помощью внешнего сигнала возможен ручной перезапуск синтезатора (Reset->On).
Полупериодный выпрямитель (RectifierHalf)
КАМ производит однополупериодное положительное (Positive Half Wave), отрицательное (Negative Half Wave) или двухполупериодное (Full Wave) выпрямление сигнала (рис. 32).
Выпрямитель с ФНЧ (RectifierFilter)
Этот КАМ отличается от полупериодного выпрямителя наличием на выходе программируемого фильтра низкой частоты (рис. 33).
Инвертирующий выпрямитель (RectifierHold)
КАМ пропускает положительный (Positive Half Wave) или отрицательный (Negative Half Wave) сигнал с инвертированием полярности (рис. 34). Коэффициент усиления (Gain) можно выбрать из диапазона 0,01–100.
Модуль извлечения квадратного корня (Square Root)
Значение уровня на выходе КАМ равно квадратному корню по модулю от входного сигнала с сохранением полярности входного сигнала (рис. 35):
Сумматор с биквадратичным фильтром (Sum/Difference Stage with Biquadratic Filter)
КАМ представляет собой двухканальный сумматор с раздельными биквадратичными фильтрами для каждого канала. Для первого канала можно выбрать один из типов фильтра: высокой (рис. 36а), низкой частоты (рис. 36б) или полосовой фильтр (рис. 36в). Кроме этого пользователь может менять полярность второго фильтра (Input 2 Polarity), коэффициент пропускания первого (Gain1) и второго канала (Gain2) и добротность (Quality Factor). Особенностью этого КАМ является одинаковая для обоих каналов добротность (Quality Factor) и частота среза или пропускания (Corner Frequency).
Интегрирующий сумматор (SumIntegrator)
КАМ производит суммирование по двум или трем каналам (Input 3 On) с последующим интегрированием (рис. 37). Причем для каждого канала можно задать коэффициент интегрирования и действие — сложение или вычитание (Non-inverting/Inverting).
Возможен сброс значения интегрирования по внешнему сигналу с помощью встроенного компаратора по высокому (Control Hight) или низкому уровню (Control Low).
Сумматор с инверсным выходом (Inverting Sum Stage)
КАМ суммирует входной сигнал по двум или трем (Input3) каналам и производит инвертирование суммы (рис. 38). Независимо по каждому входу можно установить весовой коэффициент суммирования (Gain) в диапазоне от 0,01 до 100.
Трансимпедансный усилитель (Transimpedance)
Этот КАМ преобразует входной ток в напряжение. КАМ подключается к входной ячейке, сконфигурированной с режиме “Input” -> “Bypass” (рис. 39).
Источник опорного напряжения (Voltage)
КАМ создает источник опорного напряжения +2 В (рис. 40а) или –2 В (рис. 40б).
Нуль детектор (ZeroCross)
На выходе КАМ формируется импульс шириной тактового сигнала в момент перехода суммы значений входных сигналов из отрицательной в положительную область (рис. 41). Настройки КАМ аналогичны настройкам компаратора.
Ячейки ввода/вывода
Для ввода/вывода сигналов из ПАИС используются специальные ячейки ввода/вывода. ПАИС могут быть сконфигурированы в одно из пяти основных состояний (таблица).
Кроме этих основных состояний ячейки могут быть дополнительно настроены на организацию выборки-хранения входных или выходных сигналов (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 во все ПАИС.
В приложениях, требующих динамического переконфигурирования аналоговой структуры в процессе работы, необходимо использовать внешний контроллер, позволяющий выполнять вычисления новых значений схемы, собирать эти значения в блок конфигурационных данных и передавать его в ПАИС. В этом случае новые конфигурационные данные загружаются в специальную область памяти ПАИС — теневое ОЗУ, а затем с приходом очередного такта синхронизации копируется в конфигурационную память, после чего микросхема начинает работать в новой конфигурации без прерывания процесса обработки сигнала.
Литература
- Гауси М., Лакер К. Активные фильтры с переключаемыми конденсаторами / Пер. с англ. М.: Радио и связь, 1986.
- Полищук А. Система автоматизированного проектирования программируемых аналоговых интегральных схем AnadigmDesigner2. Часть 1. Первый шаг: знакомство с интерфейсом // Компоненты и технологии. 2005. № 6–7.