MoDAS (Modulares Daten-Aufzeichnungs-System)

MoDAS (Modulares Daten-Aufzeichnungs-System)

Wir entwickelten MoDAS, ein System, dass die Daten von unseren astronomischen Kameras in Echtzeit erfasst, aufzeichnet, verarbeitet und darstellt.

Überblick

MoDAS wird benutzt, um bei unseren Beobachtungen an verschiedenen Teleskopen Speckle-Bilder aufzuzeichnen und anzuzeigen. Durch seine Bildverarbeitungs-Funktionen gibt das System bereits während der Beobachtung wertvolle Informationen über die Qualität der aufgezeichneten Daten. MoDAS wird auch für Labortests verwendet, um unsere Kameras weiter zu verbessern. Beispielsweise dient es dazu, die Eigenschaften von Bildsensoren zu ermitteln oder um Rauschanalysen durchzuführen.

MoDAS wurde so entwickelt, dass es den besonderen Ansprüchen unserer Tätigkeiten optimal entspricht. Die wesentlichen Merkmale sind:

  • Die Daten werden per FireWire in die Rechner übertragen.
  • Es können mehrere Kameras gleichzeitig betrieben werden.
  • Die Softwarestruktur ist modular aufgebaut.
  • Daten können an mehrere Konsumenten gleichzeitig verteilt werden.
  • Prozesse blockieren sich nicht gegenseitig wenn sie auf gemeinsame Daten zugreifen.
  • MoDAS ist für hohe Bild- und Datenraten ausgelegt.
  • Es existieren vielfältige Bildverarbeitungsfunktionen in Echtzeit (Leistungsspektrum, Langzeitbild, Histogramm, Maskierung defekter Pixel, Statistik, ...).

Hardware-Interface

Daten von jeweils einer Kamera werden über Lichtwellenleiter an jeweils eine Interface-Box übertragen. Die Interface-Box empfängt die Daten und verteilt diese per FireWire-Bus (IEEE1394 serieller Bus). Dabei wird ein sogenannter isochroner Kanal des FireWire-Busses benutzt.

Betreibt man mehrere Kameras gleichzeitig, dann können mehrere Interface-Boxen an einem FireWire-Bus angeschlossen werden. Sie senden ihre Daten dann auf unterschiedlichen isochronen Kanälen. Dadurch kann jeder an dem FireWire-Bus angeschlossenen Rechner jeden der Datenströme empfangen.

Interface-Boxen können kaskadiert werden, so dass die Daten einer Kamera an mehrere Boxen gehen. Jede Interface-Box kann somit ihre Daten auf einen anderen FireWire-Bus senden, falls dies gefordert ist.

Die Vorteile von FireWire sind:

  • hohe Datenrate
  • als Schnittstelle an vielen Notebooks verfügbar
  • nicht-blockierende Datenverteilung durch isochrone Kanäle
  • garantierte Bandbreite durch isochrone Kanäle

Software-Framework

Das Software-Framework besteht aus:

  • MODULES: Module für die Datenverarbeitung, z.B. Datenempfang, Aufzeichnung, Anzeige
  • CHANNELS: Kanäle, um Eingänge und Ausgänge von verschiedenen Modulen miteinenader zu verbinden
  • FRAMES: Datenpakete, die über Channels transportiert werden und innerhalb von Modulen verarbeitet werden
  • Einer Befehlsstruktur, um das Framework zu steuern

Frames

Unter einem Frame versteht man bei MoDAS ein Paket von zusammengehörigen Daten, z.B. die Pixel eines vollständigen Bildes. Dazu gehören auch Zusatzinformationen wie Bildgröße, Belichtungszeit, etc. Die Größe eines Frames ist je nach Inhalt unterschiedlich. Frames werden innerhalb von Modulen benutzt oder über Channels von Modul zu Modul transportiert. MoDAS kennt unterschiedliche Typen von Frames, abhängig davon, welche Art von Informationen sie beinhalten. Alle Frametypen haben jedoch eine Anzahl gemeinsamer Eigenschaften die es erlauben, ein Frame zu versenden, zu transportieren und zu empfangen, ohne seinen Typ oder Inhalt kennen zu müssen.

Channels

Channels sind Kanäle die benutzt werden, um Frames zwischen Modulen zu transportieren. Ein Channel entsteht am Ausgang eines sendenden Modules (ein Produzent) und kann Eingänge mehrere empfangender Module beliefern (mehrere Konsumenten).

Es besteht die Möglichkeit, eine garantierte Anzahl von Frames zu abonnieren, um diese verzögert abzurufen. Ein Channel stellt immer eine Anzahl der aktuellsten Frames bereit. Ein Konsument kann sich davon entweder das älteste, das er noch nicht hatte, holen oder das neueste und dabei die zwischenzeitlich eventuell neu hinzugekommenen auslassen. Die erste Strategie wird empfohlen, um eine möglchst lückenlose Serie zu bekommen, z.B. wenn man die Daten aufzeichnet. Die letztere Strategie dient dazu, immer das aktuellste Frame zu bekommen, um es beispielsweise anzuzeigen.

Sollte ein Konsument zu langsam sein, um mit der Frame-Rate mitzuhalten, so werden Frames an seinem Eingang ausgelassen. Das beeinflusst weder den Produzenten der Frames, noch die anderen Konsumenten, die über den gleichen Channel beliefert werden. Channels basieren auf dem Linux Shared-Memory-Filesystem und benötigen keine eigenen Prozesse.

Modules

Innerhalb von MoDAS existieren unabhängige Datenverarbeitungseinheiten die als Modules bezeichnet werden. Ein typisches Modul liest periodisch ein Frame aus einem Channel ein, wendet einen Algorithmus darauf an, erzeugt dabei ein neues Frame als Erbebnis und schreibt dieses auf einen anderen Channel raus. Jedes Modul ist spezialisiert auf seine eigentümliche Aufgabe. Durch Verkettung von Modulen kann eine Verarbeitungs-Pipeline aufgebaut werden.

  • Receiver: Empfängt Kamera-Daten vom FireWire-Interface und gibt Frames vom Typ CAM aus. Darin sind Pixel in der Reihenfolge angeordnet wie sie von der Kamera-Elektronik erzeugt werden.
  • Preparer: Liest CAM-Frames ein und gibt Frames vom Typ RAW aus. Darin sind die Pixel richtig sortiert und können mit xyz-Koordinaten und einem Subwindow-Index adressiert werden. Das Umsortieren der Pixel hängt vom jeweiligen Auslese-Modus ab (z.B. mehrere Quadranten, mehrere Subwindows, Rolling Reset) und wird vom Preparer-Modul automatisch erkannt.
  • Differencer: Liest RAW-Frames ein und gibt Frames vom Typ DIF aus. Ein RAW-Frame enthält in der Regel zwei (oder auch mehr) aufeinanderfolgende Auslesungen eines Bildsensors. Die erste Auslesung muss von der zweiten subtrahiert werden um ein brauchbares Bild zu bekommen. Zusätzlich zur Differenzbildung kann das Differencer-Modul auch defekte Pixel maskieren.
  • Recorder: Liest RAW- oder DIF-Frames ein und speichert diese im Dateisystem.
  • Display: Liest Cam-, RAW- oder DIF-Frames ein und stellt diese auf dem Bildschirm dar. Das Dislay-Modul kann auch Leistungsspektren, Langzeitbilder, Histogramme und statistische Informationen berechnen und darstellen.

Es ist möglich, mehrere Instanzen eines Moduls zu starten. Somit können mehrere Displays oder Rekorder gleichzeitig auf dem selben Rechner oder auf unterschiedlichen Rechnern laufen.

Nebenläufig zu seiner Datenverarbeitungsaufgabe läuft auf jedem Modul eine Befehlsschnittstelle in einem eigenen Thread. Damit können Parameter und das Arbeitsverhalten zur Laufzeit verändert werden.

Befehlsstruktur

Durch die Benutzung von Internet-Sockets kann sich das Framework über ein beliebiges Netzwerk von beteiligten Rechnern erstrecken. Benutzer können an jedes Modul direkte Befehle schicken wenn dies nötig ist. Dadurch wird ein höchstes Maß an Flexibilität erreicht. Für die meisten Anwendungsfälle stehen jedoch grafische Benutzeroberflächen zur Verfügung um den Umgang mit MoDAS zu vereinfachen. Beim Einsatz für Beobachtungen ist es nicht nötig, dass der Astronom sich mit der internen Befehlsstruktur auskennt.

Zur Redakteursansicht