53265.jpg

Auf einen Blick

In den 1960er-Jahren waren computerbasierte Datenerfassungssysteme von IBM fast zwei Meter hoch, hatten eine maximale Erfassungsrate von 1 MB/s und kosteten über 250.000 Dollar. Heute sind Datenerfassungsgeräte schneller, bedeutend kleiner und kostengünstiger. Darüber hinaus nutzen sie eine Vielzahl von PC-Bussen, darunter PXI, PXI Express, PCI, PCI Express, USB und Ethernet.

Die Notwendigkeit von Messgeräten und Datenerfassung ist nichts Neues. Seit Erfindung der ersten Wasseruhr hat sich die Technologie weiterentwickelt und somit auch die eingesetzten Werkzeuge. In den letzten 50 Jahren erlebte die Technologie, die zur Datenerfassung verwendet wird, wesentliche Veränderungen.

Bei Anwendungen mit höherer Leistung reichen moderne Datenerfassungsgeräte jedoch nicht mehr aus, da diese Anwendungen üblicherweise einen Funktionsumfang erfordern, welche die Fähigkeiten, die in ein ASIC integriert sind, übersteigt.

Bild 1: Traditionelle FPGA-Programmierung kann beispielsweise durch den Einsatz der Hard- und Software der R-Serie von National Instruments vereinfacht werden.

Bild 1: Traditionelle FPGA-Programmierung kann beispielsweise durch den Einsatz der Hard- und Software der R-Serie von National Instruments vereinfacht werden.National Instruments

Zu diesen Funktionen zählen das Ausführen von Hochgeschwindigkeits-Steuer- und -Regelalgorithmen, das Umsetzen benutzerdefinierter Timing- oder Triggeringanforderungen, das Implementieren benutzerspezifischer digitaler Kommunikationsprotokolle, das Durchführen von Inline-Signalverarbeitung sowie das Bereitstellen exakter Timings für kritische Aufgaben. Stehen Anwender häufig vor diesen Herausforderungen, entwickeln sie heterogene Verarbeitungssysteme, um ihrem Bedarf gerecht zu werden (Bild 2).

Diese Systeme vereinen mehrere Verarbeitungseinheiten, einschließlich CPUs und anwenderprogrammierbare FPGAs. Sie ermöglichen das Erreichen der notwendigen Flexibilität und des erforderlichen Leistungsniveaus – zwei Faktoren, die bei leistungsstarken Anwendungen benötigt werden.

Bild 2: Dieses heterogene Verarbeitungssystem setzt sich aus einem computerbasierten Prozessor und einem anwenderprogrammierbaren FPGA zusammen.

Bild 2: Dieses heterogene Verarbeitungssystem setzt sich aus einem computerbasierten Prozessor und einem anwenderprogrammierbaren FPGA zusammen.National Instruments

Weg 1: Hochgeschwindigkeitssteuerung

Bei der Programmierung eines FPGAs wird die Anwendung in der Hardware ausgeführt. Das bedeutet, dass die Ausführungsgeschwindigkeit nur durch die verfügbaren Takte und Logikverzögerungen begrenzt wird. Durch Einsatz des FPGAs können nicht nur äußerst schnelle ereignisorientierte Anwendungen, sondern auch Steuer- und Regelschleifen erstellt werden, die (je nach den Inhalten der Schleife) mit Taktraten im Megahertz-Bereich ausgeführt werden. Die Bandbreite reicht von einfachen PID-Algorithmen bis hin zu Algorithmen für Übertragungsfunktionen und Raum-Zeit-Modelle.

Ein ASIC-basiertes Datenerfassungsgerät verfügt üblicherweise nur über eine Timing-Engine pro Subsystem. Das bedeutet, dass die I/O im Subsystem bei maximaler in Software erforderlicher und dezimierter Geschwindigkeit abgetastet werden muss, wodurch – abhängig von der Größe des Datensatzes – wertvolle Prozessorressourcen belegt werden. FPGA-Hardware hingegen erlaubt eine echte parallele Ausführung, was es ermöglicht, jeden Kanal mit seiner eigenen Rate abzutasten. So können Anwendungen mit mehreren Steuerschleifen entwickelt werden, die bei gleichen oder unterschiedlichen Geschwindigkeiten ausgeführt werden. Auf gewöhnlichen ASIC-basierten Multifunktions-Datenerfassungsgeräten gibt es diese Funktion nicht.

Weg 2: Benutzerdefiniertes Timing und Triggern

Viele Datenerfassungsgeräte sind mit komplexer Triggerfunktionalität ausgestattet – einer Funktion, die für das Gros an Anwendungen ausreicht. Dazu können Start- oder Referenztrigger zählen, die digitale und analoge Funktionen umfassen. Da jedoch ein Großteil der Datenerfassungsgeräte ASICs verwendet, ist das benutzerdefinierte Anpassen der Trigger im Normalfall eingeschränkt. Soll zum Beispiel ein benutzerdefinierter Trigger erstellt werden, der eine Datenerfassung auslöst, wenn auf zwei digitalen Leitungen der Pegel auf „High“ wechselt und ein Analogeingang ebenfalls einen bestimmten Grenzwert überschreitet oder wenn auf eine bestimmte Anzahl an digitalen Impulsen gewartet werden müsste, bevor eine Datenerfassung beginnen kann, wäre es Anwendern nahezu unmöglich, dies mit einem ASIC-basierten Datenerfassungsgerät zu erreichen.

Dank FPGA-basierter Datenerfassungsgeräte ist es jedoch möglich, Trigger auf Grundlage von benutzerdefinierten Kriterien zu erstellen. Lediglich die Software schränkt Anwender in ihren Programmiermöglichkeiten ein. Diese Triggervorgänge werden ausschließlich in Hardware ausgeführt, sodass sie mit extrem geringer Latenz (bis zum Nanosekundenbereich) funktionieren. Das kann um einiges schneller gehen, als dieselben benutzerdefinierten Vorgänge auf einem Host-PC zu implementieren und sich mit den damit verbundenen Busübertragungen auseinanderzusetzen.

Weg 3: Benutzerspezifische digitale Kommunikationsprotokolle

Bei vielen Anwendungen ist es erforderlich, eine Schnittstelle zwischen Geräten zu bilden, indem unübliche oder benutzerspezifische digitale Kommunikationsprotokolle verwendet werden. Häufig ist die spezifische Hardware, die für diese Anwendungen benötigt wird, jedoch entweder nicht verfügbar oder unerschwinglich. In anderen Fällen arbeiten Anwender lieber mit nur einer physikalischen Schnittstelle, die mittels einer Vielzahl von Protokollen kommuniziert, um die Systemkosten zu senken und die Systemgröße zu reduzieren. FPGA-basierte Datenerfassungsgeräte eignen sich hervorragend für diese Art von Anwendung. Beispielsweise können Protokollcodierung und -decodierung an den FPGA abgegeben werden, was zu wirklich benutzerdefinierten Bitströmen und einer reduzierten Verarbeitungslast auf der Host-CPU führt. Ein weiterer, daraus entstehender Vorteil sind einfachere Host-Programme, die direkt mit Daten anstelle von Low-Level-Protokollsignalen arbeiten. Da der FPGA inhärent parallel und in der Software definiert ist, kann er unterschiedliche Gerätemerkmale annehmen, um als flexible Schnittstelle für praktisch jedes Kommunikationsprotokoll zu dienen, einschließlich I2C and SPI sowie benutzerspezifische digitale Protokolle.

Darüber hinaus können Anwender unter Einsatz eines FPGA-basierten Datenerfassungsgeräts für benutzerspezifische Kommunikationsprotokolle mit Geräten kommunizieren, die Reaktionen auf bestimmte Signale innerhalb eines festen oder vorgegebenen Zeitraums erfordern. Die Funktionen mit geringer Latenz und zur Entscheidungsfindung des FPGAs lassen Anwender diese Anforderungsarten erfüllen, indem bestimmte Daten intern verarbeitet werden, ohne dass Daten mit der CPU ausgetauscht werden müssen.

Weg 4: Onboard-Signalverarbeitung

Wird ein gängiges ASIC-basiertes Datenerfassungsgerät verwendet, werden Daten erfasst und anschließend an einen Prozessor geschickt, der die Verarbeitung, Mathematik und Analyse übernimmt. Signalverarbeitung wie Codierung, Decodierung, Filterung, Mittelwertbildung, Modulation, Dezimierung und schnelle Fourier-Transformationen kann sehr prozessorintensiv sein. Bei der Arbeit mit einer anspruchsvollen Anwendung, die durch die CPU-Bandbreite eingeschränkt ist, ermöglicht das Auslagern eines Teils der Signalverarbeitung auf ein Datenerfassungsgerät eine erhebliche Reduktion der CPU-Last und eine Durchsatzsteigerung.

Eine gängige Methode ist das Nutzen der echten Parallelität eines FPGAs zur Vorverarbeitung paralleler Daten, um schneller Entscheidungen treffen zu können oder kleinere Sätze an verarbeiteten Daten an die CPU, zum Beispiel zur späteren Analyse oder Speicherung, weiterzuleiten. Durch integrierte Verarbeitung können sofort Entscheidungen getroffen und Berechnungen auf dem FPGA durchgeführt werden, wodurch die Gesamteffizienz deutlich verbessert wird. FPGA-basierte Datenerfassungsgeräte können ebenfalls in Co-Processing-Anwendungen eingesetzt werden, wo prozessorintensive Tasks an den FPGA ausgelagert werden. In diesem Fall werden Daten direkt an den Host-Rechner weitergeleitet, auf dem FPGA verarbeitet und dann zurückgeschickt.

Weg 5: Präzises Timing und Zuverlässigkeit für kritische Aufgaben

Bild 3: Architektur von FPGA-basierten im Vergleich zu ASIC-basierten Datenerfassungsgeräten.

Bild 3: Architektur von FPGA-basierten im Vergleich zu ASIC-basierten Datenerfassungsgeräten.National Instruments

Für kritische Verarbeitungsaufgaben, die sich keine Ausfallzeiten leisten können und straffes Timing sowie strikten Determinismus erfordern, können FPGA-basierte Datenerfassungsgeräte präzises Timing ebenso wie ein hohes Maß an Zuverlässigkeit bieten. Da die FPGA-Hardware parallel arbeitet und ein komplexer Softwarestapel, der integriert ausgeführt wird, fehlt, können FPGA-Anwendungen wesentlich zuverlässiger sein als der entsprechende Prozessorcode (Bild 3).

Des Weiteren führt die Beschaffenheit von FPGAs und den präzisen Taktsignalen dazu, dass die Anwendungen mit einem höheren Determinismus arbeiten. So können echtzeitfähige Prüf-, Steuer-, Regel- und Überwachungssysteme entwickelt werden, die sich über lange Zeiträume hinweg vorhersagbar verhalten.

Sensorsimulation ist ein Anwendungsbeispiel, das sowohl ein äußerst präzises Timing als auch ein hohes Maß an Zuverlässigkeit verlangt. Es handelt sich um das Verfahren, realistische Sensorsignale an den Eingängen eines Prüflings bereitzustellen und anschließend zu evaluieren, wie ein Bestandteil der Ausrüstung auf eine ganze Reihe von Betriebsbedingungen reagiert. Dies ist besonders bei Hardware-in-the-Loop-Tests und Rapid Control Prototyping nützlich. FPGAs eignen sich optimal für die Sensorsimulation, hauptsächlich weil sie sich an mehrere Sensorarten mit präzisen Timing-Anforderungen anpassen können. Wird ein FPGA-basiertes Datenerfassungsgerät eingesetzt, ist es möglich, die Sensorausgänge zu simulieren, PWM-Signale zu erzeugen und zu dekodieren, Onboard-Entscheidungsfindung auf Basis gemessener Werte herbeizuführen und unabhängig mehrere Analog- sowie Digitalsignale jedes Sensors oder Prüflings vom gleichen Gerät zu emulieren.

Herausforderung der FPGA-Programmierung

Einer der vielen Vorteile von ASIC-basierten Datenerfassungsgeräten ist die Flexibilität der für die Entwicklung verfügbaren Software. So betrachtet können FPGAs manchmal eine Art Last darstellen, da sie traditionellerweise in einer Hardwarebeschreibungssprache (HDL), wie VHDL oder Verilog, programmiert werden, die bei der Entwicklung funktionaler Anwendungen ein hohes Maß an Erfahrung erfordert.

Jedoch besteht auch die Möglichkeit, einen grafischen Ansatz zur Programmierung von FPGAs mit der LabVIEW-RIO-Architektur (rekonfigurierbare I/O) zu wählen, indem das LabVIEW-FPGA-Module mit rekonfigurierbaren I/O-Geräten der R-Serie kombiniert wird. Der Prozess, I/O-Schnittstellen zu schreiben und Datenkommunikationsmechanismen zu entwickeln, wird so vereinfacht. In Ergänzung zu existierendem IP umfasst die Systemdesignsoftware LabVIEW ein großes Ökosystem von FPGA-IP-Bibliotheken, die ein effizienteres und effektiveres Entwickeln komplexer Systeme ermöglichen. Da LabVIEW mit einer ganzen Bandbreite an Hardware kommunizieren kann, ist es nicht nötig, bereits vorhandene Datenerfassungshardware zu ersetzen. Vielmehr können PC-basierte Systeme mit programmierbaren FPGAs erweitert werden, was in einer erheblichen Produktivitätssteigerung und Verkürzung der Markteinführungszeit resultiert.

Brandon Treece

ist Produktmanager für Embedded Systeme bei National Instruments in Austin/Texas.

(jj)

Sie möchten gerne weiterlesen?