Jetzt auch in der App!

Das Handbuch der Bildverarbeitung Mehr

Erweitern Sie Ihr Bildverarbeitungs Know-how

BESSER MEHR WISSEN

Profitieren Sie von der Erfahrung unserer Experten

Vision Docs - das neue Handbuch ist da

DAS NACHSCHLAGEWERK

FÜR BILDVERARBEITER

Holen Sie sich das aktuelle Handbuch! Mehr

Universal Serial Bus (USB)

Die erste Version von USB (Universal Serial Bus) wurde 1995 von einem Konsortium entwickelt, dem unter anderem NEC, IBM, Intel und Microsoft angehörten.

Es sollte eine einfache Verbindung zwischen Computern und Peripheriegeräten ermöglicht werden. Zu den Schlüsselfunktionen der USB-Schnittstelle zählt die Möglichkeit, Geräte an einen PC anzuschließen, ohne dass dieser neu gestartet werden muss (Hot Plugging). Zudem können Geräte über den Bus mit Strom versorgt und insgesamt maximal 127 Geräte über Hubs angeschlossen werden. Die gesamte Datenübertragung über USB wird vom PC gesteuert. Eine separate Einsteckkarte ist dazu in der Regel nicht notwendig, da USB heute auf den meisten Motherboard-Chipsätzen integriert ist. Es ist jedoch möglich, die USB-Kapazität eines PCs mit zusätzlichen Host Controller-Boards zu erweitern

USB showcase

Der ursprüngliche Standard USB 1.0 verfügt über eine Bandbreite von 12 Mb/s, die auch in die Revision USB 1.1 übernommen wurde. Damit stand nur ein maximaler Datendurchsatz von ca. 1 MB/s zur Verfügung, was zwar für die ursprünglich Zielanwendung wie den Anschluss von Tastatur und Maus vollkommen ausreichend, für bandbreitenintensive Anwendungen wie den Anschluss von Kameras aber zu wenig war. Als der Nachfolger USB 2.0 im Jahr 2001 eingeführt wurde, erhöhte sich die Bandbreite auf 480 Mb/s, wodurch USB 2.0 für Geräte mit höheren Datenraten wie Massenspeicher, CD-Brenner und auch für die Bildverarbeitung interessanter wurde. Mit einer effektiven Bandbreite zwischen 40 MB/s und 45 MB/s (abhängig vom USB-Host-Controller) liegt die Performance von USB 2.0 in etwa zwischen IEEE 1394a und b.

Obwohl diese beiden Schnittstellen auf den ersten Blick sehr ähnlich erscheinen, gibt es einige entscheidende Unterschiede. USB verwendet eine Sterntopologie mit mehreren Ebenen, d.h. mehrere Geräte können an Knotenpunkten wie z.B. USB-Hubs angeschlossen werden. Unterhalb des Host-Controllers sind bis zu sechs Ebenen mit Knotenpunkten erlaubt. Dabei muss jedoch beachtet werden, dass USB keine Hintereinanderschaltung (Daisy Chaining) von Geräten oder PCs, wie z.B. bei IEEE 1394, zulässt. Generell nutzt USB unterschiedliche Protokolle wie Bulk oder isynchrone Übertragung. Die meisten USB-Geräte und alle USB3-Vision-Kameras verwenden jedoch das Bulk-Protokoll, das eine garantierte Übertragung gewährleistet, aber keine zugeteilte Bandbreite hat. Im Gegensatz zu anderen generischen Schnittstellen wie Gigabit Ethernet gibt es bis heute für USB keinen einheitlichen Bildverarbeitungsstandard. Daher ist es nötig, bei USB-Kameras jeweils die Herstellersoftware zu installieren und zu verwenden. Das stellt zum einen ein Problem auf der Seite des Anwenders dar, wenn es darum geht, neue Kameras zu integrieren. Es führt auf der anderen Seite aber auch zu Schwierigkeiten bei der Realisierung von Embedded-Lösungen, da ein Kamerahersteller eventuell nicht für alle Betriebssysteme Treiber bereitstellen kann. Wenn man einen Standard hätte, könnte die Integration auch von anderen Firmen als dem Hersteller vorgenommen werden.

Außerdem müsste die Implementierung für eine neue Plattform herstellerübergreifend nur einmal erfolgen. Hinzu kommt, dass es heute für manche USB-Geräte notwendig ist, die Firmware der Kamera in der Bootphase der Kamera vom Host zu laden. Hierfür müssen herstellerabhängige Treiber verwendet werden, es bedeutet aber auch, dass neue Funktionen einfach durch einen neuen Treiber hinzugefügt werden können. Für die Übertragung der Daten von der Kamera zum Host gibt es unterschiedliche Implementierungen. So können die Daten z.B. als sogenannte Bulk-Daten übertragen werden, diese haben jedoch keine reservierte Bandbreite. Das Bandbreitenmanagement muss durch den Host Controller erfolgen. Im Unterschied zu beispielsweise GigE ist die Übertragung garantiert, so dass die Anwendung selbst bei hoher Buslast eventuell nicht alle Bilder erhält, jedoch immer komplette Bilder. Der Vorteil von Bulk-Traffic ist es, viele Kameras am gleichen Bus zu betreiben. Alternativ kann man die Daten aber auch über isochrone Kanäle übertragen. Für isochrone Kanäle wird von der Software eine feste Bandbreite reserviert, die auch dann belegt ist, wenn zu einem gegebenen Zeitpunkt gerade keine Daten übertragen werden. Bei USB 2.0 war die Anzahl der isochronen Kanäle beschränkt, wodurch die Anzahl der anschließbaren Kameras beschränkt war.

USB datapack transmission