Software und Bedienung

Kein Leben ohne Seele – Die Software

Nach theoretischem Hintergrund und Umsetzung in der Hardware ist nun die Software des Mikrokontrollers an der Reihe. Dieses Thema stellt wirklich einen komplett eigenen Bereich da. Es kann schnell kompliziert werden, da wesentliche Funktionen des LCQ-Meters wie Gütemessung sehr zeitkritisch sind. Am Ende ist es jedoch die Software die alle Funktionen des LCQ-Meters ermöglicht. Daher ist es wichtig diese zumindest in Grundzügen zu verstehen.

Der folgende Abschnitt zeigt die Software lediglich in Form von Funktionsblöcken auf. Im Detail ist der Mikrokontroller in der Sprache C, gemischt mit Assembler für zeitkritische Routinen, programmiert. Das aktuelle Programm füllt 99,9 % des relativ großen Flashspeichers des 16F1788 und macht intensiv Gebrauch von Interrupt-Prozessen.

 

Bild 18: Software Routinen

Das Hauptprogramm nach Bild 18 läuft in einer endlosen Schleife. In dieser Schleife finden abhängig vom jeweiligen Betriebsmodus die Berechnung von C, L, Q etc. sowie die Anzeige auf dem Display statt. Sobald Bitschalter (Flags) in der Interrupt-Routine gesetzt werden, werden zusätzliche Arbeiten durchgeführt.

Wenn beispielsweise der Anwender den Kalibrierungsknopf drückt, wird in der Interrupt-Routine (ISR) ein entsprechendes Flag gesetzt. Im Hauptprogramm wird sodann die Abarbeitung der Kalibrierung gestartet und im Anschluß wird das Flag gelöscht. Die gesamte Steuerung der Betriebsmodi, die Auswahl von Buchstaben und Zahlen, aber auch interne Zeitgeber werden per Flags gesteuert.

Dadurch ist die Interrupt-Routine sehr schlank. Es werden lediglich Flags gesetzt und Zähler für Zeitsteuerungen erhöht. Damit werden viele Probleme in Hinblick auf Sicherung von Betriebszuständen und daraus folgenden Leistungseinbussen umgangen.

Es existiert einen Vielzahl von Routinen zur Abarbeitung von allen möglichen Aufgaben. Dies fängt an bei der Initialisierung von Eingangsschnittstellen, von Zeitgebern, dem Analog-Digital-Wandler und endet in bestimmten Routinen zur Frequenz- und Gütemessung.

Die Frequenzmessung wird stets mit best möglicher Genauigkeit durchgeführt. Der Vorteiler des Mikrokontrollers wird dazu dynamisch re-konfiguriert, sowohl bei interner als auch externer Frequenzmessung.

Der komplizierte Zeitablauf der Hüllkurvenmessung ist in Assembler programmiert, da eine kompilierte Hochsprache wie C in ihrem Ablauf im Mikrosekundenbereich nicht vorhersehbar ist.

Der Zyklus der Gütemessung dürfte der interessanteste Teil der Umsetzung sein. Ohne sich im Detail zu verlieren funktioniert er wie folgt:

Da die Frequenz der Schwingung bereits vorher gemessen wird, kann sich die Gütemessung dynamisch dem Schwingungssignal anpassen.

Nehmen wir ein relativ langsames Signal mit einer Frequenz von 100 KHz an. Falls die Hüllkurve einfach nur ein paar Mikrosekunden nach Ausschalten des Oszillators gemessen werden würde, führte dies zu falschen Ergebnissen. Es kann nämlich vorkommen, dass gerade eine abfallende Flanke des Sinussignals gemessen wird. Daher muß die Messung bei Signalen mit niedriger Frequenz entsprechend länger sein. Genau das Gegenteil ist bei Signalen mit hoher Frequenz zu berücksichtigen.

Der Meßzyklus startet mit der Messung der Nullspannung (Arbeitspunkt). Sodann wird die maximale Amplitude des Signals gemessen (U(0)). Es folgt eine Schleife in der der Oszillator abgeschaltet wird, um einen Abfall der Hüllkurve einzuleiten. Für verschiedene Zeiten U(t) wird die Hüllkurvenspannung nun so oft bestimmt, bis diese unter einem definierten Wert der maximalen Amplitude abgefallen ist (z.B. 50 %). Diese Zeit t wird nun als Meßzeit definiert. Somit wird die Zeitdifferenz der Messung von U(0) und U(t) dynamisch durch das Signal selbst bestimmt. Mit dieser optimalen Zeit t wird nun mehrmals die Hüllkurvenspannung zum Zeitpunkt t gemessen, um Effekte durch Rauschen etc. zu verringern.

Um dies ein wenig besser zu veranschaulichen zeigt Bild 19 den Zyklus der Gütemessung am aktuellen LCQ-Meter. Die blauen ‚Boxen‘ sind die Oszillatorschwingungen, die rote Kurve die durch den Spitzenwertdetektor gemessene Spannung. Aufgrund des Zeitmaßstabs ist die abfallende Flanke einer Hüllkurve kaum zu erkennen. Im Gegensatz zu Bild 8 geht es hier um den Gesamtzyklus.

 

Bild 19: Güte-Meßzyklus des LCQ-Meters

Jedesmal wenn der Oszillator eingeschaltet wird dauert es ein paar Millisekunden bis die Amplitudenregelung greift. Danach bleibt die Amplitude konstant, bis der Oszillator abgeschaltet wird.

Kurz vor der ersten vertikalen Linie wird die Frequenz gemessen. Dies ist anhand des Rauschens auf der roten Linie ersichtlich (demnach gibt es ein leichtes Übersprechen, trotz Entkoppelung). Die erste rote Spitze ist die Messung der Nullinie (Arbeitspunkt). Dann folgen 10 schmale Pakete was der Bestimmung der optimalen Meßzeit U(t) entspricht. Nachdem diese Zeit t bestimmt wurde, sind 5 weitere, längere Pakete sichtbar. Diese stellen die Messung von U(t) mit höherer Genauigkeit und Durchschnittsbildung dar. Der nächste Zyklus startet nach der zweiten vertikalen Linie.

Funktionen und Bedienung des LCQ-Meters