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 |
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 |
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