Add Thesis

Bildverarbeitungs-Plugins auf einem Microcontroller

Written by Anonymous

Paper category

Bachelor Thesis

Subject

Computer Science

Year

2016

Abstract

Bachelorarbeit: Mikrocontroller und Plug-Ins Die Software auf dem Mikrocontroller ist bei nachträglichen Anpassungen meist sehr unflexibel. Dies kann durch die Verwendung eines Plug-in-Systems verbessert werden. In diesem Kapitel werden die auftretenden Probleme und Merkmale aufgezeigt. Die Methode zur Realisierung des Proof of Concept wird ebenfalls angegeben 4.1 Harvard-Architektur Da im Mikrocontroller die Harvard-Architektur verwendet wird, ist es in der Regel nicht möglich, den nachträglich hinzugefügten Programmcode aus dem RAM auszuführen. Da RAM kein permanenter Speicher ist, gehen beim Ausschalten auch die dort gespeicherten Plug-Ins verloren. Daher ist es am besten, den Plug-In-Manager zuerst das neue Plug-In in den Flash-Speicher schreiben zu lassen. Der für diese Arbeit verwendete Mikroprozessor von STMicroelectronics stellt die Funktion HAL_FLASH_Program() bereit. Mit dieser Funktion können zur Laufzeit beliebige Binärdaten in den Flash-Speicher geschrieben und der Flash-Speicher über die Funktion HAL_FLASHx_erase() blockweise gelöscht werden. Es ist wichtig, im Voraus festzulegen, welche Speicherorte für Plug-Ins zur Verfügung stehen und deren Speicherorte. Anderenfalls können andere Programmteile überschrieben werden. Die Plug-In-Verwaltung muss auch verfolgen, welche Speicherbereiche durch andere Plug-Ins belegt sind Funktionszeiger In der Programmiersprache C werden Funktionszeiger beim Aufruf von Funktionen im Programmablauf verwendet. Normalerweise können Programmierer sie nicht direkt identifizieren, aber sie werden nach jedem Funktionsaufruf lokalisiert. Oder Sie können Funktionszeiger manuell verwenden und verwalten. Dies kann jedoch bei unachtsamer Handhabung zu erheblichen Fehlern führen. Wenn es vermieden werden kann, wird daher im Allgemeinen nicht empfohlen, Funktionszeiger zu verwenden. Für das Plug-In erstellt das Management zunächst einen Null-Funktionszeiger und trägt dann die vom Plug-In gespeicherte Flash-Speicheradresse ein. Von nun an kann durch Aufruf des Funktionszeigers wie eine Funktion das Plug-In aufgerufen werden wie jede andere Funktion. Das Programm springt direkt auf den ersten Speicherplatz des Plug-Ins. Sie muss daher dem in Abschnitt 4.5 beschriebenen Aufbau folgen. Wichtig ist auch, dass die Parameter korrekt übergeben werden, da sie zur Laufzeit nicht mehr geprüft werden. Abbildung 4: Verwenden der Funktionstabelle. Das Hauptprogramm sucht in der Tabelle die Adresse der Funktion 2. 4.3 Funktionszeigertabelle Damit das Plug-In auf die ausgewählte Funktion des Hauptprogramms zugreifen kann, benötigt es auch einen Funktionszeiger auf die Verwaltung Funktion. 5 Fast Wavelet Transformation als Plug-In Als Plug-In für ein solches System lässt sich Fast Wavelet Transformation sehr gut implementieren, da es aus mehreren unabhängigen Teilen besteht. Die Analyse, Verarbeitung und Synthese von Koeffizienten kann als eigenständige Plug-Ins implementiert werden. Durch diese Modularisierung ist es beispielsweise einfach, nur die Verarbeitung von Koeffizienten anzupassen, ohne alle anderen Teile direkt anpassen zu müssen. Alternativ kann beispielsweise auf die Synthese verzichtet werden. Auf diese Weise können Sie weiterhin Wavelet-Koeffizienten verwenden, um im Spektrum weiter zu arbeiten. Wavelet-Transformation eignet sich auch besonders gut für die Aufteilung in mehrere Plug-Ins, da sie auf einem festen Speicherbereich arbeitet und keinen zusätzlichen Speicher benötigt, um die Ergebnisse zurückzugeben. Es wird nur ein Speicherbereich verwendet, der nacheinander vom Plug-In geändert wird. Die Verwendung von DWT auf einem Mikrocontroller kann helfen, Daten zu komprimieren oder sogar zu analysieren, bevor sie gesendet werden. Bei der Umsetzung müssen alle Punkte aus den vorherigen den in Kapitel 4 beschriebenen Verfahren befolgen. Insbesondere die Verwendung von API ist sehr wichtig, um mit dem Plugin-Management kommunizieren zu können. Hier muss auch die Header-Datei Plugin_def.hmit eingebunden werden Der auf die Wavelet-Koeffizienten angewendete Filter ist eine einfache Schwelle in diesem Proof of Concept. Das bedeutet, dass alle Werte unterhalb der zuvor definierten Schwelle auf Null gesetzt werden. Dies führt dann zu einer einfachen Entrauschung des Eingangssignals. 6 Alternative Plug-Ins sind nicht die einzige Möglichkeit, den Mikrocontroller in Zukunft mit Software zu ergänzen. Die beiden Hauptalternativen sind einerseits Skriptsprachen und andererseits das gesamte Betriebssystem mit installierten Plug-Ins. Skriptsprachen wie MicroPython[Geo] werden nicht direkt in Prozessoranweisungen übersetzt, sondern verbleiben in Form von Quellcode. Es wird dann vom Interpreter zur Laufzeit ausgeführt. Dies führt zu einer deutlich höheren Flexibilität. Für die neue Hardware müssen Sie nur den Interpreter anpassen und schon können alle Programme auf der neuen Hardware ausgeführt werden. Bei kompilierten Sprachen muss jedoch jedes Programm neu kompiliert werden, damit es auch mit der neuen Hardware verwendet werden kann. Wenn Sie auf dem Mikrocontroller eine Skriptsprache verwenden möchten, müssen Sie zusätzlich zu den Grundfunktionen einen Interpreter in der entsprechenden Sprache hinzufügen. Erklären Sie dann den Code des Plug-Ins zur Laufzeit. Die Lösung ist sehr flexibel, da über den Dolmetscher alle Funktionen der Sprache zur Verfügung stehen. Denn der Code wird erst zur Laufzeit ausgewertet und interpretiert. Read Less