Checksumme berechnen

OP #5209396
Lesenswert?

Hallo Freunde

Zur Zeit arbeite ich an einem Projekt mit serieller Kommunikation. Ein 
Master kommuniziet mit einem Slave. Dabei schickt der Master dem Slave 
die Zeit und das Datum in einem Telegramm wie in der angehängten Datei 
dargestellt.
Ich nehme an, die letzten beiden Abschnitte sind die Checksumme bzw. 
Prüfsumme. Nun ist mein Problem, ich weiss nicht wie diese gebildet 
wird. Da kommt ihr ins Spiel, könnt ihr mir weiterhelfen?
Ich habe schon mit online Checksummerechner versucht diese zu berechnen, 
aber bin nicht auf das gleiche Resultat gekommen

Freundliche Grüsse
Fabian
Angehängte Dateien:
OP #5212773
Lesenswert?

WIR schrieb:
> WIR sind besonders gut wenn DU möglichst viel Kontext zu deiner
> Frage schreibst (Hersteller, Produkt, Baujahr, etc)

Hersteller: Bosch Sicherheitssysteme
Produkt: AMC2 4R4 und Delta 1000
Baujahr: Nicht vorhanden

Ich nehme an, diese Daten sind nicht Relevant.

Ich füge aber noch 2 Ausschnitte ein, bei dem ich in Gelb das empfangen 
Telegramm markiert habe.
Ich denke der 2. und 3. letzte HEX-Wert bilden die Checksumme, jedoch 
habe ich noch nicht herausgefunden wie.

Freundliche Grüsse
Fabian Gärtner
Angehängte Dateien:
Persönliche Seite #5212868
Lesenswert?

Fabian G. schrieb:
> Ich füge aber noch 2 Ausschnitte ein,

Wenn Du möchtest, daß wir hier mit Dir zusammen am verwendeten 
Algorithmus herumrätseln, poste so etwas nicht als Bild, sondern als 
Text. Das kann dann nämlich jeder in seinen eigenen erdachten oder 
vermeintlich erkannten Algorithmus stopfen.

Dein Bild aber müsste jeder für sich abtippen.
OP #5212965
Lesenswert?

Rufus Τ. F. schrieb:
> Wenn Du möchtest, daß wir hier mit Dir zusammen am verwendeten
> Algorithmus herumrätseln, poste so etwas nicht als Bild, sondern als
> Text. Das kann dann nämlich jeder in seinen eigenen erdachten oder
> vermeintlich erkannten Algorithmus stopfen.
>
> Dein Bild aber müsste jeder für sich abtippen.

Das ist eine gute Idee. :)

1. Telegramm:

HEX: 10 02 1B 75 30 37 3A 31 32 3A 30 31 3B 31 37 3A 31 31 3A 32 30 31 
37 3B 36 2A 10 03 0E 8D FF

2. Telegramm:

HEX: 10 02 1B 75 31 35 3A 35 37 3A 30 32 3B 31 34 3A 31 31 3A 32 30 31 
37 3B 33 2A 10 03 08 B3 FF

Ich glaube die FF wird nicht in die Checksumme einbezogen
Moderator #5214082
Lesenswert?

Fabian G. schrieb:
> Rufus Τ. F. schrieb:
>> Wenn Du möchtest, daß wir hier mit Dir zusammen am verwendeten
>> Algorithmus herumrätseln, poste so etwas nicht als Bild, sondern als
>> Text. Das kann dann nämlich jeder in seinen eigenen erdachten oder
>> vermeintlich erkannten Algorithmus stopfen.
>>
>> Dein Bild aber müsste jeder für sich abtippen.
>
> Das ist eine gute Idee. :)
>
> 1. Telegramm:
>
> HEX: 10 02 1B 75 30 37 3A 31 32 3A 30 31 3B 31 37 3A 31 31 3A 32 30 31
> 37 3B 36 2A 10 03 0E 8D FF
>
> 2. Telegramm:
>
> HEX: 10 02 1B 75 31 35 3A 35 37 3A 30 32 3B 31 34 3A 31 31 3A 32 30 31
> 37 3B 33 2A 10 03 08 B3 FF

Eine noch bessere Idee wäre es gewesen, auch die Telegramme aus dem
ersten Screenshot als Text zu posten, da es bei nur zwei Beispielen
i.Allg. mehrere passende Prüfsummenalgorithmen gibt, vor allem dann,
wenn man auch vom jeweiligen Entwickler selbst ausgedachte Algorithmen
in Betracht zieht.

Ich habe mir mal die Mühe gemacht, diese Telegramme sowie zwei weitere
aus deinen letzten Screenshots abzutippen. Hier sind alle sechs:

1
10 02 1B 75 30 37 3A 31 32 3A 30 31 3B 31 37 3A 31 31 3A 32 30 31 37 3B 36 2A 10 03 0E 8D
2
10 02 1B 75 31 35 3A 35 37 3A 30 32 3B 31 34 3A 31 31 3A 32 30 31 37 3B 33 2A 10 03 08 B3
3
10 02 1B 75 30 37 3A 34 36 3A 30 32 3B 31 34 3A 31 31 3A 32 30 31 37 3B 33 2A 10 03 66 DB
4
10 02 1B 75 30 37 3A 35 30 3A 34 33 3B 31 34 3A 31 31 3A 32 30 31 37 3B 33 2A 10 03 50 D3
5
10 02 1B 73 2A 10 03 A8 5E 
6
10 02 1B 74 31 3B 31 2A 10 03 DF FB

Des Rätsels Lösung:

Es handelt sich um einen CRC-16 mit dem Polynom 0x8005 und dem Startwert
0x4000 mit gespiegelten Bytes. Die DLE-Zeichen (Telegrammanfang und
-ende sind durch DLE STX bzw. DLE ETX gekennzeichnet) gehen dabei nicht
in die CRC-Berechnung mit ein.

Du kannst das mit einem Online-CRC-Tool wie bspw. diesem hier

  http://www.sunshine2k.de/coding/javascript/crc/crc_js.html

nachprüfen. Einen Screenshot (crc1.png) habe ich angehängt.

Der Startwert könnte prinzipiell statt 0x4000 auch 0xc003 sein, wenn am
Ende der CRC mit 0xC001 verXORt wird (crc2.png). Da beide Varianten für
alle sechs Telegramme passen, vermute ich, dass sie äquivalent sind.
Angehängte Dateien:
Beitrag #5722260 wurde von einem Moderator gelöscht.
Beitrag #7397946 wurde von einem Moderator gelöscht.
Beitrag #7399620 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren