• Keine Ergebnisse gefunden

Ein Unterwasserfahrzeug besitzt eine Vielzahl von Sensoren und Aktoren, die alle aus-gelesen, gesteuert oder geregelt werden m¨ussen. Bei ferngesteuerten Fahrzeugen (ROVs)

¨

ubernimmt ein Rechner zusammen mit dem so genannten Operator und Pilot auf dem Schiff die wesentlichen Kontrollaufgaben. Es besteht also eine externe Kontrollstruktur.

Bei autonomen Fahrzeugen (AUVs) muss diese Aufgaben ein Rechnersystem bearbeiten, das sich in dem Fahrzeug selber befindet. Da bei der Anwendung der druckneutralen Technologie keine kostenintensiven Druckgeh¨ause n¨otig sind, bietet sich eine dezentra-le Datenverarbeitung an. Somit ist es m¨oglich, die Rechenleistung bzw. Verarbeitungs-geschwindigkeit sogar zu vergr¨oßern, da MCU (Microcontroller Units) parallel arbeiten k¨onnen.

Bei analogen Messverfahren wird oftmals ein Mikrocontroller eingesetzt, wenn beispiels-weise die Kennlinie des Sensors nicht linear von der Messgr¨oße abh¨angt oder die Einfl¨usse von St¨orgr¨oßen ber¨ucksichtigt werden m¨ussen. Dies kann mit Hilfe von mathematischen Modellen realisiert werden. Grundlage f¨ur diese Modellierung ist die mathematische Inter-polation, d.h. der funktionale Zusammenhang des Sensorsignals wird durch ein Polynom h¨oheren Grades angen¨ahert. Weiterhin ist es m¨oglich, mit Hilfe eines Mikrocontrollers Kalibrierdaten im internen Speicher zu hinterlegen. Mikrocontroller arbeiten allerdings

Abb. 2-13 Continuoues Conversion Mode [Ana06]

zwei Gr¨oßenordnungen langsamer als diskrete Analogschaltungen [Lin94]. Daher sind sie f¨ur steuer- oder regelungstechnische Aufgaben nur bedingt einsetzbar.

Als MCU wurde in dem Drucksensor ein STM32-Cortex-M3 verwendet. Der Mikrocon-troller befindet sich auf einer kleinen Platine, die neben einer eigenen Betriebsspanungs-versorgung weiterhin alle n¨otigen externen Peripheriebausteine wie einen Taktgenerator oder einen Resetbaustein zum Betrieb des Mikrocontrollers beherbergt.

2.6.1 Der STM32-Cortex-M3 Mikrocontroller

Der Cortex-M3 stellt eine neu entwickelte ARM-Architektur (Advanced RISC Machine) dar, mit dem Ziel, einen sehr leistungsf¨ahigen, aber vom Programmiermodell her weni-ger komplexen Prozessor zu entwerfen. Der Cortex-M3 besitzt eine 32-Bit-Architektur, arbeitet aber ausschließlich mit dem neuen Thumb2-Befehlssatz. Herzst¨uck des Cortex-M3 ist der Cortex-Cortex-M3-Kern, basierend auf einer Harvard-Architektur. ARM-Prozessoren sind f¨ur beide Architekturen, von-Neumann, bei der ein Daten- und Adressbus zum La-den von Befehlen und Daten verwendet wird und einer Harvard-Architektur verf¨ugbar.

Die Harvard-Architektur zeichnet sich dadurch aus, dass zwei getrennte Bussysteme und zwei getrennte Speicher zum Laden von Daten und Programmbefehlen existieren, d. h.

der Prozessor kann gleichzeitig sowohl Daten als auch Befehle lesen, bzw. Daten in den Speicher schreiben. Der Cortex-M3 bietet den Vorteil, dass das Programmiermodell ein von-Neumann-Modell darstellt. Das bedeutet, dass der normalerweise geteilte Adressraum linear programmiert werden kann. Dies erspart aufwendige Zugriffe auf den Datenspeicher, wenn dort beispielsweise Konstanten hinterlegt sind. Ein weiterer Vorteil der Cortex-M3-Architektur ist, dass der Programmierer f¨ur vergleichsweise einfache Aufgaben ¨uber keine genauen Kenntnisse des internen Aufbaus sowie der Struktur des Kerns verf¨ugen muss und keine Assemblerkenntnisse zum Programmieren ben¨otigt.

Ein hardwarebasiertes Interruptschema erm¨oglicht ein sehr einfaches Schreiben von Inter-rupthandlern, ohne dass ein komplizierter Start-up-Code in Assembler geschrieben werden muss. Der Cortex-M3 bringt bereits eine Vielzahl von Peripheriemodulen mit sich. Dazu z¨ahlen ein echter Vectored-Interrupt-Controller (VIC) und Memory-Protection. Mehrere Timer, Debug- und Trace-M¨oglichkeiten sind ebenfalls in den Prozessor integriert. Zus¨ atz-liche Bausteine wie UART (Universal Asynchronous Receiver Transmitter), Timer, PWM (Pulsweitenmodulation), Bussysteme wie I2C (Inter-Integrated Circuit) und SPI geh¨oren zu der Grundausstattung des Cortex-M3 (siehe Abbildung 2-14). Diese Module lassen sich einfach ¨uber die internen Register ansprechen [Shy06].

Abb. 2-14 Blockdiagramm der STM32-MCU auf der Basis des ARM-Cortex-M3-Kerns [Stm10]

2.6.2 Mikrocontroller-Platine

Um den Entwicklungsaufwand f¨ur den druckneutralen Drucksensor zu verringern, wurde f¨ur den Mikrocontroller keine extra Platine entwickelt, sondern ein kommerziell erh¨ altli-ches Header-Board mit einem Cortex-M3-Mikrocontroller verwendet. Das STM32-H103 Header-Board der Firma Olimex (Abbildung 2-15) verf¨ugt ¨uber alle n¨otigen An-schlussm¨oglichkeiten, wie ein Standard JTAG (Joint Test Action Group), Steckverbinder zum Programmieren des Mikrocontrollers, eine USB-Buchse (Universal Serial Bus) so-wie zwei Stiftleisten, auf die alle MCU-Ports gef¨uhrt sind. Weiterhin sind eine eigene Betriebsspannungsversorgung sowie die Takt- und Resetgenerierung auf der Platine mit den Abmessungen von 61 mm x 34 mm integriert.

Die in Abbildung 2-15 gezeigte Schaltung muss vor der Integration in den Drucksensor so modifiziert werden, dass eine sp¨atere druckneutrale Funktion gew¨ahrleistet werden kann.

Dazu m¨ussen alle mechanisch beweglichen Teile, wie beispielsweise die Taster aus der Schaltung ausgel¨otet werden. Weiterhin wird im Drucksensor der USB-Anschluss nicht benutzt, der daher ebenfalls aus der Schaltung entfernt wurde. Ein sehr kritisches Bauteil ist der Quarz f¨ur die Taktversorgung des Mikrocontrollers. Die vom Hersteller verwendete

(a)

(b)

Abb. 2-15 STM32 Cortex M3 Header-Board (a) vor der druckneutralen Modifikation und (b) danach

Bauform ist nicht in der Lage, einem Druck von 600 bar stand zuhalten. Daher wurde er durch einen Quarz ersetzt, der eine druckneutral geeignete Bauform aufweist (siehe Abbildung 2-15). Um sicher zu stellen, dass sich das Header-Board f¨ur den druckneutra-len Einsatz unter 600 bar eignet, wurde es zuvor im Drucktank getestet. Ein kritisches Peripherie-Modul ist neben der Takterzeugung der integrierte ADC des Mikrocontrollers, da sowohl eine druckabh¨angige ¨Anderung des Systemtakts als auch mechanische Deforma-tionen des Geh¨auses des Mikrocontrollers selber durch Abweichungen in den Messwerten erkennbar sind.

F¨ur den Test wurden drei analoge Kan¨ale (ADC12, ADC13 und ADC14) des 12-Bit-ADC mit verschiedenen Spannungsteilern, die durch jeweils zwei Festwiderst¨ande realisiert wur-den, mit verschiedenen Spannungen versorgt, die ¨uber die RS-232 Schnittstelle an einen Mess-PC ausgegeben wurden. Dabei stellte sich heraus, dass der Umgebungsdruck keinen Einfluss auf die Messwerte des ADCs hat. Alle drei Messwerte blieben bei dem Drucktest bis zu einem maximalen Druck von 600 bar konstant. Auch die Kommunikation ¨uber die RS-232-Schnittstelle wies keinerlei Ausfallerscheinungen auf. Somit ist sichergestellt, dass der verwendete Mikrocontroller in einem druckneutralen Aufbau bis 600 bar ohne Einschr¨ankungen genutzt werden kann.

2.6.3 Schnittstellen

F¨ur den druckneutralen Drucksensor wird die UART- und die SPI-Schnittstelle des Header-Boards benutzt. Die SPI-Schnittstelle verbindet den 24-Bit-ADC mit dem

Cortex-M3-ADC

Druckaufnehmer Messverstärker Mikrocontroller

Benutzer RS- 232

Schnittstelle Spannungsversorgung

Abb. 2-16 Schematischer Aufbau des druckneutralen Drucksensors

Mikrocontroller. Die UART-Schnittstelle bildet hingegen zusammen mit einem RS-232 Treiber die Benutzerschnittstelle des druckneutralen Drucksensors. F¨ur beide Schnittstel-len stellt der Cortex-M3 entsprechende Peripherie zur Verf¨ugung. Die Konfiguration der Schnittstellen l¨asst sich ¨uber die entsprechenden Register des Mikrocontollers vornehmen.

Die Benutzerschnittstelle des Drucksensors ist so ausgelegt, dass dem Benutzer alle m¨ ogli-chen Informationen wie ADC-Wert, Druck, Tiefe sowie die Temperatur ¨uber die Schnitt-stelle zur Verf¨ugung gestellt werden k¨onnen. Dem Benutzer wird weiterhin durch eine Ein-gabem¨oglichkeit die Einstellung der Messfrequenz sowie eines Mittelwertfilters erm¨oglicht.

Die serielle RS-232 Schnittstelle arbeitet dabei mit 9.600 Baud 8N1. Selbst f¨ur die h¨ochste Messfrequenz von 2 Hz ist diese Datenrate v¨ollig ausreichend.