Auf dem Markt der elektrischen Antriebstechnik hat die Nachfrage nach technologischer Konvergenz bereits begonnen. Der Kommunikationsstandard Sercos III (Serial Real-time Communications System III) erfüllt diese Anforderung. Sercos ist eine digitale Antriebsschnittstelle mit Echtzeitprotokoll und Ethernetphysik, die durch den internationalen Standard IEC 61491 festgelegt ist. Mit Sercos lassen sich deterministisch Bewegungen mit hoher Geschwindigkeit steuern und mehrere Antriebe, beispielsweise für elektronische Getriebe, exakt synchronisieren.
Bisher wurde Sercos in ASIC-Technik implementiert. Die Leistungsmerkmale von Sercos III lassen sich mit standardmäßigen Mikroprozessoren oder Mikrocontrollern jedoch nicht garantieren. Es ist auch unwahrscheinlich, dass ASSPs (Application Specific Standard Products) über einen längeren Zeitraum verfügbar sein werden, die mit den Markt- und Kundenanforderungen mithalten können. Für die Förderer von Sercos III galt ein FPGA als bestes Mittel, um adäquate Leistungsmerkmale und skalierbare Realisierungsplattformen zu erreichen und technologische wie auch finanzielle Risiken zu minimieren. Sie entwickelten die Referenz-Implementierung mit einem FPGA von Xilinx – nicht, weil diese der einzige Weg, sondern der effektivste Ansatz mit minimalem Risiko war.
FPGAs reduzieren das Risiko
FPGAs integrieren heute Logik, Prozessoren, digitale Signalprozessoren (DSP), IP-Module in Hardware sowie Ein-/Ausgänge, was die Basis für ein skalierbares System auf dem Chip (SoC) bildet. Dadurch lässt sich die Partitionsfeinabstimmung sogar dann noch durchführen, wenn das Produkt bereits bestellt oder eingebaut ist. Außerdem sind FPGAs mittlerweile so günstig, dass ihr umfassender Einsatz die Systemgesamtkosten stärker senkt, als dies mit herkömmlichen ASIC- oder ASSP-Lösungen möglich wäre.
FPGAs von Xilinx werden von einem umfassenden Werkzeugsatz unterstützt, der beispielsweise eine individuelle Platzierung von Block-IPs in bestimmten Teilen des Chips erlaubt. Für Sercos III ist auf diese Weise eine Sicherheitsstufe bis SIL 3 (Safety Integrity Level) erreichbar. Sercos III teilt den Kommunikationszyklus in einen Echtzeitkanal und einen nicht echtzeitfähigen Kanal auf, wobei beide Kanäle im Zeitschlitzverfahren verschachtelt sind. Der Echtzeitkanal sendet kollektive Telegramme, die bei Sercos III als Rundsendung spezifiziert sind und in den Empfängerknoten durch das FPGA sofort verarbeitet werden. Die nicht echtzeitfähigen Ethernet-Frames werden als Einzeltelegramme zu jedem Baustein im Netzwerk geschickt. Dadurch ergibt sich eine minimale Zykluszeit aus der Anzahl der Teilnehmer, der zyklisch gesendeten Datenmenge und dem Zeitbedarf des nicht echtzeitfähigen Kanals. Im FPGA wird die Ringredundanz von Sercos III implementiert. Während im Normalfall die Echtzeitdaten redundant auf beiden Pfaden gesendet werden, spaltet sich der Ring im Fehlerfall (Kabelbruch oder Teilnehmerausfall) in zwei Leitungen auf, die die Integrität der Kommunikation aufrechterhalten: In weniger als 20 µs schaltet der FPGA-Umschalter direkt von „Forwarding“ auf „Loopback“ und stellt damit sicher, dass die Störung auf einen Kommunikationszyklus beschränkt ist.
FPGAs als Systembaustein für Regler
Synchronisation ist für Anwendungen der Industrieautomatisierung von überragender Bedeutung und für interpolierende oder gekoppelte elektrische Antriebe mit mehr als einer Achse sogar zwingend notwendig. Sercos III nutzt dazu das erste Master Data Telegram (MDT), in das dann ein Master Synchronisation Telegram (MST) und eine MST-Prüfsumme als 6 Byte lange Information nach dem Ethernet-Header eingebettet werden. Diese Anordnung stellt sicher, dass der Zeitraum zwischen dem Start des Ethernet-Frames und dem Empfang der MST-Prüfsumme konstant bleibt. Mit Sercos III bleibt der Synchronisationsfehler unter 20ns, die Gleichzeitigkeit liegt innerhalb von 100 ns.
Ein Empfänger im Teilnehmer nutzt die Kommunikationsbandbreite umso besser aus, je kürzer seine Reaktionszeit ist. Mit Mikrocontroller-Architekturen lassen sich Reaktionszeiten von lediglich 5 bis 10 µs erreichen. Eine Verkürzung erfordert Tuning-Maßnahmen im Programm-Code, die zu kritischen Implementierungen führen können. Ein typisches System zur Bewegungsführung, das aus Bewegungssteuerung, Lageregelkreis, Geschwindigkeitsregelkreis und Stromregelkreis besteht, soll dies verdeutlichen (Abbildungen 1 und 2). Als erste kritische Größe wirkt sich die Transferlatenz zwischen empfangenen Befehlsdaten (Sollwert) und den Istwerten aus, die sich in unterschiedlichen Funktionsblöcken zeigt. Wenn das System zur Bewegungsführung nur als Software auf einem Mikroprozessor oder DSP läuft, dann stellt dessen Verarbeitungskette den kritischen Pfad dar. Die Kommunikationslast wird dann durch das FPGA erleichtert, die Steuerung dagegen nicht. Die Software muss akribisch abgestimmt werden, wobei jede hinzugefügte oder entfernte Anforderung unerwünschte Seiteneffekte auslösen kann. Auch die Auswahl eines leistungsstärkeren Mikrocontrollers und eines digitalen Signalprozessors erzeugt nicht nur zusätzliche Kosten, sondern trägt noch mehr zur zeitlichen Unsicherheit bei.Wenn die Antriebssteuerung vollständig im FPGA abläuft, dann verringert dies die Abhängigkeit von Software und erfüllt auch härteste Anforderungen an Synchronisation und Jitter. Erfolgreiche Architekturen nutzen Sercos-III-IP-Module für die Protokoll- und Synchronisationssignale, während ein Micro-Blaze-Prozessor die höheren Kommunikationsebenen und nicht echtzeitgebundenen Protokolle verwaltet. Auch der Regelteil lässt sich weiter in Signalverarbeitungsschritte für Lage, Geschwindigkeit und Strom sowie in Bewegungsführung, Diagnose und Überwachung aufteilen.
Aufbau von FPGA-Reglerplattformen
Als Baustein für die Kopplung internen und externen Speichers bietet der Hersteller den Multi Memory Controller (MMC). Ein weiterer Micro Blaze dient als Controller für die Bewegungsführung und das Lage-, Geschwindigkeits- und Strommanagement. Der MMC sorgt dafür, dass Netzwerk- und Steuerprozessor auf den gleichen Speicher zugreifen können. Echtzeitdaten, die über Sercos III einlaufen, werden über einen gemeinsamen Speicher, der als Block RAM (BRAM) realisiert ist, direkt an die Lageregelung weitergereicht.
Die Lageregelung besteht aus einer Kombination von DSP-Blöcken mit Prozessorunterstützung. Grundsätzlich erzeugt der Lageregelkreis den Geschwindigkeitssollwert aus Positionsvorgaben und Rückführgrößen in einem Zeitraster zwischen 250 µs und 1 ms. Derartige Zeitanforderungen sind für FPGAs absolut unkritisch. Der Geschwindigkeitsregelkreis erzeugt die Stromsollwerte aus Geschwindigkeitssollwerten und Rückführgrößen mit Zykluszeiten zwischen 62,5 und 250µs. Dieser Teil ist aus Anwendungssicht kritisch, wegen der hardwaremäßigen Implementierung mit DSP-Blöcken und Logik jedoch nicht aus Sicht des FPGA. Der Stromregelkreis steuert das Leistungsteil an, das die Spannung an den Motorklemmen in einem Zeitraster von 31,25 bis 125 µs moduliert. Der Leistungsmodulator ist die Stufe, in der FPGAs schon seit Langem alle Arten von Pulsdauermodulation erzeugen, Totzeiten kompensieren und Fehler der Leistungsschalter erkennen.
Modulare und verteilte Plattformen
Anspruchsvollere Schaltungen wie Beobachter, prädiktive Algorithmen und besondere Modulationsformen lassen sich im Steuerprozessor realisieren und können nach einiger Zeit in die Logik- und DSP-Ressourcen der FPGAs wandern. Mit einem FPGA lassen sich individuelle Algorithmen in Logik und DSP-Blöcken als effiziente Beschleuniger installieren, die sich für eine Software-Implementierung vollkommen transparent verhalten.
Die DSP-Blöcke (DSP 48) unterstützen viele allgemein verwendbare Funktionen wie Multiplizierer, Multiplizierer mit Akkumulator (MAC), Addierer mit drei Eingängen, Barrel-Shifter, Multiplexer für breite Busse, Komparatoren oder vielstellige Zähler. Sie lassen sich auf der untersten Hierarchiestufe mit feiner Granularität einsetzen. Auf der nächsten Hierarchieebene werden mehrere DSP-Slices zu kompletten Funktionen verschaltet, zum Beispiel PI- oder PID-Regler und arithmetische Funktionen im komplexen Zahlenraum. All diese Blöcke und sogar die gesamte Implementierung lassen sich mit den Entwicklungswerkzeugen Simulink/Matlab und der Toolkette SystemGenerator/AccellDSP des Herstellers ausführen. Auf der dritten Ebene werden diese Module kombiniert und in den Daten- sowie den Steuerpfad als Ergänzung des MicroBlaze-Steuerprozessors eingefügt. Als bevorzugter Ansatz für die Kopplung gilt der Fast Serial Link, der den Umfang des Kommunikationsbusses zwischen den Modulen reduziert und den Befehlssatz des Prozessors erweitert. Wenn sich der Systemarchitekt für eine verteilte Realisierung entscheidet, bei der die Funktionalität auf einen Kommunikationsteil und einen Regelteil (z.B. zwei separate Module) aufgeteilt wird, ist es nützlich, zur Verbindung der beiden Module einen standardmäßigen Bus zu verwenden. Der PCI-Bus reicht für industrielle Protokolle wie Sercos III jedoch nicht mehr aus. PCI-Express (PCIe) bietet dagegen eine skalierbare Bandbreite von 250 MBit/s (einfach) bis 8 GBit/s (32-fach). Dies ist eine spezifische evolutionäre Anforderung, die vom FPGA problemlos gelöst wird, da PCIe eine voll unterstützte Funktion der FPGAs ist. Bei der Produktfamilie Spartan wird der PCIe-Standard über ein Softmakro realisiert. Außerdem enthält die Advanced Industrial Platform des Herstellers mit dem LX20T das einspurige PCIe als Hardmakro: Sie bietet damit auch ECC-Funktion (Error Check and Correction) auf alle internen Block-RAMs. Durch Einsatz der Sendeempfänger PX1012A von NXP, die der PCIe-Spezifikation V 1.0a und V 1.1 entsprechen, ist es möglich, die Leistung von Sercos an moderne Prozessorarchitekturen heranzuführen. So kommuniziert ein Spartan-3-FPGA von Xilinx mit der physikalischen Schicht des PX 1012A über den quellsynchronen 250-MHz-Standard-XPIPE, der auf SSTL-2-I/O basiert. Dies ist ein weiterer Vorteil, denn der Einsatz von quellsynchroner Taktung vereinfacht das Leiterplattenlayout: Damit verhalten sich die Datentransaktionen zwischen FPGA und den PHY-Bauteilen wesentlich robuster als der ursprüngliche PIPE-Standard, der nur einen Takt für das Senden und Empfangen von Daten nutzt.
Fazit
Mit der Synthese von Kommunikationsaufgaben in der Antriebstechnik mit FPGAs des Herstellers gelingt es, durch Repartitionieren im Software/Hardware-Bereich und angepasste Aufteilung zwischen integralen und verteilten Lösungen effizientere Implementierungen zu erhalten. Dadurch lassen sich Kosten senken und technische wie auch finanzielle Risiken begrenzen.
• more@click-Code: EEK80303
