TI-Mikrocontoller

Sensorik – Hardware Stratosphärenballon

MSP430F5529 Messsequenz

Einleiten der Messsequenz

Nach dem Einschalten und einmaligem Durchlaufen der einzelnen Programmabschnitte (Initialisierung, Messung, Messwertaufbereitung) befindet sich der MSP430F5529 im Energiesparmodus und ist größtenteils deaktiviert. Er verbleibt in diesem Modus, bis entweder der Rpi einen Steuerbefehl sendet, oder – sollte dieser ein Mal ausfallen – 15,6 Sekunden vergangen sind und der Watchdog einen Systemreset auslöst. Eine Messsequenz wird eingeleitet, indem der Rpi über einen entsprechenden Befehl den Auftrag dazu gibt. Neben der Veranlassung einer Messung kann der Rpi einen Datensatzes vom MSP über I2C auslesen.

Blockschaltbild-Initialisierung-Messsequenz
Blockschaltbild Initialisierung Messsequenz

Der MSP430F5529 speichert dabei immer nur die aktuellen Messwerte, welche nach Übertragung zum RPi dort in Datenbanken abgelegt werden. Entsprechend werden zunächst die aktuelle gespeicherten Messwerte ausgelesen und anschließend wird eine Messung gestartet, die läuft während der Rpi sich um andere Aufgaben kümmert. Sobald die Messung vollständig durchgeführt wurde, geht der MSP in den Ruhezustand und wartet auf das nächste Auslesen der Messergebnisse.

Ablauf der Messsequenz

Innerhalb der Messsequenz werden verschiedene digitale sowie analoge Sensoren abgefragt. Die einfachste Form der Messdatenerfassung ist dabei das Einlesen der Analogen Spannungen von O2-Sensoren und UV-Dioden. Entsprechend der in der Initialisierung vorgenommenen Konfiguration wird eine Messung über 4 Kanäle des ADC durchgeführt, an denen die vier Sensoren angeschlossen sind. Für die Messwerte des O2-Sensors wird zudem der Sauerstoffgehalt in 0, 1% ermittelt (Ergebnis gilt bei Normaldruck).

Blockschaltbild - Messsequenz
Blockschaltbild – Messsequenz

Die DS1820 werden über das OneWire Protokoll angesprochen und über Befehle gesteuert. Im OneWire Protokoll wird vor jeder Kommunikation ein Reset durchgeführt, gefolgt von einem Adressbefehl und ggf. einer Adresse sowie einem Steuerbefehl.

Blockschaltbild - One Wire Kommunikation Messsequenz
Blockschaltbild – One Wire Kommunikation Messsequenz

Zur Initialisierung der Messung ist keine Kommunikation von Seiten der Sensoren notwendig, der Bus wird wird ausschließlich vom Master kontrolliert. Dadurch können die Adressen übersprungen und alle Sensoren auf ein Mal angesprochen werden. 0x44 weist alle Sensoren an, eine Temperaturmessung durchzuführen. Nach kurzer Wartezeit können die Sensoren einzeln adressiert* und ihr Messergebnis abgefragt werden. Überspringen der Adresse ist hier nicht mehr möglich, da sonst alle Sensoren zeitgleich Antworten schicken würden. Mithilfe der ausgelesenen Werte kann für jeden Temperatursensor die Temperatur in 0,5° C berechnet werden.

*Die Adressen der einzelnen Sensoren wurden vorher bestimmt, indem nur ein einzelner Sensor angeschlossen wurde. Über SKIP_ROM und READ_ROM wurden die 8 Byte der Adresse ausgelesen und fest im Programm hinterlegt. Es besteht die Möglichkeit, Adressen aller auf einem Bus befindlichen Teilnehmer automatisch auszulesen, allerdings ist dann die Zuordnung Adresse<>Sensor nicht ohne weiteres möglich.

Die restlichen Sensoren sind auf dem I2C-Bus anzutreffen. Sie werden über ihre Hardwareadresse angesprochen. Die Sequenzen zur Aufnahme von Messungen unterscheiden sich für jeden Sensortyp und sind in der nachfolgenden Grafik dargestellt.

Blockschaltbild - I2C Kommunikation Messsequenz
Blockschaltbild – I2C Kommunikation Messsequenz

Seiten: 1 2 3 4 5