Sinn & Zweck
freeSP - Plattform-unabhängige Lösungen für die Online-Signalverarbeitung
Entwickler von signalverarbeitenden Systemen
stehen oft vor dem Dilemma, sich frühzeitig auf die Hardware und das
darauf laufende Betriebssystem festlegen zu müssen, um eine zuverlässige
Kalkulation zu ermöglichen. In der Regel werden die Leistungsanforderungen
an die Hardware im Vorfeld geschätzt, und die Auswahl findet dann anhand
kosten-minimierender Gesichtspunkte statt. Stellt sich während der Weiterentwicklung
heraus, daß die Schätzung etwas daneben lag und die gewählte
Hardware nicht ausreicht, gerät die Kalkulation ins Wanken.
Das Kosten-Risiko, das die Einarbeitung in neue Entwicklungssysteme
mit sich bringt, führt tendenziell dazu, daß mit veralteter, aber
dafür gut bekannter Hardware entwickelt wird. Hersteller von Mikrocontrollern
und Digitalen Signalprozessoren (DSPs) steuern dagegen, indem sie Entwicklungswerkzeuge
mit hohem Abstraktionsgrad und geringer Einarbeitungszeit für ihre Produkte
anbieten. Leider sind diese Werkzeuge an eine schmale Produktpalette gebunden,
und die mit ihnen erstellten Applikationen sind nicht auf andere Plattformen
übertragbar.
Den Weg über die Simulation eines zu
entwickelnden Systems mit anschließender Codegenerierung für die
Ziel-Hardware beschreiten Werkzeuge wie Matlab und LabVIEW. Die Lösungen
sind zwar weitgehend Plattform-unabhängig, sie besitzen aber einen großen
System-Overhead, was den erzeugten Code für den Einsatz im Endprodukt
zu ineffizient werden lässt. Nicht zuletzt sind diese Werkzeuge sehr
teuer.
Wenn man maßgeschneiderte Lösungen mit wenig Overhead
entwickeln will, ist man auf die Programmierung in C, C++ oder Assembler angewiesen.
Das größte Hindernis bei der Portierung von fertigen Programmen
oder Programmteilen ist die Tatsache, daß sich die Unterschiede der
Hardware-Architekturen an vielen Stellen im Quellcode niederschlagen. Der
Entwickler muß explizit die Ein- und Ausgabe-Schnittstellen ansprechen,
die Speicherbelegung organisieren und eine Strategie für den Programm-Ablauf
entwickeln.
Mit freeSP ("freie Signalverarbeitung, free signal
processing'') wird ein neuer Weg beschritten. Einerseits kann auf Quelltext-Ebene
Plattform-unabhängig entwickelt und anderseits die Entwicklung signalverarbeitender
Systeme entscheidend vereinfacht werden. Im Mittelpunkt steht ein geschlossenes
Konzept für die Verarbeitung "fließender'' Signale, der freeSP-Kern.
Als fließende Signale werden Sensordaten und davon abgeleitete Informationen
bezeichnet, die zeitlich äquidistant anfallen und als Datenstrom modelliert
werden können. Zum freeSP-Kern gehören ein Workframe zur Formulierung
von Applikationen und ein erweiterbarer Vorrat von elementaren Algorithmen
zur Signalverarbeitung. Diese Komponenten sind unabhängig von der verwendeten
Plattform und greifen auf ein Modul "System'' zurück, das alle Plattform-spezifischen
Abhängigkeiten enthält und bei Bedarf einfach ausgetauscht wird.
Werkzeuge zur Visualisierung von Signalen, zur Generierung von Testsignalen
und zur Gestaltung einfacher Benutzeroberflächen für Testprogramme
ergänzen freeSP zu einer handlichen Infrastruktur für die Entwicklung
signalverarbeitender Systeme. |