Hi, habe mir von Pollin das Funk-Sender/Empfänger-Set 868 MHz bestellt. (http://www.pollin.de/shop/dt/NDQyOTQ0OTk-/Bausaetze_Module/Module/Funk_Sender_Empfaenger_Set_868_MHz.html) Die Übertragung mit UART funktioniert auch schon ganz gut, allerdings empfange ich mit dem Empfänger auch noch ziemlich viel Müll. Kann mir vielleicht jemand Tipps geben zur Fehlerkompensation? Ich hatte mir schon überlegt einfach ein zeichen öfter zu senden und beim Empfänger dann zu schauen, welches Zeichen am meisten vorkommt. Es gibt da aber wahrscheinlich noch bessere Verfahren :) Vielen Dank schonmal Gruß
Präambel, Addresse und vorallem CRC. So machen es alle intelligenten Funkmodule. Wenn du eine preiswerte und einfache Lösung willst nimm 2 NRF2401+ Module. Im 10er Pack aus China für 13$. Also pro Paar nicht mal halb so teuer wie für den Pollin-Mist. Ausser es geht dir darum, zu lernen wie man auch mit deinen Modulen eine sichere Verbindung hinbekommt. Dann nur zu. Gruss Patrick
Ein ganz simples Verfahren wäre, nach jedem gesendeten Byte seinen Kehrwert zu senden (also z.B. nach 0xAA ein 0x55) senden. Der Empfänger speichert das erste empfangene Byte und eXored es mit dem 2. Byte. Wenn 0xff rauskommt, war die Übertragung gültig. Wenn du immer Datenpakete sendest, kannst du beliebig entweder eine Prüfsumme hinterher schicken oder eine CRC. Bedenke auch, das du nicht alleine im 868Mhz Band sendest. Wenn dein Empfänger was anderes aufschnappt, sollte er das zumindest als Fremdsendung erkennen.
Matthias Sch. schrieb: > Der Empfänger speichert das erste empfangene Byte und eXored es mit dem > 2. Byte. Das wird kaum funktionieren, weil dem Empfänger damit immer noch die Präambel zur Synchronisation auf den Anfang des ersten Bytes fehlt.
Wolfgang schrieb: > Matthias Sch. schrieb: >> Der Empfänger speichert das erste empfangene Byte und eXored es mit dem >> 2. Byte. > > Das wird kaum funktionieren, weil dem Empfänger damit immer noch die > Präambel zur Synchronisation auf den Anfang des ersten Bytes fehlt. Es wäre trotzdem möglich, aber sehr aufwendig, da man durchprobieren müsste. Natürlich ist und bleibt es ohne Präambel unsinn. Mit einer Präambel könnte es gehen, die Frage bleibt dann, ob das erste oder das zweite Byte falsch empfangen wurde. Eine Fehlerkorrektur bleibt somit unmöglich und da die Verbindung unidirektional ist, hat der Empfänger keine Chance eine erneute Übertragung anzufordern. Je nach dem Fall kann es auch ein Problem sein, dass mit diesem Verfahren die mögliche Datenrate halbiert wird.
Wolfgang schrieb: > Das wird kaum funktionieren, weil dem Empfänger damit immer noch die > Präambel zur Synchronisation auf den Anfang des ersten Bytes fehlt. Nun, es bleibt natürlich das Startbit. Das das nichts mit sicherer Übertreagung zu tun hat, wissen wir alle, das geht nicht ohne vernünftige Header und mit diesen Modulen nur mit erheblichen Aufwand bei Sende- und Empfangsaufbereitung per MC. Es sind halt simple Module mit OOK Tastung und Komparatorausgang. Patrick W. schrieb: > Je nach dem Fall kann > es auch ein Problem sein, dass mit diesem Verfahren die mögliche > Datenrate halbiert wird. Da wir nicht wissen, wozu die Dinger benutzt werden sollen, ist jegliche Spekulation über Datenraten und Prüfsummen sinnlos. Wenn mehr als ein Byte übertragen werden soll, sind effektivere Verfahren sicher angebracht. Aber der TE ist nun mal Anfänger. Für meine Wireless DMX Systeme nehme ich eine Kombination aus XOR und CRC, was sich als sehr robust herausgestellt hat. Selbst wenn ein Kanalpaket gestört ist, kann ein anderer Kanal sauber übertragen werden. Bei mir läuft das auf den RFM01/02 Modulen.
Matthias Sch. schrieb: > Nun, es bleibt natürlich das Startbit. Nein, das hilft da wenig, weil der Empfänger in Sendepausen dauernd irgendwelches Rauschen als Startbit interpretiert. Das führt dann dazu, dass er sich während des echten Startbits meist mitten in einer Zeichenübertragung wähnt und nicht auf ein Startbit wartet.
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.