Elastic Node Hardware
Übersicht
Kontakt: Alwyn Burger
Innerhalb des Elastic Node Projekts wird ein leistungsstarker, adaptiver Sensor Knoten entwickelt, welcher rekonfigurierbare Hardware, wie Field Programmable Gate Arrays (FPGAs) mit traditionellen 8-bit Microcontrollern (MCU) verbindet.
Diese Arbeit legt den Hauptfokus auf die Entwicklung von leistungsstarken heterogenen eingebetteten Systemen. Dies beinhaltet den Einsatz von rekonfigurierbarer Hardware, wie beispielsweise FPGAs als Hardwarebeschleuniger (Hardware accelerator) für MCU-basierte Systeme. Da bei dieser Art von Hardware keine optimale Methode existiert um diese miteinander zu verbinden, wird eine Hardwareplattform entwickelt welche die Entwicklung und das Deployment heterogener Applikationen vereinfacht. Die Anwendung soll hierbei zwischen den unterschiedlichen Prozessorknoten, welche in dem System vorhanden sind, aufgeteilt werden, bei der eine Middleware den Austausch von Daten und Kontrollsignalen vereinfachen soll.
Als allgemeineres Ziel wird in diesem Projekt eine PLattform entwickelt, welche es möglich macht, komplexe Applikationen, welche multiple Hardwarebeschleuniger benötigen, für eingebettete Systeme zu entwickeln. Diese Plattform enthält ein anspruchsvolles Datenmanagementsystem, das die Verwendung der verschiedenen Datenquellen und -senken vereinfacht, die in einem solchen heterogenen System benötigt werden. Das beinhaltet jedoch zwangsweise Schnittstellen für verschiedene Datenstandards und Protokolle einzubeziehen, idealerweise mit einem universellen und bequemen Format um Daten zwischen den entsprechenden Komponenten austauschen zu können.
Aktuelle Forschung
Das aktuelle Ziel ist die Entwicklung zusätzlicher praktischer Anwendungen, um zu evaluieren, wie nützlich diese heterogene Plattform ist. Um sich die zusätzliche Leistung zu Nutze zu machen, müssen Hardwarebeschleuniger entwickelt werden, welche verschiedene Algorithmen zum maschinellen Lernen und zur Computervision ausführen. Dies beinhaltet auch die Entwicklung und das Design eines Hardware Systems, dass sowohl in der Lage ist, diese Berechnungen durchzuführen, als auch die notwendigen Rohdaten durch Kameras oder anderer Eingabegeräte zu sammeln.
Offene Projekte
Im nachfolgenden finden sich offene Forschungsprojekte in diesem Themenbereich, welche für Studenten geeignet sind. Bei Interesse wenden Sie sich bitte an Alwyn Burger.
(Masters) Heterogener Netzwerk Visualisierer
Dieses Projekt beinhaltet das Design und die Implementation einer Systemvisualisierung für verteilte heterogene eingebettete Systeme. Durch das Überwachung von MQTT Nachrichten sollen relevante Informationen darüber extrahiert werden, welche Geräte vorhanden sind und was für Eigenschaften diese haben. Diese Informationen müssen anschließend mithilfe einer plattformunabhängigen GUI oder einem Webinterface visualisiert werden.
Das MQTT Nachrichtenformat und die Linked Data-Representation, die diese verwendet, werden zur Verfügung gestellt. Der Fokus dieser Arbeit besteht also darin wie diese Daten am Besten representiert werden können. Ein grundlegendes Verständnis von Linked Data ist dabei vorteilhaft.
(Bachelors) Embedded Systems OS Evaluation
Die Hauptaufgabe in diesem Projekt ist die Evaluation der Leistung einer Reihe von Betriebssystemen, welche speziell für eingebettete Systeme entwickelt wurden. Dies beinhaltet das Kompilieren und mögliche Portieren (im geringen Umfang) von mindestens zwei Bestriebssystemen, wie beispielsweise RIOT und FreeRTOS auf unsere Hardwareplattform. Die Evaluation wird auf grundlegenden Berechnungen von schon existierenden Bibliotheken basieren, welche einen Eindruck des Overheads der unterschiedlichen Betriebssysteme vermitteln können.
(Masters) Skeleton Generation für ein Middleware System in FPGAs
Das Ziel dieses Projekts ist die Entwicklung eines Code Generators, welches einen simplen IDL (Interface Description Language) Code in VHDL oder Verilog übersetzt. Dieser kann dann in FPGA Projekten dazu verwendet werden um eine Schnittstelle mit einer FPGA-basierten Middleware herzustellen. Dies beinhaltet die Entwicklung und Evaluation dieses Schnittstellencodes, auch Skeleton genannt, das einen generischen Bytestream akzeptiert und diesen in das gegebene Datenformat übersetzt, dass der IDL-Code spezifiziert hat.
Es werden einige Vorschläge und Anmerkungen für das IDL-Format zur Verfügung gestellt, aber eine formale Definition wird innerhalb des Projekts entwickelt werden müssen.
(Bachelors) OTA Updates durch einen Bootloader auf MCUs
Bootloaders können die Benutzung von MCUs deutlich vereinfachen, in dem das Aktualisieren der Firmware optimiert wird. Das Ziel dieser Arbeit ist die Funktionalität einer existierenden Bootloaderimplementation (DFU) zu erweitern um eine Over-the-Air Update (OTA) zu ermöglichen. Auf der Basis eines Kommunikationsmodul, welches 802.15.4 verwendet, soll ein Nachrichtenprotokoll entwickelt und implementiert werden, welches es erlaubt vorkompilierte MCU Software an ein Gerät zu schicken und diese im internen Flashspeicher zu persistieren.
Auch wenn der Bootloader selbst zur Verfügung gestellt wird, ist es nötig diesen zu erweitern. Dies beinhaltet vorrangig MCU-Programmierung in embedded C. Es ist von Vorteil, wenn die Veranstaltung Embedded Systems gehört wurde.
(Bachelors/Masters) Design eines Tonaufnahme-Boards
Tonaufnahmen in hoher Qualität stellen auf eingebetteten Systemen eine große Herausforderung dar, da diese nur mit einer geringen Betriebsfrequenz arbeiten. In diesem Projekt soll ein Daughterboard PCB designt und gebaut werden, welches eins oder mehrere Mikrofone beinhaltet. Ob ein digitales oder analoges Mikrofon verwendet werden soll, soll in dieser Arbeit untersucht werden, um die beste Lösung für diese Applikation zu finden, welches widerum die beste Aufnahme ermöglichen soll.
Diese Aufgabe beinhaltet das Design und den Zusammenbau (nicht das Herstellen) eines Schalttkreises welches mit einer bestehenden MCU-basierten Motherboard verbunden werden kann. Es beinhaltet auch eine grundlegende Implementierung in embedded C zu schreiben, die mit dem Mikrofon Tonaufnahmen anfertigt und diese über die verfügbare USB Verbindung zurückgibt.
(Bachelor) Leistungs- und Energiemonitoring eines Wireless Sensor Node
Leistungseffizienz ist essentiell in batteriebetriebenen Microcontrollern um das Internet der Dinge umsetzen zu können. Wenn man in der Lage ist in Echtzeit die Leistung überwachen zu können, erlaubt dies eine bessere Einsicht in das Leistungsverhalten eines Systems. Um dies zu erreichen ist das Ziel dieses Projekts einen existierenden Entwurf eines Wireless Sensor Node zu erweitern, so dass dieser den Batteriestand und die elektrische Leistung überwacht. Ein Motherboard-Node existiert, welcher durch ein entsprechendes Daughterboard erweitert werden kann, welches diese Funktionalitäten beinhaltet.
In diesem Projekt müssen vorrangig PCBs entworfen werden, welche anschließend angefertigt werden. Es wird notwendig sein diese zu testen und ein kleines Stück Software zu entwickeln, welche es einer Applikation erlaubt diese Informationen abzufragen. Daher werden PCB Entwurf und C Programmierung als essentielle Fähigkeiten für dieses Projekt benötigt.