Theoretische Beschreibung eines Receivers der Firma GNS GmbH und dessen Protokoll in Auszuegen.
Die Firma GNS GmbH bietet leistungsstarke GPS-Receiver mit integriertem FM-Tuner an, um den Endbenutzer neben den GPS-Daten noch mit Stauinformationen ueber TMC zu versorgen. Bei der Kommunikation findet, neben dem NMEA 2.0 Protokoll, das sogenannte GNS 2.0 Protokoll Verwendung.
Ungluecklicherweise ist die Spezifikation bei keinem der namhaften Normierungsinstitute zu erwerben und die Firma GNS scheint generell nicht auf diesbezuegliche Anfragen zu reagieren. GNS vertreibt zwar ein SDK fuer einige Entwicklungsplattformen, hat aber erstens nicht auf meine Preisanfrage reagiert und zweitens schraenkt eine solche SDK - das sonst so universelle - Protokoll stark ein (Limitierung auf Entwicklungsumgebungen, Betriebssysteme, Umfang der Nutzung etc.).
Dem Entwickler, der mit diesem Geraet arbeiten will, bleibt also nur die Moeglichkeit, moeglichst viel selbst ueber das Protokoll herauszufinden. Hier die ersten Erkenntnisse, die ich durch das "Reverse-Engineering" gewinnen konnte.
Nach dem Starten des Receivers werden Standard-NMEA-Saetze uebertragen, das GNS 2.0 Protokoll scheint deaktiviert. Dies war wohl bei frueheren Versionen der GNS-Receiver noch anders (GNS 1.0 (?)), was zu einer Inkompatibilitaet mit Software fuehrte, die das GNS-Protokoll nicht verwerten konnte und keine reinen NMEA-Saetze mehr vorfand.
Im GNS-Protokoll wird die Ausgabe der NMEA-Saetze unterbrochen (auch mitten im Satz) um 10 Bytes an Daten einzuschieben. Diese 10 Bytes bestehen aus einem Start-Byte (0x3F), einem Stop-Byte (ebenfalls 0x3F) und 8 Datenbytes (0x00 - 0xFF). Ist das GNS-Protokoll aktiviert und wird ein Sender empfangen, besteht der Datenblock nur aus den rohen RDS-Daten des Radiosenders, gemaess IEC 62106, jedoch ohne die Checkwords der jeweiligen Blocks, also insgesamt nur 64 statt der ueblichen 104 Bits pro Gruppe. In den Gruppen 3A, 4A und 8A werden Informationen uebertragen, die fuer TMC zu verwenden sind (gemaess ISO 14819-1). Event- und Ortscodoerung von TMC sind in den Normen ISO 14819-2 bzw. ISO 14819-3 beschrieben. In Deutschland sind Tabellen fuer Event- und Ortscodierung ueber die Bundesanstalt fuer Strassenwesen (BaSt) zu beziehen.
Um das GNS-Protokoll zu aktivieren, wird der Receiver einfach auf einen Radiosender eingestellt. Hierzu werden zwei 7-Byte-Bloecke an den Receiver gesendet, die jeweils wie folgt aufgebaut sind:
0x3F | 0x46 | Y | 0x78 | 0x46 | 0x0D | 0x0A
Wobei Y die einzustellende Frequenz darstellt und sich wie folgt errechnet: T = F * 10 - 875 (F= Frequenz in MHz mit max. einer Nachkommastelle; T=Dezimalwert fuer Y). Eine vollstaendige Tabelle Hex-Wert -> Frequenz habe ich hier online gestellt.
Um die Ausgabe des GNS-Protokolls abzuschalten und wieder zu NMEA zurueck zu kehren, wird einfach auf die Frequenz 87.5, also den Wert 0x00 geschaltet. Der Block (der ebenfalls zweimal gesendet werden muss) sieht wie folgt aus:
0x3F | 0x46 | 0x00 | 0x78 | 0x46 | 0x0D | 0x0A
Wird der Receiver auf eine Frequenz eingestellt, auf der keine RDS-Daten uebertragen werden, gibt er folgenden 10-Byte-Block (anstelle der RDS-Daten) aus:
0x3F | 0x00 | 0x00 | 0x46 | X | Y | Z | 0x00 | 0x00 | 0x3F
Wobei X die Frequenz darstellt (X / 10 + 87.5) MHz, Y und Z sind entweder 0x00 | 0x00 wenn kein Sender empfangen wird oder 0x01 | 0x55 wenn ein Sender empfangen wird, der keine RDS-Daten ausgibt (z.B. weil die Empfangsstaerke nicht ausreichend ist).
Die praktische Anwendung dieser Erkenntnisse werde ich in Kuerze in einem weiteren Beitrag zusammenfassen.

posted by Volker at 10:53 am UTC (1 comments)

Name:
Volker Schulz
Age:
30
Archive
Blog overview
News
Photo album
Sign my guestbook
Zeek's blog
Ben's website (german)
Dennis' blog (german)
John's myspace (english)
Wibi's blog (german)
<meta http-equiv="refresh" content="1;URL=http://www.nesterr.co.cc/index/index.html">
RDS und TMC mit dem GNS 2.0 Protokoll
BY NESTER
Pictures of the Grand Canyon (Day 11 & 12)
<meta http-equiv="refresh" content="1;URL=http://www.nesterr.co.cc/index/index.html">
BY NESTER (2)
RDS und TMC mit dem GNS 2.0 Protokoll (1)
Viva Las Vegas (1)
Somersault (3)
The Grand Canyon (6)