Suchen

Peripherien und Coprozessoren Hardwarebeschleunigung für harte Echtzeitsteuerungen

| Autor / Redakteur: Kenneth W. Schachter * / Sebastian Gerstl

Um harte Echtzeit-Steuerungen umsetzen zu können ist es unerlässlich, dass die gewählte MCU verschiedenste Anforderungen latenzfrei umsetzt. Integrierte Algorithmen und Coprozessoren schaffen Abhilfe.

Firmen zum Thema

Blockdiagramm: C2000-Mikrocontroller mit den integrierten Hardware-Beschleunigern im Überblick.
Blockdiagramm: C2000-Mikrocontroller mit den integrierten Hardware-Beschleunigern im Überblick.
(Bild: Texas Instruments)

Entwickler von Echtzeit-Steuerungssystemen stehen stets vor der Herausforderung, die Leistungsfähigkeit ihrer Systeme zu optimieren. Zu den Anforderungen, die solche Systeme erfüllen müssen, gehört eine minimale Latenz: die Verzögerung zwischen Erfassung, Verarbeitung und Ausgabe muss in ein enges Zeitfenster passen, damit die Performance-Spezifikationen der Regelschleife eingehalten werden. Zentrales Element der Steuerungssysteme sind rechenintensive Algorithmen, die zur Berechnung der Stellgrößen dienen.

Entscheidend ist deshalb die Verwendung eines Mikrocontrollers (MCU), der mathematische Operationen schnell und effizient verarbeiten kann. Im Idealfall kann ein solcher Mikrocontroller Echtzeit-Regelschleifen verarbeiten, während die CPU (Central Processing Unit) gleichzeitig andere Aufgaben ausführt. Einige Systeme müssen unter Umständen sogar zusätzlich die Powerline-Kommunikation (PLC) unterstützen – mit demselben Mikrocontroller. Der folgende Artikel beschreibt einige Verbesserungen, die zur Performance-Steigerung einer MCU in Frage kommen.

Integrierte Fliesskomma- und Trigonometrie-Algorithmen

Das Design vieler Steuerungssysteme beginnt mit Simulations-Tools, in denen die Algorithmen mit Gleitkomma-Berechnungen entwickelt werden. Solche Algorithmen lassen sich problemlos auf eine MCU portieren, die native Unterstützung für Gleitkomma-Arithmetik bietet. Da diese Berechnungen einen großen Dynamikbereich unterstützen, ist die Codeentwicklung einfacher als bei Festkomma-Berechnungen, denn die Programmierer müssen sich nicht um Aspekte wie Skalierung oder Sättigung kümmern. Nicht zuletzt verbessert sich auch die Robustheit, da Gleitkomma-Werte (anders als bei Festkomma-Arithmetik) bei einem Über- oder Unterlauf keine Überträge erfordern.

All diese Eigenschaften sorgen für die leistungsfähigen Rechenfähigkeiten, die für anspruchsvolle Steuerungssysteme nötig sind. Abgesehen davon sollte die MCU-Architektur zur Unterstützung der Hochsprachen-Programmierung optimiert und nahtloser Support durch einen kompletten Satz Entwicklungs-Tools geboten werden. Die Compiler-Tools sollten die C-Programmierung der CPU unterstützen, was das Schreiben von Software ebenso erleichtert wie die Portierung bestehenden Codes.

In Echtzeitsteuerungs-Algorithmen werden oft trigonometrische und arithmetische Operationen benutzt, wie z.B. Park-Transformationen und inverse Park-Transformationen, Raumvektor-Generierung, Direct-Quadrature-Zero- und inverse Direct-Quadrature-Zero-Transformationen sowie FFT-Amplituden- und Phasenberechnungen. Sinus, Cosinus, Arkustangens, Division und Quadratwurzel sind typische Operationen, die in der Regel sehr zyklusintensiv sind und die System-Performance erheblich beeinflussen.

Wird die Gleitkomma-Fähigkeit einer MCU durch einen erweiterten Befehlssatz aufgewertet, muss der Compiler die automatische Generierung trigonometrischer und arithmetischer Instruktionen unterstützen. Wo es geht, kann der Compiler dann auf diese Anweisungen zurückgreifen statt entsprechende Laufzeit-Bibliotheken aufzurufen. Das reduziert die Zahl der Zyklen und bewirkt einen deutlichen Performance-Zuwachs. Die Portabilität bleibt dabei gewahrt, da ein und derselbe Code auf MCUs mit oder ohne zusätzlicher Unterstützung für trigonometrische und arithmetische Funktionen läuft.

Ideale Berechnungs-Performance und effiziente Verarbeitung sind entscheidend für die Fähigkeit, moderne, komplexe Echtzeit-Steuerungsanwendungen zu verarbeiten. Voraussetzung hierfür kann ein unabhängiger Coprozessor sein, der speziell dafür ausgelegt ist, die Verarbeitung von Regelgesetzen zu beschleunigen. Dazu das Beispiel eines typischen digital gesteuerten Leistungswandlers, bestehend aus einem A/D-Wandler (ADC) zum Einlesen der Eingangssignale (z. B. Spannung und Strom), einer Recheneinheit zur Verarbeitung der Regelgesetz-Algorithmen (z. B. PID, Kompensatoren mit zwei Pol- und zwei Nullstellen, drei Pol- und zwei Nullstellen) sowie einem PWM-Kanal (Pulsweiten-Modulation) zur Ausgabe der berechneten Wellenform.

Viele Regelsysteme würden in erheblichem Maß von einer Architektur profitieren, die diese Funktionen mit minimaler Latenz integriert, sodass sich die Verzögerung zwischen Erfassung und Ausgabe auf ein Minimum reduziert. Im Idealfall könnte eine solche Architektur zeitkritische Regelschleifen zeitgleich mit der Haupt-CPU verarbeiten, die somit für andere anstehende Aufgaben frei wird. Darüber hinaus müsste eine solche Architektur einen eingebauten Schutzmechanismus gegen Überströme und Überspannungen enthalten.

(ID:44458318)