Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
artikel:rdks:rdks-sensor [Mon. 26.11.2018 08:59] – ↷ Seite von artikel:rdks nach artikel:rdks:rdks-sensor verschoben und umbenannt wikiadmin | artikel:rdks:rdks-sensor [Sun. 19.04.2020 00:23] – go4it | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== RDKS-Sensoren ====== | ====== RDKS-Sensoren ====== | ||
- | {{.rdks-sensor: | + | {{rdks-sensor.png? |
==Verwendbare Typen== | ==Verwendbare Typen== | ||
Zeile 20: | Zeile 20: | ||
==Lebensdauer der Batterie== | ==Lebensdauer der Batterie== | ||
+ | Funktionsweise | ||
+ | Grundlegend arbeitet dieses System so, das in den Reifen verbaute Sensoren laufend Meßwerte ermitteln und per Funk an die Fahrzeugelektronik übertragen. Diese werden dann zur Überprüfung des Luftdrucks auf gefährlich niedrige Werte (< 1.8 Bar) überprüft und angezeigt. Jeder Sensor verfügt dabei über eine ab Werk vergebene ID, durch die das Rad identifiziert wird. Über eine Positionszuordnung " | ||
+ | Die Positionsbestimmung funktioniert dabei wie folgt: | ||
+ | Über jedem Rad befindet sich eineNiederfrequenz-Antenne mit geringer Reichweite. Diese sind direkt mit dem BCM verbunden. Im Gegensatz zu den Rädern ist deren Position im Fahrzeug bekannt und unveränderlich. In einer Initialisierungssequenz erzeugt das BCM nun für die erste Antenne, vorn links ein Funksignal auf dem niederfrequenten 125 kHz (LF) Band. Dieses Frequenzband wird u.a. auch für die allseits bekannte RFID- oder auch NFC-Technologie verwand. Aufgrund der geringen Reichweite dieses Signals und dem physikalisch bedingten Abstand der Räder zueinander, erreicht dies nur den unter der jeweiligen Antenne befindlichen Sensor. | ||
+ | Dieser reagiert beim Empfang mit einem Burst an Signalen in denen er seine Identität und aktuellen Parameter mitteilt. Dies macht er ebenfalls per Funk, jedoch auf dem hochfrequenten 433,92 MHz Band. Dieses Signal hat eine verhältnismässig hohe Reichweite und wird vom Empfänger des Funkschlüssels (Keyless bzw. Zentralverriegelung) aufgefangen. Dieser ist ebenfalls mit dem BCM verbunden ist und zufällig dieselbe Sendefrequenz nutzt. So gelangen nur die Daten des angetriggerten Sensors zurück. Das BCM weisst nun intern die empfangene Sensor-ID der Radposition. | ||
+ | Nun folgt der gleiche Vorgangen mit der nächsten Antenne, vorn rechts, anschließend rechts hinten und zum Schluß links hinten. | ||
+ | |||
+ | Welche Daten werden übermittelt und wie oft? | ||
+ | Neben dem erwarteten Reifendruck werden auch noch andere Daten übermittelt wie: Innentemperatur des Reifens, Beschleunigung, | ||
+ | Durch die Antriggerung des BCM, aber auch den Fliekraftsensor erkennt der RDKS-Sensor ob sich das Fahrzeug bewegt oder steht. Danach richtet sich die Häufigkeit der Datenübermittlung. Genauere Werte werde ich noch ermitteln. | ||
+ | |||
+ | Was steckt in so einem RDKS-Sensor drin? | ||
+ | Die Energiequelle des Sensors ist eine einfache CR Lithium-Batterie. Laut Herstellerangaben soll diese knapp 15 Jahre halten (Praxiserfahrung habe ich hier noch keine, vermutlich wird es aber weniger sein). Aufgrund dieser endlichen und nicht sehr energiereichen Quelle, ist die Elektronik wie auch das Verhalten des Sensors auf Stromsparen ausgelegt. Darum verwundert es auch nicht, das er die meiste Zeit über passiv. Die Elektronik des Sensors ist in seinem Gehäuse vergossen um bei den hohen Rotationsgeschwindigkeiten und Kräften nicht zerstört zu werden. Es befindet sich ein Spezialchip (Herstellerabhängig) drauf, welcher alle Funktionen steuert und auch die Sensoren enthält. Zudem eine LF- und eine UHF Antenne für die Funkkommunikation. | ||
+ | |||
+ | So weit zu den allgemein bekannten Parametern des Systems und der Sensoren. Nachfolgend werde ich aufzeigen, wie ich an weitere Informationen ran komme um nach und nach die Funkkommunikation der Sensoren zu entschlüssel. Ziel ist es, diese zunächst zu verstehen und dann mit einfachen Mitteln (Arduino und Funkmodule) einen Sensor zu triggern und seine Daten zu empfangen und zu dekodieren. Anschließend möchte ich selbst Daten eines virtuellen Sensors per Funk senden und mal schauen wie mein Fahrzeug darauf reagiert, damit das Hacker-Feeling nicht zu kurz kommt ;-) Mal schauen was man damit alles interessantes machen kann. | ||
+ | |||
+ | Wird die Fahrgeschwindigkeit von 20 km/h mehr | ||
+ | als 15 Minuten lang unterschritten, | ||
+ | Reifendrucküberwachungs-System in den Parkmodus über. Im Parkmodus | ||
+ | übermitteln die Reifendruck-Sensoren alle 13 Stunden ein codiertes | ||
+ | Signal an die CJB. Fällt der Reifendruck innerhalb der 13 Stunden um | ||
+ | mehr als 0,06 bar ab, erfolgt bei einem Reifendruckverlust die | ||
+ | Signalübertragung durch den Sensor häufiger. | ||
+ | |||
+ | Was mich besonders interessiert ist die "FCC ID KR5S180020" | ||
+ | Unter dieser URL kann man die Zulassung durch Eingabe der ID einsehen: https:// | ||
+ | Da erfahren wir das der Sensor von " | ||
+ | |||
+ | Es gibt dort auch gleich zwei Bilder vom Innenleben eines solchen Sensors. Nicht sehr informativ, aber durchaus interessant: | ||
+ | |||
+ | Damit ist schonmal klar, das hier eine ganz normale Lithium-Batterie zum Einsatz kommt, wie man sie in Uhren und Taschenrechnern (sowas gabs früher mal) verwendet. | ||
+ | Auch erkennt man einen 18 MHz Quarz sowie den Chip mit integriertem Sensor (kreisförmige Öffnung). | ||
+ | |||
+ | Aus dem Dokument " | ||
+ | Tire guard wheel unit type S180 052 020 which includes an integrated pressure, temperature and acceleration sensor and a RF transmitter. | ||
+ | RF receiver unit which includes a RF receiver (not described in this document) | ||
+ | Auf Deutsch: Die Einheit enthält einen Druck-, Temperatur- und Beschleunigungs-Sensor sowie einen Funksender und einen Funkempfänger. | ||
+ | |||
+ | Für den Funksender wird angegeben (weil nur der Sender zulassungspflichtig ist, wird über den Empfänger nichts gesagt): | ||
+ | |||
+ | Carrier frequency: 433.92 MHz | ||
+ | Frequency FSK deviation: +- 40 kHz max | ||
+ | Number of channels: 1 | ||
+ | Type of modulation: Frequency Shift Keying (FSK) | ||
+ | Baud rate: 9600bds | ||
+ | Rated Output Power: < 10mW | ||
+ | Antenna: Internal | ||
+ | Voltage supply: 1 Lithium battery 3V (CR2450) | ||
+ | Voltage supply range : 2.1 up to 3.2V | ||
+ | |||
+ | Das bedeutet: | ||
+ | Die Trägerfrequenz ist 433,92 MHz. Es wird nur ein Funkkanal verwendet und die Datenmodulation (sehr wichtig für den Empfang und das Senden der Daten!) wird mit FSK-Modulation (Frequency-Shift-Keying, | ||
+ | Es gibt grundsätzlich zwei Modulationsverfahren, | ||
+ | Glücklicherweise gibt es für 433,92 MHz und FSK sehr günstige, fertige Sender/ | ||
+ | Die Angabe der Baudrate ist ebenfalls sehr hilfreich und wird mit 9600 Baud (Bit/ | ||
+ | Die Ausgangsleistung des Funksenders ist maximal 0,01 Watt, also so ein Zehntel eines normalen WLAN-Senders. Schon ganz ordentlich und für einige Meter mehr als ausreichend. Einzig die interne Antenne wird die Reichweite deutlich begrenzen. | ||
+ | Putzig, die Angabe der Energiequelle und Betriebsspannung. | ||
+ | |||
+ | Anschließend folgt in "DUTY CYCLE CALCULATION" | ||
+ | PARKING: 1 burst transmission every 13H + 1 WUP transmission | ||
+ | FIRST BLOCK: During 2 minutes after vehicle start, burst emission every 16.8s (8 burst emission) | ||
+ | INTERIM FIRST BLOCK: none transmission | ||
+ | DRIVING: 1 burst emission every 67.2s during the rest of the hour (54 burst emission) | ||
+ | INTERIM: none transmission | ||
+ | => During 1 hour, the Wheel Unit transmits 63 bursts + 1 WUP. | ||
+ | 1 burst = 30.29806ms MAX | ||
+ | 1 WUP length max = 42.1ms MAX | ||
+ | => total transmission during 1 hour = 63 x 30.29806ms + 42.1ms = 1.96s | ||
+ | DUTY CYCLE = (1.96 / 3600) x 100% = 0.06% | ||
+ | |||
+ | Ein " | ||
+ | Nach dem Fahrzeugstart (erkennt er durch den Beschleunigungssensor) erfolgt in den ersten 2 Minuten eine Übertragung alle 16,8 Sekunden (8 übermittelte Datensätze) und während der anschließenden Fahrt für die erste Stunde alle 67,2 Sekunden eine Übermittlung (54 Datensätze pro Stunde). Macht insgesamt 63 Datensätze in der ersten Fahrtstunde. | ||
+ | Zwischen diesen Aussendungen ist der Sensor passiv und weitgehend intern stromlos. Eine Aussendung dauert ca. 0,03 Sekunden und so kommt man auf eine Betriebszeit von 0,06% pro Stunde. Daraus wird dann der Stromverbrauch abgeleitet. | ||
+ | Erste Erkenntnis: Wer häufig Kurzstrecken fährt, bei dem halten die Batterien nicht so lange. | ||
+ | |||
+ | Was ein " | ||
+ | Hier verrät und die Doku auch gleich die Kodierung. " | ||
+ | |||
+ | Wow! Schon eine Menge Info die das FCC-Datenblatt hergibt. Eine wertvolle Quelle! | ||
+ | |||
+ | Der Sensor kennt verschiedene Betriebsmodi. Im Normalfall befindet er sich in einem Schlafmodus. Hier verbraucht er praktisch keine Energie. | ||
+ | Aus diesem Modus wird er bei bestimmten externen oder internen Ereignissen " | ||
+ | |||
+ | Der Sensor misst den Luftdruck alle 60 Sekunden. Liegt dieser unter 1.5 Bar, sendet er jedoch keine Daten und legt sich per Timer gleich wieder schlafen. Er befindet er sich im sog. " | ||
+ | |||
+ | Der Sensor misst und übergibt den Reifendruck in der Einheit kPa (Kilopascal). Ein Druck von 100 kPa entspricht dabei 1 Bar. Der Meßbereich ist laut Datenblatt von 100 kPa bis 1300 kPa, also 1-13 Bar. | ||
+ | |||
+ | Wird ein Luftdruck über 1.5 Bar gemessen, oder wurde der Sensor durch ein LF-Signal " | ||
+ | |||
+ | Im " | ||
+ | |||
+ | Weicht der alle 3,4 Sekunden gemessene Luftdruck um 200 mBar (20 kPa) vom vorherigen ab (positiv wie negativ), tritt der Sensor in den " | ||
+ | |||
+ | Ein spezieller "High temp alert mode" (Übertemperaturmodus) wird ab einer Umgebungstemperatur von 120° aktiviert. Auch hier verhält sich der Sensor wie im " | ||
+ | |||
+ | So ganz nebenbei habe ich dann auch die CAN-ID für die RDSK-Sensordaten gefunden. Es ist die 079. Der Aufbau ist wie folgt: ID1 ID2 ID3 ID4 DA1 DA2 DA3 DA4. | ||
+ | Wobei ID1 bis ID4 die 32-Bit Sensor-ID ist (z.B. " | ||
+ | DA1 bis DA4 habe ich noch nicht entschlüsseln können. Von der Sache her muss es sich dabei aber um Druck, Temperatur, Batteriestatus und Betriebsmodus handeln. | ||
+ | |||
+ | Temperaturdaten werden üblicherweise als 1-Byte Wert mit einem Offset von 40 übermittelt. Wobei der Wert 40 dann 0° C entspricht und 00 eben -40° C. Die Skala geht dann, bedingt durch die maximale Größe eines Byte: 255-40= 215° C. Bei den aktuellen Temperaturen würde ich einen Wert von 40-50 (in Hex wären das 0x28 bis 0x32) erwarten. Solche Werte sehe ich aber nicht im Datenstrom (siehe unten). Oder man verwendet Bit 7 als Vorzeichen. In dem Fall müsste man 128 (Hex 80) vom Wert abziehen um positive Werte zu erhalten. Auch das passt nicht. | ||
+ | Auf jeden Fall sollte sich die Temperatur im Stand fast garnicht ändern, bei der Fahrt aber langsam ansteigen und dann im Stand wieder abkühlen. | ||
+ | |||
+ | Beim Druck ist mit der Übermittlung in kPa zu rechnen, welches in Bar umgerechnet werden muss. 100 kPa entsprächen 1 Bar. Demnach könnte man mit einem Byte nur max. 2,55 Bar abbilden. Das kann nicht sein. Es gibt auch Hinweise das man den kPa-Wert mal 2,5 nehmen muss. Das würde denn Messbereich bei einem Byte auf 6,375 Bar erhöhen, was schon ordentlich wär. Bei einem mittleren Druck von 2,4 Bar im Reifen wäre das ein Wert um die 100 (Hex 64). Das könnte man, mit viel gutem Willen beim ersten Datenbyte " | ||
+ | |||
+ | Der Batteriestatus kennt vermutlich nur " | ||
+ | |||
+ | Zuletzt muss das noch der Beschleunigungswert drin stecken. Da würde ich erwarten das sich im Stand überhaupt nichts tut, während der Fahrt aber schon. | ||
+ | |||
+ | Hier ein Beispiel für die empfangenen Werte eines Sensors über eine Fahrstrecke von einigen KM in ca. 15 Minuten. Überwiegend Stadtverkehr. Die erste Zahl mit dem Komma ist zwar ein Zeitwert, enthält vor dem Komma aber nur die Minute, also bitte nicht nach gehen. Die ganzen Null-Werte habe ich weggelassen, | ||
+ | |||
+ | Sensor 0E E0 CB 88 | ||
+ | ------------------------- | ||
+ | 34,575 079 8 0E E0 CB 88 67 9F 3E 14 | ||
+ | 51,926 079 8 0E E0 CB 88 67 9F 3E 23 | ||
+ | 09,227 079 8 0E E0 CB 88 67 9F 3E 51 | ||
+ | 26,577 079 8 0E E0 CB 88 67 9F 3E 58 | ||
+ | 43,878 079 8 0E E0 CB 88 67 A0 3E 7D | ||
+ | 01,228 079 8 0E E0 CB 88 67 A0 3E 87 | ||
+ | 18,530 079 8 0E E0 CB 88 67 A1 3E 49 | ||
+ | 35,830 079 8 0E E0 CB 88 67 A1 3E 44 | ||
+ | 53,229 079 8 0E E0 CB 88 67 A2 3E 2A | ||
+ | 10,530 079 8 0E E0 CB 88 67 A1 3E 45 | ||
+ | 27,830 079 8 0E E0 CB 88 67 A2 3E 42 | ||
+ | 45,081 079 8 0E E0 CB 88 67 A2 3E 3F | ||
+ | 02,383 079 8 0E E0 CB 88 67 A2 3F 43 | ||
+ | 18,933 079 8 0E E0 CB 88 C7 A2 3F 20 | ||
+ | 35,283 079 8 0E E0 CB 88 C7 A2 3E 2D | ||
+ | 51,633 079 8 0E E0 CB 88 C7 A2 3F 1F | ||
+ | 07,984 079 8 0E E0 CB 88 67 A2 3F 0C | ||
+ | 24,288 079 8 0E E0 CB 88 67 A2 3F 18 | ||
+ | 40,586 079 8 0E E0 CB 88 67 A2 3F 17 | ||
+ | 56,885 079 8 0E E0 CB 88 67 A2 3F 18 | ||
+ | 13,236 079 8 0E E0 CB 88 67 A3 3F 19 | ||
+ | 29,586 079 8 0E E0 CB 88 67 A3 3F 15 | ||
+ | 45,890 079 8 0E E0 CB 88 67 A3 3F 17 | ||
+ | 02,187 079 8 0E E0 CB 88 65 A3 3F 16 | ||
+ | 18,490 079 8 0E E0 CB 88 67 A2 3F 17 | ||
+ | 34,839 079 8 0E E0 CB 88 67 A3 40 15 | ||
+ | 51,139 079 8 0E E0 CB 88 67 A3 40 16 | ||
+ | 07,492 079 8 0E E0 CB 88 67 A3 40 16 | ||
+ | 39,840 079 8 0E E0 CB 88 67 A3 40 3C | ||
+ | 57,191 079 8 0E E0 CB 88 67 A3 40 40 | ||
+ | 29,492 079 8 0E E0 CB 88 07 A3 40 42 | ||
+ | 49,745 079 8 0E E0 CB 88 07 A3 40 3A | ||
+ | 54,096 079 8 0E E0 CB 88 07 A3 40 40 | ||
+ | 58,399 079 8 0E E0 CB 88 07 A4 41 08 | ||
+ | |||
+ | Der Empfang der RDKS-Daten geschieht ja über das Empfangsmodul für die Zentralverriegelung/ | ||
+ | Vom Anschluß her müsste das Stecker C4, Pin 8 am BCM sein, ist mit "LIN (RF RECEIVER)" | ||
+ | |||
+ | P.S.: Ich konnte mit meinem 433 MHz Empfänger bereits mal was aufschnappen. Da ist aber extrem viel anderes Zeug in der Luft unterwegs. Was gut geht, ist das empfangen der Öffnen/ | ||
+ | |||
+ | Meine Annahme bisher: Das müsste eine " | ||
+ | Der Sensor sendet einen IST-Wert von Druck (p2) und Temperatur (T2). Der Angezeigte, temperaturkompensierte Druck (p1) im Display ist immer bei 20°C (T1, " | ||
+ | Damit müsste die umgestellte Formel wie folgt lauten: p2 = T2 * (p1/T1) | ||
+ | Bei der Berechnung müssen die Basiseinheiten verwendet werden. Also die Temperatur in Kelvin und der Druck in Pascal. 20° Celsius entsprechen 293,15° Kelvin. 100.000 Pascal (100 kPa) entsprechen 1,0 Bar. | ||
+ | |||
+ | Zitat von VDO: "Das Steuergerät wertet die Datentelegramme aus, erkennt den Absender und entscheidet, | ||
+ | |||
+ | Die Reifeninnenlufttemperatur geht spielend von " | ||
+ | Die Werte für Temperatur und Beschleunigung habe ich inzwischen geknackt. Den Temperaturwert kenne ich zwar, aber die Umrechnung ist mir noch nicht ganz klar. Ich werde dann hier mal die " | ||
+ | |||
+ | Irgendwie muss ein Bytewert von 0xA9 letztenendes einem berechneten Luftdruck von 2,32037 Bar entsprechen. | ||
+ | Zur Gegenprobe noch die anderen Werte: 0xAE = 2,38902 Bar / 0xB3 = 2,45767 Bar / 0xB7 = 2,51259 Bar. | ||
+ | Viel Spaß beim rätseln. | ||
+ | |||
+ | https:// |