STARDEC
Ein Decoder zur Auswertung von D-STAR-GPS-Positionsdaten 

Version vom 2. Mai 2009

  STARDEC is a simple decoder for showing call, text ( partly ), distance and bearing angle from received D-STAR stations. Reference position can be fix ( after storing it within EEPROM section of processor ATMEGA168 ) or variable, when using actual NMEA data coming from an attached GPS receiver. Distances can be shown in kilometers or nautical miles.
There are different software versions for different D-STAR radios ( serial data rate is 38400bps for e.g. IC-91 and  9600bps for all the others ).
Alternatively a NEW extended version of STARDEC ( see below ) is using processor ATMEGA32 and 4x20 character LCD. It is showing complete text line and incoming Lat/Lon position data in addition.
English page version is planned.

Der Decoder STARDEC dient der Verarbeitung mit ICOM D-STAR-Funkgeräten übertragbarer GPS-Positionsdaten. Mithilfe eines leicht selbst herstellbaren Anschlusskabels ist er dazu lediglich über die Datenbuchse des Funkgerätes anzuschliessen. Aufgebaut ist STARDEC im Wesentlichen aus einem AVR-ATMEGA-Mikrokontroller, etwas Peripherie und einem handelsüblichem 2x16 Zeichen-LCD-Display.
Aus den via Funk empfangenen Navigationsdaten einerseits und lokalen Positionsdaten andererseits berechnet STARDEC Entfernungs- und Winkeldaten ( Abb.1 ). Bei den lokalen Standortdaten kann es sich um solche handeln, die vom Anwender dazu vorher fest im EEPROM-Bereich des Prozessors abgelegt wurden ( Feststationsbetrieb ). Alternativ dazu kann aber auch mit den von einem angeschlossenen GPS-Empfänger stammenden Live-Daten gearbeitet werden  ( Mobilbetrieb ). Bei ausschliesslichem Betrieb mit Festdaten wird kein GPS-Satellitenempfänger benötigt.


Abb.1 Beispiel für STARDEC Display-Fenster
Anzeige von Distanz und Richtungswinkel zu absendenden Stationen
( Anm: Der hier sichtbare QTH-Locator wurde nicht vom Decoder errechnet, sondern von der aussendenden Station im Textfeld übertragen  )

Decodiert wird das von D-STAR-Geräten unterstützte GPS-Übertragungsformat ( Abb.2 ). Bei diesen Geräten kann sendemäßig zwischen fünf verschiedenen NMEA-Protokolltypen gewählt werden. Sie enthalten unterschiedlichste Navigationsdaten, wobei aber die zur Positionsübertragung erforderlichen Informationen, wie z.B. Längen- und Breitengraddaten, nur in den Datensätzen: RMC, GGA und GLL enthalten sind. Somit muss sich unter den zur Aussendung selektierten Protokolltypen mindestens einer dieser drei Satztypen befinden. Damit wird auch eine Decodierbarkeit durch STARDEC möglich.
Zusätzlich zu den NMEA-Protokollen werden in einer separaten Zeile auch Absender-Rufzeichen und ein beliebiger, aus max. 20 Zeichen bestehender Zusatztext übertragen. STARDEC zeigt neben dem empfangenen Call auch ein eventuell vorhandes erstes Textwort an. Es wird zumindest bis zur vollständigen Auffüllung der oberen Displayzeile dargestellt.
In der oberen rechten Ecke des Displays erscheint eine nach jeder erfolgreichen Einlesung ihre Form wechselnde Marke. Damit ist eine einfache Einlesekontrolle möglich.


Abb.2  Beispiel für Ausgabeformat der D-STAR-Geräte

Nachdem keinerlei feste Verkopplung zwischen den verschiedenen gesendeten Datenzeilen besteht, kann es beim Empfang von Signalen mehrerer verschiedener Stationen kurzzeitig zu falschen Zuordnungen zwischen dargestellten Rufzeichen und berechneten Navigationswerten kommen. Dieser Effekt tritt aber nur in der Wechselphase auf. Ein weiteres Problem stellen die auch bei digitalen Funkverbindungen zeitweilig auftretenden Übertragungsfehler dar. Deshalb ist vorgesehen, die in den NMEA-Zeilen von Haus aus bereits übertragenen Prüfsummendaten zukünftig auch mit auszuwerten. Bei der Call/Textzeile ist das aber wegen fehlender Korrekturdaten leider nicht möglich.

Für STARDEC gibt es zwei unterschiedliche Software-Versionen. Während die Version STARDEC38 für D-Star-Geräte mit serieller 38400bps-Datenschnittstelle ausgelegt ist, soll STARDEC96 all die anderen Geräte abdecken, die eine Datenrate von 9600bps unterstützen. Der folgenden Tabelle is zu entnehmen, welche Datenrate(n) bei welchen Gerätetypen anwählbar sind:

Tabelle 1  Von den verschiedenen D-STAR-Gerätetypen unterstützte Datenraten ( ohne Gewähr )

Die Schaltung des STARDEC


Abb.3 das elektrische Schaltbild von STARDEC
( Anm.: Falschbezeichnung von Pin 1 und 2 des LCD-Displays am 4. April 2008 korrigiert )

Abb.3 zeigt das Schaltbild von STARDEC. Wenn man einmal von der Funktion des "U2" absieht, so weist es wenige Besonderheiten auf. Auch werden nur einfach erhältliche Standard-Bauteile eingesetzt. Im Schaltbild sehen wir die seriellen RS232-Daten-Ein- und Ausgänge. Sie dienen dem Anschluss des D-STAR-Gerätes bzw. eines PC's in der  Konfigurationphase. Der Baustein "U1" MAX232 sorgt für eine Pegelwandlung zwischen Signalen mit RS232- und solchen mit TTL-Pegel. Die vier NAND-Gates von "U2" sind als elektronischer Umschalter angeordnet und bewirken, dass am seriellen Eingang des ATMEGA168-Prozessors ( PD.0, Pin 2 ) nur entweder die Signale vom Funkgerät oder die von einem angeschlossenen GPS-Empfänger stammenden anliegen. Letztere müssen mit der NMEA-Standarddatenrate von 4800bps bereit gestellt werden. Die Umschaltung zwischen beiden Quellen wird über Prozessor-Port PB.2 ( Pin 16 ) gesteuert.
Der serielle Datenausgang von "U3" ( PD.1, Pin 3 ) wird derzeit nur zur Konfiguration benötigt.
Die Brücken ( Jumper ) JP1-JP2 sind im Normalbetrieb geschlossen. Nach ihrer Auftrennung besteht die Möglichkeit, hier auch
mit TTL-Pegel arbeitende Peripherie direkt anschalten zu können. 
Die Prozessor-Ports PD.3 und PD.4 liefern
pro erfolgreicher Protokolleinlesung jeweils einen 500mS-Puls. Damit können sie bei Bedarf zur Steuerung externer Einheiten, wie z.B. einer zur  Alarmierung dienenden Schnarre verwendet werden.
Die Ports PB.0, PB.1, sowie PB.3 bis PB.5 sind als Eingänge geschaltet und erlauben verschiedenste Funktionseinstellungen. Hierzu bietet sich die Verwendung eines 8-fach Dip-Schalters an. Zur Zeit werden davon allerdings nur fünf Schalter benötigt. Sie wurden als S1 - S5 bezeichnet und ermöglichen die in Tabelle 2 näher beschriebenen Funktionen.

Schalter ( Port )
  Schalter offen ( "1" )
  Schalter geschlossen  ( "0" )
S1 ( PB.0 )
  Normal-Mode
  Konfigurations-Mode ( zur Eingabe der FIX-Pos.-Daten )
S2 ( PB.1 )
  Distanzen in Kilometer   Distanzen in Nm ( naut. Meilen )
S3 ( PB.3 )
  Fix-Werte als Eigendaten   Daten von GPS-Empfänger als Eigendaten
S4 ( PB.4 )
  Normal-Mode   Anzeige von Pos.-Daten des TNC's
S5 ( PB.5 )
  Normal-Mode   Anzeige von Eigendaten
  ( FIX oder GPS je nach Stellung von "S3" )


 


 

   
Tabelle 2  Funktion der Schalter S1

KONFIGURATION

Eine Konfiguration ist nur erforderlich, wenn für den eigenen Standort auch mit Fix-Daten gearbeitet werden soll. Diese Werte können bis zu einem eventuellen Überschreiben dauerhaft im EEPROM-Bereich des Prozessors abgelegt werden. Die zugehörige Vorgehensweise ist sehr einfach:
Über seinen RS232-Anschluss ist der STARDEC-Baustein mit einem PC zu verbinden. Dort ist ein Terminalprogramm mit einer entsprechend der verwendeten STARDEC-Programmversion zu wählenden Datenrate zu starten. Bei dem Terminalprogramm kann es sich z.B. um das zum WINDOWS-Umfang gehörende "HyperTerminal" ( unter ZUBEHÖR" zu finden ) handeln, aber es gibt auch eine Fülle ebenfalls geeigneter und ggf. noch einfacher zu handelnder Terminalprogramme. Wird STARDEC daraufhin mit geschlossenem Schalter "S1" gestartet, so sollte am PC-Schirm die Einschaltmeldung für den Konfigurations-Modus erscheinen. Sie fordert zur Eingabe des gewünschten eigenen Breitengrades auf. Dabei muss das in Form eines Gradwertes mit üblicherweise mehreren Dezimalstellen erfolgen. Liegt der Wert nur im Format: "Grad/Minuten" oder "Grad/Minuten/Sekunden" vor, so ist vor seiner Eingabe eine kleine ( am Ende dieser Seite beschriebene ) Umrechnung erforderlich. Alle Eingaben sind mit dem Zeichen  "#" abzuschliessen. Die im EEPROM abgelegten Werte werden anschliessend für Kontrollzwecke noch einmal augelesen und sowohl am PC-Schirm, als auch am LCD-Display angezeigt.
Nach Eingabe der Breitengraddaten ist das Gleiche auch für die Längengrade zu wiederholen. Danach ist die Konfiguration beendet. Schalter "S1" muss jetzt wieder geöffnet ( nicht vergessen ! ), der Baustein vom PC getrennt und durch kurze Betriebsspannungsunterbrechung neu gestartet werden.    


AUFBAU und NACHBAU

Für STARDEC wurde ein Platinenlayout gem. Abb.4 und 5 entworfen. Erfahrene Selbstbauer können selbstverständlich aber auch ihre eigene Lösung realisieren. Grundsätzlich lassen sich alle für den verwendeten ATMEGA168 oder den pinkompatiblen, aber wegen unzureichender Speicherkapazität hier nicht einsetzbaren ATMEGA8 entwickelten Platinen verwenden. Ggf. müssen sie noch um die aus Abb.3 ersichtliche Umschalteinrichtung rund um "U2" erweitert werden. Das ist allerdings nicht erforderlich, wenn man sich auf die Verarbeitung von fest gespeicherten Daten für den eigenen Standortes beschränkt.


Abb.4  Platinenlayout STARDEC
Zur Grossdarstellung anklicken


Abb.5  Musteraufbau STARDEC
Zur Grossdarstellung anklicken

Das Programm von STARDEC wurde in "BASCOM-AVR" geschrieben und erfordert mindestens einen ATMEGA168 ( wovon derzeit ca. 90% der Speicherkapazität benötigt werden ). In Kürze werde ich sowohl den HEX-Code für die 38400bps-, als auch den für die 9600bps-Version hier zur Verfügung stellen. Interessenten für bereits programmierte Prozessoren und Platinen sollten mir eine E-Mail ( Adresse siehe unten ) schicken.



Abb.6 Musteraufbau STARDEC mit Display und Zuführung
empfangener der GPS-Daten via RS232-Datenkabel

NEU am 19. Juni 2007: Decoderversion "STARDEC4x20"

Nach meinen guten Erfahrungen mit einer vom ELEKTOR fertig geätzt erhältlichen ATMEGA16/32-Platine, habe ich mit ihrer Hilfe zusätzlich auch eine erweiterte Version des STRADEC-Decoders  aufgebaut. Gegenüber der Basisversion mit 2x16 Zeichen-Display gestattet das hierbei zur Anwendung kommende 4x20 Zeichen-LCD-Display eine Erweiterung der  Anzeigemöglichkeiten. Somit steht jetzt eine komplette Zeile zur Ausgabe von evtl. mitübertragenen Zusatztexten zur Verfügung. Nachden deren Länge bei D-STAR ohnehin auf max. 20 Zeichen begrenzt ist, passt das verwendete Display an dieser Stelle optimal. Zudem ermöglicht es auch noch eine laufende Ausgabe empfangener Positionsdaten, wobei die Anzeige der Minutenwerte allerdings auf zwei Stellen hinter dem Dezimalpunkt eingeschränkt werden musste.
 

Abb. 7
Anm.: In der neusten SW-Version mit dreistelligen Upcounter am rechten Rand der 1. Displayzeile

Die für STARDEC4x20 verwendete Software wurde auf das ELEKTOR-Board abgestimmt, wodurch sich einige Unterschiede zum Schaltbild Abb.3 ergeben.
Das gleiche Board und das gleiche Display wurden aber bereits auch für das Projekt LCDTRAK verwendet, so dass man auf der zugehörigen Seite weitere Informationen zu den verwendeten Bauteilen und ein zu diesem Board passendes Schaltbild finden kann: http://www.kh-gps.de/lcdtrak.htm . Dort wird man auch feststellen, dass neben dem eingesetzten Prozessortyp auch die zur Steuerung des LCD-Displays und für die Funktionsschalter benutzten Ports unterschiedlich zur ATMEGA168-Version sind. Auch bei STARDEC4x20 gibt es aber wieder unterschiedliche Software-Versionen für die Datenraten 38400bps und 9600bps.

Datensimulation für Decodertests und
Generierung von Fix-Daten für Sendezwecke

Wer seinen Decoder auch ohne aktuell empfangene Daten testen möchte, der kann dazu meine uralten, aber auch auf XP-Rechnern immer noch lauffähigen kleinen DOS-Testprogramme  SEND38.EXE ( 38400bps ) bzw. SEND96.EXE ( 9600bps ) nutzen und zusammen mit einer über D-STAR-Funk mitgeschnittenen ( und teilweise auch noch Übertragungsfehler enthaltenden ) LOG-Datei hier herunterladen. Alle Dateien müssen nach dem Entpacken in ein gemeinsames Verzeichnis kopiert werden. Nach Start eines der EXE-Programme wird nach dem Namen der zu sendenden Datei gefragt. Daraufhin ist "startest" einzugeben. Die in dieser Datei enthaltenen Daten werden anschließend zeilenweise aufgerufen, auf dem PC-Schirm angezeigt und über COM1 ausgesandt. Unter Verwendung von Pocket-DOS klappt das Ganze sogar am PDA ( Abb.8 ), womit es auf einfache Weise auch für z.B. Decoder-Vorführzwecke verwendet werden kann.


Abb.8  Simulation einer Datenaussendung am PDA 
Zur Grossdarstellung anklicken

Um D-STAR-Geräte zur Aussendung von GPS-Daten nutzen zu können, ist im Normalfall ein geeigneter GPS-Empfänger anzuschließen. Mithilfe der kleinen Baugruppe TEXTSIM ( http://www.kh-gps.de/textsim.htm  ) lassen sich die zur Aussendung vorgesehenen Daten aber auch simulieren. Nachdem ein Satellitenempfänger dabei entfallen kann, dürfte diese Einsatzmöglichkeit speziell für den Feststationsbetrieb interessant sein. Bei dem einzugebenden Format kann man sich an die Angaben entsprechend Abb.2 anlehnen. Die dort vorhandenen Daten lassen sich entsprechend der eigenen Erfordernisse modifizieren und anschliessend speichern. Zudem muss auch die gewünschte Sendefolge festgelegt werden. Das zum Senden verwendete D-STAR-Gerät ist in diesem Fall nicht im GPS-, sondern im Daten-Modus zu betreiben.

NEU am 2. Mai 2009:
Auf Anfrage ab sofort auch Decoderversionen mit 4K8-Datenschnittstellen


UMRECHNUNG VON POSITIONSDATEN

Die Umrechnung  von Daten mit dem Ausgangsformat: "GGMMSS" ( Grad/Minuten/Sekunden ) nach "GG.GGGGG"  erfolgt nach der Formel:

Ergebnis ( in Grad ) = GG + ( MM/60 ) + ( SS/3600 )  


Beispiel 1:
                 Eingangsdaten    49 Grad, 57 Minuten,  36 Sekunden
                                              49 + ( 57/60 ) + (36/3600)
                                              49 + 0.95  +  0.01
                                              -------------------------
                 Ausgangsdaten    49.96  ( Grad )

Aus z.B. NMEA-Protokollen liegen die Ausgangsdaten oftmals auch in Format: "Grad/Minuten" vor. Dabei werden die Minutenwerte üblicherweise mit mehreren , in eine Umrechnung selbstverständlich mit einzubeziehenden Dezimalstellen angegeben.
In diesen Fällen ergibt sich folgende Umrechnungsformel:


Ergebnis ( in Grad ) = GG + ( MM.mmm/60 )   

Beispiel 2:
                 Eingangsdaten    49 Grad, 57.6 Minuten
                                              49 + ( 57.6/60 )
                                              49 + 0.96
                                              -------------------------
                 Ausgangsdaten    49.96 ( Grad )

Meine weiteren Seiten zum Thema "D-STAR" u.ä.

( PORTABLER ) DATENFUNK VIA D-STAR  http://www.kh-gps.de/dstar_data.htm
SENDEN, EPFANGEN UND AUSWERTEN VON D-STAR-POSITIONSDATEN AM PC ODER PDA  http://www.kh-gps.de/gps_map.htm
RMC2APRS  APRS mit D-STAR-Geräten  http://www.kh-gps.de/rmc2aprs.htm
TEXTSIM Ein  universeller Baustein zur Speicherung und Aussendung serieller ASCII-Files  http://www.kh-gps.de/textsim.htm
APRS mit Bluetooth-GPS-Mäusen  http://www.kh-gps.de/bt3.htm
BLUETOOTH  to RS232-Adapter mit "BTM-222" http://www.kh-gps.de/btm222.htm

Das Projekt betreffende Kommentare, Anregungen, oder ( konstruktive ) Kritiken werden immer gern entgegengenommen. Nachdem das gesamte Projekt noch in der Entwicklungsphase  ist, würde mir das sicherlich weiterhelfen.
E-Mail-Kontakt: