Forum: Mikrocontroller und Digitale Elektronik Checksumme brauche Tipps


von Flori (Gast)


Lesenswert?

Hallo,
ich bräuchte bitte einen Tipp wie ich auf die Checksummen der letzten 2 
Byte hier kommen könnte?
Bin für jede Idee dankbar!!

1D 00 00 00 00 00 75 12 62 99 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 27 84

1D 00 00 00 00 00 75 85 62 99 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 E4 F8

Liebe Grüße
FLORI

von CRC16 (Gast)


Lesenswert?

Was hast du schon alles probiert?

von Achim M. (minifloat)


Lesenswert?

Flori schrieb:
> 1D

Fließt das 0x1D mit in die Berechnung mit ein?
Die letzten 2 Bytes sind die Checksumme?
mfg mf

von CRC16 (Gast)


Lesenswert?

Wo hast du überhaupt die Daten her?
Die sind ja nicht vom Himmel gefallen!

von doofi (Gast)


Lesenswert?

Einfachste Version:

constant unsigned char pruefsumme1=0xe4;
constant unsigned char pruefsumme2=0xf8;

Alles andere wär nur Gerate.

von sebastians (Gast)


Lesenswert?

Liess mal das, hat mir mal geholfen:
http://www.ross.net/crc/crcpaper.html

Kannst du auch beliebige Daten reinfüttern und probieren was rauskommt?
Es gibt Tabellen, die die CRC in dem in diesem Paper beschriebenen 
Rocksoft-Modell auflisten, inklusive "CHECK"-Wert (...checksum obtained 
when the ASCII string "123456789" is fed...)

von Flori (Gast)


Lesenswert?

Hallo,
danke für die Antworten und den Link. Also der String ist auf einem 
Speicher gespeichert und dient zur Identifikation an einem Automaten, 
nun möchte ich gerne neue Benutzer anlegen und brauche neue Speicher. Da 
ich leider die Sourcen des Automaten nicht habe muss ich also so auf den 
Checksummenalgorythmus kommen...
Könnten die letzten zwei Byte zwei verschiedene Prüfsummen sein, also 
zwei Berechnungen?
Danke

von Edi R. (edi_r)


Lesenswert?

Auf Anhieb hätte ich gesagt:

> 1D 00 00 00 00 00 75 12 62 99 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 27 84

0x1D ist die Anzahl der folgenden Nutzbytes (0x1D = 29).

0x27 0x84 ist die Checksumme (0x2784 oder 0x8427). Aber durch welches 
Verfahren gebildet, und ob das 0x1D enthalten ist, wirst Du selber 
ausprobieren müssen. Wenn der Ansatz stimmt, dürfte CRC-32 jedenfalls 
ausscheiden, das würde 4 Bytes ergeben.

von Flori (Gast)


Lesenswert?

Hallo,
Edi, vielen Dank für den Hinweis, das mit dem 1D ist wohl richtig! Ich 
habe jetzt noch 3 Blöcke gefunden die möglicherweise eine Berechnung 
vereinfachen!?

1D 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
31 31 31 31 31 31 31 31 31 31 31 31 31 31 06 F6

1D 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32 32 32 32 32 32 32 2B EB

1D 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33
33 33 33 33 33 33 33 33 33 33 33 33 33 33 31 20

Vielen Dank für jeden Tipp!

von Edi R. (edi_r)


Lesenswert?

Ich habe für Dich mal probiert, ob auf dieser Seite eine CRC passt:

http://www.lammertbies.nl/comm/info/crc-calculation.html

War aber leider nicht erfolgreich.

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.