Tripmate 850

Der Tripmate war ein von Delorme hergestellter GPS-Empfänger, der ursprünglich für die Verwendung mit ihrem Computerprogramm Street Atlas USA vorgesehen war. Der Tripmate verwendet eine serielle RS-232-Verbindung zum Senden und Empfangen von Daten nach dem NMEA 0183-Standard (d.h. 4800 Baud, 8 Datenbits, 1 Stoppbit, keine Parität). Die eine interessante Eigenart des Tripmate ist, dass er die Zeichenfolge “ASTRAL” empfangen musste, bevor er Informationen ausgeben konnte. Ich habe meinen Tripmate so modifiziert, dass er sich mit einer Loopback-Modifikation selbst startet. Jetzt gibt der Tripmate die NMEA-Strings immer dann aus, wenn er mit Strom versorgt wird.

Sobald der Tripmate so modifiziert ist, dass er sich selbst startet, wird er automatisch Positions- und Satelliteninformationen ausgeben, sobald er mit Strom versorgt wird. Die Sätze, die das Tripmate ausgibt, sind GPRMC (empfohlene minimale spezifische GPS/Transit-Daten), GPGSA (GPS DOP und aktive Satelliten), GPGGA (GPS-Fix-Daten) und GPGSV (GPS-Satelliten in Sicht). Wir sind speziell an dem GPRMC-Satz für dieses Projekt interessiert.

Informationen zum $GPRMC-Satz

Ein Beispiel für einen vom Tripmate gesendeten $GPRMC-Satz wäre
$GPRMC,123456,A,4234.4594,N,11233.2892,W,010.0,022.7,220107,015.5,W*77

Dieser Satz enthält die folgenden Informationen:

123456 UTC Zeit des Fix 12:34:56
Eine Warnung des Navigationsempfängers (A = gültig, V = ungültig)
4234,4594,N Breitengrad 42 Grad, 34,4594 Minuten Nord
11233,2892,W Länge 112 Grad, 33,2892 Minuten West
010.0 Geschwindigkeit (Knoten)
022.7 Kurs gut gemacht (Abschlüsse)
220107 UTC Datum der Fixierung 22. Januar 2007
015,5,W Magnetische Abweichung, 20,3 Grad. Osten
*77 Prüfsumme

Stromversorgung

Dies ist die einzige Komponente, die im Schema mehrdeutig ist. Ich verwende 4 AA-NiMH-Batterien in Serie, wodurch ich eine Versorgungsspannung von etwa 4,8V erhalte (NiMH-AA-Batterien sind ~1,2V-Zellen). Das ist sehr praktisch, weil ich 4 AA-Batterien für den Tripmate und 4 für den Logger-Schaltkreis aufladen kann, und bisher habe ich festgestellt, dass sie eine ganze Weile halten. Wenn Sie jedoch eine 9V-Batterie oder Alkaline-Batterien verwenden möchten, würde ich die Verwendung eines Low-Dropout-Spannungsreglers empfehlen, um sicherzustellen, dass die ICs nicht durchbrennen.

MAX233

Ich verwende einen MAX233 wie in meinem RS-232-Pegelwandler. Sie können gerne jeden geeigneten RS-232-Pegelwandler ersetzen; der MAX233 ist jedoch nett, weil er interne Kondensatoren hat. Der MAX233 wird verwendet, um die Logikpegelsignale des PIC-Mikrocontrollers in RS-232-kompatible Spannungspegel sowohl für den Tripmate als auch für den Computer umzuwandeln. Obwohl der MAX233 nominell mit 5 Volt betrieben werden sollte, habe ich festgestellt, dass er bei 4,8V einwandfrei funktioniert. Die serielle Verbindung im Schaltplan ist für eine Computerverbindung eingerichtet. Um Daten vom Tripmate zu protokollieren, müssen Sie ein Crossover-Kabel verwenden, das die seriellen Datenleitungen TX und RX vertauscht.

PIC16F88

Der verwendete Mikrocontroller ist ein Mikrochip PIC16F88. Ursprünglich programmierte ich den PIC mit dem Tiny PIC-Bootloader (tinybld16F88_i8MHz _19200.hex), so dass der PIC mit seinem internen Oszillator bei 8MHz laufen würde. Immer wenn die Firmware aktualisiert wird, kann ich den PIC mit dem Tiny-PIC-Bootloader-Programm erneut flashen. Dies ermöglicht ein schnelles und einfaches Debugging. R1 ist ein Pull-up-Widerstand, der für den Betrieb erforderlich ist. R4 und R5 sind Widerstände für die Status-LEDs (LED1 und LED2). R6 ist ein Pulldown-Widerstand für den Modusschalter (S1).

24LC1025

Der 24LC1025 ist der EEPROM, der in diesem Projekt zur Speicherung der Breiten- und Längengradinformationen verwendet wird. Der 24LC1025 ist ein serielles EEPROM mit 1024K Bit. Der 24LC1025 kann mit einer Taktfrequenz von 400 kHz gelesen werden und hat eine Schreibgeschwindigkeit von 5 ms. Er hat eine Wiederbeschreibbarkeit von 1.000.000 Zyklen und kann zwischen 2,5V und 5,5V betrieben werden. Der 24AA1025 oder der 24FC1025 kann in diesem Projekt bei Bedarf gegen den 24LC1025 ausgetauscht werden. Ich habe eine kundenspezifische Bibliothek zum Lesen und Schreiben von Bytes in das EEPROM verwendet. R2 und R3 sind Pull-up-Widerstände für die seriellen Daten- und Taktleitungen.

Betriebstheorie (Erfassen und Aufzeichnen von GPS-Daten)

  1. Das Crossover-Kabel wird zur Verbindung von Tripmate und Schaltkreis verwendet
  2. Der Tripmate ist eingeschaltet (Batterien werden in den Koffer gelegt)
  3. Schaltkreis ist eingeschaltet
  4. Modusschalter wird nach dem Anschließen der Stromversorgung gedrückt, um die Datenaufzeichnung zu beginnen
  5. LED1 (pinLEDSTATUS) leuchtet auf, wenn das GPS-Gerät eine Position ermittelt hat (d.h. Warnung des
  6. Navigationsempfängers = ‘A’) und Daten in das EEPROM aufzeichnet (Bitte beachten Sie, dass es über 5 Minuten dauern kann, bis der Tripmate eine Position ermittelt hat)
  7. Unterbrechen Sie die Stromzufuhr zur Beendigung der Datenaufzeichnung
    Tripmate ausschalten

Operationstheorie (Lesen von GPS-Daten)

  1. Zur Verbindung von Computer und Schaltung wird ein normales serielles Kabel verwendet
  2. Öffnen Sie eine serielle Terminal-Anwendung zur Aufzeichnung von Breiten- und Längengraddaten
  3. Stromkreis mit gedrücktem Modus-Schalter zum Zurücklesen von auf EEPROM gespeicherten GPS-Daten
  4. Unterbrechen Sie die Stromzufuhr, um das Lesen von Daten zu stoppen

Quellcode

Der PIC16F88 muss zun�chst mit der Hex-Datei ‘tinybld16F88_i8MHz _19200.HEX’ programmiert werden, um den Bootloader auf dem PIC zu programmieren. Dann kann das Hex-File mit Hilfe des Tiny PIC Bootloader-Frontends auf dem Chip platziert werden.

tinybld16F88_i8MHz _19200.hex
16F88 – 24LC1025 GPS-Komprimierung DR1r4.c (hex)
241025multi.c