Koordination der Kameras

Bilddatenübertragung - Der neue Interface- Standard GigE-Vision stößt derzeit auf sehr reges Interesse für unterschiedlichste Anwendungen in der industriellen und wissenschaftlichen Bildverarbeitung.

31. August 2007
Prosilica Kameras von Rauscher gibt es in vier Serien – GC, GE, EC und CV – jeweils als Farb- und Monochrom-Ausführung
Bild 1: Koordination der Kameras (Prosilica Kameras von Rauscher gibt es in vier Serien – GC, GE, EC und CV – jeweils als Farb- und Monochrom-Ausführung )

Der neue Bildverarbeitungsstandard GigE-Vision basiert auf Gigabit-Ethernet und bietet eine maximale Transferleistung von etwa 125 MB pro Sekunde. Die Ethernet-Technologie überwindet Kabelstrecken bis 100 Meter ohne den Einsatz von Repeatern oder Hubs, sie basiert auf kostengünstiger Standard- Infrastruktur und bietet zahlreiche Möglichkeiten der Infrastruktur- Topologie. Das System ist eine reizvolle Alternative zu klassischen Framegrabber-Lösungen, da es sich um eine normierte und gleichzeitig sehr flexible Kameraschnittstelle handelt, die von allen namhaften Hardware- und Softwareherstellern getragen wird.

GigE-Vision überträgt die Bilddaten mit dem UDP-Transportprotokoll über einzelne Ethernet-Pakete von der Kamera zum Host-PC. Der GigE-Vision-Treiber extrahiert die Bilddaten aus den einzelnen Ethernet-Paketen und stellt sie im Bildspeicher zur Verfügung. Dieses Entpacken der Bilddaten ist mit CPU-Last verbunden, da jedes einzelne Paket vom Treiber verarbeitet werden muss. Hier liegt auch heute noch ein Vorteil von anderen Interfaces wie Camera Link, die ohne jede CPU-Last die Bilddaten zum Host-PC transportieren.

Neben dem Einsatz von so genannten High-Performance-Treibern, die jedoch nur auf bestimmte Netzwerk-Chipsätze optimiert sind, werden vielfach GigE-Vision Filtertreiber eingesetzt. Diese sind universell mit beliebigen Netzwerkkarten verwendbar und bieten eine sehr gute Balance aus anfallender CPU-Last und flexibler Verwendung auf unterschiedlicher Hardware. Bei den richtigen Einstellungen auf der Karte lässt sich die anfallende CPU-Last sehr gering halten. Die Standardgröße eines Ethernet-Pakets liegt dann bei nur 1.500 Byte.

Mit der Funktion »Jumbo Frames« überträgt der Treiber mehr Nutzdaten pro Paket; so wird der Protokoll Overhead verringert. Die »Recieve Descriptoren« sind Datensegmente, die verwendet werden, um empfangene Pakete in den PC-Speicher zu schreiben. Mit einer größeren Anzahl kann der Treiber effizienter und weniger CPU-intensiv arbeiten.

Die Einstellung »Interrupt Moderation « regelt das Verhältnis aus empfangenen Daten und den dafür vom Netzwerkadapter ausgelösten Interrupts. Je weniger Interrupts ausgelöst werden, desto geringer ist die Prozessorlast. Zwar steigt gleichzeitig die Latenz beim Empfang der Daten, in der Praxis kann dieser Wert jedoch maximal eingestellt werden, ohne die Bildverarbeitungsanwendung zu beeinträchtigen.

Mehr-Kamera-Lösungen

GigE-Vision eignet sich besonders für Mehr-Kamera-Lösungen, da sich diese mit einem Minimum an Hardwareaufwand realisieren lassen. Auch wenn der Anwender mehrere Kameras an einem Gigabit-Ethernet-Port über einen Switch betreibt, werden die Bilddaten stabil und sicher erfasst. Allerdings sollte in der heutigen Ausbaustufe von GigE-Vision die Bandbreite pro Ethernetport 125 MB pro Sekunde nicht übersteigen und der Switch selbst muss in der Lage sein, die Jumbo Frames von allen aktiven Kameras parallel zum Ziel zu routen.

Ein gemeinsamer externer Trigger synchronisiert die zeitgleiche Aufnahme von mehreren Kameras. Optional ließe sich der Trigger auch nur an eine Kamera geben und von dort direkt an weitere Kameras durchschleifen. Prosilica-Kameras im Programm von Rauscher haben dazu eine feste Latenz: Exakt 2,4 Mikrosekunden nach Erhalt des gemeinsamen Triggers beginnen sie zeitgleich mit der Belichtung des Bildes und geben das Exposure-Signal über eine programmierbares I/O Leitung aus. Beginnend mit dem Sensor-Readout werden die Bilddaten über den Switch zum Host-PC geleitet. Das Transportverhalten ist sehr deterministisch, innerhalb von 170 Mikrosekunden liegen die Bilder von allen drei Kameras vollständig im PC vor, um sie zu verarbeiten. Die Reihenfolge des Bildempfangs über die Netzwerkstruktur kann nicht immer vorhergesagt werden, der Zeitunterschied für das Eintreffen der Bilddaten liegt jedoch bei wenigen Mikrosekunden. Für Vision-Applikationen sollte dieses Verhalten aber mehr als ausreichend sein.

Optimierter Transfer

Wenn mehrere Kameras gleichzeitig ins Netzwerk senden, muss die Bandbreite von 125 MB pro Sekunde pro GigE-Port zwischen den einzelnen Kameras aufgeteilt werden. Prosilica bietet den Parameter »StreamBytesPerSecond«, der für jede einzelne Kamera im Netzwerk genau festlegt, wie viele Daten sie sendet. So wird das Transfervolumen optimal auf die Anwendung angepasst. Es sind auch ungleichmäßige Aufteilungen möglich, wenn der Anwender zum Beispiel eine Megapixel-Kamera parallel zu einer VGA-Kamera betreiben möchte.

Ist nur der Aufnahmezeitpunkt entscheidend, nicht aber der Zeitpunkt, wann die Daten im PC zur Verfügung stehen, lässt sich die Datenübertragung mittels »StreamHold« serialisieren: Die Kameras belichten ein oder mehrere Bilder und speichern sie im internen Onboard-Memory, das bis zu 32 MB groß ist. Wird der Befehl per Software für eine einzelne Kamera wieder deaktiviert, beginnt die Datenübertragung der gespeicherten Bilder. Sie stehen etwa acht Millisekunden später im Host-PC zur Verfügung.

Über diesen Mechanismus lassen sich beliebig viele Kameras betreiben, da die Software exakt festlegt, wann eine Kamera effektiv das Netzwerk belastet unabhängig vom Zeitpunkt der Bildaufnahme.

Jenseits des Bottlenecks

Multi-Port-Karten umgehen in schnellen Anwendungen mit vielen gleichzeitig sendenden Kameras den Flaschenhals der begrenzten Bandbreite. Sie verfügen über (gegenwärtig) maximal vier unabhängige Gigabit-Ethernet Ports. Damit lässt sich ein Netzwerk mit 500 MB pro Sekunde aufbauen, auch wenn eine einzelne Kamera nie über 125 MB pro Sekunde hinaus senden darf. Die hierfür zumeist eingesetzte PCIe Technologie erlaubt außerdem eine Transfergeschwindigkeit von 1 GB pro Sekunde vom Board zum PC ? wie es bei CameraLink Framegrabbern heute bereits üblich ist.

Spezialisierte Hardware für GigE Vision, wie beispielsweise das Matrox Solios GigE, addieren zu der Funktionalität einer reinen Vierfach-Port-Netzwerkkarte weitere Features, insbesondere für Bildverarbeitungsaufgaben: Das Matrox Solios Board integriert eine Protocol Offload Engine für alle vier Kanäle, um Null Prozent CPULast zu erreichen. Auch die Bild-Rekonstruktion wird komplett auf der Hardware durchgeführt, so dass die Host-CPU vollständig für die eigentliche Bildverarbeitung zur Verfügung steht.

Durch die hohe Flexibilität eines GigE-Vision Systems in Hard- und Software lässt sich immer eine Konfiguration erstellen, die der jeweiligen Aufgabe sowohl in Performance gerecht wird als auch die Kosten berücksichtigt.

FaktenProsilica-Kameras

• Auflösungen: 659 x 493, 752 x 480, 1.024 x 768, 1.280 x 1.024, 1.360 x 1.024, 1.620 x 1.220, 2.048 x 2.048 (je nach Kamera-Serie und -Modell)

• hohe Frameraten

• globaler Vollbild-Shutter

• asynchroner externer Trigger

• Region of Interest (AOI Partial Scan)

• nicht-flüchtiger Konfigurationsspeicher

• Exposure controls (Belichtungszeit, Gain, Offset)

• 16 bzw. 32 MB onboard Speicher

• kompakte Abmessungen im Industrie-Design

Erschienen in Ausgabe: 04/2007