Forum: Mikrocontroller und Digitale Elektronik Welche art Prüfsumme wird hier verwendet ?


von Funkenschlosser (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

mir ist da etwas merkwürdiges über den Weg gelaufen was mich nicht mehr 
einschlafen lässt.

Ich belausche einen I2C Bus bei dem immer ein bestimmtes "Register" 
abgefragt wird.
Das Register besteht aus drei Byte, D1, D2 und D3.
D2 ist immer 0xFF, in D3 wird der Zustand im Klartext übermittelt.

D1 scheint eine Prüfsumme zu enthalten den D3 korreliert mit der 
Anzeige.

Interessant wird es wenn man D1 und D3 addiert.
Es gibt nur vier unterschiedliche Summen :
- 99
- 227
- 355
- 483

Gruppiert man nach den Summen erkennt man schnell das die Elemente von 
D1 gleich D3 sind und in so einer Beziehung stehen :
1
D1 - D3 - Summe
2
1  - 4  -  5
3
2  - 3  -  5
4
3  - 2  -  5
5
4  - 1  -  5

Wie nennt sich diese Prüfsumme bzw wie finde ich eine allgemeingültige 
Rechenvorschrift die alle vier Sonderfälle abdeckt ?
Ich kann mir nicht vorstellen das man vier Sonderfälle Programmiert.
Vermutlich sollen die Blöcke das ganze noch robuster machen.

Nach dem Prinzip :

Ich habe auch versucht mit Modulo, XOR und BitShift da ranzugehen habe 
aber keinen zusammenhang gesehen...

von g457 (Gast)


Lesenswert?

> Interessant wird es wenn man D1 und D3 addiert.
> Es gibt nur vier unterschiedliche Summen

Auf 8 Bit gibt es nur zwei Summen:
1
0b01100011
und
1
0b11100011
i.e. nur das oberste Bit ändert sich.

HTH

von Mario M. (thelonging)


Lesenswert?

Die Summe modulo 128 (oder einfach AND 127) ist immer 99.

von Funkenschlosser (Gast)


Lesenswert?

Quasi :

99= (d1 + d3) mod 128

Dann bekomme ich ein ernsthaftes Problem beim umstellen.
Denn die umkehrung von mod 128... Dürfte wegen der unendlich vielen 
lösung unbestimmt sein.

Weiss jemand wie das verfahren dazu heisst ?

von Sascha W. (sascha-w)


Lesenswert?

Funkenschlosser schrieb:
> Quasi :
>
> 99= (d1 + d3) mod 128
>
> Dann bekomme ich ein ernsthaftes Problem beim umstellen.
> Denn die umkehrung von mod 128... Dürfte wegen der unendlich vielen
> lösung unbestimmt sein.
Warum willst du das umstellen? Es handelt sich um eine Prüfsumme und 
nicht um Fehlerkorrekturdaten.

Sascha

Beitrag #5018728 wurde vom Autor gelöscht.
von Funkenschlosser (Gast)


Lesenswert?

Oh nein!

D3 sind ist der klartext.
D1 ist die prüfsumme.

Um weiter zu kommen habe ich d1 und d3 addiert.
Mit obigem effekt.

Irgendwie wird d1 aus d3 berechnet.

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.