Ein geschlossenes Testsystem lässt sich mit PCIe-Digitizer- und -AWG-Karten aufbauen. Getestet wurde mit Windows und Linux und es kam eine Grafikkarte (GPU) zum Einsatz. Die Latenzen fielen dabei sehr unterschiedlich aus.
Hardware-in-the-Loop: Aufbau eines PC-basierten Closed-Loop-Systems mit einem PCIe-Digitizer und einer PCIe-AWG in Kombination mit einer einfachen Programmierung in C++.
(Bild: Spectrum Instrumentation)
Geschlossene Hardware-Tests (Hardware in the Loop) mit PC-basierten Systemen und unter Verwendung von PCIe-Digitizer-Karten sowie PCIe-AWG (Arbitrary Waveform Generator) zusammen mit C++ eignen sich in der Elektronik, bei denen es auf geringe Latenzen ankommt. Solche Anwendungsgebiete werden unter dem Namen Echtzeit-Anwendungen zusammengefasst.
Doch bei dem Begriff Echtzeit ist Vorsicht geboten: Ursprünglich bezog er sich auf hardwarebasierte Entwicklungen, bei denen eine definierte und garantierte Reaktionszeit gewährleistet werden musste. Sie stellte sicher, dass das Setup rechtzeitig auf einen externen Stimulus reagiert. Beispiele finden sich in der Automobil-, Luft- und Raumfahrt. Echtzeit wird jedoch häufig als Synonym für eine schnelle Antwort verwendet. In solchen Fällen ist die Latenz zwischen Eingabe und Ausgabe (Entscheidungs- und Reaktionszeit) entscheidend.
Bildergalerie
Kontrollkreise: Der Eingang der Schaltung wird als Basis für den Ausgang verwendet, um ein oder mehrere externe Geräte zu steuern.
Entscheidungsfindung: Die Schaltung reagiert auf ein externes Ereignis und liefert einen geänderten Output.
Manipulationsschleifen: Diese Schaltungen erfassen ein Signal, nehmen eine Veränderung vor und geben das veränderte Signal erneut aus.
Stimulus-Response-Systeme: Ein Signal wird erzeugt und ausgesandt, die zurückkehrenden Signale werden erfasst und analysiert, wobei anschließend eine Entscheidungsfindung erfolgt.
Die von Spectrum Instrumentation angebotenen Digitizer- als auch AWG-Karten sind für die schnelle Datenübertragung im FIFO-Modus ausgelegt. Ein schneller FIFO-Modus basiert auf optimierten Treibern, die den Scatter-Gather-DMA-Prozess (Direct Memory Access) steuern. Doch ein hoher Durchsatz führt dazu, dass Daten gepuffert werden müssen.
Erstens basiert ein schneller DMA-Prozess auf Übertragungen mit großer Puffergröße. Das optimiert die Relation zwischen Datenübertragung und Steuerbefehlsaufwand. Zweitens kann jede externe Verzögerung in der Antwort- oder Reaktionszeit durch die großen Puffer kompensiert werden. Wenn die Puffer zu klein sind, ist das Ergebnis ein Über- oder Unterlaufen der FIFO-Puffer, wodurch die FIFO-Übertragung gestoppt wird.
Einschränkungen bei einem FPGA-System
Der klassische Ansatz für diese Anwendungen besteht darin, ein Echtzeit-Betriebssystem mit definierten Antwortzeiten und Prioritätssteuerung zu haben, passende Echtzeit-Treiber und -Hardware, optimiert für kurze Latenzzeiten (und nicht für höchsten Durchsatz). Eine noch schnellere Lösung wäre die Implementierung des gesamten Prozesses in Hardware (FPGA) ohne Interaktion des Host-Systems. Bei einer FPGA-Lösung kann es schnell zu Programmierzeit- oder Kostenüberschreitungen kommen: Die FPGA-Programmierung erfordert spezielle Kenntnisse und die Hardware unterliegt häufig Einschränkungen, die die Systemfunktionalität und die Datenverarbeitungsfähigkeit begrenzen.
Aber auch Echtzeitsysteme können Probleme verursachen: Neben zusätzlichen Lizenzkosten für ein Echtzeitbetriebssystem kann der Zugriff auf nützliche Softwaretools von Drittanbietern einschränkt sein. In vielen Fällen erweist sich daher die Einrichtung eines auf Windows- oder Linux-basierenden Closed-Loop-Systems als wirtschaftlicher und schneller zu implementieren.
Für einen Überblick über die Leistungsfähigkeit eines Closed-Loop-System unter Windows wurde ein Testsystem mit einem Spectrum M4i.4451-x8 Digitizer und einem M4i.6622-x8 AWG konfiguriert. Beide Karten sind extern verbunden. Der Referenztaktausgang des Digitizers wird verwendet, um den Referenztakteingang des AWG zu speisen und für die Taktsynchronisation zu sorgen. Der Triggerausgang des Digitizers wird verwendet, um die Ausgabe des AWG zu starten. Der AWG wird mit einigen Nulldaten vorgeladen, die wiedergegeben werden, bis der AWG die erfassten Digitalisiererdaten empfängt.
Die Werte der Latenz hängen vom Betriebssystem ab
Tabelle 1: In einem Test kam Windows 7 Professional zum Einsatz. Die Ergebnisse zeigt die Tabelle.
(Bild: Spectrum Instrumentation)
Tabelle 2: Die Messergebnisse mit einem Linux-System. Gleiches Set-up wie in Tabelle 1.
(Bild: Spectrum Instrumentation)
Die Größe der vorgeladenen Daten definiert die Latenz zwischen den erfassten Daten und den Schleifendaten. In einem ersten Test kam Windows 7 Professional zum Einsatz. Die Messergebnisse zeigt die erste Tabelle. Wie aus der Tabelle hervorgeht, wurden die besten Ergebnisse mit einer Benachrichtigungsgröße (Notify Size) für die DMA-Übertragung erzielt, die den Softwarepuffer in drei oder vier Teile aufteilt. Die minimale Benachrichtigungsgröße, die stabil funktioniert, liegt bei 64 kByte. Diese Einschränkung ergibt sich aus den internen Hardware-Puffern, deren Größe von den Software-Puffern kompensiert werden muss. Die hier gezeigten Ergebnisse sind die beste Leistung, die für Laufzeiten von einer Minute erreicht wurde.
Tabelle 3: Hier wird eine GPU verwendet mit der SCAPP-Option unter Linux.
(Bild: Spectrum Instrumentation)
Bei dem gleichen Setup-Aufbau, allerdings mit Linux, mit einem M4i.4451-x8 Digitizer und einem M4i.6622-x8 AWG wird dem System eine GPU hinzugefügt. Wiederum sind beide Karten extern mit dem Referenztaktausgang des Digitizers verbunden, der den Referenztakteingang des AWG speist, und dem Triggerausgang des Digitizers, der den Ausgang des AWG startet.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Bei einer Grafikkarte (GPU) ist ein größerer Puffer notwendig
In diesem Setup empfängt und überträgt die GPU alle Daten direkt über RDMA. Die GPU kopiert die Daten ohne Manipulation nur einmal vom Digitalisierpuffer in den AWG-Puffer. Der AWG wird mit einigen Nulldaten vorgeladen, die wiedergegeben werden, bis die erfassten Daten des Digitizers von der GPU empfangen werden. Die Größe der vorgeladenen Daten definiert die Latenz zwischen erfassten Daten und Schleifendaten. Das GPU-Setup benötigt mehr Puffer, um stabil zu laufen. Das ist hauptsächlich auf die Tatsache zurückzuführen, dass die Linux-Umgebung selbst mehr Puffer benötigt, um Hintergrundaufgaben zu kompensieren.
Tabelle 4: Ergebnisse für GPU-basierte Software unter Windows.
(Bild: Spectrum Instrumentation)
Unter Windows ist keine direkte Datenübertragung (RDMA = Remote Direct Memory Access) zwischen Digitizer/AWG und GPU möglich, da der Nvidia-Treiber die Funktion nicht unterstützt. Es müssen zuerst Daten in den CPU-Speicher übertragen, dort kopiert und dann zur GPU geschickt werden. Die manipulierten Daten müssen auf dem gleichen Weg zurückkehren. Das erhöht sowohl die Latenz und das Risiko von Über- und Unterläufen, da insgesamt vier DMA-Übertragungen für jeden Block ausgeführt werden müssen (Tabelle 4). Wie zu erwarten, sind die Testergebnisse und die Stabilität in diesem Szenario am schlechtesten.
Das Betriebssystem ist der Flaschenhals
Die von Anbieter entwickelte Hardware ist auf einen hohen Datendurchsatz getrimmt und verfügen über einen großen FIFO-Puffer. Daher bietet das nicht deterministische Verhalten von Standardbetriebssystemen wie Windows oder Linux keine optimale Systemleistung, wenn es um Anwendungen mit geschlossenem Regelkreis geht. Das führt zu einem Kompromiss zwischen Stabilität und Latenzleistung. Obwohl die Hard- und Software von Spectrum schnelle Reaktionszeiten mit einer Latenz im Sub-ms-Bereich ermöglichen, ist die Stabilität ein Problem, wenn das Betriebssystem die vorgeschriebenen Antwortzeiten nicht garantieren kann. Während des Tests sind viele Störungen auf Betriebssystemebene aufgetreten, die die Ausführung eines Closed-Loop-Prozesses sofort beenden können.
Beispielsweise hat das Öffnen eines Browsers im Parallelbetrieb genug Prozessorzeit von der Schleife in Anspruch genommen, um die Ausführung zu stoppen. Für anspruchsvolle Anwendungen ist es daher am besten, wenn das Betriebssystem so wenig Programme und Hintergrundjobs wie möglich ausführen muss.