Forum: Mikrocontroller und Digitale Elektronik Prüfziffer von Bytes erkennen bzw errechnen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jan W. (gaffel-k)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich hätte da eine Frage zum CAN Bus aus einem Mercedes. Dort versuche 
ich herauszufinden, wie die Uhrzeit vom Radio zum KI übertragen wird. 
Die IDs habe ich herausgefunden, und wenn ich genau diese Daten selbst 
sende, wird die Uhr auch gestellt, aber das funktioniert nur, wenn ich 
genau die Messages sende wie unten dargestellt. Sobald ich die Uhrzeit 
oder Datum ändere, geht es nicht mehr.

Das Problem ist das Byte 1 bei ID 420 mit Byte 0 = 34 (136 im ersten 
Beispiel)

Dieses ändert sich mit anderen Uhrzeiten die ich vom original Radio beim 
Uhrzeit ändern auslesen kann.

Das Problem ist, dass dieses Byte anscheinend ne Prüfziffer der Uhrzeit 
und Datum ist, aber ich komm einfach nicht drauf.

       YY,MM,DD,HH,MM,SS
        |  |  |  |  |  |
420,33, 7,11,28,15,11,24,0

    Prüfziffer
        |
420,34,136


Vielleicht kann mir einer von euch ja helfen, wie ich die Zahl richtig 
errechnen kann? Das wäre echt super, hier noch mal ein paar andere 
Messages zur Hilfe, das Prinzip ist immer das selbe, aber ich sehe 
einfach keinen Zusammenhang.


420,33,7,11,20,17,13,42,0
420,34,122

420,33,7,11,20,17,19,58,0
420,34,100

420,33,7,11,20,17,50,8,0,
420,34,119

420,33,7,11,20,17,20,28,0
420,34,129

420,33,7,11,20,17,50,40,0
420,34,87

420,33,7,11,20,17,20,58,0
420,34,99

420,33,7,11,20,17,51,5,0,
420,34,121



Vielen Dank schon mal und Grüße

Jan

von Hmmm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn Du alle Parameter und die Pruefsumme zusammenaddierst, kommt immer 
232 raus, z.B.:

7+11+20+17+13+42+122
232

von the_yrr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hmmm schrieb:
> Wenn Du alle Parameter und die Pruefsumme zusammenaddierst, kommt immer
> 232 raus, z.B.:
>
> 7+11+20+17+13+42+122
> 232

sieht zwar gut aus, aber  maximal ist
YY = 99
MM = 12
DD = 31
HH = 23
MM = 59
SS = 59
gibt in der Summe 283
außer das Auto soll halt nur zwischen 2000 und 2048 funktionieren, dann 
passt das mit 232
könnte natürlich auch Summe Modulo 255 (auf 8 bit geschnitten) sein

das ging aber schnell, wie hast du das rausgefunden?

von Hmmm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
the_yrr schrieb:
> könnte natürlich auch Summe Modulo 255 (auf 8 bit geschnitten) sein

Klar, davon kann man ausgehen. War auch erstmal nur ein Denkanstoss, die 
Details kann der TO dann ggf. mit weiteren mitgeschnittenen Daten 
herausfinden.

So ganz plausibel ist die Analyse wegen YY=7 ohnehin noch nicht, sofern 
der Mitschnitt nicht 11 Jahre alt ist.

> das ging aber schnell, wie hast du das rausgefunden?

Erster Ansatz bei Checksum-Zeug: Alles zusammenaddieren und die 
Ergebnisse vergleichen.

von Jan W. (gaffel-k)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe noch weitere Mitschnitte, werde das zu Hause mal testen mit der 
232, klingt ganz gut. Die Mitschnitte sind aus diesem Monat, 20.11. z.b. 
wie oben zu sehen.

Im Moment zeigt das Comand auch als Jahreszahl 1967 an, da ist ein 
Problem in allen Mercedes Comand und APS Radios der Baureihen 
209,203,211 usw. Also das mit der 7 kommt schon hin. Ist Anfang November 
von 2018 auf 1967 gesprungen.

Danke schon mal

Jan

von Jan W. (gaffel-k)


Bewertung
0 lesenswert
nicht lesenswert
Also habe das jetzt mal mit allen Mitschnitten der letzten Woche 
getestet, schätze mal so um die 50 Stück, und bei allen kommt immer 232 
raus.

Das erklärt auch das Rücksetzen der Jahreszahl auf 1967 am 24.10. auf 
den 25.10.:

58+10+24+23+59+59 = 233


Morgen teste ich das mal im Auto.


Grüße
Jan

von Jan W. (gaffel-k)


Bewertung
1 lesenswert
nicht lesenswert
So heute mal am lebenden Objekt getestet, geht einwandfrei, kann mit 
eigenen CAN Nachrichten die Uhr stellen. Die Summe muss halt immer 232 
sein.

Danke noch mal für eure Hilfe.


Jan

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.