mikrocontroller.net

Forum: PC-Programmierung Checksum Berechnung herausfinden


Autor: Michael Uray (michaeluray)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich versuche mit einer Ericsson Businessphone Anlage eine Kommunikation 
über die serielle Schnittstelle aufzubauen. Leider ist keine 
Dokumentation verfügbar und daher muss ich über das Mitloggen von Daten 
das Protokoll herausfinden.

Ich habe jetzt nur das Problem, das am Ende vom Frame ein 1 Byte 
Checksumme angehängt wird. Nachdem ich jetzt schon die ganze Nacht 
versucht habe auf die Berechnung zu kommen, probiere ich es jetzt einmal 
hier bei euch.

Bis jetzt habe ich herausgefunden, das anscheinden eine Summe gebildete 
wird. Wenn sich bei ein Byte erhöht und ein Byte verringert bleibt die 
Prüfsumme gleich.
Wenn 1 Byte erhöht wird, fällt in manchen Fällen die Checksumme auch um 
1.
Ich weiß leider noch nicht, über welchen Bereich die Summe gebildet 
wird.

So schauen die Datenframes aus:

pre = Präfix
Nst = Nebenstelle
post = Postfix
checksum = Prüfsumme

   [pre]       [Nst]             [post][checksum]
10 02 30 08 52 F1 44 FF FF FF 99 10 03 47   (Nebenstelle 144)
10 02 30 08 52 F1 45 FF FF FF 99 10 03 46   (Nebenstelle 145)
10 02 30 08 52 F1 46 FF FF FF 99 10 03 45   (Nebenstelle ...)
10 02 30 08 52 F1 47 FF FF FF 99 10 03 44
10 02 30 08 52 F1 48 FF FF FF 99 10 03 4B
10 02 30 08 52 F1 49 FF FF FF 99 10 03 4A
10 02 30 08 52 F1 50 FF FF FF 99 10 03 53
10 02 30 08 52 F1 51 FF FF FF 99 10 03 52
10 02 30 08 52 F1 52 FF FF FF 99 10 03 51
10 02 30 08 52 F1 53 FF FF FF 99 10 03 50

Im Anhang sind noch mehr Daten welche ich mitgeloggt habe.

Weiß jemand von euch, wie dieser Berechnung funktionieren könnte?

lg.
michi

Autor: Michael Haberler (mah)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mein Tipp:

das sind Rahmen, die beginnen mit 10 02 und enden mit 10 03
(02 = ascii stx, 03 = asci etx)

dazwischen sind die Nutzdaten, dahinter Prüfsumme

10 ist ein "escape" (verändert die Bedeutung des nächsten Zeichens)

wenn in den Nutzdaten ein 10 vorkommt, wird dieses "escaped" 
(verdoppelt) - muss empfangsseitig rausgenommen werden.

bei der Prüfsumme hast iW folgende Chancen: Summe mod 256, 256 - Summe 
mod 256, alle Bytes mit XOR verknüpft, irgendein crc8.

Jetzt kann man noch probieren, ob diese nur die Nutzdaten umfassen, stx 
und etx auch oder auch die escapes. Ich würde tippen - nur die 
Nutzdaten, weil das Escaping der 10 in den Nutzdaten den Einsersprung 
nicht verändert (attachment).

Bau mal ein kleines Programm zum Extrahieren der Nutzdaten und wende die 
verschiedenen Algorithmen auf Kandidaten an.

-Michael

Autor: Marvin M. (marvin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ein ordinäres XOR.
Alle Zahlen einer Zeile miteinander per XOR verknüpft ergibt FF.

Autor: Michael Uray (michaeluray)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!

Ihr habt beide recht.
Es ist wirklich eine einfache XOR Verknüpfung (da bin ich etwas auf der 
Leitung gestanden) und das Escapezeichen 0x10 darf für die Berechnung 
nicht verwendet werden.

Dankeschön.

lg.
michi

Autor: Marvin M. (marvin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ESC-Zeichen kommt immer zweimal vor - Frame-Anfag, Frame-Ende oder 
im Datenstream (wird dann verdoppelt). Also ist es egal, ob Du es 
mitbenutzt oder nicht. Erspart eine Abfrage, wenn Du es einfach 
mitbenutzt.

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.