Cyber-physikalische Systeme Entwicklungsbeschleuniger: Zeit als neue Währung (Teil 2)

Franz Graser

Anbieter zum Thema

LabVIEW im Serienprodukt: Echtzeit-Linux und C-Generator ermöglichen Echtzeit-Software auf eigener Embedded-Hardware.

Bild 1: LabVIEW auf eigener Standard-Hardware in unterschiedlichen Formfaktoren und Leistungsklassen. Links: Einsteckmodule als Scheckkarten-COM oder -SOM. Rechts: Singleboard-Computer als Europakarte.
Bild 1: LabVIEW auf eigener Standard-Hardware in unterschiedlichen Formfaktoren und Leistungsklassen. Links: Einsteckmodule als Scheckkarten-COM oder -SOM. Rechts: Singleboard-Computer als Europakarte.
(Bild: Schmid Elektronik)

Ob intelligenter Sensor am IoT, Messnetzwerk, Cloud-Lösung oder Regler mit Tablet – der Anwendungsentwickler hat dank dem Aktor-Framework LabVIEW mit flexiblen Rechenmodellen schnell Ergebnisse erzielt und die Machbarkeit seiner Idee im Labor geprüft. Nun soll das Serienprodukt geplant werden – mit Hardware, die auf die Bedürfnisse des Endanwenders zugeschnitten ist.

In der Praxis bedeutet dies meist eine Neuentwicklung von Hard- und Software auf der Basis von C mit RTOS auf einem Mikrocontroller. Es geht auch anders! Der hier vorgestellte Ansatz ermöglicht nicht nur die Wiederverwendung bisheriger Software-Investitionen, sondern gibt dem Entwickler zusätzlich die Freiheit, Hardwareentscheidungen hinauszuzögern.

Genau dies war beim Messnetzwerk im Zug, beim Solarkraftwerk und der aktiven Schallbekämpfung aus Teil 1 die wichtigste Voraussetzung. Dieser zweite Teil führt jetzt durch die Möglichkeiten von LabVIEW auf Embedded-Boardlevel-Hardware und diskutiert, wie dieser Leitfaden bei zwei Praxisbeispielen angewendet wurde.

Was LabVIEW für smarte Embedded-Systeme so interessant macht, sind erstens seine mächtigen Bibliotheken für Mathematik und Signalverarbeitung und zweitens die komfortable Abstraktion von Timing, Betriebssystem, Multitasking, Multicore und Zugriff auf unterlegte Hardware. Die Anwendung lässt sich mit wenigen Detailkenntnissen zum Unterbau per Knopfdruck auf die eigene Embedded-Hardware laden und dort in Echtzeit im 24/7-Betrieb ausführen.

Welche Hardware eignet sich nun am besten? Das Gemeinsame aller in Bild 1 gezeigten Hardwareplattformen ist die grafische Programmierbarkeit mit LabVIEW. Relevante Unterschiede zeigen sich im Formfaktor, der Leistungsfähigkeit der CPU und der Unterstützung durch die Bibliotheken. Grundsätzlich unterscheiden sich Singleboard-Computer (Bild 1 rechts) und Einsteckmodule (Bild 1 links).

Originalbeitrag als ePaper oder im pdf-Format lesen

Dieser Autorenbeitrag ist in der Printausgabe ELEKTRONIKPRAXIS Sonderheft Embedded Software Engineering Report 2 erschienen. Diese ist auch als kostenloses ePaper oder als pdf abrufbar.

Die Wahl hängt unter anderem davon ab, ob im Projekt Hardwareentwicklung eingeplant ist. Wenn nicht, bleibt der Singleboard-Computer übrig. Sonst bietet sich vom Zweiplatinenansatz mit Einsteckmodul im Baseboard bis zur Kompletthardware (Bild 2) die volle Hardware-Bandbreite an.

Bild 2 : Bei Kompletthardware (rechts oben) werden Einsteckmodul und individuelles Baseboard (links unten) „verheiratet“. Voraussetzung dazu ist ein C-Generator mit Mikrokernel.
Bild 2 : Bei Kompletthardware (rechts oben) werden Einsteckmodul und individuelles Baseboard (links unten) „verheiratet“. Voraussetzung dazu ist ein C-Generator mit Mikrokernel.
(Bild: Schmid Elektronik)

Ausschlaggebend sind jedoch die eigenen Anforderungen an die geplante Anwendungssoftware und deren Bedarf an Funktionalität, Rechenleistung und Speicher. Es gibt nämlich zwei Wege von LabVIEW zur Embedded-Hardware. Der erste führt über Echtzeit-Linux auf die Dual-Core-ARM9-Architektur mit FPGA.

Das SOM-Einsteckmodul (Bild 3) und die Single-Board-RIO-Familie (Bild 1, Mitte) von National Instruments (NI) funktionieren nach diesem Schema. Die anderen Module auf Bild 1 und Kompletthardware (Bild 2) folgen dem Weg über den universellen NI-ANSI-C-Code-Generator mit Mikrokernel. Damit ließe sich LabVIEW auf einen beliebigen 32-Bit-Prozessor portieren. Softwarefunktionalität und Leistung sind eingeschränkt. Dafür punktet dieser Ansatz bei anderen Aspekten wie Boot-Zeiten unter einer Sekunde, Low-Cost, Low-Power und Lizenzfertigung (Tabelle 1).

Einfach nutzbare Singleboard-Computer

Bild 3: LabVIEW programmierbares «System-on-Module» (SOM) mit Echtzeit-Linux auf Multicore ARM-Cortex-A9 und FPGA. Low-Level-Treiber werden mit Eclipse entwickelt und in LabVIEW eingebunden. Die Administration erfolgt z.B. über die SSH (Secure Shell).
Bild 3: LabVIEW programmierbares «System-on-Module» (SOM) mit Echtzeit-Linux auf Multicore ARM-Cortex-A9 und FPGA. Low-Level-Treiber werden mit Eclipse entwickelt und in LabVIEW eingebunden. Die Administration erfolgt z.B. über die SSH (Secure Shell).
(Bild: Schmid Elektronik)

Der Vorteil von Singleboard-Computern (SBC's) liegt auf der Hand: sie sind sofort betriebsbereit! Die Applikationsentwicklung kann ohne weitere Vorarbeit beginnen. Das macht SBC's interessant für Machbarkeitsstudien, Rapid Prototyping und Kleinserien. Die CPU-Leistungsklassen skalieren vom 500 MHz Fixed-Point-DSP bis zum 667 MHz Floating-Point-Dual-Core-ARM9 mit FPGA auf Formfaktoren vom Hutschienen- über das PC-104- bis zum Europaformat (Bild 1, rechts).

Die Hardware bietet alles, was smarte Embedded-Systeme heute verlangen: vom Analog- und Digital-I/O über Standard-Kommunikationskanäle und Embedded-Filesystemen bis zum Multi-Touch-TFT. In LabVIEW steht für jede Hardwarefunktion ein Virtuelles Instrument (VI=Funktionsblock/Treiber) zur Verfügung.

Ein Mix aus einem Standardmodul, das in ein kundenspezifisches Baseboard eingesteckt wird, kombiniert die Vorteile vom Singleboard-Computer mit Kompletthardware. Die Komplexität der Baseboards ist deutlich geringer als bei Mikroprozessor-Kompletthardware, denn die kritischen Schaltungsteile um CPU und Memory sind schon auf dem Einsteckmodul realisiert. Außerdem ersetzen die Hersteller im Prozessorbereich abgekündigte Bauteile nach Form-Fit-Function.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Von der Funktionalität her bietet der Zweiplatinenansatz Ähnliches wie bei Singleboard-Computern, lässt sich im Vergleich aber beliebig erweitern. Der Vorteil dabei ist ein nahtloses Anpassen von Hardware in Form und Funktion an jede beliebige Aufgabenstellung. Außerdem müssen zu Beginn der Entwicklung, beispielsweise beim Rapid Prototyping, noch nicht alle Anforderungen in Stein gemeißelt sein, denn Baseboards lassen sich schnell ändern. Diese Flexibilität hat jedoch auch ihren Preis: im Vergleich zum Singleboard-Computer muss beim Zweiplatinenansatz immer zuerst Hardware in Form eines Baseboards entwickelt werden. Je nach Anforderung wählt der Designer ein Briefmarken-Coremodul, ein Scheckkarten-COM oder ein SOM (Bild 3).

Sind nach dem Prototyping alle Anforderungen bekannt, lassen sich die Einsteckmodule mit dem Baseboard verbinden. Das Ergebnis ist ein kundenspezifisches, komplett integriertes Mikroprozessorboard (Bild 2), das in mittleren und großen Stückzahlen zu üblichen Bestückpreisen hergestellt werden kann. Seine spezifische LabVIEW-Hardware kann der Kunde bei Schmid Elektronik entwickeln, produzieren und testen lassen oder dies in Lizenz selber tun.

C-Code-Generator auf eigener Hardware betreiben

In der Embedded-Welt ist die Sprache C der Quasi-Standard. Genau hier setzt NIs ANSI-C-Code-Generator an. Er übersetzt ein grafisches LabVIEW-Diagramm/-Blockschaltbild inklusive Mathematik- und Signalverarbeitungs-VIs in neutralen ANSI-C-Code für 32-Bit-Mikrocontroller. Schmid Elektronik kombiniert diese Technik mit der Funktionalität der Singleboard-Computer im Hutschienen- und PC104-Format (Bild 1, rechts) sowie Briefmarken-Coremodulen und Scheckkarten-COMs (Bild 1, links).

Der so erzeugte C-Code wird mit dem Quellcode eines schlanken Mikrokernels verlinkt, mit gängigen Tools (Compiler, Linker, Loader) in eine echtzeitfähige Standalone-Firmware gebaut und als Loader-File auf die Zielhardware geladen. Von dort bootet die Anwendung in weniger als einer Sekunde, geht in einen robusten 24/7-Echtzeit-Betrieb über und ist gegen Einflüsse von außen weitgehend unempfindlich.

Bild 3: LabVIEW programmierbares «System-on-Module» (SOM) mit Echtzeit-Linux auf Multicore ARM-Cortex-A9 und FPGA. Low-Level-Treiber werden mit Eclipse entwickelt und in LabVIEW eingebunden. Die Administration erfolgt z.B. über die SSH (Secure Shell).
Bild 3: LabVIEW programmierbares «System-on-Module» (SOM) mit Echtzeit-Linux auf Multicore ARM-Cortex-A9 und FPGA. Low-Level-Treiber werden mit Eclipse entwickelt und in LabVIEW eingebunden. Die Administration erfolgt z.B. über die SSH (Secure Shell).
(Bild: Schmid Elektronik)

Das NI System-On-Module (Bild 3) und die NI Single-Board-Computer (Bild 1, Mitte) werden per Echtzeit-Linux betrieben. Dadurch eröffnen sich speziell für vernetzte, smarte Embedded-Systeme neue Möglichkeiten. Installiert ist die für den Embedded-Bereich ausgelegte Ångström-Distribution mit einem Repository auf den Servern von NI. Das LabVIEW-Diagramm wird nach dem POSIX-Standard auf das Linux-Betriebssystem abgebildet. Dort lässt sich mit dem Package-Manager opkg die Spielwiese des Linux-Ökosystems nutzen – ob SQL-Datenbank, Apache-Webserver oder QT-GUI. Als Bootloader dient U-Boot.

Weitere Merkmale von Echtzeit-Linux:

  • Mit der Busybox steht ein Tool für typische Embedded-Aufgaben zur Verfügung, von Filesystemzugriffen, Abholen der Systemzeit und kleinem DHCP-Client bis zum Sleep-Modus und System-Reboot.
  • LabVIEW erhält Zugriff auf die Linux-Kommandozeile, womit sich Systembefehle direkt ausführen und so Filesystem- und User-Berechtigungen live steuern lassen.
  • Mit Techniken wie Python stehen mächtige Skriptsprachen zur Verfügung.
  • LabVIEW kann mit TCP/IP über localhost die Dienste weiterer Linux-Prozesse (Daemons) anzapfen.
  • Über das native C-API von LabVIEW kann auf Bibliotheken des Linux-Betriebssystems zugegriffen werden (Bild 4).
  • Der versierte Linux-User kann den Linux-Kernel jederzeit individuell konfigurieren und neu kompilieren.

Bei vernetzten Embedded-Systems ist Timing die Herausforderung Nr.1. Hier leistet Linux mit nützlichen Schemas Unterstützung. Mit cron lassen sich bis [min]-Auflösung repetitive Tasks wie das Löschen von Logfiles ausführen. Der «CFS» (Completely Fair Scheduler) dient vor allem zum Implementieren nicht-zeitkritischer, aber trotzdem effizienter Work-Tasks. Werden Antwortzeiten in [ms] benötigt, wird der Kernel «preemptive» konfiguriert. Dank Multicore-Support von LabVIEW lassen sich grafische Tasks direkt einem Prozessorkern zuordnen. Bei zeitkritischen Tasks mit gefordertem Jitter zwischen 10...100 µs kommt der PREEMPT_RT-Patch ins Spiel. Harte Echtzeit im einstelligen [µs]- oder sogar [ns]-Bereich garantiert der FPGA.

Messnetzwerk im Hochgeschwindigkeitszug

Bild 4: LabVIEW greift über sein C-API (Application Programming Interface, rechts) auf eine in Eclipse generierte Linux-Bibliothek zu (*.so = Shared Object, links)
Bild 4: LabVIEW greift über sein C-API (Application Programming Interface, rechts) auf eine in Eclipse generierte Linux-Bibliothek zu (*.so = Shared Object, links)
(Bild: Schmid Elektronik)

Bei der flächendeckenden Messintelligenz im Hochgeschwindigkeitszug (Teil 1) wurde nach dem Prototyping mit einem Single-Board-RIO das System-On-Module des Typs sbRIO-9651 von National Instruments als CAN-Master gewählt (Bild 3).

Neben der geforderten hohen Rechenleistung war die flexible und sichere Netzwerkfähigkeit zum Leitrechner dank Linux ausschlaggebend. Über einfache CAN-Befehle steuert der Master bis zu 256 Knoten. Diese sind je nach Typ und Aufgabe als Briefmarkenrechner auf Baseboard oder Kompletthardware (Bild 2) ausgeführt. Ein Netzwerk mit 32 Knoten wurde schon erfolgreich im Feld getestet.

System-On-Module in der „Sonnenblume“

Bild 5: Ein Messnetzwerk mit einem grafisch programmierbaren System-On-Module als Intelligenz  steuert und überwacht die „Sonnenblume“, ein hocheffizientes und kompaktes Solarkraftwerk.
Bild 5: Ein Messnetzwerk mit einem grafisch programmierbaren System-On-Module als Intelligenz steuert und überwacht die „Sonnenblume“, ein hocheffizientes und kompaktes Solarkraftwerk.
(Bild: Schmid Elektronik)

Beim zweiten Beispiel aus Teil 1 handelte es sich um ein kompaktes Solarkraftwerk, das dank Solarkonzentration effizienter arbeitet als bisherige Anlagen. Das High Concentration Photovoltaic Thermal (HCPVT)-System wird „Sonnenblume“ genannt. Das Herzstück der zehn Meter hohen Struktur ist eine 40 qm große Parabolschüssel, die ein Trackingsystem kontinuierlich zur Sonne ausrichtet.

Basis dazu sind ein Sonnensensor und zwei bürstenlose DC-Motoren, die als dezentrale Intelligenz über CAN mit dem Embedded-System verbunden sind. Dessen Hirn ist das System-On-Module „sbRIO-9651“ von NI (Bild 3). Es ist über das Baseboard und dezentrale Knoten mit Dutzenden von Sensoren verbunden, vom Temperatur-, Druck- und Feuchtesensor bis zur Meteostation. Höchste Zuverlässigkeit spielt in der Hard- und Software eine zentrale Rolle. So dreht sich die Schüssel beim Ausfall kritischer Komponenten oder bei Extremwetter immer in eine Sicherheitsposition und hält einen konstanten Innendruck aufrecht.

* Marco Schmid ist Diplom-Ingenieur (FH) für Systemtechnik. Er ist Inhaber des Lösungsanbieters Schmid Elektronik in Münchwilen/Schweiz.

Artikelfiles und Artikellinks

(ID:43334943)