mikrocontroller.net

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


Autor: Funkenschlosser (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 :
D1 - D3 - Summe
1  - 4  -  5
2  - 3  -  5
3  - 2  -  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...

Autor: g457 (Gast)
Datum:

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

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

HTH

Autor: Mario M. (thelonging)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Summe modulo 128 (oder einfach AND 127) ist immer 99.

Autor: Funkenschlosser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Sascha W. (sascha-w)
Datum:

Bewertung
0 lesenswert
nicht 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.
Autor: Funkenschlosser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.