Embargo bis 03. Oktober 2005

Entwicklung benutzerdefinierter Hardware mit LabVIEW

NI LabVIEW FPGA Module
•	Erstellen Sie mithilfe der grafischen Entwicklung benutzerspezifische FPGA-Logik (FPGA = Field-programmable Gate Array) und laden Sie diese auf RIO-Zielgeräte (RIO = rekonfigurierbare I/O) von NI.
•	Kombinieren Sie Analog- und Digital-I/O, Counter und Trigger mit Standardhardware entsprechend Ihren individuellen Anforderungen.
•	Implementieren Sie benutzerspezifische logische Timing- und Triggerschaltungen sowie I/O-Logik mit einer Auflösung von 25 ns.
•	Definieren Sie benutzerspezifischer Steuer-, Regel- und Signalverarbeitungsalgorithmen mit Schleifenfrequenzen von bis zu 40 MHz.
•	Führen Sie mithilfe der Eigenschaften der FPGA-Technologie mehrere Tasks gleichzeitig aus.
•	Integrieren Sie bestehenden VHDL-Code in Ihre LabVIEW-FPGA-Anwendung.
•	Implementieren Sie Kommunikation mit dem PC ohne Entwicklungsaufwand für komplexe eigene Treibersoftware.

FPGA-basierte Hardwarezielgeräte
•	Datenerfassungsmodule der R-Serie
•	Rekonfigurierbares Embedded-Chassis CompactRIO
•	Compact Vision System
•	PXI-basierte Timing- und Synchronisationsgeräte
•	I/O-Gerät für Zwischenfrequenzen (IF-Kommunikation)

Systemanforderungen
•	Windows 2000/XP
•	512 MB RAM für Geräte mit 1 Mio. Gattern, 2 GB RAM für Geräte mit 3 Mio. Gattern
•	2 GB freier Speicherplatz

Erforderliche Software
LabVIEW Full oder Professional Development System, aktuelle Version

Empfohlene Software
•	LabVIEW Real-Time Module
•	NI LabVIEW Digital Filter Design Toolkit
•	NI SoftMotion Development Module für LabVIEW

Übersicht
Das National Instruments LabVIEW FPGA Module erweitert die grafische Entwicklung in LabVIEW um FPGA-Funktionalität auf rekonfigurierbarer I/O-Hardware (RIO). Mithilfe des NI LabVIEW FPGA Module können Sie ohne Kenntnisse spezieller Hardware-Design- und EDA-Tools (EDA = Electronic Design Automation) die Funktionalität benutzerdefinierter Steuer-, Regel- und I/O-Hardware definieren. Darüber hinaus ermöglicht Ihnen das LabVIEW FPGA Module zusammen mit RIO-Hardware die schnelle Prototypenentwicklung und die Erstellung von anwendungsspezifischem FPGA-Code. Dank der grafischen Programmierung in LabVIEW lassen sich Embedded-Geräte programmieren, da sich in einem Blockdiagramm eines FPGA-VIs in LabVIEW Parallelität und Timing von Embedded-Systemen weitaus besser darstellen lassen als in textbasierten Programmiersprachen. Nach der Erstellung einer FPGA-Anwendung können Sie RIO-Hardware komfortabel an Anwendungen auf LabVIEW-Systemen (Windows) oder LabVIEW-Echtzeitsystemen anbinden.

Die LabVIEW-FPGA- und die RIO-Technologie eignen sich hervorragend für Anwendungen, für die benutzerspezifische Signale erforderlich sind. Dazu gehören z. B.:

•	Integration benutzerdefinierter Timing-, Triggerungs- und Synchronisationsfunktionen
•	Integration benutzerdefinierter Analog- und Digital-I/Os, Counter und Trigger in einem einzigen Gerät
•	Integration benutzerdefinierter digitaler Kommunikationsprotokolle
•	Parallele Verarbeitung und Datenerfassung
•	Benutzerspezifische Motorensteuerung
•	Auslagerung von schneller Signalverarbeitung, komplexen Steuer- und Regelalgorithmen vom Host-PC oder Echtzeitsystem auf einen FPGA-Baustein

Wie oben ersichtlich, spricht das LabVIEW FPGA Module eine stetig wachsende Anzahl von NI-RIO-basierten Geräten an. Datenerfassungsmodule der R-Serie von NI eignen sich für komplexe Datenerfassungsaufgaben oder Echtzeit-I/O-Anwendungen. Verwenden Sie die CompactRIO-Plattform von NI für Anwendungen, die hohe Leistungsfähigkeit, kompakte und robuste Bauform 

sowie I/Os mit integrierter Signalkonditionierung und direkter Signalanbindung erfordern. Damit erreichen Sie maximale Flexibilität bei Embedded-Mess-, -Steuer- und -Regelanwendungen. Entwickeln Sie benutzerdefinierte FPGA-Logik auf einem NI Compact Vision System und ergänzen Sie Ihre Bildverarbeitungsanwendungen um individuelle Triggerfunktionen, Pulsbreitenmodulation, Motorensteuerung oder Kommunikationsprotokolle. Implementieren Sie mit NI-PXI-basierten Timing- und Synchronisationsmodulen benutzerspezifische Timing-, Trigger- und Synchronisationsroutinen. Kommunikations-I/Os für Zwischenfrequenzen und LabVIEW FPGA unterstützen Sie bei der Implementierung von benutzerdefinierten Signalverarbeitungsalgorithmen und Filtern für Kommunikationsanwendungen.

Grafische Entwicklungsumgebung
Wenn LabVIEW für die Entwicklung einer FPGA-Anwendung genutzt wird, stellt es eine angepasste Funktionenpalette dar, die nur jene Funktionen enthält, die auch auf dem FPGA implementiert werden können. Verwenden Sie eine Kombination dieser Funktionen, um Logik zu definieren und ein intelligentes RIO-Gerät zu erstellen. 

Die Funktionenpalette von LabVIEW FPGA enthält für LabVIEW typische Strukturen und Funktionen, wie etwa While- und For-Schleifen, Case- und Sequenzstrukturen. Außerdem umfasst sie eine Reihe spezifischer LabVIEW-FPGA-Funktionen für Mathematik, Signalerzeugung und -analyse, lineare und nichtlineare Steuerung und Regelung, Vergleichslogik, Array- und Cluster-Manipulation, Analog- und Digital-I/O sowie Timing.

Abbildung 1 zeigt ein Beispiel für eine in LabVIEW entwickelte und auf ein RIO-Gerät geladene benutzerdefinierte Zähler- und Periodenmessung. Die obere Schleife inkrementiert einen 16-bit-Counter für jede an DI 0 (als Eingang konfigurierter Digitalkanal 0) auftretende fallende Flanke, stellt der Host-Anwendung die Werte zur Verfügung und generiert auf DO 1 (als Ausgang konfigurierter Digitalkanal 1) nach jeweils vier fallenden Flanken einen digitalen Impuls. Die untere Schleife implementiert eine Periodenmessung, indem sie die Anzahl der Taktzyklen zwischen steigenden Flanken misst, die auf einem Digitaleingangskanal erkannt werden. Die Auflösung der Messung wird durch die Schleifenfrequenz bestimmt.

Bei der Struktur der Single-Cycle Timed Loop, welche den benutzerdefinierten Code für die Zähler- und Periodenmessung umschließt, handelt es sich um eine spezielle Implementierung der zeitgesteuerten Schleife in LabVIEW, die pro FPGA-Taktzyklus einmal ausgeführt wird. In Abbildung 1 zeigt das Blockdiagramm eine Boolesche False-Konstante, so dass die Schleife ununterbrochen ausgeführt wird. Die Taktrate des Counter wird von der FPGA-Taktrate zur Zeit der Kompilierung bestimmt, der Standardwert liegt bei 40 MHz. Bei dieser Anwendung werden beide Schleifen parallel mit 40 MHz ausgeführt. Die Implementierung der Single-Cycle Timed Loop ist dabei deutlich platzsparender, da sie weniger Gatter auf dem FPGA benötigt als eine konventionelle While-Schleife.
Schließlich lassen sich mit dem HDL-Schnittstellenknoten bestehende VHDL-Codes und IP-Kernels, wie etwa Kommunikationsprotokolle oder Filterkernel, in ein LabVIEW-FPGA-Blockdiagramm integrieren.

Abbildung 1. LabVIEW-FPGA-Blockdiagramm einer benutzerdefinierten Anwendung für die Zähler- und Periodenmessung

Softwarestrukturen in der Hardware
Jede Single-Cycle Timed Loop in Abbildung 1 steuert die Platzierung von Registern im FPGA. Die Anschlüsse links und rechts von jeder Single-Cycle Timed Loop stehen für registrierte Daten auf dem FPGA und geben den Datenwert von einem Schleifendurchlauf zum nächsten weiter. Jedes Bedien- und Anzeigeelement auf dem Frontpanel des Embedded-VI, in diesem Fall die „Count“ und „Period“ genannten Anzeigeelemente, sind auch als Register auf dem FPGA implementiert. Diese werden verwendet, um Daten zu einer Host-Anwendung zu übertragen. Die Digitaleingangs- und -ausgangsanschlüsse lesen abschließend die Daten direkt vom FPGA-I/O-Block. Die parallele Ausführung bei der grafischen Programmierung in LabVIEW eignet sich hervorragend, um die Fähigkeit von FPGA-Hardware, Aufgaben parallel abzuarbeiten, darzustellen. Kompilierter LabVIEW-FPGA-Code wird durch Konfiguration von vordefinierten Logikzellen auf dem FPGA implementiert. Unabhängige Abschnitte des Codes, wie z. B. parallele Schleifen, werden als unabhängige Abschnitte auf dem FPGA implementiert. Nach der Konfiguration des Chips werden Daten mit einer vom Onboard-Taktgeber bestimmten Rate durch das Gerät geschleust, wodurch unterschiedliche Abschnitte auf dem Chip gleichzeitig ausgeführt werden. Abbildung 1 zeigt, wie die Parallelität von LabVIEW FPGA es den Schleifen ermöglicht, gleichzeitig ausgeführt zu werden, ohne um Ausführungsressourcen zu konkurrieren.

Systemarchitekturen
Mit dem LabVIEW FPGA Module entwickeln Sie LabVIEW-FPGA-Programme auf einem Windows-basierten Entwicklungssystem. Dann kompiliert LabVIEW den Programmcode für die FPGA-Synthese auf dem RIO-Gerät. Nach dem Download auf das Zielgerät kann das Embedded-LabVIEW-FPGA-VI in einer der drei folgenden Konfigurationen ausgeführt werden:

•	Autonom, wobei das FPGA-basierte Gerät unabhängig von anderen Systemen betrieben wird
•	Kombiniert mit einem PC mit LabVIEW für Windows, wobei Daten vom FPGA-Gerät für die Offline-Fließkomma-Analyse, die Verwendung in Netzwerken, für Datei-I/Os oder für die Darstellung auf der grafischen Benutzeroberfläche auf den PC übertragen werden
•	Kombiniert mit einem LabVIEW-Real-Time-System, wobei Daten vom FPGA-Gerät auf einen dedizierten Prozessor mit einem Echtzeitbetriebssystem übertragen werden

Das LabVIEW-Real-Time-System stellt eine deterministische Engine zur Verfügung, die synchron oder asynchron auf dem FPGA ablaufende Funktionen verarbeitet. Fließkomma-Arithmetik, einschließlich FFTs, PID-Berechnungen und benutzerdefinierte Steueralgorithmen, werden oft in der Umgebung LabVIEW Real-Time durchgeführt. Relevante Daten können auf einem LabVIEW Real-Time-System gespeichert oder auf einen Host-Rechner mit LabVIEW für Windows übertragen werden, wo sie offline analysiert, erfasst oder auf der Benutzeroberfläche dargestellt werden. Abbildung 2 zeigt diese Konfiguration.

Abbildung 2. Die Architektur von LabVIEW FPGA mit LabVIEW Real-Time und einem Windows-Host-PC.

Von einer Anwendung mit LabVIEW Real-Time oder LabVIEW für Windows können Sie mittels der FPGA-Host-Schnittstelle einfach auf Daten in den FPGA-Registern zugreifen, die als Bedien- und Anzeigeelemente auf dem LabVIEW-FPGA-VI erscheinen. Mit der FPGA-Schnittstelle kann eine LabVIEW-Real-Time- oder Windows-Anwendung auf Interrupts reagieren, die auf der RIO-Hardware für Einzelpunktdaten generiert wurden oder Daten per DMA (Direct Memory Access) auf das FPGA-Gerät übertragen. Abbildung 3 zeigt ein einfaches FPGA-VI und sein entsprechendes Host-VI.

Abbildung 3. LabVIEW-FPGA-VI mit entsprechendem Host-VI

Werkzeuge für die Fehlerbehebung
Abhängig von der Komplexität Ihres Programmcodes, den Spezifikationen Ihres Entwicklungssystems und den Vorgaben an Schlankheit und Effektivität der Anwendung kann es einige Minuten oder auch mehre Stunden dauern bis ein FPGA-VI kompiliert ist. Um die Produktivität der Entwicklung zu maximieren, enthält das LabVIEW FPGA Module einen bit-genauen Emulationsmodus für Geräte der R-Serie, so dass Sie die Logik Ihres Entwurfs verifizieren können, bevor Sie mit dem Kompilierungsprozess beginnen. Während des Herunterladens auf den FPGA-Emulator greift LabVIEW vom Gerät aus auf die I/Os zu und führt die VI-Logik auf dem Windows-Rechner aus. In diesem Modus können dieselben Werkzeuge zur Fehlerbehebung verwendet werden wie in LabVIEW für Windows, darunter Highlight-Funktionen, Sonden und Haltepunkte.

Abbildung 4. Ablauf der Anwendungsentwicklung mit LabVIEW FPGA

LabVIEW-FPGA-basierte Hardwarezielgeräte
Intelligente Datenerfassungsgeräte der R-Serie
Intelligente PCI- oder PXI-Datenerfassungsmodule der R-Serie von NI bieten Erfassung von analogen und digitalen Signalen und höchst leistungsfähige, durch den Nutzer konfigurierbare Timing- und Synchronisierungsfunktionalität sowie Entscheidungsfindung auf Hardwareebene. Mit rekonfigurierbaren I/O-Geräten der R-Serie und LabVIEW FPGA können Sie Ihr PXI- oder PCI-basiertes Mess-, Steuer- und Regelsystem erweitern, indem Sie für Operationen wie benutzerdefinierte diskrete und analoge Steuerung und Regelung, Sensorsimulation, Emulation digitaler Protokolle und präzise benutzerdefinierte Timing-, Steuer- und Regelfunktionen individuell definierte Hardware hinzufügen. Diese Geräte sind mit Analog- und Digital-I/O-Kanälen erhältlich.

Abbildung 5. Intelligente Datenerfassungsgeräte der R-Serie

CompactRIO
NI CompactRIO ist eine kleine, robuste, modulare Plattform für Mess-, Steuer- und Regelanwendungen, die Hochleistungs-I/Os und unvergleichliche Flexibilität im Systemtiming bietet. CompactRIO kann als Signalkonditionierung für ein Datenerfassungsmodul der R-Serie 

eingesetzt oder dazu verwendet werden, mit dem CompactRIO-Embedded-Controller Embedded-Systeme für Anwendungen in Bereichen wie Maschinensteuerung, Datenerfassung in Fahrzeuginnenräumen oder mobile NVH-Tests (Noise-Vibration-Harshness) zu erstellen. Neben zahlreichen Industrienormen und Zertifikaten besitzt CompactRIO eine Stoßfestigkeit von bis zu 50 g und kann in Umgebungstemperaturen von -40 °C bis 70 °C eingesetzt werden.

Abbildung 6. CompactRIO-Embedded-System

Compact Vision System
Bei Geräten der Reihe NI CVS-145x handelt es sich um robuste und kompakte Bildverarbeitungssysteme, die in rauen Umgebungsbedingungen eingesetzt werden, wie sie bei Robotik-, automatisierten Prüf- und industriellen Überwachungssystemen zu finden sind. CVS-145x-Systeme bieten für verteilte Applikationen zur industriellen Bildverarbeitung eine bisher einmalige I/O-Funktionalität sowie Netzwerkfähigkeit. Sie nutzen Technologie nach dem Standard IEEE 1394 (FireWire) und sind kompatibel mit über 100 Kameras mit vielfältigen Funktionen, Leistung und Preisgestaltung. CVS-1455 und CVS-1456 enthalten ein konfigurierbares FPGA für die Implementierung benutzerspezifischer Counter-, Timing- und Motorensteuerungsfunktionen in Ihre Bildverarbeitungsanwendung.

Abbildung 7. Compact Vision System

PXI-basierte Timing- und Synchronisationsmodule
Die Timing- und Synchronisationsmodule NI PXI-6653 und PXI-6652 verwenden den Triggerbus, Star-Trigger und Systemreferenztakt von PXI, um mehrere Geräte oder Chassis zu synchronisieren. Das LabVIEW FPGA Module spricht das FPGA auf den PXI-6653/3-Modulen an, so dass benutzerdefinierte Anwendungen entwickelt werden können, deren Implementierung bisher mit Standardhardware nicht möglich war. Zu diesen Anwendungen gehören spezielle Timing- und Synchronisationstechniken, individuelle Triggerung und analoge Hochgeschwindigkeits-Counter.

Abbildung 8. PXI-basierte Timing- und Synchronisationsmodule

Bestellinformationen
NI LabVIEW FPGA Module	778694-03

JETZT BESTELLEN!
Umfassende Informationen über Produktspezifikationen, Preise und Zubehör erhalten Sie auf ni.com/fpga.