# Prüfsummenberechnung für Servo-Steuerung



## egoexpress (20 Januar 2007)

Hallo zusammen,

Würdet ihr mir bitte helfen, folgende Prüfsummenberechnung zu verstehen? Egal wie ich rechne, ich komme auf kein sinnvolles Ergebnis.



> Calculation example of BCC:
> 
> Using
> [STX][‘1’][‘a’][“1234567800”][bcc][etx]
> ...


 
Dass die Werte hexadezimal sind, ist klar.
Ist aus einem japanischen manual ;-)

sonnigen Gruß


----------



## IFATD (20 Januar 2007)

BCC Prüfsumme ist XOR über alle Bytes. Die XOR-Summe mit der Prüfsumme xoderriert ergibt Null.


----------



## egoexpress (20 Januar 2007)

IFATD schrieb:


> BCC Prüfsumme ist XOR über alle Bytes. Die XOR-Summe mit der Prüfsumme xoderriert ergibt Null.



könntest Du es bitte noch etwas genauer erklären. Ich bin Einsteiger. 
Das mit der XOR also exclusiv oder Berechnung hab ich gerade bei wikipedia nachgelesen.  
Schaffe es aber irgendwie nicht damit meine Prüfsumme zu verstehen.

Danke,
Gruss


----------



## IFATD (20 Januar 2007)

Was oder welche Stelle des BCC-Verfahrens verstehst Du nicht?


----------



## IFATD (20 Januar 2007)

Steuerzeichen STX (Start of Transmission) Hexadezimal 02H
Steuerzeichen ETX (End of Transmission) Hexadezimal 03H
BCC (Block Check Character) Prüfsumme Hexadezimal

Somit ist Dein Telegramm:

02,01,61,31,32,33,34,35,36,37,38,30,30,6A,03

XOR über alle Byte bis zur Prüfsumme ergibt die Prüfsumme Hexadezimal 6AH.

Die Prüfsumme wird mitübertragen 6AH und kann jetzt mit der errechneten Summe Xoderriert werden. Kommt dabei Null raus ist das Telegramm richtig übertragen worden. Ungleich Null ist das Telegramm unbrauchbar.


----------



## IFATD (20 Januar 2007)

Ich hoffe Du hast den Fehler in Deiner Dokumentation gefunden.

Die 1 nach STX ist Hexadezimal 01H und nicht das Zeichen "1" welches ja Hexadezimal 31H ist.


----------



## egoexpress (20 Januar 2007)

Hallo IFATD

Ich glaube ich muss mich jetzt erst einmal mit dem XOR Verfahren beschäftigen. Dass Du den Fehler in dem Beispiel gefunden hast, ist schon eine sehr große Hilfe.

Herzlichen Dank,
Gruß


----------



## egoexpress (21 Januar 2007)

> 02,01,61,31,32,33,34,35,36,37,38,30,30,6A,03
> 
> XOR über alle Byte bis zur Prüfsumme ergibt die Prüfsumme Hexadezimal 6AH.



Das ist klar, ergibt auch Sinn, da dieses die universelle Prüfsumme ist. 
Aber was bedeutet dann dieses: 



> sum of all
> character codes in block check range will be:
> Sum = 31H+61H+31H+32H+33H+34H+35H+36H+37H+38H+30H+30H = 296H
> Taking its support number of 2 as 8 bit length, the answer is 64H,



Das wäre dann sinnloser Text?!?

Gruss


----------



## IFATD (21 Januar 2007)

Richtig! Der Kandidat erhält 100 Punkte. Das ist sinnloser Text. Dann hast Du es ja jetzt verstanden. Es ist natürlich schlimm wenn in sogenanten "Fachpublikationen" solch sinnloser Text geschrieben wird.


----------



## Oberchefe (21 Januar 2007)

http://www.c-plusplus.de/forum/viewtopic-var-t-is-170245.html


----------

