Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Встроенный

Освоение цифровой фильтрации на встраиваемых микроконтроллерах: двухканальный биквадратный IIR движок PowerQuad в LPC55S69

Исследуем наиболее распространенные техники фильтрации временных данных и исследуем, как двухканальный биквадратный IIR движок PowerQuad в LPC55S69 ускоряет DSP задачи.

Работая с данными, собранными во времени, первым шагом часто является применение цифрового фильтра. Понимание различных стратегий фильтрации не только улучшает качество сигнала, но и освобождает CPU для других критических задач — важное соображение для встраиваемых микроконтроллеров.

Статья охватывает наиболее широко используемые методы фильтрации во временной области и углубляется в двухканальный биквадратный IIR движок блока PowerQuad в MCU LPC55S69, мощный DSP строительный блок, который можно использовать в различных сценариях фильтрации.

Общие фильтры для непрерывно дискретизируемых данных

В системе захвата во временной области отсчеты поступают с фиксированной, известной частотой. Временные фильтры обрабатывают эти отсчеты и производят новый сигнал, который может быть дальше обработан или отправлен в ЦАП (DAC). Ядром любого фильтра является его ответ на синусоиды — изменение амплитуды и фазы по частотам. Коллективное поведение по частотному спектру известно как частотная характеристика фильтра.

Конечные импульсные характеристики (FIR) фильтры — стандартный подход. Они генерируют каждый выходной отсчет, комбинируя самые недавние данные с историей предыдущих отсчетов.

Освоение цифровой фильтрации на встраиваемых микроконтроллерах: двухканальный биквадратный IIR движок PowerQuad в LPC55S69
Рисунок 1. Поточечная обработка фильтра с использованием истории входа.

Один прямолинейный способ реализации хранит предыдущие отсчеты в массиве и применяет следующее уравнение:

x[n] // Самый недавний вход
x[n-1], x[n-2] // Два предыдущих входных отсчета
y[n] // Следующий выходной отсчет

y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2]

Эта простая multiply-accumulate операция использует постоянные коэффициенты и определенную длину истории для формирования частотной характеристики фильтра. Настройкой коэффициентов фильтр может действовать как низкочастотный (LPF), высокочастотный (HPF) или полосовой (BPF) фильтр.

Хотя концептуально просто, FIR фильтры часто требуют много прошлых отсчетов для точного управления, что может быть вычислительно дорого на обычном CPU — особенно когда история растет.

Для сокращения требуемой истории многие дизайны включают обратную связь, формируя основу Бесконечных импульсных характеристик (IIR) фильтров:

// Этот пример следует соглашениям именования, использованным ранее
y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2]

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

Существует множество инструментов для генерации оптимальных коэффициентов стандартных фильтров. Эти «книги рецептов» дают быстрый путь к качественным фильтрам.

Освоение цифровой фильтрации на встраиваемых микроконтроллерах: двухканальный биквадратный IIR движок PowerQuad в LPC55S69
Рисунок 2. Один из множества инструментов, автоматически генерирующих коэффициенты.

Использование биквадратных IIR движков PowerQuad

Блок PowerQuad LPC55S69 предлагает выделенное железо для выполнения IIR биквадратных фильтров. Вынос рабочей нагрузки фильтрации на этот сопроцессор освобождает ядра Cortex‑M33 для фокуса на логике приложения.

Хотя алгоритмы фильтров сами по себе просты, они могут потреблять значительные циклы CPU. Железо PowerQuad специально оптимизировано для фильтрации и других сложных математических операций. Оно подключается к системе через шину AHB и интерфейс сопроцессора Arm® Cortex®‑M33.

Разработчики обычно используют бесплатную Eclipse-основанную MCUXpresso IDE и LPC55S69 SDK, включающий несколько примеров приложений PowerQuad.

Освоение цифровой фильтрации на встраиваемых микроконтроллерах: двухканальный биквадратный IIR движок PowerQuad в LPC55S69
Рисунок 3. Выбор примера цифрового фильтра PowerQuad.

Пример «powerquad_filter» демонстрирует ряд конфигураций фильтров. Основная логика находится в powerquad_filter.c, показывающем базовые настройки фильтров.

В то время как статья представила реализацию Direct Form I, PowerQuad внутренне переупорядочивает операции в структуру Direct Form II. Это расположение устраняет необходимость хранить и входные, и выходные истории, вместо этого поддерживая единственный промежуточный вектор состояния v[n].

Несколько AHB регистров держат состояние и коэффициенты, необходимые для настройки операций IIR фильтра PowerQuad. В примерах SDK состояние инициализируется через PQ_BiquadRestoreInternalState.

После инициализации фильтр обрабатывает блоки данных, используя PQ_VectorBiquadDf2F32 в fsl_powerquad_filter.c:

/* Функция обрабатывает входные отсчеты кратными восьми. */
Освоение цифровой фильтрации на встраиваемых микроконтроллерах: двухканальный биквадратный IIR движок PowerQuad в LPC55S69
Рисунок 4. Векторизованная реализация IIR фильтра

Эта рутина передает данные от основного CPU к сопроцессору PowerQuad через инструкцию MCR. PowerQuad выполняет multiply-add операции, возвращая отфильтрованный результат обратно в CPU через другой MCR перенос. Этот вынос драматически снижает нагрузку на CPU по сравнению с выполнением того же алгоритма на ядрах Cortex‑M33.

Двухканальный биквадратный IIR движок для цифровой фильтрации

Блок PowerQuad LPC55S69 содержит два независимых биквадратных движка, позволяя параллельные или каскадные операции фильтрации. Конфигурационные регистры на шине AHB настраивают IIR функции, а обмен данными происходит через интерфейс сопроцессора.

MCUXpresso SDK предоставляет надежную отправную точку, хотя поставляемый код приоритизирует ясность над сырой производительностью. Разработчики могут дальше оптимизировать, минимизируя передачи данных между CPU и PowerQuad.

NXP предлагает инструмент проектирования и визуализации IIR биквадратных фильтров, помогающий генерировать и визуализировать коэффициенты фильтров. Страница сообщества NXP также предлагает глубокую документацию на блок PowerQuad LPC55S69 и его возможности.

Индустриальные статьи — это форма контента, позволяющая промышленным партнерам делиться полезными новостями, сообщениями и технологиями с читателями All About Circuits способом, не подходящим для редакционного контента. Все промышленные статьи подлежат строгим редакционным рекомендациям для предоставления читателям полезных новостей, технической экспертизы или историй. Точки зрения и мнения, выраженные в промышленных статьях, принадлежат партнеру и не обязательно совпадают с позицией All About Circuits или его авторов.

Встроенный

  1. Цифровая логика с обратной связью: от детерминированных гейтов к мультивибраторам
  2. Почему важна цифровая память
  3. Технология ИС и микроконтроллеры: краеугольный камень современных встроенных систем
  4. Использование данных в Интернете надежности: стратегии эффективного управления
  5. Ускорение цифровой трансформации: Edge-to-Cloud IoT платформа Cisco & IBM
  6. Предиктивное обслуживание: использование Индустрии 4.0 для бесперебойного производства
  7. Трансформация цифровых производственных команд с инсайтами реального времени
  8. Бесшовная интеграция OT-IT: современное промышленное ПО соединяет умные датчики с корпоративными системами
  9. GE Digital: как данные и аналитика ведут к операционному совершенству в производстве
  10. Ускорение цифровой трансформации: данные MES в реальном времени повышают эффективность завода