Nutzung von DTMF-Tönen zur Übertragung von GPS-Daten
letzte Änderung 8. April 2007

  USING DTMF TONES FOR SENDING OR RECORDING GPS DATA
a simple system  for converting NMEA data ( RMC protocols ) to DTMF tones; it can be used in conjunction with audio/video recorders or used with audio channels of most wireless units ( including GSM voice channels )
here  you can listen to some audio samples ( this WAV file also be used for testing the decoder function )


Abb.1  Beispiel für die LCD-Displayanzeige des Decoders nach Auswertung via DTMF übertragener Navigationsdaten
( Anm.: Zur Empfangskontrolle wechselt die Marke unter der Validitätsanzeige VAL bzw. INV nach jeder Protokolleinlesung die Richtung ) 

Das DTMF-Tonübertragungsverfahren  ist schon seit vielen Jahren in Gebrauch. In der Telefontechnik wird es standardmäßig zur Ziffernanwahl benutzt und hat dabei das früher benutzte Impulswahlsystem fast völlig abgelöst. Gearbeitet wird mit 16 verschiedenen Doppeltonkombinationen. Die Anwendungsmöglichkeiten für DTMF sind aber nicht auf die einfache Tonanwahl beschränkt, sondern es lassen sich damit auch sehr robuste Signalisationssysteme aufbauen. Dazu tragen besonders auch einige auf dem Markt erhältliche spezielle integrierte Schaltkreise bei. Ein schon vor einigen Jahren vorgestelltes Anwendungsbeispiel findet man auf meinen Seiten: http://www.kh-gps.de/schalt.htm  und   http://www.kh-gps.de/schalt2.htm . Es zeigt die Möglichkeit der Nutzung normaler Handys zum Fernschalten von Relais. Voraussetzung für diese Anwendung  war die Tatsache, daß sich DTMF-Töne auch im Sprachkanal von GSM-Netzen problemlos übertragen lassen. Das ist nicht unbedingt selbstverständlich, denn die hierbei zur Sprachcodierung und -decodierung verwendete Technik ist speziell auf die menschliche Stimme abgestimmt und ermöglicht ansich keine Übertragung von Dateninformationen. Mithilfe des DTMF-Verfahrens ist dies aber dennoch eingeschränkt möglich, wobei allerdings nur mit sehr geringen Datenraten gearbeitet werden kann. Damit ein Ton von einem der als Fertigbaustein erhältlichen Decoder sicher erkannt werden kann, muss er für mindestens 50 mS übertragen worden sein. Dazu kommt noch einmal der gleiche Zeitraum für die Pause zwischen zwei Zeichen. Damit kommen wir auf eine Gesamtzeit von 100mS pro Zeichenübertragung. Dennoch fand ich es reizvoll und einen Versuch wert, auf diese Weise auch GPS-Navigationsdaten übertragen zu wollen. Der Vorteil der DTMF-Töne liegt in ihrer unkomplizierten Nutzbarkeit über jegliche Arten von Tonkanälen.  Dazu gehören neben den GSM-Sprachkanälen auch schmalbandige Sprechfunkkanäle. Denkbar ist zudem aber auch die Signalverarbeitung über Tonspuren von Audio- und Video-Geräten. 

Das zur Codierung der Navigationsdaten benutzte Verfahren 

Um die erforderlichen Navigationsdaten in einer möglichst kurzen Zeit versenden zu können, sollte ihre Menge weitmöglichst reduziert werden. Das bedeutet eine Beschränkung auf die ausschliessliche Übertragung nur der wirklich erforderlichen Längen- und Breitengradangaben. Mit einigen Tricks liessen sich diese Informationen in nur 8 Bytes verpacken. Damit der benutzte Mikrocontroller nur möglichst wenig Rechenarbeit leisten muss, wurden die einzelnen Werte aber weitgehend im NMEA-Ursprungsformat belassen. Durch die Beschränkung der Minutenwerte auf nur zwei Stellen hinter dem Dezimalpunkt ergibt sich für unsere Regionen eine Auflösung von ca. 18m für Breitengrade und ca. 12m für Längengrade. Das Ergebnis ist ein Ausgabeformat, bei dem insgesamt 14 Zeichen übertragen werden. Das erste übertragene Zeichen stellt die sogeannte Startmarke dar. Von den 16 zur Verfügung stehenden DTMF-Tonkombinationen stehen hierfür nach Abzug der zur Zifferndarstellung benötigten 10 Töne noch 6 restliche Kombinationen zur Verfügung. Gemäss Tabelle 1 werden 4 davon benutzt. Mit ihrer Hilfe wird zum Ersten die Gültigkeit der GPS-Daten ( VALID/INVALID ) und zum Zweiten die Position östlich oder westlich des Nullmeridians signalisiert. Auf eine Übertragung der Hemisphäreninformation ( Nord/Süd ) wurde verzichtet. Da sich diese Einstellung aber mit einem am Decoder anschliessbaren Schalter fest anwählen lässt, könnte es lediglich bei Verwendung des Systems im Äquatorbereich zu Irritationen bei der Anzeige kommen.

*
VALID   EAST
#
INVALID  EAST
A
VALID  WEST
B
INVALID  WEST
  Tabelle 1  mögliche Startmarken und ihre Verwendung 

Im Anschluss an die Startmarke werden 6 Werte für die Breitengraddaten ( LAT ) und 7 Werte für die Längengraddaten ( LON ) übertragen. Danach ergibt sich folgendes Format, wobei die Dezimalpunkte hier nur zur Verdeutlichung eingezeichnet wurden und nicht mit übertragen werden:
 
<startmarker><DDMM.MM><DDDMM.MM>
D = degrees  ; M = minutes 

Eine typische DTMF-Zeichenfolge kann danach wie folgt aussehen:    *4957320081265

    und kann hier als Tonprobe abgehört werden. Die aus jeweils 14 Zeichen bestehende Tonfolge ist in diesem Beispiel dreimal zu hören. Mit diesem WAV-File lässt sich bei Bedarf auch der Decoder testen.

Der Encoder


Abb.2  Testaufbau des Encoders

P1.2
P1.1
P1.0
Delay
1
1
1
0 Sec.
1
1
0
10 Sec.
1
0
1
30 Sec.
1
0
0
1 Min.
0
1
1
2 Min.
0
1
0
5 Min.
0
0
1
10 Min.
0
0
0
30 Min.
    Tabelle 2  Über P1.0-P1.2 wählbare Verzögerungszeiten zwischen zwei im CONT-Mode erfolgenden Aussendungen

Die von GPS-Empfängern üblicherweise im Sekundentakt zur Verfügung gestellten NMEA-Datensignale ( hier: RMC-Protokolle ) müssen dem Eingang: RS232-IN zugeführt werden.  Es können die Datenraten 4800bps ( S2 = "offen" ) oder 9600bps ( S2 = "geschlossen" ) verabeitet werden. Die Signale gelangen nach Pegelwandlung in "U1" an den Mikrocontroller "U2". In seinem Flash-Speicher wird das Ausführungsprogramm ( Firmware ) abgelegt. Der Schalter "S1" erlaubt die Anwahl der Betriebsarten: "CONT" für kontinuierliches Aussenden ( wenn offen ) oder "SINGLE" für ein einmaliges Aussenden ( wenn geschlossen ). Zur Initiierung einer Aussendung im SINGLE-Mode ist die Taste "T1" kurz zu betätigen. Im CONT-Mode  können über P1.0-P1.2 ( JP1-JP3 ) die Pausen zwischen den einzelnen Block-Aussendungen in 8 Stufen gemäss Tabelle 2  gewählt werden.


Abb.3 Schaltbild  Encoder
Eingang: NMEA-Daten ( RMC-Protokolle ) vom GPS-Empfänger;
Ausgänge: DTMF-Tonfolgen ; PTT-Steuerung ; ser. Daten für Kontrollzwecke 

C1-C2
33pF
R1 10k/0.25W X1
11.0952 MHz U1 MAX232  DIL16
C3-C7
10uF/16V
R2-R5 100k/0.25W X2
3.579 MHz U2 AT89C2051 DIL20
C8
0.1uF
R6 22k/0.25W

U3 PCD3312 DIL8
C9
10uF/16V
R7 470/0.25W

U4 78L05
C10
0.1uF
R8 22k/0.25W S1-S2
Switch
Tr1 BC557B  pnp
C11-C14
10uF/16V
R9 2.2k/0.25W JP1-JP4
Quad  Switch
Tr2 BC547B  npn


P1 10k T1 Push-Button D1 1N4148







LED
Tabelle 3 Bauteile Encoder
 

Der Prozessor "U2" steuert den I2C-DTMF-Geber-Chip PCD3312 "U3".  Dieser Baustein liefert die über das Einstell-Poti "P1" im Pegel veränderbaren Tonsignale. Parallel zu jeder Tonaussendung wird der Transistor "Tr2" durchgeschaltet und ermöglicht hierüber ggf. die Steuerung eines angeschlossenen Senders.
Für Kontrollzwecke werden die aufbereiteten Navigationsdaten auch als serieller Text am RS232-Ausgang bereitgestellt. Dabei wird  die gleiche Datenrate verwendet, die auch zum Einlesen der NMEA-Daten benutzt wird. 

Der Decoder


Abb.4  Testaufbau des Decoders ( LCD-Display nicht sichtbar )


Abb.5  Schaltbild  Decoder
Eingang: DTMF-Töne von Übertragungsstrecke oder Recorder
Ausgang: NMEA-Daten ( vereinfachtes RMC-Protokoll )

C1-C2
0.1uF
R1-R2
100k/0.25W
X1
11.0592 MHz U1
MV8870/MT8870  DIL18
C3
10uF/16V
R3
270K/0.25W
X2
3.579 MHz U2
AT89C2051 DIL20
C4-C5
33pF
R4-R5
100k/0.25W


U3
MAX232
C6
0.1uF
R6
10K


U4
SN74HC14
C7
10uF/16V
R7
100k
LCD 2x16 Characters U5
78L05
C8
0.1uF
P1
10K
S1 Switch D1 1N4148
C9-C13
10uF/16V






C14
0.1uF






Tabelle 4  Bauteile Decoder
NEU im April 2007: Vertauschung der Frequenzangaben von X1 und X2 korrigiert

Der Decoder verarbeitet die über Funk übertragenen oder von einer Ton-Aufzeichnung stammenden Signale. Sie werden vom DTMF-Decoderchip "U1" MV8870 ( oder MT8870 ) verarbeitet und gelangen als 4 Bit-Parallelinformation an den Prozessor "U2". Pro empfangenem Zeichen kommt dazu ein Strobe-Impuls, der nach Aufbereitung in "U4" an den  Prozessoreingang  P3.2 ( Pin 6 ) geleitet wird. Die Firmware in "U2" steuert die Anzeige eines 2x16-Zeichen Standard-LCD-Displays.
Parallel zur Displayanzeige gem. Abb.1 werden die decodierten Navigationsdaten auch als ( vereinfachtes ) NMEA-Protokoll des Typs RMC aufbereitet und über den seriellen RS232-Ausgang mit einer Datenrate von 4800bps zur Verfügung gestellt.
Diese Funktion steht auch bei nicht angeschlossenem LCD-Display zur Verfügung. Aufgrund der bei der Decodierung neu berechneten Prüfsumme sollten die seriell ausgegebenen Daten von allen auf der Auswertung von RMC-Protokollen basierenden Auswertprogrammen verstanden werden. Handelt es sich dabei um Kartenprogramme, so können diese zur Standort-Visualisierung benutzt werden. Der vorhandene serielle RS232-Eingang ist derzeit ohne Funktion.
Wird P3.3 an Masse gelegt, so wird die Ausgabe der Hemisphäreninformation fix von "NORD" auf SÜD" umgeschaltet

  $GPRMC,,A,4957.60,N,00811.96,E,,,,,W*44
Beispiel eines vom Decoder mit 4800bps ausgegebenen ( vereinfachten ) RMC-Protokolls
( Die Prüfsumme am Protokollende wurde neu berechnet )

Vor- und Nachteile des Übertragungssystems und weitere Ideen

Als wesentlicher Vorteil ist zu nennen, daß die DTMF-Tonübertragungen über fast jeden kabelgebundenen oder drahtlosen Tonkanal erfolgen können. Der Frequenzbereich der benutzten Doppeltöne liegt zwischen etwa 700Hz und 1600Hz. Somit können auch Übertragungskanäle genutzt werden, die nur für eine Übertragung der menschlichen Stimme ( F-Bereich ca. 300 - 3000Hz ) ausgelegt sind. Das schliesst auch die schon oben erwähnten  Sprachkanäle von GSM-Geräten ein.
Ein möglicher Schwachpunkt des Übertragungssystems soll nicht verschwiegen werden: Da die empfangenen Daten keinerlei Korrektur auf der auswertenden Seite erfahren ( können ), werden ggf. auftretende Übertragungsfehler nicht erkannt. Fehlauswertungen sind somit nicht ausgeschlossen. Diese Gefahr besteht in erster Linie bei drahtlosen Übertragungen, so dass hier möglichst störungsfreie Funkverbindungen anzustreben sind. Eventuelle negative Auswirkungen lassen sich aber reduzieren, indem man die Aussendung der Tonfolgen in möglichst schneller zeitlicher Folge durchführt.
Die Tonübertragung z.B. via Handy kann grundsätzlich auch auf rein akustischer Basis erfolgen. Das verlangt nach einem kleinen Zusatzverstärker mit Sprechkapsel oder Lautsprecher hinter dem Encoder und einem Mikrofonvorverstäker auf der Decoderseite. Das Ganze weckt Erinnerungen an die Anfangszeiten der Datenfernübertragung via Telefon, bei denen man auch sog. Akustikkoppler einsetze und dabei verständlicherweise auch auf ein nicht allzu lautes Umfeld achten musste. Besser sind deshalb Verfahren geeignet, die einen direkten Zugriff auf die Tonein- und ausgänge der Handys erlauben. Für viele Gerätetypen gibt es schon für wenige Euros einfache Freisprechadaper, die es ermöglichen. daß die benötigten Anschlüsse nach Entfernung von Hörer und Mikrofon als Toneingang bzw. -ausgang zur Verfügung stehen. Diese Adapter haben dazu in der Regel noch den Vorteil, daß bei ihrem Einsatz auch die Betriebsart "Automatische Rufannahme" genutzt werden kann und Tonverbindungen damit auch von der abfragenden Seite aufgebaut werden können.

Nachbau

Die zur Programmierung der Prozessoren benötigten HEX-Files findet man hier ( Encoder: DTMFTX5.HEX; Decoder: DTMFLOC2.HEX ).
Anfragen bezüglich programmierter Prozessoren oder anderer etwas speziellerer Bauteile können via E-Mail an mich gerichtet werden.
Bei entsprechender Nachfrage ist auch die Erstellung von endgültigen Platinenlayouts und eine Beauftragung zur Platinenherstellung denkbar. 


Links

http://de.wikipedia.org/wiki/DTMF
http://www.vanity-rechner.de/dtmf.htm
http://www.ee.mut.ac.th/datasheet/MT8870d.pdf                                        (  Datenblatt  MT8870 )
http://www.selectronic.fr/includes_selectronic/pdf/Philips/PCD3312.pdf   (  Datenblatt  PCD3312 )