Academic Über NI Veranstaltungen NI Developer Zone Support Lösungen Online Store Kontakt MyNI

Dokumententyp: Tutorium
Von NI unterstützt: Ja
Veröffentlichungsdatum: 25.08.2009


Feedback


Ja Nein

Ähnliche Kategorien

Thematisch verwandte Links - Developer Zone

Thematisch verwandte Links - Products and Services

Entwickeln mit der C-Schnittstelle zu LabVIEW FPGA für VxWorks-Zielsysteme

0 Bewertung(en) | 0.00 von 5
Sprache | Drucken

Übersicht

Entwickler verwenden traditionell Programmiersprachen wie beispielsweise C, um Embedded-Systeme rund um Mikroprozessor- oder Mikrocontroller-Architekturen zu erstellen. Die Beliebtheit von C hat zu einer großen Auswahl an Werkzeugen wie z. B. Bibliotheken, Compiler und Betriebssysteme geführt. Field-Programmable Gate Arrays (FPGAs) sind eine neuere Technologie im Embedded-Bereich, die die Möglichkeit bietet, eine rekonfigurierbare digitale Logik mit Hardwarebeschreibungssprachen zu erstellen. Für die Beschreibung der Schaltkreise und die Nutzung deren leistungsstarker Parallelität verwenden Hardwarebeschreibungssprachen eine Semantik, die sich stark von herkömmlicher von Softwareentwicklern genutzten Programmiersprachen unterscheidet. Durch die Bereitstellung von Entwicklungsumgebungen für FPGAs, die Entwicklern bekannte Programmstrukturen bieten, profitieren Entwickler von Embedded-Software bei ihren Designs von den Vorteilen von FPGAs.

FPGA-Entwicklung

Durch die Nutzung von FPGAs bei der Entwicklung von Embedded-Systemen wird es möglich, leistungsstarke digitale Logik ohne die Notwendigkeit für eine benutzerdefinierte ASIC-Architektur zu erstellen. Gewöhnlich wird die FPGA-Entwicklung mit textbasierten Hardwarebeschreibungssprachen wie z. B. VHDL oder Verilog durchgeführt, die von Ingenieuren für das Digitaldesign geschrieben werden. Allerdings erschweren diese Hardwarebeschreibungssprachen aufgrund der Sprachsemantik die Nutzung der kompletten Fähigkeiten des FPGA-Designs. Das wird durch die Suche der Embedded-Industrien nach Abstraktionen für das FPGA-Design auf höherer Ebene bewiesen, so etwa Werkzeuge, die C-Code direkt in Schaltkreise umsetzen oder grafische Programmiersprachen wie LabVIEW FPGA.

Da es sich bei LabVIEW um eine Programmiersprache mit allen wichtigen Leistungsmerkmalen handelt, fühlen sich Entwickler, die mit traditionellen textbasierten Sprachen (z. B. C) vertraut sind, im Umgang mit der Umgebung wohl und können auch eine neue Hardwareplattform – FPGA – nutzen.

Abb. 1: FPGA-Code mit LabVIEW FPGA entwickeln

CompactRIO-Plattform

Die Plattform NI Compact RIO bietet ein kostengünstiges, rekonfigurierbares Embedded-System, das für Applikationen konzipiert ist, die hohes Leistungsvermögen und hohe Zuverlässigkeit erfordern. Das System bietet eine offene Embedded-Architektur bei gleichzeitig kompakter Größe und extrem hoher Robustheit. Des Weiteren können industrietaugliche I/O-Module während der Laufzeit ausgetauscht werden. Bei der Plattform handelt es sich um ein Embedded-System mit Chassis, das eine robuste Ausführung für Industrieumgebungen bietet. Neben der CompactRIO-Plattform gibt es auch NI Single-Board RIO, das dieselbe Architektur nur ohne Gehäuse liefert.

Abb. 2: Die Embedded-Hardwareplattformen CompactRIO und NI Single-Board RIO

Die RIO-Plattform besteht aus zwei programmierbaren Zielgeräten: einem PowerPC-basierten Prozessor und einem FPGA. LabVIEW eignet sich besonders für die Programmierung von FPGAs, da es in der Lage ist, Parallelität und Datenfluss eindeutig abzubilden. Mit dem LabVIEW FPGA Module lässt sich benutzerdefinierte Hardware für Mess-, Steuer- und Regelanwendungen erstellen, ohne dass Low-Level-Beschreibungssprachen (VHDL) oder Design auf Hardwareebene erforderlich wären. Die benutzerdefinierte Hardware kann zur Erstellung individueller Timing- und Trigger-Routinen, Hochgeschwindigkeits-Steuer- und -Regelanwendungen, Anbindung an digitale Protokolle, Verarbeitung digitaler Signale und weiterer Anwendungen, die zuverlässige Hardware für hohe Geschwindigkeiten und hohen Determinismus erfordern, eingesetzt werden.

 

Abb. 3: RIO-Embedded-Hardwarearchitektur

Der PowerPC-Prozessor in der CompactRIO-Architektur führt das Betriebssystem VxWorks von Wind River aus. Bei der Softwareentwicklung für das VxWorks-Zielsystem gibt es zwei Methoden: LabVIEW Real-Time und C. Mit LabVIEW Real-Time können LabVIEW-Anwendungen zur Ausführung auf dem Embedded-System entwickelt werden. Die Kommunikation mit dem FPGA-Zielsystem erfolgt einfach über High-Level-Abstraktion. Bei der neuesten Version der NI-RIO-Treiber können C-Programmierer den PowerPC-Prozessor direkt programmieren und über eine Schnittstelle mit dem FPGA kommunizieren.

Abb. 4: Entwicklung von C- oder LabVIEW-Code für den Echtzeitprozessor der RIO-Architektur.

Nutzung der C-Schnittstelle für LabVIEW FPGA

Die C-Schnittstelle für LabVIEW FPGA kann mit C-Werkzeugen des Echtzeitbetriebssystems VxWorks wie z. B. der Wind River Workbench oder der GNU-GCC-Toolchain für VxWorks programmiert werden.

Die GNU-Toolchain für VxWorks ist entweder über den Erwerb einer VxWorks-Entwicklungslizenz von Wind River oder durch Herunterladen der freien GNU-Toolchain am Ende dieses Dokuments erhältlich. Durch den Erwerb von VxWorks kann auch die Wind River Workbench IDE genutzt werden, die eine Fehlerbehandlung auf Quellcodeebene und Build-Management ermöglicht. Die GNU-Toolchain bietet Fehlerbehebung nur auf Ebene des Assembler-Codes. Zudem muss das mitgelieferte GNU Make genutzt werden, um Binärdateien zu erstellen.

Abb. 5: Softwarekomponenten für die C-Code-Entwicklung

Sobald der LabVIEW-FPGA-Code entwickelt wurde, wird eine Header-Datei erzeugt. So steht eine Schnittstelle für den Zugriff auf Bedienelemente, Anzeigeelemente, DMA-FIFOs, Interrupts und Arrays zur Verfügung. Die Header-Datei muss in die C-basierte Anwendung eingebunden werden.



Abb. 6: Wind River Workbench IDE für die Entwicklung von Embedded-Applikationen

Die Einbindung der bereitgestellten Header-Datei in das VxWorks-Projekt unterstützt die programmatische Schnittstelle bei der Kommunikation mit LabVIEW FPGA.

Nähere Informationen über das Konfigurieren der VxWorks-Entwicklungsumgebung und den Einsatz von kompiliertem C-Code finden Sie im Dokument Entwicklung von Shared Libraries für cRIO-901x und andere VxWorks-Zielsysteme.

Weiterführende Informationen

C-Schnittstelle für LabVIEW FPGA: Kostenfreier Download

 

0 Bewertung(en) | 0.00 von 5
Sprache | Drucken

AGB
Dieses Tutorium ("Tutorium") wurde von National Instruments ("NI") entwickelt. Auch wenn National Instruments dieses Tutorium technisch unterstützt, ist es jedoch möglich, dass dieses Tutorium nicht umfassend getestet und überprüft wurde. NI übernimmt weder Garantien bezüglich der Qualität des Tutoriums noch bezüglich der weiteren technischen Unterstützung neuer Versionen ähnlicher Produkte und Treiber. DIESES TUTORIUM WIRD IM "IST-ZUSTAND" ZUR VERFÜGUNG GESTELLT UND NI ÜBERNIMMT KEINERLEI GARANTIEN. AUSFÜHRLICHERE ERLÄUTERUNGEN ZU ANDEREN EINSCHRÄNKUNGEN ENTNEHMEN SIE BITTE DEN NUTZUNGSBEDINGUNGEN AUF NI.COM (http://ni.com/legal/termsofuse/unitedstates/us/).