Bild 1: Die neuen RX23T- und RX24T-Mikrocontroller-Familien mit dem RXv2-Core bieten für Motion-Control-Anwendungen einen guten Kompromiss zwischen Leistung und Kosten.

Bild 1: Die neuen RX23T- und RX24T-Mikrocontroller-Familien mit dem RXv2-Core bieten für Motion-Control-Anwendungen einen guten Kompromiss zwischen Leistung und Kosten. Renesas

Die MCUs der neuen RX23T- und RX24T-Mikrocontroller-Familien sind für 5-V-Betriebsspannung ausgelegt und bieten damit ein hohes Maß an Störunempfindlichkeit. Außerdem enthalten sie eine Fließkomma-Recheneinheit (FPU – Floating Point Unit). Hauptthema dieses Artikels ist die FPU, da sie für Softwareentwickler mehr und mehr eine zentrale Bedeutung erlangt. Denn sie müssen Software auf dem neuesten Stand der Technik liefern, die sich leicht warten und testen lässt.

Integrierte Fließkomma-Einheit

Die aktuellen Bausteine RX62T und RX63T arbeiten äußerst erfolgreich in Motorsteuerungslösungen der heutigen Generation. Renesas hat sich dazu entschieden, den gesamten RX-Core zu verbessern und im Zuge dessen auch die Fließkomma-Recheneinheit zu überarbeiten. (Bild 2)

Bild 2: Die neuen Befehle des RXv2-Cores sind neben den bisherigen Befehlen des v1 Cores rot eingerahmt.

Bild 2: Die neuen Befehle des RXv2-Cores sind neben den bisherigen Befehlen des v1 Cores rot eingerahmt. Renesas

Eckdaten

Der vorliegende Artikel beschreibt detailliert, um wie viel sich die Leistung des Umrichter-Algorithmus mithilfe der RX23T-Fließkomma-Recheneinheit verbessern lässt. Da weder eine Skalierung noch eine Sättigung erfolgt, verringert sich der Codeumfang und die Software-Implementierung erfolgt wesentlich schneller. Darüber hinaus erlaubt dies eine höhere Genauigkeit als bei einer Ganzzahl-Implementierung, da die echten physikalischen Einheiten in der Embedded-Software verwendet werden. Schließlich garantiert die FPU kürzere Berechnungszeiten für PI-Controller und Schätzwerte.

Aufbauend auf den drei zusätzlichen FPU-Befehlen und den 14 neuen DSP-Befehlen bietet der RXv2-Core eine höhere Rechengenauigkeit, indem 32-Bit Multiplikationsoperationen über einen einzigen Befehl ausgeführt werden. Außerdem sichern die speziellen Befehle für den Akkumulator sowie für die Rundungsverarbeitung eine hohe Gesamtleistung. RXv2-Core leistet bis zu 2 DMIPS pro MHz im Vergleich zu den 1,65 DMIPS pro MHz des RXv1-Cores. Die neuen Befehle des RXv2-Cores sind:

  • FSQRT: Fließkomma-Quadratwurzel
  • FTOU: Fließkomma- zu Ganzzahlumrechnung
  • UTOF: Ganzzahl- zu Fließkommaumrechnung

Der Vergleich einer Implementierung eines sensorlosen Vektor-Regelalgorithmus mit drei Shunt-Widerständen auf demselben RX23T-Mikrocontroller ergibt, dass bei integriertem FPU-Modul die Rechenzeit um 27 % sinkt und die CPU-Belastung um 28 %. Ausgeführt wurden die Messungen mit der YROTATE-IT-RX23T-Umrichterkit-Software, die auf dem RX23T läuft. Folgende Funktionsblöcke enthält die Software:

  • Proportional-Integral Current Controller
  • Proportional-Integral Speed Controller
  • Clamped Pulsbreitenmodulation
  • Clarke- und Park-Transformationen
  • Flux-Phasenabschätzung
  • Drehzahlabschätzung
  • Strommessungen über drei Shuntwiderstände

Der komplette Quellcode der für die Benchmarks und Tests verwendeten Software ist frei zugänglich und lizenzgebührenfrei. Darüber hinaus ist die Elektronik in vielen Motion-Control-Anwendungen eng mit Sensoren verbunden. Dadurch gehört auch das Filtern der Sensordaten und –signale zu den wichtigen Aufgaben. Aus diesem Grund hat Renesas eine Reihe von Vergleichen zwischen den Core-Versionen RX v1 und v2 mit verschiedenen Filteroperationen durchgeführt. Die Ergebnisse zeigen, dass alle Filteroperationen mit Fast Fourier Transform (FFT) und Infinite Impulse Response (IIR) sowie die Matrix-Multiplikationen auf dem neuesten RXv2-Core mindestens zweimal schneller laufen. Im Fall des Filters zweiter Ordnung (IIR Biquad) arbeitet der RXv2-Core dank der neuen Befehle bei gleicher Taktfrequenz dreimal so schnell als der RXv1-Core.

Bis hierhin beschreibt der Artikel die Gründe für eine Integration einer Fließkomma-Recheneinheit und die Ergebnisse in Bezug auf Rechenleistung, Codeumfang und übergreifender Code-Effizienz.

Umstieg von Festkomma- auf Fließkomma-Arithmetik

Bild 3: Zu Beginn ist der Quellcode der Embedded-Software für den Umrichter genauer zu betrachten.

Bild 3: Zu Beginn ist der Quellcode der Embedded-Software für den Umrichter genauer zu betrachten. Renesas

Bei einem Umstieg von Festkomma- auf Fließkomma-Arithmetik ist als Erstes die verfügbare 3-Phasen-Umrichter-Referenzplattform zu evaluieren, die bereits die Permanentmagnet-Motoren steuert. Mit dem RX23T-basierten Kit (YROTATE-IT-RX23T) kann jeder Entwickler die Fließkomma-Variablen schnell austesten  (Bild 3).

Zu Beginn ist der Quellcode der Embedded-Software für den Umrichter genauer zu betrachten. Die im Umrichter-Algorithmus verwendeten Konstanten ermöglichen eine hohe Auflösung und Genauigkeit. Als Folge lassen sich Drehmoment und Drehzahl mit hoher Präzision steuern. Dies erleichtert die Entwicklung und Wartung der Embedded-Software. Darüber hinaus stellen die in der Firmware verwendeten Variablen direkt die echten Einheiten in Ampere, Volt, Hertz, Weber und Henry und so weiter dar. Durch die Nutzung der Fließkomma-Variablen lassen sich reale Zahlen auf einem Mikrocontroller abbilden (Bild 4).

Bild 4: Die gesamte interne Abbildung der physikalischen Parameter des 3-Phasen-Umrichters ist sehr einfach und nutzt Fließkomma-Darstellungen. Variablen müssen weder skaliert noch normalisiert werden. Dank dieser Maßnahmen ist der Code leicht zu handhaben und zu lesen.

Bild 4: Die gesamte interne Abbildung der physikalischen Parameter des 3-Phasen-Umrichters ist sehr einfach und nutzt Fließkomma-Darstellungen. Variablen müssen weder skaliert noch normalisiert werden. Dank dieser Maßnahmen ist der Code leicht zu handhaben und zu lesen. Renesas

Die gesamte interne Abbildung der physikalischen Parameter des 3-Phasen-Umrichters ist sehr einfach und nutzt Fließkomma-Darstellungen. Variablen müssen weder skaliert noch normalisiert werden. Dank dieser Maßnahmen ist der Code leicht zu handhaben und zu lesen. Problemlos ohne Skalierungsaufwand lässt sich das Motormodell für die intrinsischen Parameter bearbeiten.

Bild 5: Die Implementierung der Flux-Phase-Estimation-Methode.

Bild 5: Die Implementierung der Flux-Phase-Estimation-Methode. Renesas

Die Implementierung der Flux-Phase-Estimation-Methode ist in Bild 5 abgebildet. Für die Implementierung der drei wichtigsten Tiefpassfilter sind lediglich drei Codezeilen und einige wenige Taktzyklen erforderlich. Im Vergleich zur Festkomma-Arithmetik lassen sich durch die FPU das Fehlerrisiko sowie der Überlauf bei Variablen deutlich verringern. Auch der Zeitaufwand für Entwicklung und Testprozeduren fällt geringer aus.

Die trigonometrischen Funktionen nutzen ebenfalls echte Werte anstelle von Tabellen oder anderen Darstellungsmethoden und gewährleisten damit hohe Genauigkeit. Im Codebeispiel von Bild 7 ist zudem der Quellcode für die Park- und Clarke-Transformationen zu finden. Jede Transformation nutzt maximal zwei Codezeilen und benötigt keine Tabellen zur Verarbeitung der Kosinus- und Sinusfunktionen. Praktisch alle Implementierungen mit Ganzzahl-Arithmetik nutzen eine Cosinus-Tabelle mit 256 Bytes, was ebenfalls für die Sinus-Tabelle und den Arcustangens gilt. (Bild 6 und 7)

Schlussendlich wird der Codeumfang der gesamten Implementierung stark reduziert, was die Wartung des Codes vereinfacht. Kommen Simulink, Scilab oder andere Modellierungswerkzeuge zum Einsatz, so lassen sich die Ausgangsmodelle mit Fließkomma-Berechnungen direkt in e2studio-Projekte und damit im RX23T-Umrichterkit wiederverwenden.

Bildergalerie
Bild 6: Im Vergleich zur Festkomma-Arithmetik lassen sich durch die FPU das Fehlerrisiko sowie der Überlauf bei Variablen deutlich verringern.
Bild 7: Durch die FPU fällt der Zeitaufwand für Entwicklung und Testprozeduren geringer aus.
Bild 8: Der Lieferumfang des kompletten Softwarepakets im RX23T-Kit umfasst die folgenden Funktionsblöcke.
Bild 9: Bei Einstellung des Optimierungsgrades im RX-Compiler auf „Maximum“ lassen sich die unten aufgeführten Leistungswerte erreichen.

Fließkomma-Berechnungen für 3-Phasen-Umrichter

Die FPU ermöglicht eine effiziente Implementierung des sensorlosen Vektorsteuerungs-Algorithmus, da die Steuerschleifen und die Transformationen äußerst schnell ausgeführt werden können, wodurch sich auch die Abschätzung der Rotorlage beschleunigt. Weiterhin garantiert die FPU eine hohe Dynamik der Algorithmen, die genauso schnell wie die Pulsbreiten-Modulationsfrequenz laufen können. Für den RX23T gewährleistet diese Implementierung eine effiziente Steuerung für Taktfrequenzen bis 22 kHz (der gesamte Algorithmus dauert jeweils nur 40 µs pro Zyklus). Damit kann der Steuerungsalgorithmus bei jedem PWM-Zyklus bis zu einer Frequenz von 22 kHz auf große Lastvariationen reagieren und Drehmoment sowie Strom entsprechend nachregeln. (Bild 8)

Die auf dem RX23T laufende Software belegt nur sehr geringe Ressourcen: 20 kByte Flash und 2 kByte RAM. Dies bedeutet, dass auf dem RX23T mit 128 kByte Flashspeicher bis zu 108 kByte für die Anwendung zur Verfügung stehen.