Hallo zusammen, ich habe ein Problem. Ich moechte gerne bei einer bestehenden Platine die Funktion und die Daten verstehen. (Es geht um einen alten Motorradtacho den ich umbauen moechte.) Die verbauten µCs sind von unbekanntem Typ und steuern sowohl LCD als auch das Drehspulinstrument an. Einiges an Daten wird in einem seriellen EEPROM gespeichert. Das hier gespeicherte Zahlenformat ist mir aber nicht verstaendlich. Z.B.: Wenn ich den Tageskilometerzaehler zuruecksetze, werden insgesamt zwölf 16bit Worte geschrieben. Hierbei scheint es sich um 4 Werte zu handeln, die aus Sicherheitsgruenden je 3 mal gespeichert werden. Beispiel: Tageskilomterzaehler = 132,1 km Wort 1: 65514 Wort 2: 61667 Wort 3: 34509 Wort 4: 65533 setze ich ihn jetzt zurueck (auf 0km) wird geschrieben: Wort 1: 65514 Wort 2: 65514 Wort 3: 32666 Wort 4: 65533 Falls jemand versteht, wie aus den 4 Worten die 132,1 bzw. die 0,0 wird, wuerde ich mich sehr freuen, wenn er mir das erklaeren wuerde. MfG, Balze aka AVR Noob
Avr Noob schrieb: > Falls jemand versteht, wie aus den 4 Worten die 132,1 bzw. die 0,0 wird, > wuerde ich mich sehr freuen, wenn er mir das erklaeren wuerde. Kannst du das noch einmal oder zweimal wiederholen? Natürlich mit viel weniger Tageskilometern. Eine Runde um den Block. Das gibt evtl. mehr Aufschluß.
Wilhelm Ferkes schrieb: > Eine Runde um den Block. Hallo Wilhelm, wenn ich das koennte, wuerde ich das sehr gerne tun. Leider liegt der Tacho auf meinem Schreibtisch und ist auch nicht ganz vollstaendig :) (Ist aus einem Unfallmotorrad, ich habe den Tacho geschenkt bekommen und moechte ihn nun recyclen.) Das einzige was ich noch zu bieten habe ist, dass ich einen zweiten Block gefunden habe, der dem ersten aehnelt und vermutlich den zweiten Tageskilomterzahler repraesentiert (124,4km). Wort 1: 65514 Wort 2: 63120 Wort 3: 42687 Wort 4: 65533 Ich kann diesen auch noch zuruecksetzen wenn es hilft. (Dann waere ich mir ueber die Position des Blockes sicher) Ich habe gestern abend bereits versucht mir ein Tachosignal mit einem andern µC zu generieren, aber der Tacho reagiert hier sehr empfindlich und meldet eine Stoerung. Am WE werde ich es ein weiteres mal mit dem original Motorradgeschwindigkeitssensor (und 'ner Bohrmaschiene :) )versuchen. Vielen Dank. MfG, Balze
Ich habe zwar auch noch kein System erkannt, vorausgesetzt der Wert steht überhaupt im km drin, aber ein schönes Werkzeug zum entschlüsseln: http://www.onlinehexeditor.com/
Kein Muster entdeckt. Hatte IEEE754 vermutet. 132,1 Km 0 Km 124,4 Km 65514 FFEA 65514 FFEA 65514 FFEA 61667 F0E3 65514 FFEA 63120 F690 34509 86CD 32666 7F9A 42687 A6BF 65533 FFFD 65533 FFFD 65533 FFFD
Was ist wenn die Radumdrehungen gespeichert werden?
Ich halte es auch für unwahrscheinlich, das die Werte in Einheiten von km abgespeichert werden. Es wird wohl eher ein gerätespezifisches Format sein, das dann je nach Einsatzgebiet in km oder Meilen umgerechnet werden kann und dann dargestellt wird.
ist das net ein Float wert?
Hallo zusammen, vielen Dank für die tollen Anregungen. Das die Werte in km gespeichert sind ist natuerlich keineswegs sicher. Da es sich um einen Suzuki Tacho handelt und nur ueber den Tacho die Unterscheidung zwischen Meilen und Kilometer unterschieden wird, ist auch alles andere möglich. Sollten Impulse gezählt werden, sind es 4,735793.. Impulse pro Meter. 1888 mm Radumfang (gemessen! Was der Tacho intern hat ist unklar.) Übersetzung 17/38 4 Impulse pro Ritzelumdrehung Sensor der Geschwindigkeitsmessung am Ritzel. -> 0,211... m pro Impuls -> 4,735793... Impulse pro Meter Danke fuer Eure Unterstuetzung. MfG, Balze
Eventuell mal invers deuten 000,0 FFEA FFEA 7F9A FFFD = 0015 0015 8065 0002 124,4 FFEA F690 A6BF FFFD = 0015 096F 5940 0002 132,1 FFEA F0E3 86CD FFFD = 0015 0F1C 7932 0002 macht beim EEPROM vielleicht Sinn, weil der Löschzustand 1 ist und eventuell 1-Bits auch garnicht gelöscht werden. Hättest du die Möglichkeit das EEPROM zu beschreiben ?
Wer noch ein wenig mit IEEE754 spielen möchte, schau sich diese Seite an: http://www.h-schmidt.net/FloatApplet/IEEE754.html
In Betracht zu ziehen ist auch, dass neben den Entfernungsdaten auch eine Checksumme zur Validitätsprüfung gespeichert wird. (Jedenfalls mach ich es bei meinen Projekten so).
Dennis Heynlein schrieb: > Hättest du die Möglichkeit das EEPROM zu beschreiben ? Das könnte helfen. Einfach mal ein paar Bit dazu zählen und die km anzeigen lassen. Es heist ja auch "Reverse Engineering" ;-)
Ich denke mal, dass es so schwer sein wird, definitiv zu sagen, was da gespeichert wird. Man müsste wirklich mitschreiben, was passiert, wenn sich das Rad dreht. Vielleicht findest Du ja irgendwo eine Doku, in welcher Form die Impulse vorliegen.
Ist der Sensor am Rad ein Hallsensor ?
Wer bestimmt denn überhaupt, wie Daten in einem Steuergerät gespeichert werden müssen? Normen, wie IEEE? Sonst hätte ich auch mal vermutet, daß ein Entwickler einen lustigen Tag hat, und die Zahlen mit einer anderen Zahl einfach nur XOR-verschlüsselt und wieder entschlüsselt. Alles schon gesehen. So was macht man, wenn man möchte, daß ein Kunde in einem gekauften Gerät nicht hinter die Details kommt. Wenn man möchte, daß er es nicht nachbaut, und daran verzweifeln soll.
Wilhelm Ferkes schrieb: > Wenn man möchte, daß er es nicht nachbaut, und daran > verzweifeln soll. Ist das nicht schon immer die Herausforderung von Reverse Engineering gewesen ? Ein Entwickler mit einem lustigen Tag und ein Hacker mit Neugier.
Dennis Heynlein schrieb: > Ist das nicht schon immer die Herausforderung von Reverse Engineering > gewesen ? > Ein Entwickler mit einem lustigen Tag und ein Hacker mit Neugier. Du hast Recht. Dann steht uns ja hier noch was bevor. Selbstverständlich ist mit reichlich Aufwand alles knackbar. Ich bin aber auch neugierig, auch wenn ich im Augenblick hier selbst noch mit den Schultern zucke. Ich hol schon mal Popcorn, Chips, und ein Pils... ;-)
wäre auch ne Möglichkeit, das der Wert in Metern gepeichert wird und nur km angzeigt werden. Der Wert für 000,0 lässt doch vermuten, dass da ne andere Einheit als km im Hintergrund liegt.
Das Verhältnis (132,1/124,4) der Kilometerstände muss sich in der Zahlenansammlung wiederspiegel. normal invertiert 124,4 F690 A6BF 096F 5940 132,1 F0E3 86CD 0F1C 7932 Beispiel (normal Zahlen Byte 3 u. 4 LowHigh): BFA6 * 132,1/124,4 = CB82 Ist zwar in der Nähe - aber ..
Olek schrieb: > Der Wert für 000,0 lässt doch vermuten, dass da ne > andere Einheit als km im Hintergrund liegt. Bei meinem Auto kann ich in einem Service-Mode Meilen und km auslesen. Aber da ist ja nur ein Umrechnungsfaktor von 1,652km/Meile dahinter. Wie aber die Steuergeräte programmiert sind, ob auf km- oder Meilenbasis, weiß ich nicht. Der Ford Fiesta wird ja auch in England mit konstruiert und gebaut. Apropos Meile: Was haben die denn da noch für komische Einheiten? Fuß? Inch?
Hallo, ich kenne es von PKW Tacho's das die Werte auf viele Bytes verteilt werden. Meist liegen die Daten ja in einem EEprom und der sollte nicht so oft beschrieben werden. BMW hatte das damals auf 16 Bytes verteilt. Also war: 01 km = 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 km = 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 09 km = 01 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 17 km = 01 02 01 01 01 01 01 01 01 01 01 01 01 01 01 01 usw. Vieleicht hilft es ja, Gruß Rene
Hallo zusammen, so, jetzt bin ich wieder online, musste mal eben nach hause fahren (von der Arbeit 8P ) Dennis Heynlein schrieb: > Ist der Sensor am Rad ein Hallsensor ? Es ist (vermutlich) ein Hallsensor am Ritzel mit einem Geber, der 4 Impulse pro Umdrehung (des Ritzels) macht. Ich bin gerade 2 virtuelle Kilometer gefahren, waehrend mein Logicanalyzer aufgezeichnet hat. (Mit der Bohrmaschine Tempo 150km/h :) ) Resultat: Nix! Offensichtlich werden die Werte nur beim Abschalten der Zuendung gespeichert. Leider habe ich nicht erst die virtuelle Zuendung ausgemacht, sondern gleich das Netzteil abgeschaltet, das +12V und Zuendung hergibt. Mehr Info kann ich heute leider nicht zu Verfuegung stellen, da mir jetzt ein Lötauge der Platine abgerissen ist. :( Das muss ich am WE erstmal wieder anfrickeln. Danke fuer Euer Engagement!! MfG, Balze
Avr Noob schrieb: > Resultat: Nix! Offensichtlich werden die Werte nur beim Abschalten der > Zuendung gespeichert. Angesichts der begrenzten Schreibzyklen des EEPROM ist dieses Vorgehen ziemlich sinnvoll. Ich bin aber gespannt, was Deine weiteren Tests noch hervorbringen.
Olek schrieb: > Der Wert für 000,0 lässt doch vermuten, dass da ne > andere Einheit als km im Hintergrund liegt. Jou, eine mit Offset. :-D Gruß Jobst
Rene Zimmermann schrieb: > 01 km = 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 02 km = 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 > 09 km = 01 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 > 17 km = 01 02 01 01 01 01 01 01 01 01 01 01 01 01 01 01 wohl für den gesamtkilometerzähler? sonst wär das ja reichlich ungenau..
> Bohrmaschiene
Jou, bohr ma' Schiene. Dann hat sie ein Loch... ;)
SCNR
Frank Meier schrieb: > wohl für den gesamtkilometerzähler? sonst wär das ja reichlich ungenau.. Nö. Es sei denn, dafür würden 4080km reichen. Gruß Jobst
Ben _ schrieb: >> Bohrmaschiene > Jou, bohr ma' Schiene. Dann hat sie ein Loch... ;) > > SCNR Darfst das e behalten! MfG, Balze P.S.: Korinthenzaehler ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.