Fehlererkennungsverfahren fuer Datenuebertragung

07/08/2012 - 14:25 von Tobias Baumann | Report spam
Hi,

ich habe gerade eine serielle Datenuebertragung zwischne 2 FPGAs
entwickelt und suche nun eine einfache Erkennung von Uebertragungsfehlern.

Dabei werden immer 30 Bit lange Datenpakete gesendet, welche 25 Bit
Nutzdaten enthalten. 2 Bit habe ich noch uebrig fuer zusaetzliche
Informationen zur Pruefung meiner Daten. Die 25 Bit sind wieder in 9, 10
und 6 Bit unterteilt.

Meine erste Idee war nun das ich fuer die ersten 9 Nutzbits einen
Paritaetscheck durchfuehre und fuer die zweiten 10+6 Bits und diese dann
eben in meine zwei Zusatzbits speichere. Allerdings meinte ein Kollege
das es etwas Eleganteres geben koennte und hoffe nun das nun jemand
etwas Eleganteres weiss.

Eine vielleicht entscheidende Vorgabe ist, das ich keine Taktzyklen
verschwenden kann fuer die Pruefung meiner Daten, somit waere mein
Paritaetscheck auch hier ziemlich praktisch (da rein kombinatorische
Logik). Das Gegenargument war das ich halt nicht erkennen kann ob ich 2
Bitfehler in meinen Nutzdaten habe.

Wenn jemanden eine besserer Pruefmethode bekannt ist oder weitere
Argumente warum die Paritaetspruefung ausreichen sollte waere mir sehr
geholfen.

Ein paar Randbemerkungen noch: Fehlerkorrektur ist nicht benoetigt,
sollten die Daten falsch uebertragen worden sein werden sie verworfen.
Bei Labortests sehe ich gerade Paketfehler im Bereich von 1 zu 10^8 bis
10^9. Wieviele Bitfehler in den falschen Paketen war kann ich leider
nicht sagen, aber vielleicht hilft es trotzdem weiter.

Vielen Dank schonmal und viele Gruesse,
Tobias
 

Lesen sie die antworten

#1 Waldemar Krzok
07/08/2012 - 14:39 | Warnen spam
Am 07.08.2012 14:25, schrieb Tobias Baumann:
Hi,

ich habe gerade eine serielle Datenuebertragung zwischne 2 FPGAs
entwickelt und suche nun eine einfache Erkennung von Uebertragungsfehlern.

Dabei werden immer 30 Bit lange Datenpakete gesendet, welche 25 Bit
Nutzdaten enthalten. 2 Bit habe ich noch uebrig fuer zusaetzliche
Informationen zur Pruefung meiner Daten. Die 25 Bit sind wieder in 9, 10
und 6 Bit unterteilt.

Meine erste Idee war nun das ich fuer die ersten 9 Nutzbits einen
Paritaetscheck durchfuehre und fuer die zweiten 10+6 Bits und diese dann
eben in meine zwei Zusatzbits speichere. Allerdings meinte ein Kollege
das es etwas Eleganteres geben koennte und hoffe nun das nun jemand
etwas Eleganteres weiss.

Eine vielleicht entscheidende Vorgabe ist, das ich keine Taktzyklen
verschwenden kann fuer die Pruefung meiner Daten, somit waere mein
Paritaetscheck auch hier ziemlich praktisch (da rein kombinatorische
Logik). Das Gegenargument war das ich halt nicht erkennen kann ob ich 2
Bitfehler in meinen Nutzdaten habe.

Wenn jemanden eine besserer Pruefmethode bekannt ist oder weitere
Argumente warum die Paritaetspruefung ausreichen sollte waere mir sehr
geholfen.

Ein paar Randbemerkungen noch: Fehlerkorrektur ist nicht benoetigt,
sollten die Daten falsch uebertragen worden sein werden sie verworfen.
Bei Labortests sehe ich gerade Paketfehler im Bereich von 1 zu 10^8 bis
10^9. Wieviele Bitfehler in den falschen Paketen war kann ich leider
nicht sagen, aber vielleicht hilft es trotzdem weiter.



Es happert etwas bei mir mit deiner Arithmetik. 30 Bits, davon 25
Nutzdaten und nur 2 übrig. Was ist denn mit den übrigen 3? Ansonsten
reichen 2 Bits nicht um eindeutig Bitfehler zu erkennen. Ich würde mal
versuchen einen CRC zu berechnen, vielleicht CRC-32 (Ethernet),
allerdings mit 2 Bits sind da keine Bàume auszureisen. Natürlich kannst
du auch die Blöcke 1-14 und 16-29 mit jeweils einem Paritàtbit versehen.
Besser als nüscht.

Waldemar


My jsme Borgové. Sklopte štíty a vzdejte se. Odpor je marný.

Ähnliche fragen