PDA

View Full Version : Prüfsummenberechnung für Servo-Steuerung



egoexpress
20.01.2007, 12:03
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]
of command bucket as examples, 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, therefore [BCC] will be: [BCC] = “6A”

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

sonnigen Gruß

IFATD
20.01.2007, 12:26
BCC Prüfsumme ist XOR über alle Bytes. Die XOR-Summe mit der Prüfsumme xoderriert ergibt Null.

egoexpress
20.01.2007, 12:54
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.01.2007, 13:30
Was oder welche Stelle des BCC-Verfahrens verstehst Du nicht?

IFATD
20.01.2007, 14:06
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.01.2007, 14:11
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.01.2007, 16:13
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
20.01.2007, 23:46
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.01.2007, 06:51
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.01.2007, 09:44
http://www.c-plusplus.de/forum/viewtopic-var-t-is-170245.html