artikel:ipc:mileage_algorithm

Dies ist eine alte Version des Dokuments!


Berechnungsalgorithmus für den Kilometerstand

In diesem Grundlagenartikel wird die Funktionsweise der speicherung und kodierung der Kilometerzähler im Kombiinstrument beschrieben.

Der Tacho erhält über den in Botschaft ID 040, welche vom BCM auf dem MS-CAN erzeugt und im 50 ms Takt gesendet wird, ein Byte mit der zurückgelegten Wegstrecke seit der letzten Sendung:

ID DLC D7 D6 D5 D4 D3 D2 D1 D0
040 8  *  XX *  *  *  *  *  *

Ändert sich der Wert nicht (egal welcher zuletzt gesendet wurde), steht das Fahrzeug. Bewegt es sich vorwärts oder rückwärts, enthält der Wert die Entfernung relativ zum letzten Wert, wobei ein Überlauf bei 0xFF auf 0x00 stattfindet.

Rechnerisch ist das also die zurückgelegte Wegstrecke in 50 ms. Interessanterweise dient dies nur zur Änderung des Tages- und Gesamtkilometerzählers und nicht für die Geschwindigkeitsanzeige.

Der Tachostand für den Tages- und Gesamtkilometerzähler wird zur Laufzeit im RAM des Kombiintrumentes gespeichert. Beim Start dieses aus dem stromlosen Zustand wird der darin gespeicherte Wert ins RAM geladen und fortan bei Änderung der o.g. CAN-Botschaft im RAM geändert, auf dem Display dargestellt und in das EEPROM zurückgespeichert.

Da ein EEPROM nur eine begrenzte Anzahl Schreibzyklen verkraftet (der im KI eingesetzte Typ 24C16 kann laut Datenblatt garantiert 1 Million ohne Ausfall) wird der Stand nur alle 0.5 km gespeichert, was einer theoretischen Gesamtreichweite von 500.000 km entspräche.

Die Daten im EEPROM enthalten neben dem Tachostand auch noch viele weitere, interessant Informationen wie die VIN (Fahrgestellnummer), den Hardware und Softwarestand des Kombiinstrumentes, sowie der Einstellungen die darin möglich sind.

Der Wert des Gesamtkilometerzählers ist ab Offset 0x774 im EEPROM gespeichert und insgesamt 20 Bytes lang.

Ein weiterer Kilometerstand wird ab Offset 0x788 in 4 Bytes, einem 32-Bit DWORD im Big-Endian Format gespeichert.

Der Kilometerstand ist mit einer 4-Bit CRC in den obersten 4 Bit des DWORD geschützt. Der Kilometerstand befindet sich dezimal in den unteren 24 Bit. Der Wert enthält zwei Nachkommastellen.

  • artikel/ipc/mileage_algorithm.1562480731.txt.gz
  • Zuletzt geändert: Sun. 07.07.2019 06:25
  • von go4it