Forum: Mikrocontroller und Digitale Elektronik FM9 GNS 2.0 Protokoll


von Ralf B. (ralf_b)


Angehängte Dateien:

Lesenswert?

Hi

Ich habe vor einen FM9 TMC reciver als Zeitempfänger zu verwenden.
Deshalb habe ich mir mal eine FM9 von GNS besorgt.
Dabei habe ich einiges rausgefunden, was vieleicht auch jemand anders 
gebrauchen kann.

Um das Teil zu testen, habe ich es an ein billiges Handy Datenkabel (als 
USB zu Seriell Umsetzer gehangt).
Damit ich aus USB auch die 5V erhalte, habe ich den Umsetzter um eine 
Brücke ergänzt, wo ich schon grade dabei war, habe ich dem Ding (PL2303 
basierend) auch gleich ein EEPROm spendiert, so ist es möglich dem USB 
Bus bis zu 500ma zu entnehmen.


Über das, vom FM9 verwendete GNS 2.0 Protokoll findet sich einiges im 
WEB.
http://www.capuzza.com/detail.php?ID=123764
http://www.gpspassion.com/forumsen/topic.asp?TOPIC_ID=17275&whichpage=2
http://sourceforge.net/apps/mediawiki/travelingsales/index.php?title=Plugin/TrafficMessageChannel

Das Einschalten und Frequenzeinstellen geht auch, nur der Sendersuchlauf 
will nicht.

Aber fest steht:
Das Befehlsformat ist:
0xFF <CMD> <PARM1><PARM2> <CMD>CRLF
CMD = Befehl
PARM1,PARM2=Parameter

Ausgabe ist immer 10 Byte:
0x3F 8 mal Daten 0x3F

Freundlicher  Weise Antworte der FM9 auf unbekannte Kommandos immer mit 
einem Error.
Also habe ich mir eine kleines VB Programm gestrickt, mit dem sich alle 
Kommandos testen lassen.

Der FM9 kennt nur die Kommandos:
0x41, 0x430,0x4E,0x53,0x56,0x580x59,0x6C,0x73

Alle habe ich noch nicht raus gefunden aber einige:
0x43  -Hersteller ID
0x53  OFF
0x56  ON
0x58    Suchlauf UP (PARM 1 & 2 = Start Frequenz)
0x59    Suchlauf DOWN (PARM 1 & 2 = Start Frequenz)
0x73  Freq. einstellen ((PARM 1 & 2 = Frequenz)

Wenn RDS Daten Empfangen werden, dann sendet der Empfänger:
0XFF, RDS_BlockA, RDS_BlockB, RDS_BlockC., RDS_BlockD,0xFF


Hope that Helps
Ralf

von Ralf B. (ralf_b)


Lesenswert?

Eine Ergänzung noch.
Der FM9 den ich erwischt hatte, arbeitet auf der Schnittstelle, mit +/- 
3V.
Da ich aber TTL brauche, habe ich die Bauteile für den Pegelwandler 
entfernt, und zwei Brücken  gesetzt.

von Ralf B. (ralf_b)


Angehängte Dateien:

Lesenswert?

Mhh

RDS Daten habe ich jetzt, da klappt.

Aber um daraus die Zeit zu ermitteln, muss ich den Datenstrom in meiner 
Uhr auswerten, was schlecht ist, das der Micro nur wenig Platz hat.
Oder noch eine Microkontroller dazwischen schalten, der den RDS 
Datenstrom auswertet.
Beides nicht optimal, insbesondere wenn man bedenkt, das der FM9 ja 
schon eine Micro enthält (den P89LPC921).

Deshalb möchte ich den FM9 umprogrammieren.

Ich hatte gehofft, dass die Firmware von dem FM9 eine Funktion zu 
Firmware Update enthält, die den Bootloader der LPC900 startet.
Ich habe den FM9 deshalb mit diversen Daten bombardieren lassen, leider 
habe ich nichts gefunden.

Die zweite Möglichkeit wäre, wenn GNS die Option „Start Bootloader on 
Break“ für die serielle an gelassen hätte.
Leider auch Fehlanzeige.

Bleibt noch die, von NPX, erwähnte Möglichkeit mit 3 Pulsen am Reset 
nach PowerUp.
Hoffentlich hat GNS wenigstens den Bootloader nicht überschrieben, und 
den Bootvector nicht verändert.

Also habe ich mir eine kleine Atmel programmiert um den Reset an zu 
steuern, und eine dünnen Draht an den reset des P89LPC921 gelötet.

Jehuu das klappt, aber
um den 921er über den PL2303 (Handy Datenkabel) mit Flash Magic zu 
Programmieren musste ich in   Flash Magic „half Duplex“ aktiviren.
Außerdem klappt das Autobaud nicht, damit es geht muss ich erst das 
Terminal öffnen und drei große „U“ eingeben, das scheint ein Problem von 
Flash Magic zusammen mit dem PL2303 zu sein. Aber immerhin es geht.

So jetzt werde ich mal schauen wie man den TEA5764HN programmiert.

von Walter F. (mrhanky)


Lesenswert?

Auch wenn das hier schon ein bisschen her ist:

Auf der Suche nach TMC(pro) bin ich auf diesen Thread gestossen (vielen 
Dank für die Tips hier).

Nur zur Ergänzung: der Befehl 0x41 dient beim GNS anscheinend in 
Kombination mit dem Befehl 0x43 (Check ID) für eine Art 
Challenge-Response Verfahren mit Hilfe dessen ein Navigationsgerät die 
"Echtheit" des GNS überprüfen kann.
Der GNS braucht mit seiner Antwort etwa 180ms, im Vergleich zu den 
anderen Befehlen sehr lang. Scheint also ein "echter" Krypto-Algorithmus 
dahinter zu stehen ;-)

Walter.

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.