Eine wichtige Aufgabe in der Entwicklung und Fertigung ist das Aufspüren von fehlerhaften Signalen. Hierbei spielen die Trigger-Funktionen von Oszilloskopen eine zentrale Rolle, denn diese erlauben es, ein fehlerhaftes Signal in einem Strom von einwandfreien Signalen zu identifizieren.
Auf einen Blick
Softwaredesignte Messgeräte ermöglichen es dem Anwender, Messgeräte an eine spezielle Aufgabe anzupassen und beispielsweise auf kurze Testzeiten zu optimieren. Außerdem sind kontinuierliche Signalanalysen und Messungen durch Verwendung der FPGAs im Datenpfad möglich.
Anwender wünschen sich zunehmend flexiblere Trigger-Funktionen, um Effekte aufzuspüren, die nur unter speziellen Bedingungen auftreten. Außerdem sollte man Trigger-Bedingungen möglichst schnell, das heißt ohne Totzeit erkennen können, um Testzeiten zu minimieren. Mit dem Einsatz von FPGAs in Messgeräten lassen sich die Anforderungen erfüllen. Hier anlysieren benutzerdefinierte Algorithmen in den Messgeräten die erfassten Daten in Echtzeit.
Triggerfunktionen in traditionellen Oszilloskopen
Aktuelle Oszilloskope haben neben Standardfunktionen wie Edge-, Hysterese-, und Window-Trigger viele weitere Trigger-Möglichkeiten, beispielsweise das Erkennen von Pulsbreiten (PWM, Glitch) oder auch Dateninhalt auf seriellen Schnittstellen wie I2C, SPI oder NFC. Entweder sind diese Funktionen vom Hersteller fest in ein Instrument integriert oder als Zusatzpaket verfügbar. Eine Möglichkeit für Anwender, eigene Algorithmen in Oszilloskope zu integrieren oder spezielle Funktionen von externen Quellen (Drittanbieter) einzubinden ist allerdings nicht bekannt.
Die beschriebene Architektur basiert meist auf Software-Algorithmen, die sich auf Embedded-CPUs in Oszilloskopen ausführen lassen. Daher können Entwickler die beschriebenen Trigger-Funktionen nicht in Echtzeit auf erfasste Daten anwenden, denn auch leistungsfähige CPUs sind nicht in der Lage, Datenströme von mehreren GSample pro Sekunde zu verarbeiten, wie sie in Oszilloskopen üblich sind. Deshalb arbeiten Oszilloskope typischerweise, indem sie die erfassten Signale in Paketen, sogenannten Waveforms, von einigen tausend Samples verarbeiten und Samples zwischen diesen Paketen auslassen. Dies kann dazu führen, dass man Trigger-Bedingungen verpasst, weil sie nicht zufällig in ein solches Paket gefallen sind. Dies kann wiederum zu längeren Testzeiten führen oder zu der Situation, dass man fehlerhafte Signale überhaupt nicht detektieren kann.
Einführung in softwaredesignte Messgeräte
Seit vielen Jahren nutzen Ingenieure Softwarewerkzeuge wie Lab-View, um die Funktionen von traditionellen Messgeräten zu erweitern und in Testsysteme zu integrieren. Dieser Ansatz ist flexibel und kann PC-Technologie für die Signalverarbeitung nutzen, aber auch Prozessoren der jüngsten Generation sind wie oben erläutert nicht in der Lage Datenmengen von Oszilloskopen in Echtzeit zu verarbeiten.
Seit mehreren Jahren allerdings wird die FPGA-Technologie immer leistungsfähiger. FPGAs (Field-Programmable-Gate-Arrays) sind programmierbare Logikschaltkreise, welche sich – anders als universelle Prozessoren mit festen Befehlssätzen – für eine speziellen Aufgabe programmieren lassen. FPGAs vereinen die Leistungsfähigkeit, große Datenmengen zu verarbeiten, mit der Flexibilität, sich beliebig oft auf andere Aufgaben umprogrammieren zu lassen. Zusätzlich arbeiten FPGAs inhärent parallel, das bedeutet, dass sie mehrere Datenströme parallel verarbeiten können.
Die softwaredesignten Messgeräte vereinen laut National Instruments moderne Messtechnik mit der Leistungsfähigkeit von FPGAs, sodass Oszilloskope oder RF-Signalanalysatoren die erfassten Datenpunkte in Echtzeit kontinuierlich verarbeiten können. Dies ermöglicht dem Anwender, Daten schon während der Erfassung im Messgerät durch Algorithmen zu analysieren oder Trigger-Funktionen in das Gerät zu integrieren, um spezielle Signalformen oder Signal-Kombinationen in Echtzeit zu erkennen.
Ebenso lässt sich der FPGA in einem Messgerät nutzen, um das Verhalten eines Geräts zu emulieren, beispielsweise um ein nicht mehr verfügbares Gerät zu ersetzen. Ein Vertreter dieser Geräteklasse ist das rekonfigurierbare Oszilloskop PXIe-5171R (Bild 2). Es besitzt acht Eingangskanäle mit 250 MHz Bandbreite und einer Auflösung von 14 Bit. Ein Kintex-7-FPGA von Xilinx ist direkt in den Datenpfad integriert und hat Zugriff auf alle Steuerleitungen im Gerät.
Um die Funktion von softwaredesignten Messgeräten zu programmieren, stehen dem Anwender Lab-View-FPGA und Instrument Design Libraries (IDLs, Entwicklungsbibliotheken) zur Verfügung. Die Instrument Design Libraries sind Softwarebibliotheken, die Gerätedetails und Kommunikation zwischen FPGA und Host-PC ähnlich einem Gerätetreiber abstrahieren und so dem Anwender die Low-Level-Programmierung abnehmen. Dennoch ist der Code dieser Bibliotheken offen. Der Anwender kann ihn einsehen oder verändern. In den IDLs stehen Funktionsblöcke für die Konfiguration des Messgeräts, die Erfassung von Signalen und den Datentransfer zur Verfügung, wobei sich die Bibliotheken aufteilen in Funktionsblöcke für den FPGA im Messgerät selbst und Funktionen für den Host-PC. Selbstverständlich lassen sich auch weitere Funktionen aus Lab-View-FPGA sowie VHDL-Code (etwa aus den Xilinx-Bibliotheken) einbinden, um das Messgerät zu programmieren.
Benutzerdefinierte Trigger-Funktionen in rekonfigurierbaren Oszilloskopen
Spezielle Trigger-Funktionen in einen FPGA im Oszilloskop zu integrieren ermöglicht es, ein Messgerät für eine sehr spezielle Aufgabe zu optimieren. Im Fertigungstest kann so etwa die Notwendigkeit für eine Nachverarbeitung von Daten im PC entfallen, beispielsweise wenn der Entwickler ein Signal erst demodulieren muss, bevor er auf die enthaltenen Daten triggern kann. Beides lässt sich elegant im FPGA lösen. Auch Totzeiten bei Messungen sind vermeidbar, da man die Signale ohne Unterbrechung analysieren kann.
Dies kann zu einer erheblichen Reduzierung von Testzeiten wie auch von Kosten führen, weil Messgeräte vielseitiger einsetzbar sind und ein Gerät mehrere Aufgaben übernehmen kann. Ein einfaches Beispiel für benutzerdefinierte Trigger-Funktionen sind logische Kombinationen von einzelnen Zuständen (Pegel) und Ereignissen, wie beispielweise Signalflanken. Im FPGA eines rekonfigurierbaren Oszilloskops ist dies, wie in Bild 4 gezeigt, mit wenigen Gatter-Elementen leicht zu realisieren. In den Beispielen sind Flanken (Edge)-Trigger und Spektrummasken-Trigger mit Und- und Oder-Gattern verknüpft. Das kombinierte Trigger-Signal steuert die Erfassungs-Engine aus den Lab-View-Instrument-Design-Libraries, welche die Erfassung und Transport der erfassten Signalform zum Host-PC übernimmt.
Durch Verwendung der Fourier-Transformation aus dem Funktionsumfang von Lab-View-FPGA lässt sich ebenfalls leicht ein Spektrum-Trigger erstellen, mit dem gezielt die Pegelüberwachung einzelner Frequenzkomponenten erfolgen kann. Selbstverständlich lassen sich Trigger im Frequenz-, Zeit- und Datenbereich kombinieren, um beispielsweise Wechselwirkungen zwischen übertragenen Daten und Störungen im Frequenzbereich aufzudecken.
Ein weiteres Beispiel sind Trigger-Funktionen, die einen Signalverlauf erkennen können. Hierzu nutzt das FPGA mehrere Window-Trigger, welche die einzelnen Punkte einer erfassten Signalform überprüfen (Bild 5). Erkennen alle Window-Trigger gleichzeitig einen Datenpunkt in ihrem Fenster, wird der Trigger ausgelöst und das Signal mit Pre- und Post-Samples erfasst. Diese Funktion kann zum Beispiel nützlich sein, um Störungen in einem Signal, etwa Datenbits mit überlagerter Signalreflexion zu erfassen, aber auch um beispielsweise einen speziellen Dateninhalt einer seriellen Übertragung zu identifizieren.
(rao)