Indem sie Ereignisse wie das Öffnen von Türen oder Fenstern erkennen, vermitteln Home-Security-Sensoren den Hausbewohnern ein Gefühl von Sicherheit. Im industriellen Umfeld wiederum können Fabrikbetreiber mit Hilfe von Sensorendaten, die etwa eine industrielle Pumpe liefert, frühzeitig Anzeichen für bevorstehende Ausfälle erkennen. Dies hilft langfristig, die Instandhaltungskosten zu senken. Daten aus verteilten, maschenbasierten Sensornetzwerken dienen sogar zur Verarbeitung von geologischen Ereignissen, sodass den Rettungskräften mehr Zeit zum Reagieren bleibt.
In den meisten Fällen müssen die von Systemen dieser Art erfassten Daten zur Aufbereitung, Auswertung und Entscheidungsfindung an einen zentralen Knoten übermittelt werden. Auf diese Weise entsteht ein konstanter Datenfluss, der allerdings kostbare Strom- und Zeitressourcen fressen kann. Stattet man stattdessen die einzelnen Sensoren mit Intelligenz aus und macht sie damit zu intelligenten Sensorknoten, so lässt sich die Verarbeitung dezentralisieren (Edge Processing). Dieser Ansatz verbessert die Reaktionszeit und die Effizienz des gesamten Systems.
DSP oder MCU?
Inferentielle Berechnungen können an den Außengrenzen eines Systems vorgenommen werden, um die Ergebnisse dann an einen zentralen Knoten zu übermitteln. Dies verringert die Zahl der notwendigen drahtlosen Übertragungen und ermöglicht Echtzeit-Entscheidungen bei kritischen Systemereignissen. Bricht etwa an einem Zahnrad eines Antriebs ein Zahn aus, so ändert sich die Frequenzsignatur des Systems. Durch Detektieren und Analysieren solcher Änderungen kann das System entscheiden, ob der betreffende Antrieb abgeschaltet werden muss, bevor eine Untersuchung und gegebenenfalls eine Reparatur durchgeführt werden kann.
Derzeit wird diese Intelligenz in der Regel als einfacher digitaler Signalprozessor (DSP) oder leistungsfähiger
Mikrocontroller (MCU) implementiert. Beide Varianten haben ihre Vor- und Nachteile; häufig kann schon ein Low-End-DSP ein Overkill sein, was die vom Sensorknoten benötigte Verarbeitungsleistung angeht. Zudem benötigen viele einfache DSPs einen externen A/D-Wandler (ADC) oder einen externen Speicher zum Ablegen der Daten. Diese zusätzlichen Bauteile treiben aber rasch die Kosten und den Stromverbrauch in die Höhe.
Für MCUs stellt das Edge Processing häufig eine Herausforderung dar, weil ihre Rechenleistung zu gering ist. So kann eine als C-Code implementierte FFT-Operation wesentlich mehr Zeit benötigen als ein DSP mit spezieller Peripherie-Hardware. Diese Zeitdifferenz kann nicht nur die Effizienz beeinträchtigen, weil die MCU länger im aktiven Modus verbleiben muss. Kritischer ist vielmehr, dass in zeitsensiblen Situationen die Ergebnisse eventuell verspätet vorliegen. Diese Verzögerung schränkt prinzipbedingt den Nutzen des Internet of Things (IoT) ein, dessen Konzept auf zwei Grundgedanken beruht:
Zentrale Hubs können mit Milliarden vernetzter Geräte kommunizieren und deren Daten verarbeiten.
Die vernetzten Geräte sind so intelligent, dass sie dem Endanwender eine unkomplizierte Nutzererfahrung bieten können.
Die Effizienzproblematik lässt sich anhand von Home-Security-Systemen illustrieren: Da es in vielen Gebäuden zahlreiche Fenster und Türen gibt, sind viele Konsumenten nicht bereit, viel Geld in Glasbrucherkennungs-Systeme zu investieren. Diese DSP-basierten Systeme nutzen die FFT-Technik (Fast Fourier Transformation), um Audio-Vibrationsdaten zu analysieren und Glasbruch zu erkennen. Hinzu kommt, dass diese Lösungen relativ viel Strom verbrauchen, sodass häufige Batteriewechsel nötig sind, solange keine permanent verdrahtete Stromversorgung für die Sensoren existiert.
Es stellt sich die Frage, welche Ladeintervalle von den Anwendern noch akzeptiert werden. Das tägliche Laden des Smartphones mag hinnehmbar sein, im Falle der Glasbruch-Detektoren und Motorüberwachungseinheiten wäre aber selbst ein Ladeintervall von einer Woche in einer großen Fabrik mit Tausenden von Motoren nicht praktikabel. Im Endeffekt wäre eine MCU mit der höheren Performance eines DSP eine Lösung. Diese böte entscheidende Vorteile für die Intelligenz und die Datenverarbeitungs-Fähigkeiten des inferentiellen Edge-Computings. Dafür ist allerdings fortschrittlichere Hardware nötig.
Altes Problem, neue Lösung
Wie wäre es also, wenn MCUs über einen Teil der Vorverarbeitungsfähigkeiten von DSP-Engines mit speziellen Hardwarebeschleunigern verfügen würden? Diese MCUs könnten rasch aktiviert werden, um Daten zu filtern oder eine FFT-Operation durchzuführen. Sie könnten aber im Standby-Modus auf Komparatoren und ADCs zurückgreifen, von denen sie im Bedarfsfall aktiviert würden. Auf diese Weise könnten in unterschiedlichen Industrie- und Consumer-Anwendungen in Echtzeit Ergebnisse generiert werden, während sich gleichzeitig der Stromverbrauch der Systeme so weit reduzieren ließe, dass sich die Batterielebensdauer von einigen Tagen auf mehrere Jahre erhöht.
Einige MCUs bieten schon heute die Auswahl unter verschiedenen DSP-Beschleunigern. Allerdings tendieren sie dazu, die Fähigkeiten ihrer CPU bis an die Grenzen auszureizen, weshalb sie viel Energie verbrauchen. Neue DSP-Coprozessoren in MCUs, wie etwa der Low-Energy Accelerator (LEA) in der MCU-Plattform MSP430, zielen auf die Lücke zwischen MCUs und Low-End-DSPs, indem sie auf verbrauchsbewusste und kosteneffektive Weise zusätzliche Performance-Fähigkeiten hinzufügen.
Eine mit dem LEA-Modul ausgestattete MCU kann DSP-Funktionen in spezielle Hardware auslagern und dadurch in den Low-Power-Modus wechseln. Auf diese Weise lässt sich der Stromverbrauch des Gesamtsystems senken, während gleichzeitig komplexere inferentielle Berechnungen durchgeführt werden können.
Die Applikation kann hierdurch entweder länger im Low-Power-Modus verbleiben und dadurch die Leistungsaufnahme der gesamten Anwendung senken oder sich auf die Berechnungen konzentrieren und dadurch die Frequenz der Applikation erhöhen oder der Applikation die Ausführung anderer Funktionen erlauben etwa die drahtlose Kommunikation mit dem Master-Knoten in IoT-Anwendungen.
Mit der Zeit werden all diese Optionen entscheidend dafür sein, die Verbreitung vernetzter Geräte zu steigern, zumal intelligentere MCUs diesen vernetzten Geräten die Fähigkeit verleihen, den Anwendern kostengünstig, mit hoher Energieeffizienz sowie auf schnelle und komfortable Weise Daten zur Verfügung zu stellen.
LEA verbessert Performance
Das LEA-Modul ist eine in verschiedenen MSP430-Bausteinen gehostete Vektorberechnungseinheit. Es kann digitale Signalverarbeitungs-, Matrixmultiplikations- und andere Operationen ausführen, die sonst viel Zeit und Energie benötigen, wenn sie zur Laufzeit ausgeführt werden sollen. Das LEA-Modul arbeitet ohne CPU-Intervention und ist ein stromsparender Coprozessor, der Operationen ausführt und nach deren Beendigung einen Interrupt auslöst.
Das Modul arbeitet auf der Basis der bei der Konfiguration angegebenen Befehle, die als Zeiger auf die Eingangs- oder Ausgangspuffer im Speicher und die Art der Operation fungieren. Dank der MSP DSP Library sind diese Befehle einfach anzuwenden. Diese Bibliothek wurde speziell für die MSP430-MCUs erstellt und optimiert, um DSP-Applikationen nach Wahl des Programmierers zu ermöglichen. Ist das LEA-Modul in einem Baustein vorhanden, wird es vom Compiler automatisch genutzt, um die Performance über die ohnehin bereits implementierten MSP-C-Code-Optimierungstechniken
hinaus zu optimieren.
In Anwendungen, die von der digitalen Signalverarbeitung Gebrauch machen, gibt es eine Reihe verschiedener Techniken, die für eine lückenlose Lösung erforderlich sind. Allerdings kann der Prozess in drei Hauptteile untergliedert werden:
Schritt 1: Die Datenerfassung kann mit einem ADC erfolgen, an den ein Sensor oder ein Kommunikationsmodul (etwa SPI, I2C oder UART) angeschlossen ist.
Schritt 2: Nach Erfassung der Daten werden mit digitalen Signalverarbeitungstechniken die gewünschten Informationen aus dem Datenbestand extrahiert. In Frage kommen beispielsweise ein FIR-Filter (Finite Impulse Response) zum Aufbereiten eines Signals, eine FFT-Operation zum Extrahieren verschiedener Frequenz-Artefakte oder ein anderer gängiger DSP-Prozess.
Schritt 3: Sind die Informationen aus dem Datenbestand extrahiert, will man auf diese Informationen reagieren. So kann aufgrund des Ergebnisses einer FFT- oder FIR-Operation eine Entscheidung gefällt werden, oder die berechneten Informationen werden über eine leitungsgebundene oder drahtlose Verbindung (Wi-Fi oder Sub-Gigahertz-Netzwerk, UART, I2C, SPI und so weiter) exportiert.
Schritt 2 wurde in der Vergangenheit mit eingebettetem C-Code implementiert, der wegen der erforderlichen Berechnungen (etwa anspruchsvolle FIR-Operationen) allerdings häufig einen hohen Rechenaufwand für die CPU verursacht und einen großen Teil der Rechenzeit einer Applikation beanspruchen kann.
Als ein für geringen Stromverbrauch und hohe vektorbasierte Rechen-Performance optimierter Hardwarebeschleuniger kann das LEA-Modul Funktionen, die die CPU in höchstem Maße beanspruchen würden, schnell und effizient verarbeiten und die System-Performance verbessern.
In Tests und realen Anwendungen wurden Performance-Verbesserungen um mehr als das 15-Fache gegenüber traditionellen C-basierten 16-Bit-MCU-
Implementierungen verschiedener Signalverarbeitungs-Applikationen erreicht. Es konnte sogar eine Verbesserung bis um den Faktor 40 im Vergleich zu ARM Cortex-M0+-Bausteinen mit CMSIS DSP-
Bibliothek festgestellt werden.
Neunmal weniger Energie
Die Kombination der Strom sparenden Eigenschaften von Hardwarebeschleunigern mit der Fähigkeit des LEA-Moduls, die MSP430-MCUs im Low-Power-
Modus 0 (LPM0) zu betreiben, reduziert den Energieverbrauch bis um den Faktor 9 gegenüber ähnlichen MSP430-MCUs, die C-Code verarbeiten, sowie bis um den Faktor 12 im Vergleich zu ARM Cortex-M0+-MCUs mit der CMSIS DSP-
Bibliothek.
Welche Performance-Steigerung das LEA-Modul erreicht, hängt von der implementierten Signalverarbeitungstechnik ab. Die Performance einer FFT-Operation kann beispielsweise abhängig von verschiedenen Faktoren variieren. Einfluss haben unter anderem die Vektorlänge und die Art der FFT-Berechnung (mit komplexen oder reellen Zahlen). Bei der Implementierung eines FIR-Filters wird die Performance von einer Reihe von Variablen beeinflusst, so etwa von der Vektorlänge, der Ordnung des Filters und erneut davon, ob die Berechnung mit komplexen oder reellen Zahlen erfolgt. Ganz allgemein ergibt sich jedoch bei allen im LEA-Modul verfügbaren Vektorberechnungs-Operationen eine Verbesserung gegenüber traditionellen Signalverarbeitungs-Techniken mit C-Code.
Vielfältige MCU-Plattform
Die Mikrocontroller der MSP-
430F599x-Reihe von TI sind die er-
sten Bausteine, die mit dem neuen LEA-Modul ausgestattet sind. Die leistungsfähigen 16-Bit-MCUs kombinieren eine Ultra-Low-Power-Architektur mit einem bis zu 256 KB großen eingebauten FRAM-Speicher (Ferroelectric Random Access Memory) und einem Bestand an ebenso effizienten wie flexiblen Peripheriefunktionen. Sie bilden damit eine MCU-Plattform, die sich für viele digitale Signalverarbeitungs-Applikationen eignet.
Das eingebaute, 256 KB große Ultra-
Low-Power-FRAM kann vom Anwender individuell in Code- und Datenspeicher aufgeteilt werden. Damit besteht die Möglichkeit, große nichtflüchtiger Datenpuffer einzurichten. Mit dem MSP430FR5994 MCU LaunchPad Development Kit kann die Entwicklung sofort beginnen: Es umfasst die gesamte benötigte Hardware, um die Evaluierung und Entwicklung mit der MCU zu starten.
Es gibt insgesamt viele Anwendungen, die entweder für einen Mikrocontroller oder für einen Low-End-DSP in Frage kommen. Vocoder, Präsenzdetektoren, Echo/Rauschkompensations-Systeme, Blutzucker-Messgeräte sowie Struktur- oder Umgebungsüberwachungs-Netzwerke lassen sich allesamt in eine Vielzahl verschiedener Signalverarbeitungs-Funktionen untergliedern. Diese interpretieren eine Situation, indem sie Daten sortieren und analysieren, detektieren und nötigenfalls auf ein Ereignis oder eine anstehende Situation reagieren.
In allen diesen Fällen kann der LEA von TI Hilfestellung leisten, indem er eine schnellere und effizientere Datenanalyse ermöglicht, um die Batterielebensdauer zu verlängern, die Leistungsfähigkeit zu steigern oder das Funktionsangebot zu vergrößern.