mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CRC8 bis welche Datengröße sinnvoll?


Autor: Jochen Breunich (fitzefatze)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Folgendes Szenario:
Daten werden von einem Sensor an einem Microcontroller erfasst und über 
eine Funkverbindung (Zigbee) zu einem weiteren Microcontroller 
weitergeleitet. Dieser soll die Daten dann über RS232 zur Auswertung an 
einen angeschlossenen PC weiterreichen.

Fehlerhafte Daten sollen entweder erneut übertragen oder einfach 
verworfen werden. Deshalb möchte ich CRC8 zur Fehlererkennung bei der 
Übertragung zum PC verwenden.

Jetzt frage ich mich aber, wie groß der Datensatz, über den die 
Prüfsumme gebildet wird, für CRC8 sinnvollerweise maximal sein darf? 
Konnte bisher noch keine Angaben dazu finden. In meiner Anwendung ist 
die maximale Paketgröße ca.  85 Bytes (vorgegeben durch die maximale 
Nutzdatengröße der Funkverbindung), die durchschnittliche aber 
wesentlich kleiner, vielleicht so 10-20 Bytes (die gemessenen 
Sensordaten). Reicht CRC8 dafür aus, oder sollte ich CRC16 verwenden?

Gruß,
fitzefatze

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
2^8 = 256 Bits.

Gruß Hagen

Autor: Jochen Breunich (fitzefatze)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Hagen,

kannst du mir genauer erklären, warum das so ist bzw. hast du eine 
Quellenangabe für mich, wo ich das nachlesen kann?

Gruß,
fitzefatze

Autor: arc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>kannst du mir genauer erklären, warum das so ist bzw. hast du eine
>>Quellenangabe für mich, wo ich das nachlesen kann?

ganz genau kann ich es nicht, weis aber das folgendes gilt

- eine "8 Bit CRC" (ansich schon eine falsche Bezeichnung) stellt ein 
Polynom dar das maximal 8 Koeffizienten besitzen kann. Wichtig dabei ist 
das es im Grunde maximal 9 Koeffizienten gibt und der höchste davon wäre 
immer X^8, wird aber nicht benutzt

- sollte das benutze Polynom "irreducibel" also nicht reduzierbar bzw. 
teilerfremd sein dann entsteht die maximale Periode im modualren Galois 
Field GF(2).

- da wir zu einem Basis 2 Glaois Field arbeiten heist dies die maximal 
Periode kann 2^8-1 sein. Es ist aber schwierig solche Polynome zu 
finden. Man geht davon aus das eine CRC8 minimal bis zu 2^7=128 Bits 
lange Daten absichern kann. Eine CRC16 demzufolge bis 2^15. Bei größeren 
Daten wird aber die CRC nicht komplett untauglich sondern nur 
Teileigenschaften gehen verloren, zb. 1/2 Bit Fehlerkorrektur,Abstände 
der minimalen 1 Bit Fehler reduziert sich.

Du solltest das aber nochmal genauer aus qualifizierter Quelle 
nachlesen, ich hatte das vor 15 Jahren mal gelernt.

Gruß Hagen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.