Hallo, gibt es eine Infoseite wo man HEX Formate usw. auch als Anfänger kapiert ? Ich kenn mich null aus damit. Welches Format oder Darstellung ist das zb.: 80 04 bf 11 01 2b und wie errechnet man dazu die checksumme ? Wie würde z.B. "Hallo" in diesem Format aussehen ? Gibt es dafür einen Umwandler ? Klar, für den einen oder anderen ist das logisch aber ich finde keinen Weg da mal was zu lernen. Vielen Dank schon mal ! M.f.G. Jürgen
Gast
#596243
Hier ist eine Tabelle: http://home.arcor.de/rhodak/ASCII_Tabelle.pdf
Gast
#596292
ok, vielen Dank ! Die Tabelle ist optimal, aber wie man die checksumme errechnet hab ich noch nicht geschnallt ;-(
Gast
#596429
Hallo Jürgen,
ich habe selbst auch ein bisschen Zeit gebraucht um mich mit dem
berechnen der CRC anzufreunden. Also: Für jede CRC gibt es ein
Generator-Polynom.
Das von Ethernet ist sehr lang, es beginnt mit x^32 und hat viele
weitere x hoch irgendwas. Das vom ISDN D-Kanal kann man noch
hinschreiben:
x^16 + x^12 + x^5 + 1
Nun wird jedes vorhandene "x hoch irgendwas" eine 1, bzw. für nicht
vorhandene ein Null notiert. Daraus folgt bei dem ISDN Polynom vom Grad
16 (Grad = höchste Potenz):
10001000000100001.
Nun werden an das Ausgangsdatenwort so viele Nullen angehängt, wie der
Grad des Polynoms beträgt (sprich hier 16 Nullen anhängen, bei Ethernet
32).
Als nächstes erfolgt die Berechnung. Dabei rechnet man im sogenannten
Galois Körper. Was das ist, ist eigentlich egal... Fakt ist, man muss
das Datenwort, mit den angehängten Nullen durch das Generatorpolynom
teilen.
Dabei wird beim subtrahieren ein XOR benutzt.
Also mal eine komplette Bsp.-Rechnung mit einem kürzeren Polynom:
Generatorpolynom: x^2+1 => 101 (Grad 2)
Nutzdaten: 10101101 => wegen Grad 2, zwei Nullen dran: 1010110100
Nun wie in der Schule:
1010110100 : 101 = 10001110
101
---
000
000
---
001
000
---
011
000
---
110
101
---
111
101
---
100
101
---
010
000
---
10
Evtl. ist aufgefallen, das ich 100 - 101 (also biteise XOR) genommen
habe. Das darf man aber tatsächlich machen. Wichtig ist hier, dass das
erste Bit eine 1 ist. Als Rest bleibt schließlich eine 10!
Diese 10 wird nun an die zu übertragenden Nutzdaten angehängt =>
10101101 | 10
So... zur Übung kannst du jetzt 10101101 | 10 mal durch ds Generator
Polynom teilen. Wenn du alles richtig machst kommt als Rest 00. Das
heißt dann, das kein(e) Bit(s) unterwegs gekippt sind. Viel Spaß...
Gast
#596432
Ach so... hier noch eine gute Seite dazu: http://www.flechtmann.net/crc/index.php
uiuiui da wird wird mein Kopf noch öfters rauchen :-) naja, werd ich schon noch checken... Gibt es für Bascom einen script wie man sowas auch ausrechnen lassen kann ? Wichtig ist für mich dieses 2-stellen HEX Format wie ich es oben schon erwähnt habe. M.f.G. Jürgen
Gast
#596687
Auf der Wikipedia Seite stehen einige Codebeispiele, evtl. helfen die weiter. Zum "zweitstelligen Hexformat": Normal denken und arbeiten alle Rechnersysteme binär, also nur mit 1 oder 0. Um Buchstaben binär zu codieren wird wie oben erwähnt meistens die ASCII Tabelle verwendet. Dein H,a,l,l,o wäre also ein: 01001000, 01100001, 01101100, 01101100, 01101111. Da binär nicht so kompakt zu schreiben ist, greift man auf die hexadezimale Schreibweise zurück. Hier gibt es 0-F (also 0,1,2,3,4,5,6,7,8,9, 10 (A), 11(B), 12 (C), 13 (D), 14 (E) und 15 (F)) als Symbol . Von binär nach hex (und umgekehrt) kann man einen einfachen Trick anwenden: Vier Binärstellen bilden immer eine Hexstelle. Also für das Hallo: 0100 1000, 0110 0001, 0110 1100, 0110 1100, 0110 1111 => 4 8 6 1 6 C 6 C 6 F => 48 61 6C 6C 6F Um deine Eingangsfrage voll zu beantworten: Man kann selbstverständlich für das ASCII/binärkodierte "Hallo" auch die CRC Prüfsumme berechnen. Ich habe den Rechner im vorherigen Post mit dem binären Hallo als Nutzdaten und dem Generatorpolynom vom Grad 16 aus dem vorherigen Post gefüttert. Das Nutzdatenwort war: 01001000, 01100001, 01101100, 01101100, 01101111 Nach der Division bleibt ein Rest von: 1010010001101001 Also: CRC Prüfsumme anhängen und nochmal in Hex hinschreiben: 0100,1000,0110,0001,0110,1100,0110,1100,0110,1111 | 1010,0100,0110,1001 48 61 6C 6C 6F | A4 69
hey super, jetzt bin ich um einiges schlauer. Vielen vielen dank für die ausführlich Erklärung (so das ich es auch verstehe). Jetzt muß ich nur doch die Sache mit der Prüfsumme "üben" Ich hab zu dem Thema noch was gefunden: http://www.goblack.de/desy/mc8051chip/ide8051/dos-ide/d51Tx_5.htm
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
was ist das dann ?
0fh wrote: > So... zur Übung kannst du jetzt 10101101 | 10 mal durch ds Generator > Polynom teilen. Wenn du alles richtig machst kommt als Rest 00. Das > heißt dann, das kein(e) Bit(s) unterwegs gekippt sind. Viel Spaß... Kannst du bitte die Formel zu Überprüfung der Daten genauer erklären? Ist es etwa 10101101 / (10 * Generatorpolynom)?
Gast
#601833
@Jürgen H. Ar(1) = 1 Ar(2) = 2 Ar(3) = 3 J = Crc8(ar(1) , 3) 'calculate value which is 216 W = Crc16(ar(1) , 3) '24881 L = Crc32(ar(1) , 3) '494976085
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.