Forum: Mikrocontroller und Digitale Elektronik TMC / TMCpro / RDS


von Walter F. (mrhanky)


Lesenswert?

Bei Pearl gibt es einen externen TMC Receiver für portable Navis:
NAVGEAR MINI

http://www.pearl.de/a-PX4105-5480.shtml?query=navi+tmc

Ich habe an verschiedenen Stellen gelesen, dass TMCpro garnicht 
verschlüsselt ist sondern "nur" andere Kennungen/Header etc. verwendet 
und das das Ganze mehr ein Lizenzmodell ist.

Der Empfänger hat anscheinend ne serielle Schnittstelle (wenn auch mit 
USB Stecker). Sollte sich also problemlos an einen Mikrocontroller 
anschließen lassen.

Hat damit schon mal jemand was gemacht ?

Walter.

von Simon B. (nomis)


Lesenswert?

Walter Freywald schrieb:
> Der Empfänger hat anscheinend ne serielle Schnittstelle (wenn auch mit
> USB Stecker). Sollte sich also problemlos an einen Mikrocontroller
> anschließen lassen.
>
> Hat damit schon mal jemand was gemacht ?

Hm, was genau fällt denn aus der seriellen Schnittstelle raus? 
RDS-Telegramme? Vorverarbeitete TMC-Daten?

Ich selber habe vor einiger Zeit mit einem ADS InstantFM Music USB-Radio 
rumgespielt, welches auf einem Si470x basiert. Damit konnte ich damals 
die rohen RDS-Telegramme unter Linux auslesen und decodieren. Ich bin 
damals recht weit gekommen, weil ich die relevanten ISO-Standards 
gefunden hatte.

TMC ist spezifiziert in ISO 14819-1 und -2. Dazu gehören umfangreiche 
Tabellenwerke, unter anderem die sogenannten Location Code List. Die 
bekommt man vergleichsweise barrierearm von der Bundesanstalt für 
Straßenwesen ( 
http://www.bast.de/nn_42544/DE/Aufgaben/abteilung-f/referat-f4/Location-Code-List/location-code-list-start.html 
). Der Witz ist, dass da auch genaue Ersetzungstabellen dabei sind, wie 
man aus den Codes menschenlesbare Nachrichten bekommt. Das ist eine 
etwas wüste Ansammlung aus Excel-Tabellen und CSV-Dateien, aber wenn man 
sich da mal durchgewühlt hat, kriegt man plötzlich lesbare 
Verkehrsmeldungen...  :)

Wichtigster Punkt hierbei sind die Location-Codes, über die viele Orte, 
Straßen, Abfahrten und Kreuze in Deutschland in einen 16-bit-Wert 
codiert sind. Die sind sozusagen das "Herz" der Nachrichten.

Und nur diese Codes werden bei TMCpro "verschlüsselt", und wie das geht 
steht in ISO 14819-6. Es ist jedenfalls ziemlich banal und basiert auf 
einer festen Codetabelle, die in die TMCpro-Geräte eingebaut wird. Die 
16bit-werte werden im wesentlichen rotiert und dann mit einem Wert 
verXORt.

In dem TMC-Datenstrom wird dann ein Flag mitgesendet, das die 
Verschlüsselung announced (sonst würden u.U. nicht-tmc-pro-Geräte die zu 
Bullshit entschlüsseln) und mitteilt, welcher Schlüssel aus der Tabelle 
denn nun verwendet werden soll.

Ich habe damals dann eine kleine Attacke dagegen gefahren und einen 
Tabelleneintrag herausgefunden (was damals von meinem lokalen 
TMCpro-Sender verwendet wurde). Das hat sich über einen sehr langen 
Zeitraum nicht geändert, so dass ich nicht sicher bin, ob das überhaupt 
mal passiert.

Ich habe den ganzen Kram eben mal wieder ausgepackt, bin aber daran 
gescheitert, dass mein Radio-Stick nicht mehr tut. Irgendwo ist da ein 
Bug in dem Linux-Treiber oder der Empfang ist gerade viel zu schlecht. 
Insofern kann ich gerade nicht checken, ob sich nach zwei Jahren da mal 
was getan hat.

Viele Grüße,
        Simon

von Walter F. (mrhanky)


Lesenswert?

Danke, das sind ja schon mal gute Hinweise. Werde mich gleich mal auf 
die Suche machen.

von Walter F. (mrhanky)


Lesenswert?

ich bin auf 2 Threads von Ralf Brandt gestossen:

Beitrag "RDS statt DCF77 ?"

und

Beitrag "FM9 GNS 2.0 Protokoll"

Er hat da schon sehr viel herausgefungen (zwar für RDS aber das hilft 
schon mal sehr.). Danke an dieser Stelle.

von Walter F. (mrhanky)


Lesenswert?

na super, es geht schon wieder los:
Die Verschlüsselung für TMCpro laut ISO ist wirklich nicht der Knaller 
und es sollte sich recht fix herausbekommen lassen, welche 
Tabelleneinträge verwendet werden...

Aber:

Das TMC(pro) Modul GNS FM9 hat es eher in sich (ich habe sowas schon mal 
beim ner Freisprecheinrichtung für ein Siemens Handy gesehen). Die haben 
anscheinend soetwas wie einen Schutz für das Zubehör eingebaut. 
Challenge-Response: Das Navi schickt was an das GNS, das GNS antwortet. 
Dann wird die Antwort vom Navi überprüft und nur wenn die stimm läuft 
die Kommunikation weiter.

Beim Versuch, einen FM9 Simulator zu bauen bin ich da drauf gestossen.

Wenn ich das original FM9 an meine Schaltung anschließe und nur die 0x41 
zum FM9 umleite und die Antwort an das Navi durchreiche, läuft die 
Sache.
Die Reihenfolge sieht so aus:
0x56 -> FM9 aktivieren
0x43 -> ID abfragen (dabei wird schon mal ein Byte übergeben, das dann 
anscheinend auch Einfluß auf den Check hat)
0x41 -> Security check

Da ich das Komando 0x43 nicht durchreiche dauert es immer ein bisschen, 
bis es passt, aber es geht.

Hat jemand damit schon Erfahrung gemacht ?

Der Controller im FM9 (NXP 89...) braucht etwa 180ms um zu antworten. 
Das wird doch nicht wieder nen DES sein ? ;-)

Es gibt viel zu tun !

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.