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.