Motoransteuerung FPGA und Mikrocontroller - die Mischung machts

In den letzten Jahren hat die Beliebtheit von kollektorlosen Gleichstrommotoren stark zugenommen. Einer der Gründe dafür ist ihr gutes Masse-Leistungs-Verhältnis. Allerdings braucht dieser Motortyp zusätzliche Elektronik, die die mechanische Kommutierung ersetzt. Hier wird ein neuer Ansatz vorgestellt: die Steuerung des Motors über einen SmartFusion-Chip, ein Hybrid aus FPGA und Mikrocontroller.

Kollektorlose Gleichstrommotoren (engl. Brushless DC Motor, BLDC) ersetzen den mechanischen Kommutator zur Stromwendung durch eine elektronische Steuerung, die das magnetische Drehfeld und damit die Drehbewegung des Motors kontrolliert. Es liegt auf der Hand, dass durch das Weglassen der Kohlebürsten ein bedeutendes mechanisches Verschleißteil wegfällt und die Elektronik zudem eine präzise Motoransteuerung ermöglicht. Diesen Vorteil macht man sich für zahlreiche Einsatzmöglichkeiten zunutze, weswegen BLDC-Motoren weit verbreitet sind. Zu ihren Einsatzgebieten zählen z.B. Lüfter oder Laufwerksantriebe, aber auch Modellbau, Servomotoren usw. Die Ansteuerung von kollektorlosen Gleichstrommotoren geschieht bislang mit eigens dafür entwickelten Bausteinen oder Mikrocontrollern. Bei dem nachfolgend beschriebenen Ansatz wird ein neuer Weg beschritten: Die zeitkritischen Signale steuert ein FPGA; der Mikrocontroller übernimmt lediglich die Kommunikation mit dem Benutzer. Die Motoransteuerung erfolgt sensorlos über das Direct-back-EMF-Verfahren. Die beschriebene Steuerung entstand im Rahmen einer Masterarbeit an der Hochschule München in Zusammenarbeit mit Mixed Mode. Wesentliches Ziel der Arbeit war es, einen Demonstrator zu erstellen sowie auszuloten, welches Potenzial eine Ansteuerung über einen FPGA/MCU-Hybriden hat. Die Arbeit zielte auf die Geschwindigkeitsregelung des BLDC, die theoretisch beliebig schnell gestaltet werden könnte; einzig die Taktfrequenz des FPGA stellt die Obergrenze dar. Ein angenehmer Nebeneffekt der Arbeit war die Reduktion von Bausteinen, da in anderen Systemen mehrere Bausteine die Aufgaben übernehmen, die in dieser Entwicklung durch einen einzigen Baustein übernommen wird.

Zwar ist dieser Ansatz nicht völlig neu. Es gibt von Trinamic (www.trinamic.com) das Evalboard TMCM-AC-840, das ähnlich arbeitet, und es ist wahrscheinlich, dass verschiedentlich Ansätze zu einer vergleichbaren Entwicklung gemacht wurden. Tatsächlich findet man aber im Internet kaum Publikationen zu diesem Thema.

Hinzu kommt, dass Mikrocontroller gemeinhin einfacher zu integrieren sind als FPGAs. Dennoch weisen FPGAs gerade für diese Aufgabenstellung einige entscheidende Vorteile auf.

Was FPGAs besser können

Ein FPGA kann als ein Stück logische Hardware-Grundlage beschrieben werden, die durch zusätzliche Programmierung intern je nach Bedarf verschaltet wird. Die Vorteile eines FPGAs gegenüber den im BLDC-Bereich nahezu allgegenwärtigen Mikrocontrollern sind folgende:

  • einfache Signalerzeugung,
  • Verarbeitung mehrerer Signale gleichzeitig,
  • höhere Prozess-Stabilität.

Ein FPGA ist in der Lage, mehrere Signale gleichzeitig zu verarbeiten, wohingegen ein Mikrocontroller nur ein Signal pro Zeiteinheit verarbeiten kann. In einem FPGA legt ein Fehler aus diesem Grund auch nur ein Modul bzw. den betroffenen Strang lahm, nicht aber das gesamte System. Bei einem Mikrocontroller kann ein Programmfehler dagegen den ganzen Prozessor abstürzen lassen. Das sequenzielle Design der Mikrocontroller spielt seine Stärke bei zeitlich aufeinanderfolgenden Signalen aus, wie sie z.B. bei Benutzereingaben vorkommen.

Manche FPGAs haben den Nachteil, dass sie auf SRAM angewiesen sind, d.h., ihre Konfiguration muss nach dem Einschalten erst von einem externen Speicher geladen werden. Bei der vorliegenden Entwicklung bestand dieser Nachteil jedoch nicht, da hier ein FPGA mit Flash-Speicher verwendet wird - sprich die Konfiguration bleibt nach dem Abschalten der Versorgungsspannung erhalten.
Dementsprechend wurden die Aufgaben für Mikrocontroller und FPGA so verteilt, dass jeder das macht, was er am besten kann: Der FPGA-Teil ist für die zeitkritische Signalerzeugung zuständig und fängt Fehlerzustände ab. Der Mikrocontrollerteil dient als Schnittstelle zur Außenwelt und steuert das Gesamtsystem. Beide Einheiten kommunizieren über einen gemeinsamen Datenbus (APB3-Bus) miteinander. Die Architektur und die Aufgaben im Einzelnen zeigt Bild 1.

Aus Gründen der Effizienz wurden für die Ansteuerung des Motors nur N-Kanal-MOSFETs verwendet. Für die Hardware-mäßige Ansteuerung wurde eine Zusatzplatine entworfen, die den gesamten Leistungsteil für die Motoren enthält. Mit der entwickelten Steuerung wurde ein Demonstrator aufgebaut, der eine Synchronisationsaufgabe ausführt. Er zeigt anschaulich die Vorteile dieser Motortechnologie und der Steuerung.