mikrocontroller.net

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


Autor: Fourstroker B. (fourstroker)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: fourstroker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-(

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: gps_data (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gps_data (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Herbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie hast denn dein Problem gelöst?

Autor: gps_data (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Aber mein Problem,
>dass ich keine Sat. finde besteht noch.

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

Autor: user (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: gps_data (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: gps_data (Gast)
Datum:

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

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gps_data (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gps_data (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: gps_data (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Die Datenausgabe sieht so aus:

Sieht sehr unvollständig aus. Schon mal mit dem NMEA Reference Manual, 
z.B.

http://www.google.de/url?sa=t&rct=j&q=NMEA+Referen...

verglichen?

MfG Spess

Autor: gps_data (Gast)
Datum:

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

Autor: gps_data (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: gps_data (Gast)
Datum:

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

Autor: gps_data (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gps_data (Gast)
Datum:

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

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.