Skip to content

Der kleine Autoelektroniker - Teil1: Im Rödchen Mystery Cache

This cache has been archived.

knocher: Auch du mein kleiner gehst heute in's Archiv

More
Hidden : 4/10/2014
Difficulty:
4.5 out of 5
Terrain:
3 out of 5

Size: Size:   regular (regular)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:

Herzlich Willkommen in meiner Welt der Bits und Bytes, die aus Töfftöffs erst ein Automobil machen.

Elektronik ist nicht mehr wegzudenken, leider ist der Ruf schlecht: "Teuer, unzuverlässig, Blackbox, man kann nichts mehr selbst reparieren, laufend kaputt....". Nunja, aller Anfang war schwer! Dies ist der Auftakt für eine Serie von Caches, die einem Elektronikentwicklung in der Automobilbranche ein bisschen näher bringen soll.


Teil 1 dreht sich um den CAN-Bus.

Das Controller-Area-Network ist auf eine Erfindung von Bosch in den 80'er Jahren zurückzuführen. Grundlage ist in jedem Steuergerät ein Mikro-Controller, der über eine serielle Datenkommunikation mit weiteren Steuergeräten "sprechen" kann. Man kann sich das so ähnlich wie Festnetz-Telefone vorstellen, jeder kann mit jedem sprechen, muss es aber nicht. Die Sprache muss natürlich genormt sein, so wie wir in Deutsch oder Englisch, Französisch, etc. mit einander am Telefon sprechen, so haben auch Steuergeräte unterschiedliche "Sprachen", die in Standards festgeschrieben werden. Der gängigste Standard für den CAN-Bus ist in der ISO 11898 festgeschrieben: Ein Highspeed CAN-Bus wird mit Geschwindigkeiten zwischen 125 kBaud/s und 1 MBit/s betrieben, benötigt zwei Kupfer-Drähte zur Kommunikation und läuft mit 5 Volt Spannung. Null und Eins werden binär übertragen und mit einer Differenzspannung kodiert, dies erhöht die Sicherheit der Kommunikation.

"Eins" nennt man "rezessiv" und entspricht auf beiden Kabeln einer Spannung von 2.5 Volt, also einer Differenzspannung von 0 Volt.

"Null" nennt man "dominant" und enspricht einer Differenzspannung von ca. 2 Volt.


Weiterhin ist in diesem Standard neben der reinen Elektrik auch die Kodierung der eigentlichen Botschaften des Steuergerät beschrieben. Das kann man sich so vorstellen, wie wenn wir einen Satz sprechen:
"Ich bin knocher, die Außentemperatur beträgt 18°C bei uns in Biblis, mein PC ist eingeschaltet, die Katze macht Mau, ich fühle mich wohl".

Übertragen auf ein Fahrzeug wäre dann eine Botschaft ähnlich aufgebaut:
"Ich bin das Getriebe, ich habe 6 Vorwärtsgänge, ich bin aktuell im 4 Gang, die Getriebeausgangsdrehzahl beträgt 850 Umdrehungen pro Minute, mein Getriebeöl ist 95° C heiss, ich habe keine Fehler".

Die gesamte Semantik spart sich das Steuergerät und reduziert die Übertragung auf die reinen Werte. Die Bedeutung der einzelnen Werte muss man also separat aufschreiben und einem Empfänger vorher einprogrammieren. Das spart Datenvolumen und geht schneller. Leider ist die Semantik nicht bei jedem Hersteller gleich, es gibt hier viele herstellerspezifische Unterschiede, auch wenn die Tendenz so langsam zu einer Standardisierung geht. Also, man kann sich das am Getriebe (wir nennen es nun einfach "Nummer 5") wieder so vorstellen: "Ich bin Nummer 5 mit den Werten: 6, 4, 850, 95, 0".

In der Welt der Bits und Bytes wird in der ISO 11898 beschrieben wie diese Botschaft nun "syntaktisch" auszusehen hat:


Die Nachricht beginnt mit einem sogenannten Arbitrierungsprozeß, bei dem festgelegt wird, wer überhaupt sprechen darf. Das ist so ähnlich wie wenn in einem großen Haus mehrere Telefone stehen, aber nur eine Telefonnummer vorhanden ist. Alle Bewohner brüllen gleichzeitig durch's Haus und wer am lautesten war, der darf das Telefon benutzen. Bei den Steuergeräten gewinnt derjenige mit der höchsten Priorität, bzw. der niedrigesten Arbitrierungssequenz.

Im Controlfield wird unter anderem die Länge der folgenden Botschaft kodiert. Im Normfall werden immer 64 bit, bzw. 8 Bytes an Daten übertragen.

Dann folgen die eigentlichen Daten, die mit einer CRC-15 Checksumme noch abgesichert werden. Damit kann jeder Empfänger prüfen, ob die Daten richtig übertragen wurden.

Eines der wichtigsten Bits ist das Acknowledge Bit. Hier können alle zuhörenden Steuergeräte bestätigen, ob die Nachricht korrekt empfangen und dekodiert wurde. Ist dies nicht der Fall - zum Beispiel durch eine kurzfristige Störung, erkennbar an einer nicht passenden Checksumme - kann allen anderen Steuergeräten der Fehler signalisiert werden. Die Botschaft wird damit verworfen und der Sender muss die Botschaft erneut senden.


So, jetzt bist du dran, dekodiere diese beiden CAN-Identifier. Es handelt sich um 11-bit IDs gemäß ISO 11898 im Base Frame Format (CAN 2.0A) ohne Stuffbits. Die Semantik der Daten musst du herauskriegen, aber ich habe hier nichts extravagantes gewählt.

Nord:

Ost:

Es handelt sich um eine große Muni-Box mit allerlei Tauschgegenständen. Viel Spaß beim suchen im "Rödchen".

Achja, noch'n Geochecker: GeoChecker.com.

Additional Hints (Decrypt)

Vz Onhpu rvarf tebßra Onhzf

Decryption Key

A|B|C|D|E|F|G|H|I|J|K|L|M
-------------------------
N|O|P|Q|R|S|T|U|V|W|X|Y|Z

(letter above equals below, and vice versa)