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
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
Das ist ein ordinäres XOR. Alle Zahlen einer Zeile miteinander per XOR verknüpft ergibt FF.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.