Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Eingebettet

Digitales Filtern auf Embedded-Mikrocontrollern meistern: PowerQuads Dual Biquad IIR Engine im LPC55S69

Die gängigsten Techniken zum Filtern von Zeitbereichsdaten erkunden und untersuchen, wie die LPC55S69 PowerQuad Dual Biquad IIR Engine DSP Tasks beschleunigt.

Bei der Arbeit mit über Zeit gesammelten Daten ist der erste Schritt oft die Anwendung eines digitalen Filters. Das Verständnis verschiedener Filterstrategien verbessert nicht nur Signalqualität, sondern entlastet auch die CPU für andere kritische Tasks – eine essenzielle Überlegung für Embedded Mikrocontroller.

Dieser Artikel deckt die am weitesten verbreiteten Zeitbereichs-Filtermethoden ab und taucht in die Dual Biquad IIR Engine der PowerQuad Unit im LPC55S69 MCU ein, einen mächtigen DSP Baustein, der in vielfältigen Filterszenarien genutzt werden kann.

Gängige Filter für kontinuierlich abgetastete Daten

In einem Zeitbereichs-Akquisitions-System treffen Samples mit fixer, bekannter Rate ein. Zeitbereichs-Filter verarbeiten diese Samples und produzieren ein neues Signal, das weiterverarbeitet oder an einen Digital-Analog-Wandler (DAC) gesendet werden kann. Der Kern jedes Filters ist seine Antwort auf Sinuswellen – Amplitude und Phase werden über Frequenzen verändert. Das kollektive Verhalten über ein Frequenzspektrum ist als Frequenzgang des Filters bekannt.

Finite Impulse Response (FIR) Filter sind ein Standardansatz. Sie generieren jedes Output Sample, indem sie das aktuellste Sample mit einer Historie vorheriger Samples kombinieren.

Digitales Filtern auf Embedded-Mikrocontrollern meistern: PowerQuads Dual Biquad IIR Engine im LPC55S69

Abbildung 1. Sample-für-Sample Filterverarbeitung unter Nutzung einer Historie des Inputs.

Eine einfache Implementation speichert vorherige Samples in einem Array und wendet folgende Gleichung an:

x[n] // Neuestes Input Sample
x[n-1], x[n-2] // Die zwei vorherigen Input Samples
y[n] // Nächstes Output Sample

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

Diese simple Multiply-Accumulate Operation nutzt konstante Koeffizienten und eine definierte Historie-Länge, um den Frequenzgang des Filters zu formen. Durch Tuning der Koeffizienten kann der Filter als Low-Pass, High-Pass oder Band-Pass Device agieren.

Konzeptionell einfach, benötigen FIR Filter oft viele vergangene Samples für präzise Kontrolle, was auf konventioneller CPU rechenintensiv sein kann – besonders wenn die Historie wächst.

Um die benötigte Historie zu reduzieren, integrieren viele Designs Feedback, was die Basis von Infinite Impulse Response (IIR) Filtern bildet:

// Dieses Beispiel folgt den zuvor verwendeten Naming Conventions
y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2]

Das obige Beispiel illustriert einen Biquad Filter, einen gängigen IIR Building Block, der für höherwertige Responses kaskadiert werden kann. Weniger Koeffizienten sind im Vergleich zu FIR nötig, aber sorgfältige Koeffizientenauswahl ist essenziell, um Instabilität und Oszillation zu vermeiden.

Zahlreiche Tools existieren, um optimale Koeffizienten für Standard Filter Designs zu generieren. Diese „Cookbooks“ bieten einen schnellen Pfad zu hochwertigen Filtern.

Digitales Filtern auf Embedded-Mikrocontrollern meistern: PowerQuads Dual Biquad IIR Engine im LPC55S69

Abbildung 2. Eines der vielen Tools, die automatisch Koeffizienten generieren.

PowerQuad IIR Biquad Engines nutzen

Die PowerQuad Unit des LPC55S69 bietet dedizierte Hardware für die Ausführung von IIR Biquad Filtern. Das Auslagern der Filter-Workload auf diesen Co-Prozessor befreit die Cortex-M33 Kerne für Applikationslogik.

Obwohl die Filteralgorithmen selbst straightforward sind, können sie signifikante CPU Zyklen verbrauchen. PowerQuads Hardware ist spezifisch für Filterung und andere komplexe mathematische Operationen optimiert. Sie verbindet sich zum System via AHB Bus und Arm® Cortex®-M33 Co-Prozessor Interface.

Entwickler nutzen typischerweise die kostenlose, Eclipse-basierte MCUXpresso IDE und das LPC55S69 SDK, das mehrere PowerQuad Beispielapplikationen enthält.

Digitales Filtern auf Embedded-Mikrocontrollern meistern: PowerQuads Dual Biquad IIR Engine im LPC55S69

Abbildung 3. Auswahl des PowerQuad Digital Filter Beispiels.

Das „powerquad_filter“ Beispiel demonstriert eine Reihe von Filterkonfigurationen. Die Kernlogik residiert in powerquad_filter.c, das grundlegende Filter-Setups zeigt.

Während der Artikel eine Direct Form I Implementation vorstellte, reordnet PowerQuad intern Operationen in eine Direct Form II Struktur. Diese Anordnung eliminiert die Notwendigkeit, sowohl Input- als auch Output-Historien zu speichern, und hält stattdessen einen einzelnen intermediären State Vector v[n].

Mehrere AHB Register halten State und Koeffizienten für die Konfiguration von PowerQuads IIR Filter Operationen. In den SDK Beispielen wird der State via PQ_BiquadRestoreInternalState initialisiert.

Einmal initialisiert, verarbeitet der Filter Datenblöcke mittels PQ_VectorBiquadDf2F32 in fsl_powerquad_filter.c:

/* Funktion verarbeitet Input Samples in Vielfachen von acht. */

Digitales Filtern auf Embedded-Mikrocontrollern meistern: PowerQuads Dual Biquad IIR Engine im LPC55S69

Abbildung 4. Vektorisierte IIR Filter Implementation

Diese Routine transferiert Daten von der Haupt-CPU zum PowerQuad Co-Prozessor via MCR Instruktion. PowerQuad führt die Multiply-Add Operationen aus und liefert das gefilterte Ergebnis via einem weiteren MCR Transfer zurück zur CPU. Dieses Offloading reduziert CPU Load dramatisch im Vergleich zur Ausführung desselben Algorithmus auf den Cortex-M33 Kernen.

Die Dual Biquad IIR Engine für digitales Filtern

Die PowerQuad Unit des LPC55S69 enthält zwei unabhängige Biquad Engines, die parallele oder kaskadierte Filteroperationen ermöglichen. Konfigurationsregister auf dem AHB Bus setzen die IIR Funktionen auf, und Datenaustausch erfolgt über das Co-Prozessor Interface.

Das MCUXpresso SDK bietet einen soliden Startpunkt, wobei der gelieferte Code Klarheit über rohe Performance priorisiert. Entwickler können weiter optimieren, indem sie Datentransfers zwischen CPU und PowerQuad minimieren.

NXP bietet ein IIR Biquad Filter Design & Visualization Tool, das bei Generierung und Visualisierung von Filterkoeffizienten assistiert. Die NXP Community Page bietet zudem tiefgehende Dokumentation zur LPC55S69 PowerQuad Unit und ihren Fähigkeiten.

Industry Articles sind eine Content-Form, die Industriepartnern ermöglicht, nützliche Nachrichten, Botschaften und Technologien mit All-About-Circuits-Lesern zu teilen, auf eine Weise, wie es redaktionelle Inhalte nicht leisten. Alle Industry Articles unterliegen strengen redaktionellen Richtlinien, um Lesern nützliche Nachrichten, technische Expertise oder Geschichten zu bieten. Die in Industry Articles geäußerten Ansichten und Meinungen sind die des Partners und nicht notwendigerweise die von All About Circuits oder seinen Autoren.

Eingebettet

  1. Digitale Logik mit Rückkopplung: Von deterministischen Gattern zu Multivibratoren
  2. Warum digitaler Speicher wichtig ist
  3. IC-Technologie & Mikrocontroller: Eckpfeiler moderner Embedded Systems
  4. Daten im Internet of Reliability nutzen: Strategien für effektives Management
  5. Digital Transformation beschleunigen: Cisco & IBMs Edge-to-Cloud IoT-Plattform
  6. Predictive Maintenance: Industry 4.0 für unterbrechungsfreie Produktion nutzen
  7. Digitale Fertigungsteams mit Echtzeit-Dateninsights transformieren
  8. Nahtlose OT-IT-Integration: Moderne Industriesoftware verbindet smarte Sensoren mit Unternehmenssystemen
  9. GE Digital: Wie Daten & Analysen operative Exzellenz in der Fertigung antreiben
  10. Digitale Transformation beschleunigen: Echtzeit-MES-Daten steigern Fabrikeffizienz