Signalverarbeitung & Entwicklungstools

Anspruchsvolle DSP-Anwendungen auf Cortex-M4 entwickeln

| Redakteur: Holger Heller

DSP-Funktionen auf ARM Cortex-M4: Die Verfügbarkeit geeigneter Befehle für die Implementierung von DSP-Algorithmen ist ein echter Vorzug des Cortex-M4.
Bildergalerie: 4 Bilder
DSP-Funktionen auf ARM Cortex-M4: Die Verfügbarkeit geeigneter Befehle für die Implementierung von DSP-Algorithmen ist ein echter Vorzug des Cortex-M4.

Die Anforderungen an die Signalverarbeitung in kostengünstigen MCUs steigen. Wie lassen sich Digital-Filter- und FFT-Algorithmen implementieren, ohne zu tief in die Assemblerprogrammierung vorzudringen?

Mikrocontroller bewältigen viele Steuerungsanwendungen im Analog- und Regler-Bereich, z.B. für Wechselstrom-Motor-Steuerungen und PID-Regler. Der Mangel an DSP-Verarbeitungsleistung in den derzeitigen MCUs hat jedoch die Möglichkeiten, komplexe Hochgeschwindigkeits-DSP-Algorithmen in kostengünstigen Designs zu integrieren, stark eingeschränkt. ARMs Cortex-M4-Kern bietet eine Lösung für diese Herausforderungen, denn er verfügt über ein umfassendes Paket an DSP-Anweisungen.

Wie lassen sich nun fortschrittliche Algorithmen wie Digital-Filter und FFTs effizient implementieren, ohne zu tief in die Assemblerprogrammierung vordringen zu müssen?

Sättigende Arithmetik (Saturating Arithmetic) ist eine der wichtigsten Voraussetzungen für die digitale Signalverarbeitung. Der Begriff „sättigend“ leitet sich aus der analogen Elektronik ab, in der das Ausgangssignal des Verstärkers zwischen fixen Werten limitiert ist (clipped), wenn ein großes Eingangssignal angelegt wird. Audio, Grafik, Video und Regelkreise arbeiten zufriedenstellend, wenn die Überstrombedingungen das Signal auf ein Minimum und ein Maximum begrenzen und nicht auf einen unerwarteten Wert steigen oder fallen lassen.

Unterschied zwischen sättigender Arithmetik und Standard-CPU-Arithmetik

Eine Sinuskurve (Bild 1a) zeigt den Unterschied zwischen sättigender Arithmetik und Standard-CPU-Arithmetik. Die Kurve wird skaliert und bewegt sich in einem 16-Bit-Bereich zwischen den Werten -32768 und 32767. Die Verarbeitung der Kurve in einer Skalierung um den Faktor 1,5 verursacht einen Überlauf und resultiert in einer Wellenform für Standard-CPU-Arithmetik (Bild 1b) und für gesättigte Arithmetik (Bild 1c).

In beiden Überlaufsfällen zeigt die skalierte Wellenbewegung ein falsches Verhalten; aber während in Bild 1c die Wellen nur abgeschnitten sind, stellt sich die Wellenform in Bild 1b vollkommen inkorrekt dar. Sättigende Arithmetik behält also die grundlegenden Charakteristika einer Wellenform auch im Überlauf bei und macht das daraus entstehende System robust gegen große Signale.

DSP-Rechenoperationen nutzen entweder ein Gleitkomma- oder Festkomma-Format. Der Cortex-M4-Kern bietet eine optionale Hardwareunterstützung für 32-Bit-Gleitkomma, ist jedoch nicht optimiert für DSP-Algorithmen und zu langsam für die meisten DSP-Anwendungen. Verfügbare Gleitkomma-Datengrößen des Cortex-M4 sind 8, 16, 32 und 64 Bit. Sättigende Arithmetik wird unterstützt auf 8, 16 und 32 Bit.

DSP-Befehle für Sättigung, MAC und SIMD

Das Festkomma-Format kann eine Ganzzahl, ein Teilwert oder eine Mischung aus einem Ganz- und Teilwert sein. Die Bezeichnung für das Format einer Festkomma-Zahl ist Qm.f, wobei m für die Zahl der ganzen Bits und f für die Anzahl der Binärbrüche (fractional bits) steht.

Ergänzendes zum Thema
 
Anforderungen an Entwicklungstools

Die am häufigsten verwendeten Formate für DSP-Vorgänge sind Q0.15 und Q0.31, bei denen Zahlen zwischen -1,0 und +1,0 durch Binärbrüche dargestellt werden. Die vorangestellte „0.“ wird in der Regel weggelassen, man schreibt stattdessen einfach Q15 und Q31. Zum Beispiel wird die Zahl 0,5 kodiert in Q15 zu 0x4000.

Lesen Sie weiter: Multiplikation und Addierung in einem einzigen Befehl

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 29059840 / Mikrocontroller & Prozessoren)