Forum: Mikrocontroller und Digitale Elektronik Umschalten zwischen SIRF und NMEA Protokoll


von Fourstroker B. (fourstroker)


Lesenswert?

Hallo,

ich habe im Forum gelesen, dass ich mit dem Problem der Umschaltung 
zwischen SIRF und NMEA bzw. umgekehrt zwar nicht alleine bin, eine 
Lösung habe ich aber noch nicht gefunden.

Ich habe folgendes Problem:
Ich habe einen Datenlogger gebaut, mit dem ich NMEA Daten auf SD Karte 
schreiben kann. Der Datenlogger besteht im groben aus einem ATmega128 
und einem NL SIRF III GPS Modul und ist mit WinAVR programmiert.

Beim Loggen der Daten ist mir aufgefallen, dass die mitgeschriebene 
Strecke um ca 100m von der tatsächlichen Strecke verschoben ist. Im NMEA 
GGA Datensatz konnte ich sehen, dass kein DGPS eingeschalten war.

Meine Idee ist also, von NMEA auf SIRF umzuschalten, das DGPS oder SBAS 
einzuschalten und dann auf NMEA zurück zu gehen.

Das Umschalten in Sirf scheint funktioniert zu haben, das Rückschalten 
jedoch nicht mehr.

Die NMEA Befehle funktionieren alle.
Beispielzeile aus Quellcode:
ser_puts("$PSRF100,0,9600,8,1,0*0C\n");

Wie muss denn z.B. eine Befehlszeile im SIRF Format aussehen?
So gehts auf jeden Fall nicht:
ser_puts("A0A20000785030004BAF0C80202FEB0B3");

Was genau mache ich falsch?

Hat jemand schon mal DGPS an einem SIRF III über einen Controler 
eingeschaltet?

Ich hoffe, ihr könnt mir helfen, ich komme gerade nicht mehr weiter.

Fourstroker

von holger (Gast)


Lesenswert?

>Hat jemand schon mal DGPS an einem SIRF III über einen Controler
>eingeschaltet?

Hast du einen separaten DGPS Empfänger angeschlossen ?
Wenn nein bringt das umschalten auch nichts.

von holger (Gast)


Lesenswert?

Dein GPS liefert dir eine Koordinate

           4807.038,N   Latitude 48 deg 07.038' N

Die 038 sind keine Sekunden sondern Bruchteile von Minuten.
Die musst du noch in Sekunden umrechnen.
Wenn du das nicht machst hast du einen Versatz von mehreren 100m.

von fourstroker (Gast)


Lesenswert?

Haben SIRF Empfänger keinen eigene Korrektureinrichtung? Ich dachte das 
sei im Chipsatz integriert.
Einen Rechenfehler mache ich nicht, da ich die empfangenen 
Positionsdaten auch schon direkt in ein externes Programm gespielt habe 
und auch da den Versatz erhalte.
Ich kapier das ehrlich gesagt nicht. Eine Abweichung von 10m hätte ich 
ja verstanden aber doch nicht 100m :-(

von R. W. (quakeman)


Lesenswert?

Was du meinst ist vermutlich die Korrektur mittels EGNOS. Einem 
Korrektursignal, welches innerhalb von Europa zur Verfügung steht um die 
Genauigkeit des GPS Signals etwas zu verbessern. Diese Funktion 
beherrscht der SIRF III selbst und benötigt keinen externen DGPS 
Empfänger dafür.

Aber eine Abweichung von 100m ohne Korrektursignal ist ziemlich viel. 
Ich könnte mir das nur bei sehr schlechten Empfangsbedingungen 
vorstellen. Denn selbst ohne EGNOS hast du schon eine reproduzierbare 
Genauigkeit von ca 10m bei halbwegs gutem Empfang.

Ciao,
     Rainer

von gps_data (Gast)


Lesenswert?

Guten Abend,

ich habe auch eine Frage zu SIRF <-> NMEA. Vielleicht kann mir wer 
weiterhelfen. Ich habe ein GPS-Modul. Dieses habe ich ausversehen auf 
den SIRF Mode gesetzt. Im Tool GPS-NMEA-Monitor sehe ich folgende Daten;


? SiRF-bin.

Beim Scan, ob ein GPS-Modul angeschlossen ist erkennt er diesen:

"Found GPS receiver 9600 baud (SiRF-Binary)"

Das Modul ist nicht "fix". Es blickt öfter als 1 mal/ sek.

Hat eine den Befehl, wie ich das Modul in den Werkszustand bringe? 
Versuch ich es mit dem Tool von Binär wieder auf NMEA zu bringen tut 
sich nichts. (brauch das NMEA Format).

Vielen Dank für Anregungen im Voraus.

von gps_data (Gast)


Lesenswert?

Habe das Problem gelöst. NMEA Daten nun wieder vorhanden. Bekomme bloß 
noch kein Signal. Er findet keinen einzigen Sat. . Muss ich bei den 
gängigen GPS-Modulen einen Code senden, damit sie sich einen Sat. 
suchen, oder reicht es aus zu warten?

von Herbert (Gast)


Lesenswert?

Wie hast denn dein Problem gelöst?

von gps_data (Gast)


Lesenswert?

Ich habe das Tool hier http://w5.nuinternet.com/s660100031/SirfTech.htm 
eingesetzt. Damit ging der Wechsel zu NMEA super. Aber mein Problem, 
dass ich keine Sat. finde besteht noch.

von holger (Gast)


Lesenswert?

>Aber mein Problem,
>dass ich keine Sat. finde besteht noch.

Dann mach mal ne Antenne dran und halte das Teil aus dem Fenster.

von user (Gast)


Lesenswert?

Wie muss denn z.B. eine Befehlszeile im SIRF Format aussehen?
So gehts auf jeden Fall nicht:
ser_puts("A0A20000785030004BAF0C80202FEB0B3");


Die muss so aussehen

ser_puts("\xA0\xA2\x00\x00\x78\x50\x30\x00\x4B\xAF\x0C\x80\x20\x2F\xE\xB 
0\xB3");

also du must die Daten als binary senden, nicht als String

von Michael (Gast)


Lesenswert?

gps_data schrieb:
> Aber mein Problem, dass ich keine Sat. finde besteht noch.
Sucht er denn nach den richtigen Satellite, i.e. stimmt die Uhr und sind 
die Almanach-Daten halbwegs aktuell?

von gps_data (Gast)


Lesenswert?

also vielen Dank erstmal euch.

1. Antenne ist dran
2. Antenne ist korrekt ausgerichtet
3. die Uhrzeit stimmt gar nicht
4. Das Format ist schon erkenntbar (Position und so fehlt natürlich)

Eine Idee, was man da setzen muss, damit er was findet?

von gps_data (Gast)


Lesenswert?

zu 2 -> Falsche Uhrzeit/Datum liegt sicher daran, dass ich den GPS 
Chip-Satz auf Werkseinstellungen gesetzt habe.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Fang doch mal einige NMEA Strings ein und poste sie hier. Vllt. können 
wir dann schon sehen, was los ist. Ein brauchbarer Empfänger sollte 
selbst unter (nicht metallischen) Dach zumindest den einen oder anderen 
Satelliten nahe des Zenith finden, wenn da nicht noch Stockwerke 
dazwischen sind. Ist zumindest bei meinem Drecks-Medion mit SiRF II so. 
Der TomTom mit SiRF III rastet sofort auf wesentlich mehr ein.

von gps_data (Gast)


Lesenswert?

Vielen Dank. Der eine GPS-Empfänger liefert:
  ...
  00:00:39.040 $GPGGA,000039.040,,,,,0,00,,,M,0.0,M,,0000*58
  00:00:39.040 $GPGLL,,,,,000039.040,V,N*74
  00:00:39.040 $GPGSA,A,1,,,,,,,,,,,,,,,*1E
  00:00:39.040 $GPGSV,1,1,00*79
  00:00:39.040 $GPRMC,000039.040,V,,,,,,,150209,,,N*4C
  00:00:39.040 $GPVTG,,T,,M,,N,,K,N*2C
  ...

Bei dem zweiten Modul schaffe ich es nicht die Baudrate umzustellen. 
Hierzu eine Frage: Muss ich irgendwie beim Programmieren einen 
Jumper/Spannung etc. setzen, oder kann ich die Befehle einfach an den 
Chip senden?

Danke

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Da du leider noch nicht genau gesagt hast, welches Navilock Modul du 
genau benutzt, gehe ich einfach mal von einem NL-501ETTL aus. Ab Seite 7 
des Datenblattes findest du die Einstellungen für Baudrate etc. sowie 
auf Seite 7 dann die Kommandos zur Freigabe des Receivers 
($PSRF101....), bzw. auf Seite 8 das gleiche dann mit Längen- und 
Breitengrad. Die genauen Werte sind dabei nicht entscheidend, aber die 
Freigabe der Empfangskanäle.

Kommando $PSRF105 ist sehr interessant - Freigabe der Debug Infos.

Fox Mulder schrieb:
> Was du meinst ist vermutlich die Korrektur mittels EGNOS

Zumindest diese Navilock Firmware scheint keine Unterstützung für EGNOS 
zu bieten, die der Sirf Star III ja eigentlich hat.

von gps_data (Gast)


Lesenswert?

Danke. Ich habe nun zur Freigabe den Befehl genommen:
$PSRF101,-2686700,-4304200,3851624,96000,497260,921,12,3*24.

Die Anwort vom System:

< $PSRF101,-2686700,-4304200,3851624,96000,497260,921,12,8*24
N $PSRFTXT,Version:  GSW3.5.0_3.5.00.00-SDK-3EP2.01A *07
N $PSRFTXT,TOW:  0*25
N $PSRFTXT,WK:   1519*69
N $PSRFTXT,POS:  6378137 0 0*2A
N $PSRFTXT,CLK:  96250*25
N $PSRFTXT,CHNL: 12*73
N $PSRFTXT,Baud rate: 9600*66


Scheint ja alles richtig eingestellt zu sein.

Die Datenausgabe sieht so aus:

$GPGGA,000016.055,,,,,0,00,,,M,0.0,M,,0000*51
$GPGLL,,,,,000016.055,V,N*7D
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000016.055,V,,,,,,,150209,,,N*45
$GPVTG,,T,,M,,N,,K,N*2C

von gps_data (Gast)


Lesenswert?

Mir ist gerad was aufgefallen:
Ich habe zum Test einmal die Baudrate auf 4800 gesetzt (Befehl 
$PSRF102,4800,8,1,0). Als Antwort erhalte ich:

< $PSRF102,4800,8,1,0*11
N $PSRFTXT,Version:  GSW3.5.0_3.5.00.00-SDK-3EP2.01A *07
N $PSRFTXT,TOW:  0*25
N $PSRFTXT,WK:   1519*69
N $PSRFTXT,POS:  6378137 0 0*2A
N $PSRFTXT,CLK:  96250*25
N $PSRFTXT,CHNL: 12*73
N $PSRFTXT,Baud rate: 9600*66.

Also werden die Befehle nicht richtig gesetzt,oder?

von spess53 (Gast)


Lesenswert?


von gps_data (Gast)


Lesenswert?

Ja habe ich. Das Unvollständige daran ist, dass die Koordinaten fehlen 
;). Und der Status auf "0" für unfixed steht.

von gps_data (Gast)


Lesenswert?

also ich denke mal, es liegt daran, dass ich die Befehle nicht wirklich 
setze (wie man am 9600 -> 4800 beispiel sieht). Wer eine Idee, wie ich 
das korrekt durchführe?

von spess53 (Gast)


Lesenswert?

Hi

>also ich denke mal, es liegt daran, dass ich die Befehle nicht wirklich
>setze (wie man am 9600 -> 4800 beispiel sieht). Wer eine Idee, wie ich
>das korrekt durchführe?

Warum willst du eigentlich an irgend welchen Einstellungen 
herumschrauben. Die Module von Navilock, die ich bisher in den Fingern 
hatte, haben auf Anhieb funktioniert. Sorge lieber für einen anständigen 
Empfang.

Wenn du das Modul an deinen Rechner koppeln kannst ist das Programm 
SirfDemo ganz hilfreich.

MfG Spess

von gps_data (Gast)


Lesenswert?

Ich habe das Modul direkt am Rechner angekoppelt. Mit dem von dir 
angegebenen Tool. Aber kein Erfolg es zur Funktion zu bringen.

von gps_data (Gast)


Angehängte Dateien:

Lesenswert?

Habe mal eben ein Bild von der Terminal - Oberfläche gemacht. Eventuell 
kann ja hier wer Aussagen zum Fehlverhalten des Moduls machen. Danke 
euch!

von holger (Gast)


Lesenswert?

>Die Datenausgabe sieht so aus:

Und sagt Null Empfang.

Ist die Spannungsversorgung von deinem GPS Modul in Ordnung?
Selbst mit nur ein oder zwei Satelliten kommt nach kurzer
Zeit wenigstens die Uhrzeit richtig rüber.

von gps_data (Gast)


Lesenswert?

Ich habe ein zweites baugleiches Modul. Das tausche Ich nur aus. D.h. 
die Spannungsversorgung sowie andere Randbedingungen sind identisch.

von Wolfgang (Gast)


Lesenswert?

Fourstroker B. schrieb:
> Beim Loggen der Daten ist mir aufgefallen, dass die mitgeschriebene
> Strecke um ca 100m von der tatsächlichen Strecke verschoben ist.

Gegenüber welchem Kartendatum? Das GPS liefert von Haus aus meist WGS84.

von holger (Gast)


Lesenswert?

>Ich habe ein zweites baugleiches Modul. Das tausche Ich nur aus. D.h.
>die Spannungsversorgung sowie andere Randbedingungen sind identisch.

Und das zweite funktioniert? Naja vermutlich.
Such mal nach sirfdemo und stell dein GPS damit
noch mal ein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.