Bachelorarbeit

Meine Bachelorabeit habe ich am Institut für Grundlagen der Elektrotechnik und Messtechnik an der Leibniz Universität Hannover zum Thema Entwicklung und Optimierung von Software für eine mikrocontrollerbasierte Steuerung einer Messeinheit mit High-Speed USB-Schnittstelle geschrieben.

Die Aufgabenstellung lautete:

Im Rahmen einer Bachelorarbeit erhält Herr Niklas Rother die Aufgabe die Software für die Steuerung und Kommunikation einer auf einem 32-bit Mikrokontroller basierende Messeinheit zu entwickeln. Im ersten Teil der Arbeit soll Herr Rother durch eine geeignete Treiberschnittstelle sicherstellen, dass die neue Messeinheit zu der bisher verwendeten in LabView geschriebenen Kontrollsoftware kompatibel ist, gleichzeitig jedoch eine höhere Performance bietet und den Funktionsumfang der Messeinheit unterstützt.

Als Herzstück des am Institut vorhandenen Einschubsystems ist der von Herrn Rother programmierte Mikrokontroller für die Auswertung der Messdaten und Steuerung des gesamten Messsystems verantwortlich. Die Software muss daher sicherstellen, dass Spannungspulse mit einer Pulslänge von weniger als 100 ns erzeugt und synchron dazu mittels eines 24-bit Analog- Digital-Wandler die Messdaten erfasst werden können. Dabei liegt aufgrund der zeitlich kritischen Anwendung das Hauptaugenmerk darauf, ein Konzept zu entwickeln und umzusetzen, bei dem es, etwa durch die Kommunikation mit dem Messcomputer oder andere Störeinflüsse, nicht zu Fehlern in den erfassten Messdaten kommen kann. Ferner ist hinsichtlich der anhaltenden Entwicklung des Messsystems eine umfangreiche Dokumentation des Programmcodes nötig, sodass eventuelle Änderungen auch von Dritten schnell eingebunden werden können.

Von mir wurde dabei eine recht umfangreiche Firmware für eine Schaltung auf Basis des TM4C129 (Cortex M4-Kern) entwickelt, die per USB mit dem Host-Rechner kommuniziert und weitere Module per I²C ansteuern kann. Zusätzlich können direkt auf der Karte sehr kurze (bis zu 8.33 ns) Pulse erzeugt werden, um ein Messsystem anzusteuern. Die Implementierung der Pulssignale ist recht trickreich, da so etwas eigentlich nicht vorgesehen ist. Durch geschickte Ausnutzung der PWM-Modus war es aber dennoch möglich 🙂

Als weitere Funktion kann die Firmware mit Hilfe eines ADS1675 ein analoges Signal erfassen (ein „Spektrum“). Bis zu 256 dieser Spektren können automatisch akkumuliert werden. Die Erfassung der Spektren erfolgt synchron zur Erzeugung der Pulssignale.

Im Laufe der Arbeit wurde zwei bisher undokumentierte Hardware-Fehler des verwendeten Prozessors im Zusammenhang mit dem SPI-Modul gefunden, leider zeigte sich der TI-Support sehr unkooperativ und wollte weitere Details zu diesen Fehlern nicht erfahren, da man grundsätzlich nicht mit Studenten kommunizieren würde 🙁

Weitere Informationen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert