GPS-Empfang mit Lassen iQ

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Alexander Starke

Ein in meinen Augen extrem faszinierendes Gebiet ist die Positionsbestimmung mittels GPS. Analog zu Funkmodulen ist es auch hier so, dass viele Wege nach Rom führen.

Wer noch nicht mit GPS in Kontakt gekommen ist, dem würde ich zunächst empfehlen, sich die allgemeinen Informationen durchzulesen. Denn was nützen einem die vielen Größen, die ein GPS-Gerät ausgeben kann, wenn man nichts damit anzufangen weiß?.

Einführung in GPS

Die Basis des GPS bilden 24 Satelliten, welche sich in einer Höhe von etwa 20.200km befinden. Diese Satelliten senden hochfrequente Radiowellen Richtung Erde aus. Empfängt man diese, kann man mittels Triangulation seine Position im Raum ermitteln. Im Endeffekt basiert alles darauf, dass eine Laufzeitmessung der empfangenen Signale der verschiedenen Satelliten (welche gerade "sichtbar" sind) durchgeführt wird. Da die Lichtgeschwindigkeit bekannt ist (=Ausbreitungsgeschwindigkeit der Radiowellen), kann mittels der Laufzeit die Distanz zu den einzelnen verfügbaren Satelliten bestimmt werden. Sind 3 Satelliten verfügbar, so reicht das aus, ob die Position des Empfängers im zweidimensionalen Raum (2D) zu bestimmen, also geografische Breite (latitude) und geografische Länge (longitude). Bei 4 Satelliten kann die Position im dreidimensionalen Raum (3D) bestimmt werden, man erhält also als zusätzliche Größe die Höhe (altitude). Nun könnte man fragen: Woher weiß der Empfänger, wann das Signal ausgesendet wurde? Die Antwort ist: Die genaue Uhrzeit ist im Signal selbst enthalten. Der Empfänger muss diese mit seiner aktuellen Zeit vergleichen und kann somit aus der Differenz die Laufzeit ermitteln. Nach der einfachen Formel v = c = s/t kann er somit die Distanz zum Satelliten bestimmen.

Ein Maß für die Güte von Satellitenempfängern ist die Anzahl ihrer Kanäle. Typische Werte sind hier 8 und 12. Das von mir verwendete Lassen iQ besitzt 12 Kanäle. Damit kann es parallel die Informationen von 12 verschiedenen Satelliten auswerten. Wie man sich denken kann, können aus Sicht des Anwenders nie genug Satelliten verfügbar sein. Das Empfängermodul verwendet dann einfach die 4 am besten positionierten zur Bestimmung der Position. Die anderen Satelliten dienen dem verifizieren und korrigieren der berechneten Position. Jeder Satellit sendet in regelmäßigen Abständen ein bestimmtes Signalpaket aus, welches unter anderem eine aktuelle Zeit enthält. Alle 30 Sekunden sendet er zudem seine aktuelle Position im Orbit (ephemeris oder ephemeredes). Zusätzlich übermittelt er noch die Positionen aller anderen verfügbaren Satelliten (almanac).

Dass das GPS aus dem Verteidungsministerium der USA stammt, sollte bekannt sein. Um gezielte Angriffe gegen eigene Einrichtungen zu verhindern, wird das Signal deshalb für den öffentlichen (nicht militärischen) Gebrauch mit Absicht verändert. Jeder Satellit sendet zwei verschiedene Signale aus. Auf der einen Seite das PPS (Precise Positioning Service) und auf der anderen Seite das SPS (Standard Positioning Service) für den öffentlichen Gebrauch. Trotz allem sind relativ genaue Positionsbestimmungen möglich. Eine Möglichkeit zum Erhöhen der Genauigkeit stellt DGPS dar. Das Lassen iQ bringt dieses Feature mit. Im Kriegsfall behält es sich die US-Regierung vor, SA (Selective Availability) einzusetzen, welches in den betroffenen Gebieten die Streuung der Positionsdaten stark vergrößert. Für alle, die sich fragen, wie genau man denn prinzipiell mit diesem System unter Ausnutzung aller technischen Finessen messen kann: US-Forschungseinrichtungen beobachten mittels GPS Veränderungen am St. Andreas Graben im μm-Bereich. Die Kosten hierfür sind aber sehr hoch, da eine sehr genaue Zeitbasis in Form von Atomuhren und weiterem Equipment zur exakten Berechnung benötigt wird.

Trotz aller technischer Finessen sollte man sich nie allein auf die Technik verlassen. Es sollte immer ein zusätzliches Mittel (Karten, ...) zur Navigation herangezogen werden, um Redundanz zu gewährleisten. So arbeitet auch jedes moderne Navigationssystem.

Cold/Hot/Warm Fix

Für einen GPS Empfänger macht es einen großen Unterschied, ob er bei seinem Start auf bereits empfangene Daten zurückgreifen kann, oder ob er bei Null anfangen muss.

Nach einem Kaltstart weiß der Empfänger weder, welche Satelliten gerade verfügbar sind noch wie spät es gerade ist. All diese Informationen muss er erst beziehen, bevor ein kompletter Datensatz erstellt werden kann. Nach dem Empfang eines Zeitsignals und dem Stellen der internen Uhr beginnt der Empfänger, allen verfügbaren Satelliten zuzuhören. Er wartet, bis er von einem der Satelliten die ephemeris bzw. den almanac empfangen hat. Hat er einen kompletten almanac empfangen, so kann er beginnen, gezielt allen verfügbaren Satelliten zu "lauschen" und auf deren ephemeris zu warten. Hat er diese von mind. 4 Satelliten empfangen, so kann eine erste Positionsbestimmung erfolgen. Das Ganze kann zwischen 3 und 20 Minuten dauern, je nach den äußeren Umständen. Während des "warm-up" sollte der Empfänger unter keinen Umständen bewegt werden, da sich der ganze Vorgang sonst noch weiter verlängern kann.

Von einem Warmstart spricht man, wenn der Empfänger nur für einen kurzen Zeitraum den Kontakt zu den Satelliten verloren hat. Voraussetzung für ihn ist die Verwendung einer Pufferbatterie, welche den letzten almanac (+ ephemeris) sowie den letzten Datensatz im Empfängerspeicher schützt. Sind die dort gespeicherten Daten noch halbwegs aktuell, so erleichtert dies dem Modul die Arbeit logischerweise wesentlich. Ein solcher Start nimmt nur noch 1-2min in Anspruch.

Ein Heissstart findet statt, wenn der Empfang nur sehr kurz unterbrochen wurde (Tunneldurchfahrt, Bewegung unter Bäumen oder in Häuserschluchten). Da das Modul auf einen aktuellen Almanach zurückgreifen kann, dauert die neue Lokalisierung lediglich wenige Sekunden, selten mehr als fünf.

Nun könnte man denken: Wenn bereits Bäume den Empfang stören, was ist dann bei starker Bewölkung und Regen? Soviel sei gesagt: Diese Stören den Empfang normalerweise nur unwesentlich. Es müsste schon ein extremes Gewitter über einem sein, um den Empfang auf Null zu reduzieren. Allerdings ist dann die Positionsbestimmung das kleinste Problem des Nutzers :-)

Das soll es soweit an allgemeinen Informationen gewesen sein. Wer es ganz genau wissen will, der wird unter Google ganze Abhandlungen (hauptsächlich englischsprachig) finden.

Lassen iQ

Soviel sei gleich gesagt, meine Wahl ist auf das "Lassen iQ" von Trimble gefallen. Dieses ist ein relativ neues Gerät und im vierten Quartal 2004 erst auf den Markt gekommen. Sein Vorgänger war das Lassen SQ (siehe Bild).

lassensq.jpg

Dieser GPS-Receiver hat eine komplexe Elektronik bereits integriert, was dem Anwender einiges erleichtert. Für den User, welcher das Modul nur als Black Box betrachten sollte, ist wichtig, dass das Modul seine Daten über eine serielle Schnittstelle (USART bei 4800 Baud) mit einem von ihm festzulegendem Protokoll ausgibt. Hier stehen zur Wahl (nur die zwei wichtigsten):

  1. Trimble Standard Interface Protocol (TSIP):
    Ein binäres Protokoll von Trimble, welches dem Anwender die meiste "Macht" über das GPS-Modul gibt. Hier ist das Maximum an Befehlen und Konfigurationsmöglichkeiten gegeben.
  2. NMEA 0183:
    Ist ein Industriestandard für die Schifffahrt. Das Lassen SQ bringt es als zusätzliches Feature mit, es sind jedoch nicht alle Optionen verfügbar. Es allerdings einfacher zu handhaben, als das TSIP.

Trotz allem werde ich hier nur auf das TSIP eingehen, wer so einen Haufen Geld in einen GPS-Empfänger steckt der möchte auch alle Features desselben nutzen können! Nachteilig ist natürlich, dass es sich um ein herstellerspezifisches Protokoll handelt (kein Standard), was der Sache in diesem Fall jedoch keinen Abbruch geben soll.

Um zum neugierig machen noch ein paar Features des Moduls zu nennen:

  • Genauigkeit: horizontal: <6m,
  • Update-Rate 1Hz, also jede Sekunde stehen neue Messwerte zur Verfügung
  • als Belastung hält es max. 4g (39,2m/s²) aus
  • die Grenzen liegen bei 18km Höhe sowie einer Geschwindigkeit von 515m/s (= 3,6*515 = 1854km/h)
  • abhängig von den Gegebenheiten beträgt die Warmlaufzeit bis zum ersten Messwert zwischen 2-170s (dazu später mehr)
  • das Package ist 26*26*6mm gro�? und hat ein Gewicht von 5,7g

lasseniq.jpg

Zu den nicht zu unterschätzenden Kosten für das Modul kommen noch die für eine geeignete Antenne (kann man normalerweise gleich mit erwerben) und entsprechende Anschlusskabel hinzu. Vom Löten an den Pins eines Moduls dieser Preisklasse würde ich dann doch eher abraten. Um nach dem Einschalten schnell zu Messwerten zu kommen, empfiehlt sich der Anschluss einer Puffer-Batterie zur Überbrückung der Zeiträume ohne externe Spannungsversorgung. Die Verwendung einer solchen Batterie bringt zusätzlich den Vorteil mit sich, dass das Modul wesentlich weniger Zeit benötigt, bevor der erste gültige Datensatz übermittelt werden kann (typisch <20s, sonst mind. 3min). Die Lebensdauer einer 3,6V Lithium-Batterie wird mit bis zu 5 Jahren angegeben.

Nun noch einmal ein kleiner Blick auf die Grafik zu Beginn. Der Anschluss links dient für die Antenne, der Anschluss rechts für die Spannungsversorgung und Kommunikation. Die Pinbelegung hat folgende Form (Lassen SQ):

Pin-Nr. Funktion Beschreibung
1 TXD A Sendeleitung der seriellen Schnittstelle
2 GND Masse
3 RXD A Empfangsleitung der seriellen Schnittstelle
4 PPS Puls pro Sekunde
5 reserviert nicht verbinden
6 reserviert nicht verbinden
7 Vcc 3,3±0,3V (ca. 33mA)
8 Batterie 2,5-3,6V (ca. 19μA)

Dem Modul sind nach dem Einschalten mind. 2,1s Zeit zu geben, bevor eine Kommunikation gestartet wird. Die Kommunikation läuft über eine konfigurierbare serielle Schnittstelle (VORSICHT: man kann sich durch falsche Konfiguration unter Umständen auch aussperren) mit TTL-Pegeln. Zur Kommunikation mit dem PC müsste ein Pegelwandler wie der MAX232 eingesetzt werden.

Eine Warnung noch vorweg: Die an das Modul angeschlossene Antenne braucht freie Sicht auf den Himmel. GPS arbeitet bei ca. 1574MHz, was dem Signal das Durchdringen von Mauern, metallischen Oberflächen u.ä. unmöglich macht. Deshalb empfiehlt sich für den mobilen Bastler die kompakte magnetisch befestigbare Antenne von Trimble. Diese bringt 5m Kabel und einen entsprechenden Anschlussstecker für das Modul bereits mit. Zwar bringt das Modul die Fähigkeit mit sich, auch mit sehr schwachen Signalen arbeiten zu können, doch sollte man es ihm nach Möglichkeit nicht schwerer als möglich machen.

antenne.jpg

Das Modul kann parallel die Daten von bis zu 8 Satelliten auswerten. Es beginnt mit der Suche nach ihnen sofort nach dem Einschalten. Die Geschwindigkeit, mit der dieses geschieht, hängt stark von der aktuellen Satellitenkonstellation, der Güte des Signals sowie den noch im Modul gespeicherten Daten ab (Back-Up-Batterie!). Verpasst man dem Modul einen Kaltstart (entweder beim ersten Einschalten oder weil keine Batterie angebracht wurde), so kann es bis zu 15min Dauern, bis es einen kompletten Datensatz verfügbar hat. Mit Batterie dauert das Ganze normal nur noch 45s. Dieses Initialisierungsprozess sollte nicht gestört werden, ist halt eine kleine Geduldsprobe :-)

Will man nach dem Einschalten zum ersten Mal mit dem Modul kommunizieren, so empfehle ich dafür zunächst die Herstellersoftware (PC). Wenn hier alles glatt läuft, kann man auf ein Terminalprogramm und danach auf den MC wechseln. Die Standardeinstellungen für die serielle Schnittstelle sind 9600 Baud, 1 Startbit, 8 Datenbits und keine Parität. Als Protokoll ist TSIP eingestellt, was nicht weiter störend ist. Das Terminalprogramm sollte allerdings die einziger binärer Daten unterstützen. Wer es gar nicht erwarten kann, der ändert die Einstellung des Moduls auf NMEA. Hier werden die Daten zwar nur noch mit der halben Baudrate ausgegeben, dafür aber im Klartext (char).

TSIP

Ist TSIP als Protokoll eingestellt, so gibt es zwei Möglichkeiten mit dem GPS-Modul zu kommunizieren. Zum einen gibt es den so genannten Query-Mode, zum anderen den Automatic-Mode. Im Query-Mode gibt das Modul Daten nur auf Anfrage Preis. Man sendet für die gewünschte Information einen bestimmten Code und erhält diese dafür. Im Automatic-Mode legt man vorher fest, welche Daten man erhalten möchte und in welcher zeitlichen Taktung dies stattfinden soll (1s bzw. 5s möglich).

Das TSIP basiert auf Paketen. Eingeschlossen wird jedes Datenpaket von Kontrollzeichen, welche Beginn und Ende des Paketes kennzeichnen. Jedes Paket beinhaltet ein Byte, welches über den Inhalt und die Formatierung desselben Auskunft gibt. Diese Struktur gilt sowohl für vom Modul empfangene als auch zum Modul gesendete Pakete.

<DLE> <ID> <Datenstring> <DLE> <ETX>

<DLE> ist 0x10, <ETX> ist 0x03 und ID stellt den Identifier dar. Dieser kann alle Werte außer 0x03 und 0x10 annehmen. Der Datenstring kann ein beliebiges Format haben. Da auch in ihm die Werte von <DLE> und <ETX> auftauchen können, wurden Konventionen geschaffen. Taucht im Datenstring an irgendeiner Stelle 0x10 auf, so wird diesem vor dem Senden ein weiteres 0x10 voran gestellt. Dieses muss vom Empfänger wieder entfernt werden. Auf diese Weise taucht im Datenstring immer eine gerade Anzahl von <DLE> Bytes auf. Beendet wird das Paket von einem <ETX>, dem eine ungerade Anzahl von <DLE> voran gestellt ist.

Hier alle Pakete und deren Inhalt zu erläutern würde den Rahmen sprengen, da kann ich leider nur auf das Datenblatt verweisen (insgesamt etwa 70 Seiten dazu). Wahrscheinlich werden soundso die meisten auf das "Klartext-Protokoll" NMEA ausweichen, da dessen Verarbeitung sich wesentlich einfacher gestaltet.