Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Integrado

Dominando Filtragem Digital em Microcontroladores Embarcados: Motor Dual Biquad IIR do PowerQuad no LPC55S69

Explore as técnicas mais comuns para filtrar dados no domínio do tempo e examine como o motor Dual Biquad IIR do PowerQuad do LPC55S69 acelera tarefas de DSP.

Ao trabalhar com dados coletados ao longo do tempo, o primeiro passo é frequentemente aplicar um filtro digital. Entender as várias estratégias de filtragem não apenas melhora qualidade do sinal mas também libera a CPU para outras tarefas críticas — uma consideração essencial para microcontroladores embarcados.

Este artigo cobre os métodos de filtragem no domínio do tempo mais amplamente usados e se aprofunda no motor Dual Biquad IIR da unidade PowerQuad no MCU LPC55S69, um bloco de construção DSP poderoso que pode ser aproveitado em uma variedade de cenários de filtragem.

Filtros Comuns para Dados Amostrados Continuamente

Em um sistema de aquisição no domínio do tempo, amostras chegam a uma taxa fixa e conhecida. Filtros de domínio do tempo processam estas amostras e produzem um novo sinal que pode ser processado adicionalmente ou enviado a um conversor digital-para-analógico (DAC). O núcleo de qualquer filtro é sua resposta a ondas senoidais — alterando amplitude e fase através de frequências. O comportamento coletivo sobre um espectro de frequência é conhecido como resposta de frequência do filtro.

Filtros de Resposta Finita a Impulso (FIR) são uma abordagem padrão. Eles geram cada amostra de saída combinando o dado mais recente com um histórico de amostras anteriores.

Dominando Filtragem Digital em Microcontroladores Embarcados: Motor Dual Biquad IIR do PowerQuad no LPC55S69

Figura 1. Processamento de filtro amostra-por-amostra usando histórico da entrada.

Uma implementação direta armazena amostras anteriores em um array e aplica a seguinte equação:

x[n] // A entrada mais recente
x[n-1], x[n-2] // As duas amostras de entrada anteriores
y[n] // A próxima amostra de saída

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

Esta simples operação multiply-acumulate usa coeficientes constantes e um comprimento de histórico definido para moldar a resposta de frequência do filtro. Ajustando os coeficientes, o filtro pode atuar como passa-baixa, passa-alta ou passa-banda.

Embora conceitualmente simples, filtros FIR frequentemente requerem muitas amostras passadas para alcançar controle preciso, o que pode ser computacionalmente caro em uma CPU convencional — especialmente quando o histórico cresce.

Para reduzir o histórico requerido, muitos designs incorporam feedback, formando a base de filtros de Resposta Infinita a Impulso (IIR):

// Este exemplo segue as convenções de nomenclatura usadas anteriormente
y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2]

O exemplo acima ilustra um filtro biquad, um bloco de construção IIR comum que pode ser cascateado para respostas de ordem superior. Menos coeficientes são necessários comparado a um filtro FIR, mas seleção cuidadosa de coeficientes é essencial para evitar instabilidade e oscilação.

Numerosas ferramentas existem para gerar coeficientes ótimos para designs de filtro padrão. Estes "cookbooks" fornecem um caminho rápido para filtros de alta qualidade.

Dominando Filtragem Digital em Microcontroladores Embarcados: Motor Dual Biquad IIR do PowerQuad no LPC55S69

Figura 2. Uma das muitas ferramentas que geram coeficientes automaticamente.

Usando os Motores Biquad IIR do PowerQuad

A unidade PowerQuad do LPC55S69 oferece hardware dedicado para executar filtros biquad IIR. Descarregar a carga de trabalho de filtragem para este co-processador libera os núcleos Cortex-M33 para focar em lógica de aplicação.

Embora os algoritmos de filtro em si sejam diretos, eles podem consumir ciclos significativos de CPU. O hardware do PowerQuad é especificamente otimizado para filtragem e outras operações matemáticas complexas. Ele conecta ao sistema via barramento AHB e interface coprocessador Arm® Cortex®-M33.

Desenvolvedores tipicamente usam a IDE MCUXpresso baseada em Eclipse gratuita e o SDK LPC55S69, que inclui vários aplicativos de exemplo PowerQuad.

Dominando Filtragem Digital em Microcontroladores Embarcados: Motor Dual Biquad IIR do PowerQuad no LPC55S69

Figura 3. Selecionando o exemplo de filtro digital PowerQuad.

O exemplo "powerquad_filter" demonstra uma gama de configurações de filtro. A lógica central reside em powerquad_filter.c, que mostra configurações básicas de filtro.

Enquanto o artigo introduziu uma implementação Forma Direta I, o PowerQuad internamente reordena operações em uma estrutura Forma Direta II. Este arranjo elimina a necessidade de armazenar tanto históricos de entrada quanto saída, mantendo em vez disso um único vetor de estado intermediário v[n].

Vários registradores AHB mantêm o estado e coeficientes necessários para configurar as operações de filtro IIR do PowerQuad. Nos exemplos do SDK, o estado é inicializado via PQ_BiquadRestoreInternalState.

Uma vez inicializado, o filtro processa blocos de dados usando PQ_VectorBiquadDf2F32 em fsl_powerquad_filter.c:

/* Função processa amostras de entrada em múltiplos de oito. */

Dominando Filtragem Digital em Microcontroladores Embarcados: Motor Dual Biquad IIR do PowerQuad no LPC55S69

Figura 4. Implementação de Filtro IIR Vetorizado

Esta rotina transfere dados da CPU principal para o co-processador PowerQuad via instrução MCR. O PowerQuad executa as operações multiply-add, entregando o resultado filtrado de volta à CPU com outra transferência MCR. Este descarregamento reduz dramaticamente carga da CPU comparado a executar o mesmo algoritmo nos núcleos Cortex-M33.

O Motor Dual Biquad IIR para Filtragem Digital

A unidade PowerQuad do LPC55S69 contém dois motores biquad independentes, permitindo operações de filtragem paralelas ou cascateadas. Registradores de configuração no barramento AHB configuram as funções IIR, e troca de dados ocorre sobre a interface do coprocessador.

O SDK MCUXpresso fornece um ponto de partida sólido, embora o código fornecido priorize clareza sobre performance bruta. Desenvolvedores podem otimizar ainda mais minimizando transferências de dados entre CPU e PowerQuad.

A NXP oferece uma Ferramenta de Design e Visualização de Filtro IIR Biquad que auxilia na geração e visualização de coeficientes de filtro. A página da comunidade NXP também oferece documentação aprofundada sobre a unidade PowerQuad do LPC55S69 e suas capacidades.

Artigos da Indústria são uma forma de conteúdo que permite parceiros da indústria compartilharem notícias úteis, mensagens e tecnologia com leitores do All About Circuits de uma forma que o conteúdo editorial não é bem adequado. Todos os Artigos da Indústria estão sujeitos a diretrizes editoriais rigorosas com a intenção de oferecer aos leitores notícias úteis, experiência técnica ou histórias. Os pontos de vista e opiniões expressos nos Artigos da Indústria são do parceiro e não necessariamente do All About Circuits ou de seus escritores.

Integrado

  1. Lógica Digital com Realimentação: De Portas Determinísticas a Multivibradores
  2. Por Que Memória Digital Importa
  3. Tecnologia CI e Microcontroladores: A Pedra Angular dos Sistemas Embarcados Modernos
  4. Aproveitando Dados na Internet da Confiabilidade: Estratégias para Gestão Eficaz
  5. Acelerando Transformação Digital: Plataforma IoT Edge-to-Cloud da Cisco & IBM
  6. Manutenção Preditiva: Aproveitando a Indústria 4.0 para Produção Ininterrupta
  7. Transformando Equipes Digitais de Manufatura com Insights de Dados em Tempo Real
  8. Integração OT-TI Perfeita: Software Industrial Moderno Conecta Sensores Inteligentes a Sistemas Empresariais
  9. GE Digital Revela Como Dados e Análises Impulsionam Excelência Operacional na Manufatura
  10. Acelerando a Transformação Digital: Dados de MES em Tempo Real Impulsionam Eficiência da Fábrica