one byte checksum

OP #1058479
Lesenswert?

Hallo,

habe folgendes Problem. Möchte eine serielle Verbindung zur Wärmepumpe 
nachbauen.

Nun hab ich das Problem, eine Checksumme für die diversen Befehle zu 
berechen. Hier mal ein Beispiel:

Ein Paket wäre:

~RID;p      02 fd d0 e0 00 00 05 7e 52 49 44 3b     70
(das wäre das gesamte Paket)

Die Nutzdaten sind:

                                 7e 52 49 44 3b     70

Bei diesem Datenpaket ist die Checksumme 70 (alle Werte in hex).

Nun die Frage, wie man diese berechnet?

(Zeichensumme MOD 256 hab ich probiert und alle Zeichen miteinander mit 
XOR). Kommt aber etwas anderes raus.

Hoffe, mir kann hier jemand helfen.

Liebe Grüsse.
Gast #1058516
Lesenswert?

das Problem dürfte wohl sein, dass hier jeder Entwickler seine eigene 
Methode verwirklichen kann.

Hab auch schon CRC's gesehen bei dennen das Byte mit 0xAA vorgeladen 
wurde, anschließen wurden die Nutzdaten Byte für Byte verundet und 
darauf wurde nochmals 0x55 dazugezählt!

Wenn Du nicht weißt wie das CRC erstellt wird dürfte es sehr schwierig 
sein. Hast Du denn die Möglichkeit die Nutzdaten zu beeinflußen? evt. 
kommst Du drauf wenn Du die Nutzdaten immer um "1" erhöhst!
OP #1058525
Lesenswert?

Ja, ich hab folgendes Paket gesnifft.

~RID,44556;        Checksum O

Dann hab ich mal ~RID,55446; mit Checksum O abgesetzt und es hat auch 
funktioniert.

Dann hab ich mir die Summe von 55446 berechnet (53+53+52+52+54=264) und 
dann durch 33864 (51*2+56+54+52=264) ersetzt und siehe da, dann wurde 
das Paket nicht mehr angenommen -> also war die Prüfsumme falsch, obwohl 
die Summe der Nutzdaten noch gepasst hat. Aber eine Durchmischung hat 
die Prüfsumme nicht geändert.

Ich weiss wohl, dass es schwer ist, das zurückzurechnen, jedoch die 
Wärmepumpe setzt sicher einen Standard RS232 Bauteil ein und daher 
glaube ich, sollte es machbar sein. Werde mal versuchen rauszufinden, 
welcher IC das ist. Aber hat vielleicht sonst noch jemand eine Idee?
Gast #1058548
Lesenswert?

Aber nein. Denn die Prüfsummenberechnung wird praktisch immer in 
Software gemacht. Und die Firmware der Wärmepumpe hat ein Entwickler der 
entsprechenden Herstellerfirma geschrieben, nach Vorgaben seines 
Arbeitgebers und einem gewissen Anteil eigenem Ermessen.

Man kann eine Prüfsumme auf die unterschiedlichsten Arten bilden, 
Aufsummieren aller Bytes ohne Übertrag, Exklusiv-Oder-Verknüpfung aller 
gesendeten Bytes, CRC8...
#1058552
Lesenswert?

Herbert A....... wrote:

> Aber die meisten RS232-ICs werden wohl einen anerkannten Standard bei
> der Prüfsummenberechnung einsetzen!?

Asychrone RS232 Hardware mit integrierter Prüfsumme ist mir noch nicht 
untergekommen. Üblich ist das nur bei synchroner Kommunikation, und dann 
als 16 Bit CRC.
Gast #1058583
Lesenswert?

Am leichtesten ;-) nimmst du mehrere Sequenzen auf und
erstellst ein Gleichungssystem. Ist zwar auch nur trial and error aber 
du hast vielleicht Glück und triffst das Richtige!

Halte ich persönlich aber für sehr Aussichtslos... Am Besten mal lieb 
beim Hersteller anfragen, vielleicht hast du ja Erfolg (mit Verweis auf 
Garantieverlust usw.)

LG

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