ich möchte zwei Microcontroller per Funk verbinden und die Übertragung mit CRC16 oder CRC32 sichern. Übertragen sollen immer 100 Byte Blöcke werden. Ich hab jetzt schon alles durchsucht um herauszufinden mit welcher Datenfehlerrate ich da rechnen kann, aber finde nichts aussagekräftiges. Erreichen möchte ich 10^-8 , aber ist das mit CRC32 zu schaffen ? Denn es könnte ja auch der CRC bei der Übertragung gestört werden und dann evt. zufälligerweise passend zu falschen Daten sein. Hat jemand von euch Infos oder evt einen Link wo die erreichbare Bitfehlerrate gezeigt wird ? Wikipedia und alles mögliche hab ich schon durchsucht, man findet viel Grundlagenwissen, aber keine genauen Angaben zur Fehlerrate. Danke Harry
>ich möchte zwei Microcontroller per Funk verbinden und die Übertragung >mit CRC16 oder CRC32 sichern Diese Aufgabe ist so nicht lösbar. Ich meine, das Deine Auffassung von dem Begriff "eine Übertragung sichern" an die übliche angepasst werden könnte. Was verstehst Du darunter? Deine Fragestellung setzt voraus, das die Verwendung von CRC die Fehlerrate einer Übertragung an sich verändert. Ohne Kenntnis weiterer Kriterien, Parameter und Verfahren ist diese Behauptung aber nicht ganz richtig, um nicht zu sagen sinnlos. Nimm einmal an, der Empfänger würde bei falscher CRC eine Neu-Übertragung anfordern. Dann wäre (unter noch anderen Voraussetzungen) die Fehlerrate beliebig klein, wenn Du beliebig lange wartest. Ich kenne das frustrierende Gefühl, wenn man meint eine Frage sei doch ganz einfach und auf der Suche nach der Antwort "nur" mit Grundlagen bombardiert wird. Das empfehle ich Dir, als Zeichen dafür zu nehmen, das die Frage doch nicht so einfach ist, wie Du es annimmst. Kommunikationsverfahren, Protokolle, Fehlerkorrektur usw. sind Sachen mit denen sich Studenten und Entwickler über Jahre beschäftigen. Hier mein Beitrag zur Grundlagen-Nerv-Attacke: Bitte gehe von der Überlegung aus, das Dir CRC nur sagt, das eine Übertragung mit einer gewissen Wahrscheinlichkeit korrekt war. Diese Wahrscheinlichkeit hängt aber von drei Faktoren ab: 1. mit welchen Wahrscheinlichkeiten die Bits gestört werden und mit welcher Wahrscheinlichkeit die Bits in genau der Weise gestört werden, das eine andere Bitfolge mit der selben CRC entsteht. 2. Welche Länge die Daten haben 3. Welches Polynom für die CRC verwendet wird. Wenn Du also sehr starke Störungen hast, ist ein CRC gewisser Länge "weniger wert" als wenn Du wenig Störungen hast. Oder, wenn Du ein längeres CRC nimmst dann wird es "mehr wert". Analog gilt, je kürzer die Daten, desto mehr ist der CRC wert. Uswusf. Mit "ist wert" meine ich hier: Den Wert der Aussage das die empfangene CRC mit der beim Empfänger berechneten übereinstimmt. An Der Fehlerrate verändert das CRC also erstmal nichts und deswegen findest Du so keine Aussage dazu. Es kommt darauf an, was Du damit anfängst und dann wirst Du auch bei Angabe von Roh-Fehlerrate, CRC-Polynom und Protokoll eine End-Fehlerrate finden.
Also, da ist mir doch noch ein hübscher Vergleich eingefallen. Ich mag Autovergleiche (aber das muss Dir ja nicht auch so gehen). Nimm bitte an, ich sage folgendes (und überlege Dir, was Du antworten würdest) Ahem. Also, äh, ich habe mich jetzt entschieden immer genau nach den Regeln Auto zu fahren, strengstens, genau wie es in der StVO steht. Ich möchte mit einer Sicherheit von 1 Unfall zu 10000 Fahrten an meinem Ziel ankommen. Ist das mit der genauen Beachtung der Regeln zu schaffen? Es könnte ja sein, das ein Igel mit 'nem Luftgewehr auf meine Reifen schiesst. Hat jemand Links wo die erreichbare Unfallhäufigkeit genannt wird? Ich habe überall nachgesehen und finde nur so Infos übers Reifen wechseln, Kopstützenhöhe, Geisterfahrer und ADAC-Mitgliedschaften aber keine genauen Angaben zur Unfallhäufigkeit bei strenger Beachtung aller Regeln.
@Klugscheisser: Sicher hast du recht, die Grundlagen sind wichtig. Aber da du nicht weißt auf welchem Level Harry "bastelt" und auch sein Vorwissen nicht kennst, könnte es etwas viel verlangt sein, dieses schon sehr vertiefte Grundwissen zu haben, was du ansprichst. @Harry Also zur Fehlerhäufigkeit würde ich sagen: Ausprobieren. Und mit CRC wirst du, wie der Klugscheisser schon schrieb, direkt keine Fehlerkorrektur hinbekommen, sie sagt die nur, die Daten sind richtig oder falsch und du kannst wiederholen. Eine automatische Fehlerkorrektur in einem gewissen Rahmen(!) ist auch möglich. Sie dir diesen Artikel an: RFM12 Protokoll Stack Dort wird ein Protokollstack beschrieben, der Hammingcode verwendet um Singlebitfehler zu korrigiren direkt nachdem Empfang. 900ss
Du kannst die Sache ganz allgemein halten. Ein Generatorpolynom mit 16 Bits liefert dir in 2^15 fehlerbehafteten Datenpaketen ein richtiges CRC-Ergebnis mit 50 prozentiger Wahrscheinligkeit. Den Rest kannst du selbst umrechnen.
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.