Forum: Mikrocontroller und Digitale Elektronik Protokoll für Funkübertragung


von Andreas Häusler (Gast)


Lesenswert?

Hi

Villeicht kann mir einer der Experten weiterhelfen?
Ich möchte für mein Funmodul eigene Software schreiben.
Welches Protokoll, CRC, ECC schlagt ihr vor, um eine möglichst hohe
Geschwindigkeit und Zuverlässigkeit zu erreichen.

Hab eigendlich an Manchester Code inkl. CRC gedacht.

Macht eine Fehlerkorrektur Sinn, oder sollen die fehlerhaften Daten
einfach neu übertragen werden.

Bin für jeden Hinweis sehr dankbar.

Gruss Andy

von TravelRec. (Gast)


Lesenswert?

Fehlerkorrektur macht Sinn, um eine Neuübertragung der Daten anfordern
zu können, mußt Du über ein VollDuplex-Funkmodul verfügen. Wie sonst
willst Du der sendenden Seite mitteilen, daß am Empfänger nur Murks
angekommen war... Hast Du nur ein normales "einseitiges" Modul,
kannst Du die Daten mehrfach senden und hoffen, daß der Empfänger alles
mitbekommen hat, was natürlich keine Garantie ist und zu Lasten der
Übertragungsgeschwindigkeit geht.

von Christian F. (fasti)


Lesenswert?

Hi!

Benutzt du nicht auch den IA4420? Da kann man doch die
Manchestercodierung dezent spritzen, weil der Chip intern eine FSK
Modulation macht und somit die 0er und 1er sehr zuverlässig übertragen
werden. Einen CRC eventuell mit Fehlerkorrektur macht sehr viel Sinn.

mfg

Fasti

von bernd (Gast)


Lesenswert?


von Andreas Häusler (Gast)


Lesenswert?

Hi Leute

Danke für die Infos.

Meine Module können half duplex. Somit ist auch ein neues Anfordern der
Daten kein Problem.
Werde es mal mit Manchestercodierung und CRC versuchen.

Hab bei einem käuflichen Modul gelesen, das bei schnellen Übertragungen
"Scrambling" bei mittleren Übertragungen "Manchester" und bei
langsamen Baudraten "Manchester und Hamming" Codierung eingesetzt
wird.

Kann mir jemand was zu Scrambling und Hamming Codierung sagen?

Danke im voraus.

@Fasti: Wie siehts bei Dir aus? Seit ihr mit Eurem Modul
weitergekommen? Ich hab wohl noch recht viel Arbeit vor mir.

Gruss Andy

von Christian F. (fasti)


Lesenswert?

Hi!

Ich weiss nicht ob du mit Manchester-codierung bei einem
FSK-Modulierten Signal glücklich wirst. Der Chip IA4420 benutzt
Frequency-Shift-Keying als Modultaionsverfahren, dabei wird die 0 bzw.
1 nicht über einen Pegelwechsel wie bei Amplituden-Modulation
übertragen sondern es wird die Frequenz des Signales verändert. Mir ist
da irgendwie grad nicht klar wie man das Manchester-Codieren könnte, vor
allem, weil ich ja den Chip nehme um mir Arbeit zu ersparen und deshalb
das interne Register und den FIFO benutze um einfach das zu sendende
Byte ins Register zu schieben und den Rest macht der Chip. Eine
Fehlerkorrektur wäre natürlich hier sehr zu empfehlen aber auf die
Manchestercodierung kannst du meines Erachtens verzichten.
Zu Hammingcodierung:

Definition: Hammingdistanz: Minimum der Distanzen aller möglichen
Codewortpaare: Bsp: Codewörter: {100,010,001}
h=min{d(100,010),d(100,001),d(010,001)}=min{2,2,2}=2
Fehlererkennung: große Hemmingdistanz hat folgende Vorteile: Wenn durch
einen Fehler weniger Bits verfälscht werden, als der Wert der
Hammingdistanz h angibt, so ist das Ergebniswort mit Sicherheit kein
Codewort. (ein Codewort kann nur durch mindestens h Bitfehler
entstehen).
Bsp:
Codewörter: {100,010,001}
h=2
Übertragen wird 100 aber durch Bitfehler kommt 101 an. -> kein
Codewort, Fehler erkannt.
Durch 2 Bitfehler wird statt 100, 001 übertragen -> 001 ist Codewort,
Fehler wird nicht erkannt.

Fehlerkorrektur:

Ist die Anzahl der Fehler kleiner als h/2 so kann der Fehler nicht nur
erkannt sondern auch korrigiert werden.

Bsp:

Codewörter: {00000,11111}
h=5
Es können also bis zu 4 Fehler erkannt und bis zu 2 Fehler korrigiert
werden.
2 Fehler: statt 11111 wird 10110 empfangen. Da die Distanz
d(10110,11111) kleiner als d(10110,00000) ist wird 10110 als 11111
erkannt.
Anmerkung: Bei einer zu großen Anzahl an Fehlern kann es natürlich
vorkommen, dass falsch korrigiert wird. bzw. kein Fehler erkannt wird.

Redundante Codes:

Um größere Hammingdistanzen zu erreichen wird mehr Redundanz in die
Codeworte gebracht. D.h. dass nicht nur die übertragende Information
sondern auch gewisse (für den Empfänger unnötige) Zusatzinformationen
gesendet wird. Bsp: Parity Check Code. Dabei wird für jedes Codewort
ein zusätzliches Bit übertragen, dessen Wert so gewählt ist, dass die
Anzahl der Einsen(1) gerade ist (=even parity).
Ebenso gibt es auch odd parity (Anzahl der Einsen ist ungerade)
Daher lässt sich leicht ein Übertragungsfehler erkennen (aber höchstens
EIN Fehler, da Hammingdistanz d nur 2 ist!!)
Raffinierter Codes:
z.Bsp: Minimum Distance-4 Hammingcode (MD4HC)

Information    Even Parity     MD4HC
0000              0            0000
0001              1            0111
0010              1            1011
0011              0            1100
0100              1            1101
0101              0            1010
0110              0            0110
0111              1            0001
1000              1            1110
1001              0            1001
1010              0            0101
1011              1            0010
1100              0            0011
1101              1            0100
1110              1            1000
1111              0            1111

Allgemeine Methode zur Konstruktion von Fehlerkorrigierenden
Codes(=Hammingcodes) unter der Verwendung einer Hammingdistanz von 3.
für jede natürliche Zahl m gibt es einen (2^m-1)-bit Hammingcode, der m
Parity-Bits und 2^m-1-m Informationsbits enthält.

Weiteres im Netz.

Das mit der Arbeit stimmt ;-), habe grad viele Prüfungen und komme
deshalb erst wieder mitte Dezember dazu da weiterzumachen.

lg

Fasti

von Günni (Gast)


Lesenswert?

Hallo,

schaut Euch mal den neuen Chip CC1100 von Chipcon an oder das neue
Modul AMB8410 von Amber wireless. Die machen das was Ihr vorhabt.

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
Noch kein Account? Hier anmelden.