Wie verbinde ich GPS-Empfänger und Computer?

Hinweis:GarminVario - das ultimative Garmin GPS Kabel und Bezugsquellen für Spezialkabel und Steckverbinder
 
 

Ein generischer Ansatz:
 

GPS Empfänger mit serieller Schnitstelle und NMEA Protokoll (oder einem anderen, wie z.B. Garmin oder Rockwell Protokoll) sind verhältnismäßig einfach an Computer anzubinden, da jeder Computer eine serielle Schnittstelle hat. Nachfolgend ist das gesamte Verfahren beschrieben.

Um Mißverständnisse zu vermeiden, sind die Schnittstellensignale eindeutig gekennzeichnet:

Tx= Transmit/Senden, Rx=Receive/Empfangen, häufig auch mit TxD=TransmitData und RxD=ReceiveData, oder einfach TD bzw. RD bezeichnet.

Merke: Für eine funktionierende Kommunikation muß immer Rx mit Tx oder umgekehrt verbunden werden. TX-TX oder Rx-Rx KÖNNEN NICHT FUNKTIONIEREN!

Tx(gps) ist der serielle Ausgang des GPS Empfängers. Hier gibt der Empfänger das serielle Koordinatenprotokoll aus. Das ist das eigentliche Signal, das wir für die Kopplung von GPS Empfänger und Computer brauchen, es wird unbedingt benötigt und mit Rx(comp) des Computers verbunden.

Rx(gps) ist der serielle Eingang des GPS Empfängers. Er wird in vielen Fällen nicht benutzt. Einsatzmöglichkeiten sind z.B. die Übertragung von Wegpunkten von einem Computer IN den GPS Empfänger, oder die Konfiguration des Empfängers über sog. NMEA Input msgs. Hiermit lässt sich z.B. das verwendete Datum, die Art der ausgegebenen NMEA msgs, sowie ggfs. eine Empfängerinitialisierung konfigurieren. Für eine erste Verbindungsaufnahme zwischen GPS Empfänger und Computer in der Regel nicht benötigt. Wenn benutzt, wird er mit Tx(comp) verbunden

Tx(comp) ist der Sendeausgang des Computers. Wenn benutzt, wird er mit Rx(gps) verbunden, um Wegpunkte zu übertragen, oder um den Empfänger zu konfigurieren. Für eine erste Verbindungsaufnahme zwischen GPS Empfänger und Computer in der Regel nicht benötigt.

Rx(comp) ist der serielle Eingang des Computers. Hier empfängt der Computer die vom GPS Empfänger auf  Tx(gps) ausgegebenen seriellen Daten. Dieser Anschluß wird unbedingt benötigt.

GND/Logical GND ist der elektrische Bezugspunkt für die Kommunikationssignale Rx und Tx. Jede RS232 Schnittstelle benötigt einen solchen Bezugspunkt, da ohne ihn die RS232 Pegel +-12V nicht definiert sind. Bei der Verbindung zwischen zwei RS232 Schnittstellen werden die GND Pins jeder Seite einfach miteinander verbunden.
In der Regel gibt es zusätzlich zum GND/Logical GND Pin noch einen Masse oder Schirmanschluß. Dieser ist oft mit GND/LogicalGround verbunden und kann als solcher benutzt werden. Es gibt aber Ausnahmen, daher sollte man im Zweifelsfall immer den Logical GND Anschluß benutzen. Viele einfache RS232 Schnittstellen, z.B. der Anschluß beim Garmin GPS12, haben keine getrennten Logical GND und Masseanschlüsse. In diesem Fall hat man ohnehin keine Wahl.

Logical GND liegt beim DSUB-9 Stecker auf Pin 5, beim DSUB25 Stecker auf Pin 7. Masse/Schirm liegt dagegen auf dem Stecker/Buchsengehäuse, und ist bei üblichen PCs mit dem Metallgehäuse des Rechners verbunden.
 

Stufe1: Die Schnittstellenpegel
Die meisten GPS Empfänger haben eine Standard RS232 Schnittstelle mit den üblichen +-12V Pegeln ( das kann auch mal etwas weniger oder mehr sein, z.B. +-6V). Viele OEM Boards und einige GPS-Sensoren haben eine einfache CMOS/TTL Schnittstelle mit lediglich 0V/5V oder sogar 0V/3.3V Spannungshub. Bei solchen Empfängern sollte man mit einem nachgeschalteten Pegelkonverter, z.B. von MAXIM, Standard RS232 Pegelverhältnisse herstellen. Einige GPS OEM Board, wie z.B. der GPS25 von Garmin, sind in verschiedenen Versionen lieferbar, der GPS25HVS und GPS25LVS  hat z.B. Standard RS232 Pegel, der GPS25HVC und GPS25LVC hat CMOS/TTL Pegel. In der Regel sollte man die Version mit RS232 Pegel wählen, da ein Anschluß an den Computer damit am einfachsten zu realisieren ist. Eine Ausnahme stellt der Anschluß eines GPS Empfängers mit CMOS/TTL Pegel direkt an einen uC/Prozessor dar, der selbst auch mit CMOS/TTL Pegel arbeitet. In diesem Fall bedingt der RS232 Pegel eine unnötige Pegelkonvertierung.
RS232 Pegel sind für längere Kabelverbindungen (0.5-50m) gedacht, während CMOS/TTL Pegel nur kurze Direktverbindungen im Bereich weniger cm überbrücken sollen.

Bei einigen Computern stellen die seriellen Schnittstellen Sonderfälle dar: Apple Computer haben z.B. keine echte RS232 Schnittstelle, sondern sog. RS422 oder RS423 Schnittstellen. Die Schnittstellensignale sind anders benannt als bei RS232, und auf den ersten Blick scheint eine Verbindung zwischen GPS RS232 und Computer RS422/423 unmöglich. Tatsächlich sind die Schnittstellen aber doch sehr weitgehend kompatibel, und eine Verbindung zum GPS Empfänger ist immer möglich, auch ohne zusätzliche Pegelkonverter.
 

Stufe2: Die Kabelbelegung

Die üblichen Computer haben RS232 Schnittstellen, die neben den eigentlichen Datenleitungen (RxD-ReceiveData/TxD-TransmitData) noch zusätzliche sog. Handshakeleitungen benutzen, z.B. RTS/CTS, DTR, etc.. Diese Handshakesignale werden bei kaum einem mir bekannten GPS Empfänger benutzt oder benötigt (eine Ausnahme ist der DeLorme Earthmate).
Damit reicht für alle üblichen Anwendungen eine simple Zweidraht Verbindung aus: GND und TxD(gps), für bestimmte Konfigurationsaufgaben auch noch RxD(gps), dann also eine Dreidrahtverbindung.

Beim GPS Empfänger muß man sich die Pinbelegung der RS232 Schnittstelle besorgen. Ist diese als SUB-D9 Steckverbindung ausgelegt, kann man in der Regel von einem sog. DTE Gerät ausgehen, d.h. Computer und GPS Empfänger lassen sich über ein normales 1:1 RS232 Kabel verbinden. Die Buchse am Receiver stellt, analog einem Modem, einen RS232 'Eingang' dar.

Manche GPS Empfänger können als DCE Gerät konfiguriert sein, in diesem Fall stellt der Stecker einen RS232 'Ausgang' dar. Für die Verbindung mit einem Computer muß ein gekreuztes, oder auch NullModem Kabel benutzt werden. In diesem Fall werden die TX und RX Anschlüsse im Kabel kreuzweise verbunden. Das bezieht sich aber NUR auf die standardisierte Pinbelegung am SUB-D Stecker. Natürlich wird, auf das jeweilige Gerät bezogen, IMMER TxD des GPS Empfängers mit RxD des Computers und RxD des GPS Empfängers mit TxD des Computers verbunden. Auf Nummer sicher geht man immer mit der genauen Pinbelegung des GPS Empfängers. Wenn man mit Standardkabeln + ggfs. Adaptern nicht zum Erfolg kommt, sollte man das Kabel lieber anhand der Pinbelegungen selbst löten. Für die erste Verbindungsaufnahme reicht ein zweiadriges Kabel mit GND sowie Tx(gps)->Rx(pc). Hierfür kann man z.B. ein 1adrig abgeschirmtes Kabel verwenden, wie es für einfache Stereo-Audio Verbindungen üblich ist. Für die Version mit Rx(gps)->Tx(comp) benötigt man ein zweiadrig abgeschirmtes Kabel, auch so etwas ist für Audio Verbindungen üblich. Die Tx und RX Signale verbindet man in diesem Fall über die eigentlichen Innenleiter des Kabels, die GND Signale über den Schirm des Kabels. Hat der GPS Empfänger an seiner Schnittstelle getrennte GND/Logical GND und Masse/Schirmanschlüsse, so sollte man diese auch getrennt anschließen. In diesem Fall sollte GND/Logical GND über einen (zusätzlichen) Innenleiter übertragen werden, und Masse/Schirmung über den Kabelschirm. Meistens sind die beiden aber ohnehin miteinander verbunden.
Bei kurzen Testverbindungen ist die Art des Kabels aber egal, man kann jedes beliebige Kabel verwenden, auch ohne Schirmung.
 

Kabelbelegung GPS Empfänger -> Standard RS232 Schnittstelle DSUB9/DSUB25, wie üblicherweise bei IBM kompatiblen PCs und vielen anderen Rechnern verwendet
GPS Empfänger Computer Pin Nummer
DSUB9
Pin Nummer
DSUB25
Tx(gps) Rx(pc) 2 3
GND(gps) GND(pc) 5 7
  ggfs. zusätzlich Rx(gps) ggfs. zusätzlich Tx(comp)  3 2


Kabelbelegung GPS Empfänger -> RS422 Schnittstelle, wie bei Apple Mac Rechnern verwendet. Bei manchen Rechnern wird sie auch GEOPORT genannt.
GPS Empfänger Apple Mac Pin Nummer
MiniDin8
Tx(gps) Rx(mac) 5
GND(gps) GND(mac) 4/8
  ggfs. zusätzlich Rx(gps) ggfs. zusätzlich Tx(mac)  3
Der Anschluß eines GPS Empfängers ist prinzipiell sowohl am Druckerport als auch am Modemport möglich. Neuere Macs besitzen teilweise keine RS422/GEOPORT Schnittstelle  mehr, sondern nur noch einen USB Anschluß (z.B. iMac, BlueG3, G4, etc.). In der Regel ist der Anschluß eines GPS Empfängers an solche Rechner über einen sog. USB-Seriell Adapter möglich, wie sie z.B. von KeySpan angeboten werden (Preis zwischen 100 und 200 DM). Die GPS Software auf dem Mac muß allerdings spezielle Voraussetzungen erfüllen, damit der Betrieb über einen solchen Adapter funktioniert, sie muß CTB (Communication ToolBox) kompatibel sein, die serielle Schnittstelle des Macs also über den dafür vorgesehenen Systemtreiber ansprechen.


Kabelbelegung GPS Empfänger -> RS232 Schnittstelle/HotSyncPort bei PalmPiloten
 
GPS Empfänger PalmPilot Pin Nummer
HotSync Anschluß
Tx(gps) Rx(pilot) 3
GND(gps) GND(pilot) 10
  ggfs. zusätzlich Rx(gps) ggfs. zusätzlich Tx(pilot)  5
Prinzipiell haben alle gegenwärtigen PalmPiloten die gleiche Pinbelegung am HotSync Port, jedenfalls was die Standard RS232 Signale angeht. Der PalmV hat einige Signale wegen der integrierten Akkuladung anders belegt, diese spielen aber für den Anschluß eines GPS Empfängers keine Rolle. Der HotSync Anschluß des PalmV ist mechanisch etwas anders ausgelegt als der der anderen PalmPiloten, aber die Pin Abfolge ist die gleiche.
Die PalmPiloten arbeiten mit RS232 Pegeln von lediglich +-6V. Das hat aber für alle mir bekannten GPS Empfänger keinerlei Bedeutung.



Stufe3: Die erste Verbindungsaufnahme

Wer will, kann jetzt seine favorisierte GPS Anwendungssoftware auf dem Computer starten und abwarten, ob das GPS Signal eine Wirkung zeigt.
Ggfs. muß der Anwendung der COM Port Anschluß (PC) bzw. Modem/Druckerport (Apple) mitgeteilt werden, an der der GPS Empfänger angeschlossen ist. U.u. muß auch der Protokolltyp (üblicherweise NMEA) sowie die Kommunikationsparameter (bei NMEA typischerweise 4800 Baud, NoParity, 1 Stoppbit, oder kurz, 4800,8,N,1) mitgeteilt werden. Bei den meisten Programmen muß der GPS Empfang auch explizit aktiviert werden, etwa mit einem Menübefehl 'Start GPS', oder 'Enable GPS', 'Start Tracking', etc. pp. Danach sollte an irgendeiner Stelle des Bildschirms zumindest eine Statusmeldung zum GPS Empfang auftauchen, wie etwa 'Receiving GPS Data', 'Waiting for GPS Data' etc.. Bei Problemen taucht auch womöglich sehr schnell eine Fehlermeldung auf, z.B. 'Couldn't open Port', wenn die Schnittstelle zum GPS Empfänger falsch konfiguriert wurde (z.B. auf den Mausanschluß, oder ein Modem), bei Apple Macs kann der eingestelle Port u.U. auch dem AppleTalk/LocalTalk Protokoll zugewiesen sein.
In diesem Fall muß über die Konfigurationseinstellungen der Port in der GPS Software richtig konfiguriert oder für die Benutzung mit dem GPS Empfänger freigegeben werden, bei Macs z.B. durch Zuweisung von AppleTalk an eine andere Schnittstelle, z.B. Ethernet, oder Deaktivierung von AppleTalk in der Auswahl/Chooser.
Unter Umständen kann der entsprechende Port durch Fax(Empfangs)Software oder andere Anwendungen belegt sein (bei PalmPilot Benutzern z.B. durch den HotSync Manager). Auch wenn gar kein Modem oder keine PalmPilot Cradle an den Rechner angeschlossen ist, kann der Port durch die Software trotzdem belegt sein. In diesem Fall die betreffenden Anwendungen beenden.

Sehr oft kommt beim ersten Versuch aber keine Kommunikation mit dem GPS Empfänger zustande. Wer mit den betreffenden Konfigurationsparametern der GPS Software etwas anzufangen weiß, kann natürlich damit herumprobieren, oder schlicht die Anleitung/OnLineHilfe konsultieren.

Zur Diagnose empfiehlt sich zuerst die Prüfung der Verbindung mittels Terminalprogramm.
Terminalprogramme werden heutzutage von normalen Computerbenutzern kaum noch verwendet bzw. benötigt. In der Frühzeit der Datenkommunikation wurden sie meistens zur Kontaktaufnahme zwischen zwei Rechnern mittels Modem benutzt. Heute verwendet man Terminalprogramme meistens zur Verbindungsaufnahme zwischen Computer und einem per RS232 zu konfigurierenden Gerät, z.B. Telefonanlagen, Modems, Netzwerkgeräte, oder eben GPS Empfänger, sowie zur Fehleranalyse.
Ein Terminalprogramm erlaubt es, Daten oder Texteingaben von der Tastatur an die serielle Schnittstelle eines Computers zu schicken, sowie an dieser Schnittstelle ankommende Daten auf dem Bildschirm darzustellen.
Dem Terminalprogramm ist es egal, ob an dieser Schnittstelle ein Modem, ein anderer Computer, oder eben ein GPS Empfänger angeschlossen ist.
Das Terminalprogramm selbst kann in der Regel mit den empfangenen Daten nichts Sinnvolles anstellen, außer eben diese Daten auf dem Bildschirm in Textform auszugeben. Da die NMEA Ausgabe eine GPS Empfängers eine einigermaßen lesbare Textdarstellung ist (sog. ASCII Ausgabe), kann man mit einem Terminalprogramm also direkt auf die Daten eines GPS Empfängers zugreifen, ohne auf die Kompatibilität einer komplexeren GPS Software angewiesen zu sein.

Analyse mittels Terminalprogramm unter DOS:
MS-DOS enthält kein Terminalprogramm. man muß entweder ein solches Programm kaufen (früher lag so etwas sehr oft als Zubehör Analogmodems bei), viele DOS Terminalprogramme sind mittlerweile auch kostenlos oder als Shareware aus dem Internet oder aus Mailboxen zu beziehen.
Als einfache Variante kann man jedoch auch mit MS-DOS Hausmitteln eine Art Terminal zur Diagnose benutzen: Die Ein-/Ausgabe Umlenkung.
Damit ist es z.B. möglich, die von einem GPS Empfänger an der seriellen Schnittstelle ankommenden Daten in eine Datei umzuleiten, die man sich dann mittels des DOS Kommandos 'type' oder dem MS-DOS Editor ansehen kann. Ebenso kann man zur Konfiguration des Empfängers Tastatureingaben vom Bildschirm auf den seriellen Ausgang des Computers und damit an den GPS Empfänger umleiten.
Das ganze ist für den reinen Benutzer grafischer Bedienoberflächen etwas ungewöhnlich und steinzeitlich, aber durchaus möglich. Wenn kein Terminalprogramm für DOS oder Windows zu Verfügung steht und auch nicht nachinstalliert werden kann, ist es die einzige Möglichkeit der LowLevel Analyse.

Zunächst einmal muß man MS-DOS starten, bzw. unter Windows 3.1 Windows beenden (<ALT>+<F4>), unter WIN95 oder WIN98 benutzt man am besten die Option 'Computer im MS-DOS Modus starten' im Beenden Dialog des Startmenüs. Prinzipiell funktioniert die Ein-/Ausgabeumleitung zwar auch in einem MS-DOS Fenster unter Windows, jedoch kann hier durch Zusatzsoftware wie weiter oben beschrieben eine Schnittstelle belegt und somit nicht zugänglich sein. Unter 'reinem' MS-DOS kann man dies jedoch ausschließen. Diese Möglichkeit kann man natürlich auch zur Fehleranalyse nutzen. Wenn der COM Port unter DOS funktioniert, unter Windows jedoch nicht, muß man von einem solchen Zugriffskonflikt ausgehen.

Für das Aufzeichnen der GPS Daten in ein Textfile sind zwei Vorgänge nötig:

- Konfiguration der vom GPS Empfänger benötigten seriellen Schnittstelle auf die korrekten Kommunikationsparameter mittels des MODE Befehls.
Bei Anschluß des GPS Empfängers an COM2 wäre das:

MODE2 4800,8,N,1 <ENTER>

Beim Anschluß an COM1 dagegen

MODE1 4800,8,N,1 <ENTER>

Wenn man nicht sicher ist, welche Schnittstelle an der Rückseite des Computers COM1 bzw. COM2 ist, kann man beide Varianten ausprobieren.
Bei älteren Rechnern mit AT-Boards gibt es in der Regel eine COM Schnittstelle mit 9pol DSUB-Stecker und eine mit 25pol DSUB Stecker. Die 9polige ist meisten COM1, die 25polige COM2. Bei neueren ATX Boards sind es meistens zwei 9pol DSUB Stecker direkt nebeneinander. Meistens ist COM1 die rechte/untere der beiden Buchsen, COM2 die obere/linke.

- Starten der Umleitung in eine Datei

Für COM1

COM1>gps.txt <ENTER>

Für COM2

COM2>gps.txt <ENTER>

Nach dem Starten der Umleitung wartet man eine Zeitlang, ca. 10s, und bricht dann die Umleitung mit <Strg>+<C> ab.

Die Datei gps.txt enthält dann die in dieser Zeit an der seriellen Schnittstelle eingegangenen GPS Daten, man kann sie mit

type gps.txt

oder mit

edit gps.txt

anschauen.
 
 

Analyse mittels Terminalprogramm unter Windows:
Bei allen Windows Versionen, Win3.1, Win95, Win98, WinNT gehört ein Terminalprogramm zum Lieferumfang des Betriebssystems dazu. Bei WIN95 und WIN98 ist es u.U. aber nicht auf die Festplatte des Computers installiert worden. In diesem Fall muß es über ->START ->EINSTELLUNGEN ->SYSTEMSTEUERUNG ->SOFTWARE ->WINDOWS-SETUP ->VERBINDUNGEN- >(Details)HYPERTERMINAL von der CDROM nachinstalliert werden.
Unter Windows 3.1 heißt das Terminal schlicht Terminal und befindet sich in der Gruppe 'Zubehör' beziehungsweise im Windows Verzeichnis unter 'TERMINAL.EXE'.
Unter WIN95 und WIN98 heißt das Terminalprogramm Hyperterminal und befindet sich in der Regel unter ->START ->PROGRAMME ->ZUBEHÖR ->HYPERTERMINAL ->HYPERTRM.EXE, bzw. im Verzeichnis C:\Programme\Zubehör\HyperTerminal\Hypertrm.exe.

Man startet HyperTerminal, nach dem Start fragt das Programm als erstes nach dem Namen für die Verbindung. Hier gibt man einfach 'Test' ein, oder, falls man die Konfiguration mehrfach zur Analyse verwenden will, einen eindeutigen Namen, wie z.B. 'GPS Test'. Man bestätigt mit 'OK'. Danach fragt Hyperterminal nach eine Rufnummer bzw. bietet einen Anwahldialog über Modem an. Da wir einen GPS Empfänger angeschlossen haben, können wir damit allerdings nichts anfangen. Stattdessen wählen wir  (scrollen ganz nach unten) in der unteren Auswahlleiste 'Verbinden über:' den Eintrag 'Direktverbindung über COMx', wobei x die entsprechende Schnittstelle bezeichnet. Bei Anschluß des GPS Empfängers an COM2 wählen wir also 'Direktverbindung über COM2' und bestätigen mit 'OK'.

Es folgt ein Dialog zur Einstellung der Kommunikationsparameter. Für das übliche NMEA Protokoll wählen wir hier:

Bits pro Sekunde: 4800
Datenbits: 8
Parität: Keine
Stoppbits: 1
Protokoll: Kein (das bezieht sich auf das sog. Handshaking, das bei GPS Empfängern wie bereits gesagt nicht verwendet wird)

Die Einstellungen unter 'Erweitert' müssen nicht beachtet werden.

Nach dem Bestätigen der Kommunikationsparameter zeigt sich das Ein-/Ausgabefenster, das eigentliche Terminal. Erhält man eine Fehlermeldung 'COM x konnte nicht geöffnet werden', so ist die entsprechende Schnittstelle bereits durch eine andere Anwendung belegt. Man sollte also alle anderen Programme schließen und ggfs. auch alle Symbole in der rechten Ecke der Starleiste nach verdächtigen Programmen wie 'FaxEmpfang', 'HotSync', etc. überprüfen und ggfs. schließen. Ist eine Maus an COM1 angeschlossen, lässt sich der GPS Empfänger nur an COM2 anschließen (oder umgekehrt).

Bei einer funktionierenden Verbindung sollte sich das Terminalfenster jetzt schon mit Zeichen füllen, die kontinuierlich über den Bildschirm scrollen. In diesem Fall kann man zumindest sicher sein, daß an der seriellen Schnittstelle des PC Daten ankommen.
Tut sich nichts, bzw. bleibt das Terminalfenster leer, so sendet der GPS Empfänger entweder von sich aus keine Daten, oder aber das Verbindungskabel ist falsch belegt bzw. defekt und muß überprüft werden. Vorher sollte man aber die Anleitung seines GPS Empfängers überprüfen, ob das Senden von Daten über die serielle Schnittstelle speziell eingeschaltet werden muß. Ggfs. muß auch die Handshakeeinstellung des Terminalprogramms überprüft werden (NO HANDSHAKING).

Sendet der GPS Empfänger Daten im üblichen NMEA 4800,8,N,1 Format, so sieht die Ausgabe im Terminalfenster z.B. so aus:

$GPRMC,133626,A,5336.432,N,00957.436,E,000.0,035.0,040897,000.3,W*6C
$GPGLL,5336.432,N,00957.436,E,133627,A*24
 

Der GPS Empfänger sendet seine Datensätze in der Regel in festen Zeitabständen kontinuierlich aus. Beim NMEA Protokoll stellt jede Zeile einen kompletten Datensatz ('NMEA Message') dar, der durch die dem $ Zeichen folgende Zeichenkette charakterisiert wird, die Zeile mit dem vorangestellten $GPRMC enthält also eine NMEA RMC Message, die mit $GPGLL eine sogenannte GLL Message. Die unterschiedlichen NMEA Message Typen enthalten teilweise unterschiedliche Daten, teilweise die gleichen. Die GLL Message enthält z.B. lediglich Koordinaten und Uhrzeit, die RMC Message dagegen Koordinaten, Höhe über NN, Uhrzeit, Kurs, Geschwindigkeit. Andere Messages enthalten Informationen über die aktuellen Satellitenkonstellation, etc.
Jeder GPS Empfänger sendet eine unterschiedliche Kombination von NMEA Messages, bei manchen Geräten i