Hallo kann mir einer vlt an einem beispiel erläutern wie eine checksumme funktioniert? wenn ich zum beispiel über die seriele schnittstelle die daten: Startbit, datenbits, stopbit: ASCII "G" = 47d. | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | Unter wikipedia steht man muss die summe der bits bzw bytes bilden. in diesem fall hätte ich 10 bits. heisst das ich muss am empfänger, beispielsweise controller die empfangenen daten wieder berechenen wieviele bits eingelesen wurden? wie würde man sowas machen? gruss Gerd
gerd schrieb: > Hallo > > kann mir einer vlt an einem beispiel erläutern wie eine checksumme > funktioniert? > wenn ich zum beispiel über die seriele schnittstelle die daten: > > Startbit, datenbits, stopbit: ASCII "G" = 47d. > > | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | > > Unter wikipedia steht man muss die summe der bits bzw bytes bilden. > in diesem fall hätte ich 10 bits. Nein. Die Summe 0 + 1 + 1 + 1 + 0 + 0 + 0 + 1 + 0 + 1 wäre 5 Aber Start und Stop Bits werden in die Checksumme nicht eingerechnet. Wenn die nämlich nicht stimmen würden, würde die Übertragung schon mal prinzipiell nicht funktionieren. > heisst das ich muss am empfänger, beispielsweise controller die > empfangenen daten wieder berechenen wieviele bits eingelesen wurden? > wie würde man sowas machen? Genauso wie beim Sender. Dann wird verglichen. Stimmen die Checksummen nicht überein, dann ist auf jeden Fall ein Übermittlungsfehler passiert. Es ist aber unüblich Checksummen über einzelne Bits zu machen. Normalerweise hört man auf Byteeben auf. Die Checksumme zu 'G', mit dem ASCII Code von 47d wäre 47d Die Checksumm zu 'AB', ASCII Codes 65d und 66d, wäre 65d + 66d = 131d
Bei Barcodes gibts z.B. auch Checksummen, die auf Gewichtung und Modulo (Rest einer Division) beruhen. Beim 2 aus 5 interleaved geht das so: Zahl im Code: 12345 Gewichtung: 31313 D.h. zuerst wird die Summe aus den gewichteten Ziffern gebildet: 1*3 + 2*1 +3*3 + 4*1 + 5*3 = 3+2+9+4+15 = 33 Division ganzzahlig 33/10=3 Umkehrung 3*10=30 Differenz zur Summe (Rest)=3 Prüfziffer = 3, Code mit Prüfziffer = 123453 Die Deteils sind bei fast jeder Barcode-Familie anders. Beim Code 128C z.B. wird mit der Stellenposition gewichtet (12345...). Frank
Ergänzung: Eine simple Quersumme gilt nicht als sicher, weil es zu leicht möglich ist, dass sich Übertragungsfehler gegenseitig kompensieren. Ziel ist es, selbst bei einzelnen Bitfehlern möglichst drastisch auseinander liegende Prüfsummen zu erhalten. Frank
und kann jemand die CRC anschaulich erklären :-) nicht die Struktur beschreiben, sondern die Fehlerentdeckungsanalyse, worst case etc
auf CRC werden doch zum Teil dieselben Anforderungen gestellt wie auf ein Hashalgorithmus. Kleiner Keyunterschied -> weite Streung, und wenig Kollisionen. Kennt ihr Inetquellen wo das gut beschrieben ist?
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.