13.03.2013 Aufrufe

Design&Elektronik, Extraausgabe Okt - Silicann

Design&Elektronik, Extraausgabe Okt - Silicann

Design&Elektronik, Extraausgabe Okt - Silicann

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

PROGRAMMIERUNG<br />

Viele Innovationen innerhalb<br />

der nächsten<br />

10 Jahre werden auf<br />

dem Gebiet der »intelligenten«<br />

und busfähigen Sensoren<br />

zu erwarten sein. Getrieben<br />

wird diese Entwicklung<br />

unter anderem von den Forderungen<br />

nach dezentraler<br />

»Intelligenz«, nach Reduktion<br />

der zu übertragenden<br />

Datenmengen und nach<br />

Verringerung des Verkabelungsaufwands.<br />

Es geht zunehmend<br />

darum, die elektrischen<br />

Signale der Primärsensoren<br />

bereits im<br />

Sensorsystem in hoch verdichtete<br />

Nutzinformationen<br />

umzuwandeln und diese<br />

über standardisierte Schnittstellen<br />

zur Verfügung zu<br />

stellen (Bild 1).<br />

Dadurch wachsen die Anforderungen<br />

an die Software-<br />

Entwicklung. Einerseits werden<br />

die notwendigen algorithmischen<br />

Ansätze zur<br />

Signalverarbeitung immer<br />

komplexer. Andererseits stehen<br />

statt leistungsfähiger,<br />

zentraler Recheneinheiten für<br />

Software-Entwicklung outsourcen<br />

Vom Signal zur Information<br />

Outsourcing ist in aller Munde, wenn es um<br />

Kosteneinsparungen geht. Allerdings kann es<br />

auch handfeste technische Vorteile haben,<br />

Teile der Entwicklung an einen spezialisierten<br />

Dienstleister zu vergeben. Anhand eines Beispiels<br />

aus der Sensorik soll dieser Beitrag zeigen,<br />

worauf man bei einer solchen Zusammenarbeit<br />

achten sollte und welche Ergebnisse<br />

ein konkretes Anwendungsbeispiel<br />

gebracht hat.<br />

Henning Fuge<br />

ist für Controller<br />

und Algorithmen bei <strong>Silicann</strong><br />

Technologies verantwortlich<br />

20 DESIGN&ELEKTRONIK SOFTWARE-ENTWICKLUNG 2005<br />

die Software-Implementierung<br />

begrenzte Hardware-<br />

Ressourcen im Sensorsystem<br />

zur Verfügung. Sensorhersteller<br />

und -integratoren sind<br />

gut beraten, die Brücke zwischen<br />

Sensorsignal und busfähiger<br />

Nutzinformation von<br />

spezialisierten Dienstleistern<br />

schlagen zu lassen.<br />

Dieser Artikel erläutert die<br />

Projektstufen von der Ausgangssituation<br />

über die Entwicklung<br />

des Algorithmus<br />

und beschreibt methodische<br />

Ansätze der Software-Entwicklung.<br />

Abschließend<br />

stellt er ein konkretes Fallbeispiel<br />

aus einer Zusammenarbeit<br />

zwischen Sensorhersteller<br />

und Signalverarbeitungsspezialist<br />

vor.<br />

Die Entwicklung der Signalverarbeitung<br />

für einen Sensor<br />

wird – nachdem die<br />

Hardware ausgewählt und<br />

aufgebaut ist – oft lediglich<br />

als Softwareprojekt verstanden.<br />

Damit wird das Projekt<br />

zu früh auf die Programmierung<br />

reduziert, getragen<br />

von dem Gedanken: »Der<br />

Sensor ist jetzt fertig, er<br />

muss nur noch schnell programmiert<br />

werden«. Damit<br />

sind folgende Risiken verbunden:<br />

■ Zu knappe Bemessung<br />

dieses Projektabschnittes<br />

■ und damit von Beginn an<br />

falsche Erwartungshaltungen<br />

bezüglich des Fertigstellungstermins,<br />

nicht<br />

selten verstärkt durch eine<br />

späte Bereitstellung der<br />

Hardware-Plattform.<br />

■ Überfrachtung der Software-Entwickler<br />

mit Fragen<br />

der Signaltheorie und<br />

-verarbeitung, die nicht<br />

zu ihren Kernkompetenzen<br />

zählen.<br />

■ Fehlende oder mangelhafte<br />

konzeptionelle<br />

Überlegungen zum Signalverarbeitungsansatz<br />

und zur grundlegenden<br />

Signalverarbeitungstechnik.<br />

■ Unter Zeitdruck erstellte<br />

und von »Work-arounds«<br />

geprägte Softwarestruktur.<br />

■ Unzureichende Generalisierung,<br />

Modularisierung,<br />

Erweiterbarkeit und Wiederverwendbarkeit<br />

der<br />

Software.<br />

Dies kann zu deutlichen<br />

Nachteilen für die Verwertbarkeit<br />

und Zukunftssicherheit<br />

der entstehenden Lösung<br />

führen.<br />

Eine erfolgreiche Entwicklung<br />

für eine Signalverarbeitung<br />

vom Primärsignal bis<br />

zu busfähigen Daten ist geprägt<br />

von typischen Phasen<br />

(Bild 2), die weit vor der eigentlichenSoftware-Entwicklung<br />

beginnen. In der<br />

Darstellung in Bild 2 ist der<br />

Hardware-Zweig ausgeblendet.<br />

Es wird davon ausgegangen,<br />

dass die Hardware-<br />

Entwicklung bereits erfolgt<br />

ist und auf eine vorhandene<br />

Hardware-Plattform zugegriffen<br />

werden soll. Dies entspricht<br />

oft der Realität. Meist<br />

ist es jedoch sinnvoll, die<br />

Signalverarbeitungshardware<br />

nach den grundlegenden<br />

Überlegungen zum Systemdesign<br />

der Software zu<br />

spezifizieren.<br />

Dienstleister<br />

mit einbeziehen<br />

Wird ein Outsourcing angestrebt,<br />

kann und sollte bereits<br />

in der Spezifikationsphase<br />

der Dienstleister eingebunden<br />

werden, da<br />

gerade hier die Erfahrung<br />

des Spezialisten zu entscheidenden<br />

Weichenstellungen<br />

für das Projekt beitragen<br />

kann. So lassen sich Doppelarbeit<br />

und spätere Änderungen<br />

weitgehend ausschließen.<br />

Es ist für den Auftraggeber<br />

ratsam, dem Auftragnehmer<br />

auch Informationen<br />

über die geplante<br />

Produkt-Roadmap zu ge-


en, damit zukünftige Funktionsumfänge<br />

in der Softwarekonzeptionberücksichtigt<br />

werden können.<br />

Den Dienstleister mit der Erstellung<br />

der Spezifikation zu<br />

beauftragen, kann gerade in<br />

einer erstmaligen Zusammenarbeit<br />

als Einstieg dienen,<br />

um das Zusammenspiel<br />

zwischen Auftraggeber und<br />

Auftragnehmer zu testen.<br />

Verläuft diese Phase reibungslos,<br />

ist dies in der Regel<br />

ein guter Indikator für<br />

die weitere Zusammenarbeit.<br />

Zudem ist die externe<br />

Sicht des Spezialisten auf<br />

das Projekt meist unbefangener,<br />

sodass Klärungsbedarf<br />

für die Spezifikation<br />

schneller erkannt wird.<br />

Eine wichtige Funktion<br />

kommt der genauen Analyse<br />

des zu verarbeitenden Signals<br />

zu. In dieser Phase werden<br />

die Grundlagen für die<br />

spätere effiziente Verarbeitung<br />

definiert. Vor allem ist<br />

zu untersuchen, welche redundanzfreieNutzinformation<br />

das Signal enthält, die<br />

für eine spätere Auswertung<br />

benötigt wird. Gelingt es,<br />

diese Nutzinformation zu<br />

extrahieren und damit die<br />

Datenmenge zu reduzieren,<br />

vereinfacht sich die nachfolgende<br />

Auswertung in vielen<br />

Fällen drastisch. Die Art der<br />

Analyse hängt von den Eigenschaften<br />

des Signals ab.<br />

Sie unterscheidet sich unter<br />

anderem je nach dem, ob es<br />

sich um ein zeitdiskretes<br />

oder zeitkontinuierliches,<br />

ein- oder mehrdimensionales,<br />

quasi-lineares oder stark<br />

nicht lineares, ungestörtes<br />

oder stark gestörtes Signal<br />

handelt.<br />

Ausgehend von den Ergebnissen<br />

der Signalanalyse ist<br />

ein geeigneter technischer<br />

Ansatz für die Signalverarbeitung<br />

zu wählen. Hier sind gegebenenfalls<br />

Fragen wie die<br />

folgenden zu beantworten:<br />

■ Wie ist das Signal zu transformieren,<br />

um Korrelationen,<br />

Redundanzen und<br />

Störungen zu beseitigen?<br />

■ Wie lässt sich die Datenmenge<br />

geeignet auf<br />

die Nutzinformation reduzieren?<br />

■ Mit welchen Methoden<br />

sind welche Merkmale zu<br />

extrahieren?<br />

■ Wie werden diese Merkmale<br />

abgebildet und ausgewertet?<br />

Die richtige Wahl des technischen<br />

Ansatzes entscheidet<br />

maßgeblich über das<br />

Aufwand/Nutzen-Verhältnis<br />

der nachfolgenden Schritte.<br />

Zuweilen entscheidet sich<br />

mit der Wahl des technischen<br />

Ansatzes, ob die Lösung<br />

insgesamt realisiert<br />

werden kann.<br />

Anstatt »drauflos« zu programmieren,<br />

muss nun<br />

zunächst auf höherer Abstraktionsebene<br />

überlegt werden,<br />

wie sich der grundsätzliche<br />

technische Ansatz in geeignete<br />

Algorithmen überführen<br />

lässt und wie diese sich optimieren<br />

lassen. Auch in diesem<br />

Schritt steckt – abhängig<br />

von der Anwendung – oft gewaltigesOptimierungspotenzial.<br />

Nachdem Klarheit über den<br />

geeigneten technischen Ansatz<br />

und dessen Überleitung<br />

in Algorithmen herrscht,<br />

kann man das komplette<br />

Systemdesign für die Soft-<br />

DESIGN&ELEKTRONIK SOFTWARE-ENTWICKLUNG 2005<br />

21<br />

ware erstellen. Hierbei wird<br />

festgelegt, welche Verarbeitungsschritte<br />

vorzusehen<br />

sind, in welche Module die<br />

Software zu gliedern ist, wie<br />

die Schnittstellen zwischen<br />

den Modulen gestaltet werden<br />

sollen, welche Datenformate<br />

bedarfsgerecht sind,<br />

wie das Datenmanagement<br />

und die Datenhaltung erfolgen<br />

sollen, etc.<br />

Auswahl der Tools<br />

Tendenziell werden Tools für<br />

die Erstellung der Software<br />

zu früh und anhand der Kriterien<br />

»Was ist vorhanden«<br />

oder »Was ist bekannt« festgelegt.<br />

Die Tools werden regelmäßig<br />

durch die verwendete<br />

Hardware-Plattform<br />

vorgegeben. Dies ist ein weiterer<br />

Grund, die Hardware<br />

erst nach den technischen<br />

Überlegungen zu spezifizieren.<br />

Diese Auswahl sollte –<br />

wenn möglich – erst unmittelbar<br />

vor der eigentlichen<br />

Software-Entwicklung und<br />

unbefangen getroffen werden,<br />

damit die verwendeten<br />

Tools für die Aufgabenstellung<br />

optimal geeignet sind.<br />

Dies setzt natürlich voraus,<br />

dass eine Auswahl unter verschiedenen<br />

Alternativen<br />

möglich ist. Der Spezialist ist<br />

dazu eher in der Lage.<br />

An diesem Punkt erst beginnt<br />

die eigentliche Software-Entwicklung.<br />

Ist die<br />

Vorarbeit gut geleistet, sollte<br />

die Software-Entwicklung<br />

nun keine unliebsamen<br />

Überraschungen mehr bieten<br />

und »straight forward«<br />

in kurzer Zeit zu realisieren<br />

sein. Schließlich ist die meist<br />

auf einem Funktionsmuster<br />

oder Prototypen entwickelte<br />

Software auf die serienreife<br />

Zielhardware zu übertragen.<br />

Als nächstes kommt die Verifikation.<br />

Dabei wird überprüft,<br />

ob die entwickelte Software<br />

der Spezifikation entspricht.<br />

Eine professionell erstellte<br />

Spezifikation vereinfacht diesen<br />

Schritt deutlich. Innerhalb<br />

der Software-Entwicklung<br />

sind natürlich mehrere<br />

Verifikationsstufen ratsam. So<br />

lassen sich bei sinnvoller Software-Konzeption<br />

zunächst<br />

Module einzeln verifizieren.<br />

Ist die Verifikation erfolgreich<br />

abgeschlossen, erfolgt<br />

üblicherweise die Lieferung<br />

der Lösung, sofern die Entwicklung<br />

nicht bereits beim<br />

Auftraggeber durchgeführt<br />

wurde. Eine bedarfsgerechte<br />

Dokumentation, die dem<br />

Auftraggeber nicht nur das<br />

Verständnis der Software<br />

sondern auch der technischen<br />

Überlegungen ermöglicht,<br />

sollte bereits jetzt<br />

für den folgenden Schritt<br />

vorhanden sein.<br />

Bei der Validierung wird<br />

überprüft, ob die entwickelte<br />

Software unter den Einsatzbedingungen<br />

beim Kunden


PROGRAMMIERUNG<br />

den Anforderungen genügt.<br />

Es ist regelmäßig davon auszugehen,<br />

dass sich diese Einsatzbedingungen<br />

deutlich<br />

von den Laborbedingungen<br />

während der Entwicklung<br />

unterscheiden. Nicht selten<br />

treten dabei noch unerwünschte<br />

Effekte auf, die geeignet<br />

zu behandeln sind. Es<br />

gibt Fälle, in denen der Auftraggeber<br />

die Spezifikation<br />

unter Zeitdruck und ohne<br />

hinreichende Erfahrung erstellt<br />

hat. Dann ist nicht ausgeschlossen,<br />

dass Lücken in<br />

der Spezifikation, die berücksichtigt<br />

und nachgearbeitet<br />

werden müssen, erst<br />

während der Validierung zutage<br />

treten. Dies plant ein erfahrener<br />

Dienstleister im<br />

Sinne der Kundenzufriedenheit<br />

rechtzeitig ein.<br />

Sind die während der Validierung<br />

eventuell aufgetretenen<br />

Effekte behoben und<br />

die Nacharbeiten abgeschlossen,<br />

steht einer abschließenden<br />

Übergabe<br />

nichts im Wege. Zu einer<br />

professionellen Übergabe<br />

gehört neben der erstklassigen<br />

Dokumentation auch<br />

eine Präsentation beim Auftraggeber<br />

für einen reibungsfreien<br />

Wissenstransfer.<br />

Der Auftraggeber (Sensorhersteller<br />

oder -integrator)<br />

ist nun im Besitz einer auf<br />

seine Bedürfnisse optimierten<br />

Softwarelösung. Hat der<br />

Signalverarbeitungsspezialist<br />

gute Arbeit geleistet,<br />

werden spätere Anpassungen<br />

und Funktionserweiterungen<br />

am Sensor nur geringen<br />

Aufwand erzeugen.<br />

Der Sensorhersteller oder -integrator<br />

kann sich so auf sein<br />

Kern-Know-how konzentrieren<br />

und vermeidet es, »das<br />

Fahrrad neu zu erfinden«.<br />

Praktisches Beispiel<br />

Ein Beispiel einer erfolgreichen<br />

Zusammenarbeit zwischen<br />

Sensorhersteller und<br />

Signalverarbeitungsspezialist<br />

ist die Entwicklung eines<br />

Software-Paketes für das<br />

22 DESIGN&ELEKTRONIK SOFTWARE-ENTWICKLUNG 2005<br />

Bild 1: Wertschöpfungskette bei »intelligenten« Sensoren<br />

»Optical Multi-Input Device«<br />

(OMID) der Firma Mechaless<br />

Systems. Ausgeführt<br />

wurde die Software-Entwicklung<br />

von der Firma <strong>Silicann</strong><br />

Technologies.<br />

Das OMID ermöglicht es,<br />

verschiedene Handgesten<br />

oder Fingerbewegungen zu<br />

unterscheiden. Hierfür detektiert<br />

ein auf der »Halios«-<br />

Technik basierender Infrarotsensor<br />

die ausgesendete<br />

und von der Hand oder dem<br />

Finger zurückgestreute<br />

Strahlung, anschließend<br />

wertet der Sensor die Daten<br />

mithilfe eines Signalverarbeitungsalgorithmus<br />

aus. Je<br />

nach Aufbereitung der Sensorsignale<br />

kann das OMID –<br />

ohne Veränderung der<br />

Hardware – als optischer<br />

Schalter, Taster, Maus,<br />

Trackball oder Slider (X, Y,<br />

Z) eingesetzt werden. So<br />

kann mit dem Halios-Prinzip<br />

die gewünschte Bedienfunktion<br />

elegant und flexibel in<br />

Armaturen, Chassis und Bedienfelder<br />

integriert werden.<br />

Der mechanikfreie Aufbau<br />

ist dabei verschleißfrei<br />

und alterungsbeständig.<br />

Die Vorverarbeitung der<br />

Messwerte erfolgt mit einem<br />

Mikrocontroller der Firma Elmos,<br />

wobei ein von Mechaless<br />

entwickelter Algorithmus<br />

zum Einsatz kommt. Es<br />

galt jetzt, einen neuen Signalverarbeitungsalgorith<br />

Bild 2: Phasen der Software-Entwicklung zur Sensorsignalverarbeitung<br />

mus zu entwickeln, der die<br />

flexible und robuste Erkennung<br />

und Unterscheidung<br />

der Gesten ermöglicht. Damit<br />

waren auch die Vorteile<br />

adaptiver Ansätze für die<br />

Gestikerkennung mit Halios<br />

herauszustellen.<br />

Nach Unterzeichnung einer<br />

Verschwiegenheitsvereinbarung<br />

fand die erste Vorbesprechung<br />

beim Auftraggeber<br />

statt, bei dem alle auf<br />

der Auftraggeberseite in das<br />

Projekt involvierten Entwickler<br />

teilnahmen. So konnten<br />

zahlreiche Hinweise zum<br />

bisherigen Vorgehen und zu<br />

den aktuellen Ergebnissen<br />

aufgenommen werden. Die<br />

Zielstellung und die Rahmenbedingungen<br />

für das<br />

Projekt ließen sich dadurch<br />

schnell festlegen. Die Spezifikation<br />

im Sinne eines<br />

Pflichtenheftes wurde anhand<br />

der Erkenntnisse aus<br />

dem Projektmeeting erstellt.<br />

Nach der Festlegung der<br />

Spezifikation wurde auf dieser<br />

Basis das Angebot unterbreitet<br />

und der Auftrag erteilt.<br />

Die offene Kommunikationskultur<br />

beider Seiten<br />

unterstützte eine reibungsfreie<br />

Abstimmung. Die Vorbereitungsphase<br />

von der<br />

Vorbesprechung bis zum<br />

Auftrag benötigte so nur<br />

wenige Manntage.<br />

Die Hardware-Plattform für<br />

die Entwicklung der Signalverarbeitungssoftware<br />

hatte<br />

der Auftraggeber vor Beginn<br />

der Zusammenarbeit fertig<br />

gestellt, sodass der Mikrocontroller,<br />

die Entwicklungstools<br />

für die Software


und die sonstigen Hardware-Ressourcen<br />

bereits<br />

festgelegt und zu verwenden<br />

waren.<br />

Dem Auftragnehmer standen<br />

für die Entwicklung ein<br />

Prototyp des Sensors und<br />

grundlegende Teile der<br />

Firmware zur Verfügung.<br />

Die notwendigen Entwicklungswerkzeuge<br />

für den<br />

Controller und mehrere<br />

Hilfs- und Demonstrationsprogramme<br />

waren ebenfalls<br />

vorhanden.<br />

Das OMID zeigt – je nach<br />

Bedienverhalten – charakteristische<br />

Signalverläufe. In<br />

Bild 3 sind Beispiele für einen<br />

konkreten Bedienvorgang<br />

(»Touch«) dargestellt,<br />

basierend auf einem der vorhandenen<br />

Sensorsignale.<br />

Dabei korreliert der Signalhub<br />

mit der Entfernung der<br />

Hand vom Sensor. So kann<br />

diese typische Hand- oder<br />

Fingerbewegungen erkannt<br />

und die entsprechende applikationsspezifischeFunktion<br />

ausgelöst werden.<br />

Durch die Auswertung weiterer<br />

vorhandener Signale<br />

lassen sich auch XYZ-Bewegungen<br />

und damit andere<br />

typische Gesten oder Bewegungen<br />

auswerten (z.B.<br />

»3D-Maus«). Der technische<br />

und algorithmische Ansatz<br />

muss die Menge der bekanntenAnwendungsmöglichkeiten<br />

und Bedienvorgänge<br />

abdecken und für<br />

zukünftige Anwendungen<br />

ohne Konzeptbrüche erweiterbar<br />

sein.<br />

Die Signalanalyse lieferte<br />

wichtige Hinweise zur Datenreduktion<br />

und zur Extraktion<br />

charakteristischer Merkmale<br />

für die Unterscheidung<br />

der verschiedenen Bedienvorgänge.<br />

Aufgrund der offenen<br />

Menge zukünftiger<br />

Anwendungen wurde ein<br />

möglichst universeller technischer<br />

Ansatz auf Basis eines<br />

erweiterbaren Merkmalsraums<br />

gewählt. Dadurch<br />

kann die Signalauswertung<br />

mit einfachen Vektor-Operationen<br />

erfolgen. Das verrin-<br />

Parameter Ausgangssituation Erwartungshaltung Ergebnis<br />

Programmspeicher 4 KByte max. ggf. Erweiterung auf 8 KByte 2,5 KByte<br />

Datenspeicher 192 Byte keine Angabe 70 Byte bis 192 Byte<br />

Reaktionszeit

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!