Hallo,
durch auswendiges Loggen und Auswerten habe ich die Ansteuerung des mittleren FIS Bereiches im A3 8P entschlüsselt und kann beliebige Texte, Navisymbole und Grafik im Display darstellen.
Erstaunlicherweise ist dies, meiner Kenntnis nach, nur sehr wenigen Leuten gelungen. Mehrere Produkte, die den FIS Bereich beschreiben, nutzen hierfür den Telematik Modus, der allerdings bei neueren Tachos nicht mehr vorhanden ist.
Hier muss man den Navigationsmodus nutzen, sprich man emuliert ein Navigationsradio RNS-E von Audi.
In diesem Post gehe ich nur auf die Grundlagen der Kommunikation ein. Detailliertes Vorgehen muss man sich selbst erarbeiten
KFZ: Audi A3 8P MJ 2011, mit Tacho (TN-Endung 932), weißes großes FIS
Radio: Audi RNS-E Modell 193 (das mit der Media Taste)
Grundlagen:
Um die oberen 2 Zeilen beschreiben zu können, muss sich das Radio im OSEK Ring anmelden. Das Radio sendet von nun an periodisch Texte (2x8 Zeichen) in den Canbus. Das FIS stellt diese dar. Er erfolgt keine Bestätigung vom FIS. Um eigene Texte zu schicken, muss ein CAN-Router (Gateway) zwischen Radio und CAN-Bus geschaltet werden, das die betroffenen ID's rausfiltert (0x363 + 0x365), alle anderen Frames müssen durchgereicht werden.
Ich habe dies mit einer kleinen Platine auf Basis eines STM32F4 MC gelöst.
Für den mittleren Bereich im FIS ist keine OSEK Anmeldung nötig. Man kann das FIS auch ohne Radio ansteuern, was sogar leichter ist, da man keine Frames rausfiltern muss. Ich nutze für meine Zwecke weiterhin mein Modul, und filtere die relevanten Nachrichten vom KFZ-> RNS-E und umgekehrt raus.
Für die Kommunikation sind 2 ID's zuständig, 0x6C0 und 0x6C1 (6C0 kommt vom RNS-E, 6C1 vom Tacho).
Um dem Protokoll auf die Schliche zu kommen, muss man 'nur' diese beiden ID's auf dem Info-Canbus loggen und lernen diese zu verstehen
Basics:
Zwischen Tacho und RNS-E wird nach Einschalten der Zündung ein Transport-Protokoll aufgebaut, ähnlich einer OBD Session. Die Verbindung kann durch beide Teilnehmer aufgebaut und auch wieder beendet werden.
Teilnehmer 1 sendet mehrmals eine Startsequenz um die Verbindung aufzubauen. Antwortet die Gegenstelle nicht innerhalb einer gewissen Zeit, wird der Verbindungversuch wieder unterbrochen und nicht weiter versucht.
Antwortet Teilnehmer 2 auf die Anfrage, werden weitere Frames an die Gegenstelle gesendet und entsprechend geantwortet. Auch gibt es 2 Arten von Nachrichten, einmal die von der Gegenstelle nicht bestätigt werden müssen, und welche die bestätigt werden müssen.
Um das Vorgehen zu beobachten loggt man die beiden ID's und schaltet die Zündung ein. Nach kurzer Zeit wird die Verbindung bestehen und durch 'Keep-Alive' Nachrichten aufrechterhalten. Danach schaltet man in den Navi Modus am RNS-E und aktiviert den Kompass im Setup. Jetzt sieht man was vom Radio zum Tacho gesendet wird um die Himmelsrichtung und den aktuellen Strassennamen im FIS darzustellen.
Nachrichten Arten:
0x52 ist der Kommandomodus
0x57 ist der Datenmodus
und noch weitere, z.B. für Grafikmodus um einzelne Pixel anzusteuern
Mit dem Kommandomodus wird z.B. der FIS Bereich definiert, in den man schreiben möchte (max. 64x48 Pixel), dabei kann dieser Bereich entweder nur definiert werden, gelöscht oder mit Weiß gefüllt werden.
Der Datenmodus schickt mehrere Datenblöcke in Folge an den Tacho, um z.B. längere Texte darstellen zu können.
Beginnt ein Frame mit Hex 1x muss von der Gegenstelle der Frame bestätigt werden. Beginnt ein Frame mit Hex 2x muss dieser nicht bestätigt werden.
Beim Auswerten von Logfiles erkennt man recht schnell wie bestätigt wird. Nur soviel, jeder Teilnehmer hat einen fortlaufenden Zähler der zu Frames mit Hex 1x oder 2x addiert wird, z.B. Hex 10, dann 11 u.s.w. bei Hex 1F erfolgt ein Überlauf und der Zähler beginnt wieder bei Hex 10.
Texte können mehrere Formatierungen aufweisen.
Breiter Font, schmaler Font, weiß auf schwarz, schwarz auf weiß, XOR zum Display, OR zum Display, links sowie zentriert ausgerichtet.
Weiters gibt es einen Zeichensatz, der grafische Charakter für Navigationssymbole ausgibt. Man muss allerdings z.B. einen Linksabbiegepfeil durch mehrere Navicharakter kombinieren, weil ein Charakter grade man 6x7 Pixel groß ist.
Das RNS-E nutzt übrigens nicht alle Möglichkeiten des FIS. So kann man auch im Grafikmodus einzelne Pixel direkt ansteuern, was das RNS-E nicht tut.
Da wir schon bei Pixel sind. Die Auflösung beträgt 64x48 Pixel. Ein Pixel besteht aus 4 Pixel, die ich Subpixel nenne.
Man hat also eigentlich doppelte Auslösung. Ich habe inzwischen einen Weg gefunden diese Subpixel ansteuern zu können.
Man darf allerdings vom FIS Display keine Tempowunder erwarten, da es eine untergeordnete Rolle im Tacho spielt (der Tacho tut mehr als einem bewusst ist!). Doom im FIS ist also nicht erstrebenswert
Nach jedem Frame an den Tacho muss eine kleine Pause eingefügt werden, da sonst Frames verschluckt werden und die Texte zerstückelt ankommen oder im schlimmsten Fall die Verbindung stecken bleibt. Keine Panik, kaputt machen kann man beim Info-Bus eigentlich nichts. Zündung aus-ein und läuft wieder.
So, das soll es fürs Erste gewesen sein.