Dokumentation

GMSL2-Kamerasysteme

Remote CSI-2-Kameraintegration für Raspberry Pi über GMSL2-Koaxialverbindungen.

GMSL2-Kamerasysteme

Überblick

Die BE-IIS-GMSL2-Hardware verlegt eine CSI-2-Kamera vom Raspberry-Pi-Prozessor weg und überträgt den Videostream über ein einzelnes Automotive-Koaxialkabel. Das eignet sich für abgesetzte Bildsensoren, flexible Kabelbäume und zwei synchronisierte Kamerapositionen.

Das System besteht aus einem Deserializer-HAT auf Raspberry-Pi-Seite und einem Serializer-Board pro abgesetzter Kamera.

Galerie des Kamerasystems

Die vier Bilder oben zeigen das vollständige Kamerasystem. Ein kleines Bild anklicken, um es als großes Bild anzuzeigen; die Lupe öffnet jedes Bild vergrößert.

Zu sehen sind Systeme mit 3-m- und 10-m-Koaxialverbindung. Beide liefen in der Demonstration zuverlässig – ohne sichtbare Bildaussetzer oder Link-Verlust.

Kein Kernel-Build erforderlich

Die gezeigte Kameraverbindung funktioniert mit der normalen Raspberry-Pi-Kamerasoftware; ein eigener Kernel-Build oder spezieller Kamera-Kernel ist nicht erforderlich. Serializer und Deserializer werden unter Linux mit den üblichen I²C-Werkzeugen und dem offenen BE-IIS Camera Installer konfiguriert.

Damit bleibt die Inbetriebnahme nachvollziehbar: GMSL2-Bausteine per I²C konfigurieren und anschließend die üblichen rpicam-Anwendungen für Vorschau und Aufnahme verwenden.

Kameraflexibilität und Demo-System

Die Demonstration wurde mit Sony-IMX708-Kameras aufgenommen. Sie zeigt, dass sich Raspberry-Pi-CSI-2-Kameras mit einer einfachen Konfiguration über eine GMSL2-Koaxialstrecke übertragen lassen.

Der IMX708 ist ein erprobtes Beispiel, aber keine Einschränkung. Auch andere Raspberry-Pi-Kameramodule funktionieren, wenn CSI-2-Format, Lane-Konfiguration und Linux-Kameratreiber vom System unterstützt werden. Als Host kann ein Raspberry Pi oder ein anderer SBC mit kompatiblem CSI-2-Kameraeingang und passender Linux-Kameraunterstützung dienen.

Der BE-IIS-GMSL2-2CAM-HAT ist auch für komplette, fertige Kamerasysteme ausgelegt. Das BE-IIS-GMSL-SER-Board ist ein offener Adapter und eine Entwicklungsplattform, aber nicht zwingend nötig, wenn eine kompatible GMSL-Kamera bereits den Serializer-Link enthält.

Flexible Power over Coax

Power over Coax (PoC) lässt sich von 5 V bis 24 V einstellen. Dadurch passt der HAT zu unterschiedlichen Versorgungsanforderungen abgesetzter Kameras und Kabelinstallationen.

Hardware-Architektur

Der Dual-Kamera-HAT nutzt einen GMSL2-Deserializer und liefert CSI-2-Video an die Kamera-Schnittstelle des Raspberry Pi. Das Serializer-Board verbindet sich über seinen 22-poligen FFC/FPC-Stecker mit einer kompatiblen Kamera und serialisiert den CSI-2-Stream auf die Koaxialverbindung.

Über dieselbe Verbindung laufen auch I²C-Steuerung, Kamera-Reset und Camera-Enable zwischen Host und abgesetzter Kamera. Wenn das System für PoC ausgelegt ist, kann die Versorgung ebenfalls über das Koaxialkabel erfolgen.

BE-IIS-Kamera-Hardware

Das System nutzt den Host-HAT BE-IIS-GMSL2-2CAM mit einem oder zwei Kameraadapter-Boards BE-IIS-GMSL-SER.

Hinweis zum B-Muster: Digipot entfernt

Das B-Muster enthält keinen Digipot mehr. Die Einstellungen von Deserializer und Serializer sind per I²C erreichbar; der Digipot hatte damit keine aktive Funktion mehr und wurde entfernt.

Software-Ablauf

Der BE-IIS Camera Installer bereitet die Raspberry-Pi-Konfiguration vor und richtet die GMSL2-Links ein:

  1. die relevante CSI-/I²C-Konfiguration aktivieren
  2. Deserializer- und Serializer-Links initialisieren
  3. I²C-Aliase für den abgesetzten Bildsensor einrichten
  4. CSI-2-Pipeline konfigurieren
  5. Kamera mit den Raspberry-Pi-Kameraanwendungen starten

Die geprüfte Dual-Kamera-Konfiguration nutzt Sony-IMX708-Sensoren im RAW10-Format mit 2304 × 1296 Pixeln, zwei CSI-2-Lanes und 900 Mbit/s je Lane. Die Initialisierung ist bewusst manuell; kein systemd-Dienst richtet einen Kamera-Link automatisch ein.

Geprüfter Dual-Kamera-Ablauf

cd ~/be-iis-cam-installer
make unoverlay
make prepare-a-b
make pipeline-a-b
rpicam-hello --list-cameras

Link A verwendet den IMX708-Alias 0x52 und erscheint als rpicam-Kamera 1. Link B nutzt 0x53 und erscheint als rpicam-Kamera 0. Für die lokale Vorschau stehen make video-0, make video-1 und make video-dual bereit.

Videovorschau und Stream zum PC

make video CAMERA=0
# oder
make video CAMERA=1
make video-dual

Zum Streamen auf einen PC den rpicam-Stream als H.264 über RTP/UDP senden. PC_IP durch die IP-Adresse des empfangenden PCs ersetzen:

rpicam-vid --camera 0 --timeout 0 --inline --codec h264 --width 2304 --height 1296 --framerate 30 --output - | \\
  gst-launch-1.0 -q fdsrc ! h264parse ! rtph264pay pt=96 config-interval=1 ! \\
  udpsink host=PC_IP port=5000

Auf dem PC mit GStreamer öffnen:

gst-launch-1.0 -v udpsrc port=5000 caps="application/x-rtp,media=video,encoding-name=H264,payload=96,clock-rate=90000" ! \\
  rtph264depay ! avdec_h264 ! autovideosink sync=false

In der geprüften Dual-Kamera-Konfiguration ist Kamera 0 Link B und Kamera 1 Link A. Für den direkten LAN-Stream eine passende Netzwerkverbindung verwenden und bei Bedarf Auflösung oder Bildrate reduzieren.

Dual-Kamerasysteme

Zwei unabhängige GMSL2-Links eignen sich für Stereo-Vision-Demonstrationen, abgesetzte Industriekameras und Multi-Kamera-Evaluierungen. Jeder Link muss separat initialisiert werden; Kameraadressen und Aliase müssen eindeutig sein.