Synchronisation von GigE-Kameras mit dem Precision Time Protokoll

In vielen Anwendungen der industriellen Bildverarbeitung spielt Zeit eine wichtige Rolle: Wie präzise eine Kamera ausgelöst wird, entscheidet oft über die Leistung eines Systems. Nicht selten erfassen mehrere Kameras dasselbe Objekt zur selben Zeit, etwa um ein 3D-Modell zu errechnen. Oder die Kameras müssen mit anderen Netzwerkkomponenten synchronisiert werden, z.B. mit einem GPS-Empfänger, wenn die erfassten Bilder genau datiert und lokalisiert werden müssen. Taktsynchronisation im Mikrosekundenbereich Das Precision Time Protocol (PTP) – auch als IEEE-1588-Standard bekannt – synchronisiert den Takt verschiedener Geräte an einem Ethernet-Netzwerk – etwa Kameras, PCs oder Sensoren. Sind die Geräte aufeinander abgestimmt, lassen sie sich per Software-Trigger innerhalb von 2µs synchron auslösen. Der Standard entstand als eine Zwischenlösung zwischen zwei weiteren Synchronisationstechniken: dem NTP (Network Time Protocol) und GPS (Global Positioning System). NTP hatte sich vielfach als zu ungenau erwiesen, mit Latenzzeiten bis zu mehreren Millisekunden auf einem Fast-Ethernet Netzwerk. GPS hingegen bietet dank Atomuhr und Satellitentriangulation eine Präzision im Nanosekundenbereich. Nachteilig sind aber die zu hohen Kosten für industrielle Bildverarbeitungssysteme. PTP stellt einen Kompromiss zwischen diesen beiden Extremen dar: Der Standard erreicht Mikrosekundenpräzision und somit eine erheblich bessere Leistung als NTP, und zwar zu deutlich geringeren Kosten als GPS. Wie funktioniert die PTP-Synchronisation? PTP stellt eine relative Synchronisation her: Die Takte der Geräte am Netzwerk sind aufeinander abgestimmt, dies an sich gibt jedoch keine Auskunft über den genauen Zeitpunkt eines Ereignisses (z.B. einer Bildaufnahme) in der absoluten Zeitmessung. Das Prinzip von PTP ist, dass ein Gerät als Master ausgewählt wird, das für das ganze Netzwerk bzw. zumindest für alle als Slave gekennzeichneten Geräte den Takt gibt. Der Synchronisationsprozess beginnt mit einem Sync-Telegramm, das vom Master-Gerät per Multicast-Messaging in das Netzwerk gesendet wird. Alle als Slave konfigurierten Geräte kalkulieren daraufhin den Zeitunterschied zwischen ihrem Takt und dem des Masters und passen den eigenen Takt entsprechend an. Mit Hilfe von Follow-up und Delay-Nachrichten werden die Taktfrequenzen der Slave-Geräte nach und nach angepasst, um sich so weit wie möglich dem Master anzugleichen. Sobald alle Slave-Takte sich weniger als 2µs vom Master unterscheiden, ist die PTP Synchronisation erfolgreich abgeschlossen. Erforderliche Netzwerkbedingungen PTP-Synchronisation ist momentan nur für Geräte möglich, die sich alle auf demselben Netzwerk bzw. Netzwerkzweig befinden. Grund dafür ist, dass Netzwerkkarten nach dem heutigen Stand der Technik nicht in der Lage sind, die PTP-Sync Multicast-Nachrichten innerhalb der 2µs-Grenze von einem Ethernet-Port zum anderen weiterzuleiten. Dementsprechend müssen alle zu synchronisierenden Geräte über einen Switch an einem einzigen Port mit dem Host verbunden werden. Bei Multikamerasystemen darf die Gesamtbandbreite für alle Kameras an einem einzelnen GigE-Anschluss 125MB nicht überschreiten, sonst können Datenpakete verloren gehen. Ist für jede Kamera die volle Bandbreite notwendig, empfiehlt es sich, die Kameras über ein 10GigE-Switch und eine 10GigE-Verbindung an den Host-PC anzuschließen. Anwendungsbeispiele Sind mehrere Kameras per PTP miteinander synchronisiert, so kann z.B. ein Software-Trigger mit einer Genauigkeit <4µs an alle Kameras gesendet werden. Dies bedeutet nicht, dass das tatsächliche Auslösen innerhalb von 4µs nach dem Befehl stattfinden wird, sondern dass alle Slave-Kameras innerhalb dieser Toleranzgrenze zeitgleich auslösen. Die Übertragung des Befehls vom Master an alle Slave-Geräte benötigt eine bestimmte Zeit, die stark von der Systemkonfiguration abhängt. Mit einem Intel QuadCore 2 Prozessor, 2GB RAM, Windows XP 32Bit und einer Intel Pro 1000 PT Dual Netzwerkkarte haben wir z.B. 7ms pro Kamera gemessen. Der gewünschte Trigger-Zeitpunkt darf deshalb nicht zu früh gesetzt werden, sondern muss diese am besten großzügig geschätzte Zeit berücksichtigen. Alle Kameras können zudem auf der gleichen, konstanten Framerate eingestellt werden. Dann erfolgt nicht nur der Start der Bildaufnahme synchron, sondern jedes einzelne darauffolgende Bild wird von allen Kameras zeitgleich erfasst. Eine übliche Anwendung für PTP ist die Synchronisation der Kameras mit einem GPS-Zeitmesser. So lassen sich die Kameras bei einer genauen Uhrzeit auslösen bzw. Datum und Uhrzeit jeder Aufnahme lassen sich nachträglich genau nachvollziehen. Bei der Einstellung ist es am einfachsten, alle Kameras auf den PTP-Modus ´Auto´ zu setzen, denn IEEE1588 wird automatisch das GPS-Gerät als bestgeeigneten Master auswählen. Alle Kameras erhalten automatisch den Slave-Status und synchronisieren mit dem GPS-Takt. Fazit Precision Time Protocol ist eine sehr wertvolle Funktion für alle Applikationen, die eine sehr genaue Synchronisation mehrerer Kameras bzw. einer oder mehrerer Kameras mit einem anderen Netzwerkgerät erfordern. Von der industriellen Inspektion bis hin zur Wissenschaft oder Verkehrsüberwachung - es sind viele Anwendungsgebiete, für die genau diese Mikrosekundenpräzision entscheidend ist.