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


von Jan W. (gaffel-k)


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)


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)


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)


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)


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)


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)


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

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
Noch kein Account? Hier anmelden.