Turbo für Embedded-Vision-Systeme

Fertigungsautomation

FPGA-OPTIMIERUNG - Die Geschwindigkeit von Embedded-Vision-Systemen kann erheblich gesteigert werden, wenn das FPGA-Modul im Zynq SoC für Bildverarbeitungsaufgaben mitgenutzt wird. Bildverarbeitungsexperte Vision Components erreicht mit der FPGA-Programmierung seiner Z-Kameras für spezielle Inspektionsaufgaben bis zu zwanzigfache Leistungssteigerungen.

02. September 2016
Die VC-Z-Serie mit Zynq-SoC-Modul von Xilinx macht die freie Programmierung des FPGA-Moduls für Auswerteaufgaben möglich.
Bild 1: Turbo für Embedded-Vision-Systeme (Die VC-Z-Serie mit Zynq-SoC-Modul von Xilinx macht die freie Programmierung des FPGA-Moduls für Auswerteaufgaben möglich. )

Dass sich die FPGA-Optimierung für Bildverarbeitungsroutinen nachweislich lohnt und große Leistungssteigerungen ermöglichen kann, zeigt beispielsweise der Fall einer 3D-Oberflächeninspektion. Für die Anwendung wurde ein leistungsstarkes und sehr kleines Vision-System mit einer 3D-Abtastrate von 30 Hz gesucht, das nicht mehr als 8 x 2 x 14 Zentimeter Platz einnehmen und eine Leistungsaufnahme von 3 W nicht überschreiten durfte – daher kam nur ein Embedded-Vision-System in Frage.

Da die gewünschte Auswertegeschwindigkeit mit herkömmlichen Systemen nicht erreichbar war, schlug Vision Components eine Lösung mit FPGA-Programmierung vor. Bereits die ersten Tests zeigten eine enorme Steigerung der Gesamtauswertegeschwindigkeit um den Faktor 12. Die Erwartungen des Kunden wurden damit sogar um 20 Prozent übertroffen. Durch die Verlagerung ausgewählter Funktionen vom Multi-Core-ARM-Prozessor des Zynq-SoC-Moduls der Z-Kameras in das integrierte FPGA sind in anderen Fällen sogar noch größere Leistungssteigerungen möglich. Noch während das aufgenommene Bild zum Prozessor übertragen wird, beginnt das FPGA-Modul bereits mit der Verarbeitung, so dass die ersten Prüfaufgaben abgeschlossen sind, wenn das Bild schließlich zur Bearbeitung durch den ARM-Prozessor in den Speicher gelangt. Diese parallele Verarbeitung der Bilddaten reduziert die Gesamtverarbeitungszeit erheblich – nämlich um genau die Zeitspanne, die die gleiche Funktion im ARM-Prozessor benötigt hätte.

Um diese Art der FPGA-Nutzung anbieten zu können, hat Vision Components seine Z-Kameras mit dem Zync-SoC-Modul von Xilinx ausgestattet, das ARM und FPGA kombiniert und die Nutzung für Bildverarbeitungsaufgaben erlaubt. Erst damit ist die effiziente Nutzung des FPGA für Auswerteaufgaben überhaupt möglich. Der Vorteil: die Ausführung der Aufgabe exakt in Pixeltakt. Dadurch kann die gesamte Bandbreite der Sensoren voll ausgenutzt werden. In Anwendungen ohne FPGA-Nutzung ist dies nicht immer möglich, da die Software natürlich ebenfalls Zeit benötigt und dadurch die Prozessgeschwindigkeit verlangsamt. Wird das FPGA für die Bildverarbeitung mitgenutzt, kann die Applikation in ungebremster Geschwindigkeit ausgeführt werden.

Volle Leistung bei wenig Platz und Verbrauch

»Die FPGA-Programmierung stellt besonders auf kleinstem Raum eine hervorragende Lösungsmöglichkeit dar und bietet große Vorteile, wo eine geringe Leistungsaufnahme und hohe Geschwindigkeiten erforderlich sind«, sagt Jan-Erik Schmitt, Geschäftsführer Vertrieb von Vision Components. »Wir haben die FPGA-Programmierung bereits für diverse Anwendungen erfolgreich umgesetzt. Da wir über einige Erfahrung im Bereich der FPGA-Programmierung verfügen, können wir unsere Kunden umfassend beraten und ihnen die effizientesten Einsatzmöglichkeiten empfehlen.« Die Praxis zeigt, dass FPGA-Programmierung nicht für jede Funktion ausnahmslos empfehlenswert ist. Im Extremfall werden Funktionen im FPGA sogar langsamer ausgeführt als im ARM. Eine FPGA-Nutzung ist dann natürlich nicht sinnvoll, da sich die Gesamtleistung verschlechtert.

Vision Components berät Kunden bei der Einschätzung, ob eine FPGA-Nutzung für ihre Anwendung von Vorteil ist und übernimmt im Rahmen eines umfassenden Dienstleistungsangebots auch die Implementierung. Anwender können anschließend in einer Simulationsumgebung auf dem PC Tests durchführen, um alle Funktionen, die auf das FPGA programmiert werden, bereits im Vorfeld eins zu eins zu testen und nötigenfalls zu debuggen. Dadurch vereinfacht sich die Fehlersuche enorm und die Entwicklungszeit verkürzt sich deutlich.

Vereinfachte Programmierung

FPGA-Programmierung erfordert ein hohes Maß an Erfahrung und Fachwissen. Die Funktion der Bausteine und ihre Verschaltung untereinander lässt sich variabel gestalten, um die Funktionsweise einzelner Blöcke festzulegen. Funktionen oder Funktionsoptimierungen können so immer neu konfiguriert werden. Die Schaltungsstrukturen werden dabei mit Hilfe einer Hardwarebeschreibungssprache konfiguriert, mit der Anwender in der Regel wenig vertraut sind. Das hierfür eingesetzte Xilinx-Tool Vivado HLS erlaubt es Nutzern, den FPGA in den Sprachen C oder C++ zu programmieren. Der enorme Vorteil dieses Tools besteht darin, dass die Software sich vor der ersten Verwendung umfangreich auf dem PC testen, simulieren und debuggen lässt. Die Verwendung von Vivado HLS ist zudem optimal auf die VC-Z-Kameras und die VCLib-Softwarebibliothek zugeschnitten. Darin enthalten sind in C programmierte Funktionen, die bereits für eine effiziente FPGA-Nutzung modifiziert oder erstellt wurden.

Mit der firmeneigenen VCLib können VC-Kunden außerdem auf vorgefertigte Basispakete wie Farbverarbeitung, unterschiedliche Filterroutinen, Pattern Matching und vieles mehr zurückgreifen. Die Softwarebibliothek umfasst den gesammelten Erfahrungsschatz aus über 30 Jahren und erlaubt es, Code für FPGA schnell und effektiv zu kompilieren oder zu übersetzen. Mit ihr stehen alle notwendigen Bildverarbeitungsfunktionen für die industrielle Anwendung zur Verfügung, die variabel sowohl im ARM-Prozessor als auch im FPGA-Modul eingesetzt werden können – je nachdem, wo sie von größerem Nutzen sind, um für die jeweilige Applikation die bestmögliche Leistung zu erzielen.

Know-how für Einsteiger

Vision Components unterstützt interessierte Anwender beim Einstieg in das Thema FPGA-Programmierung auch mit Weiterbildungsangeboten. An jedem ersten Mittwoch im Monat vermittelt das Unternehmen in einem kostenlosen Einführungsseminar grundlegendes FPGA-Know-how und gibt Einblicke in die Anwendung der Entwicklungsumgebung. Teilnehmer können hier zum Beispiel das Entwicklungstool Vivado HLS zur FPGA-Programmierung in C-Sprache testen und sich mit dem Programmierprozess vertraut machen.

Erschienen in Ausgabe: 04/2016