Hallo zusammen, Ich habe zwei mc (c-control) mit einem 433mhz Sende/Empfänger-Pärchen verbunden. An Tx bzw Rx hängt jeweils die serielle Schnittstelle. Es soll lediglich ein Byte übertragen werden. Das Ganze haut auch schon hin aber sehr unzuverlässig. Meie Frage ist nun wie man eine sichere Übertragung hinbekmmt. Ich mein beim 10-Euro-Garagentorsender gehts ja auch. Ich sende das Byte übrigens direkt als solches per mc über den Tx-Ausgang zum Sender unf dann durch die Luft zum Empfänger. Ein Buch zu mc und funkübertragung suche ich vergeblich. Also brauch ich Euch als Experten. Dank Euch
Andi schrieb: > Meie Frage ist nun wie man eine sichere Übertragung hinbekmmt. Verwende z.B. einen Code mit Hemming-Abstand > 1, so dass du auf der Empfängerseite Übertragungsfehler erkennen und korrigieren kannst. Eine andere Möglichkeit bei einer bidirektionalen Funkstrecke ist die Übertragung einer Prüfsumme, so dass die Empfangsstation bei Übertragungsfehlern die Daten erneut anfordern kann. Burst-Störungen läßt sich durch zeitversetzter Mehrfachübertragung aus dem Weg gehen. mfg
Tip schrieb: > Verwende z.B. einen Code mit Hemming-Abstand > 1, Hallo, ich kenne mich leider mit der Codierung überhaupt nicht aus. MIr sagt das nichts. Ich weiß auch nicht wie ich so eine Codierung programmtechnisch realisiere. Wie beschrieben übertrage ich momentan den Befehl als Byte. Also zum Beispiel wird lediglich die Zahl "9" mit put 9 übertragen und am Empfänger mit input [Variable] ausgewertet. Beides über die seriellen Schnittstellen des MC. Sollte ich wohl lieber bitweise übertragen, also z. B. "00010101"???
Hallo, ich nehme mal an, dein TX/RX-Paar ist eines von diesen billigen 433-MHz-Modulen ohne spezielle Codierung etc.? Dann sieh Dir mal den folgenden Thread von mir an: http://www.picaxeforum.co.uk/showthread.php?t=11531 Ist zwar fuer Picaxe geschrieben, aber sehr einfach auf beliebige Mikrocontroller zu uebertragen. Diese 433-MHz-Dinger haben automatisches Gain und einen DC-Block und muessen erst mal mit einer sogenannten Preamble "aufgeweckt" werden; eigentlich sollten im Datenstrom imme genauso viele Einsen wie Nullen sein (damit der DC-Level nicht wieder wegdriftet!), z.B. mit sog. Manchester-Codierung kann man das machen, aber wenn man das nur bei der Preamble macht und dann bloss ein paar Bytes uebetraegt geht das schon auch. Wichtig ist auch, irgendeine Kennung (z.B. "ABC") in den Datenstrom einzubauen damit der Empfaenger feststellen kann, wann die eigentlichen Daten anfangen. Was ich (siehe obiger Link) auch entdeckt habe, es ist notwendig, zwischen Preamble und Kennung+Nutzdaten eine Pause von etwas mehr als einem Byte einzufuegen, damit sich der Empfaenger nicht auf das falsche Bit synchronisiert. Richtig verwendet habe ich mit diesen Dingern schon tagelang ueber ordentliche Entfernungen fehlerfrei Daten uebertragen. Hoffe, das hilft mal ein bisschen Wolfgang
Vielen Dank Wolfgang, leider ist mein Englisch nicht so gut und ich kann mit Begriffen wie Preamble und Gain nix anfangen. Richtig ist, das ich mit den billigen 433mhz-Platinen arbeite. Kannst Du mir die Begriffe bitte kurz erklären?
>Kannst Du mir die Begriffe bitte kurz erklären?
Kannst du vielleicht Google benutzen wenn du schon eindeutige
Suchbegriffe bekommst!
Andi schrieb: > Meie Frage ist nun wie man eine sichere Übertragung hinbekmmt. > Ich mein beim 10-Euro-Garagentorsender gehts ja auch. Der Funkkanal an sich ist generell erstmal unzuverlässig. Zuverlässigkeit lässt sich daher nur mit Fehlerkorrektur und geeignete Codierung erhöhen. Beim Garagentor ist das nicht so ein Problem, da gibts nur 2 Befehle (Auf und Zu), die durch ein "unnötig" lange Bitmuster repräsentiert werden. Im einfachsten Fall kannst du mit Parity-Bit arbeiten, das ist in der seriellen Schnittstelle drin. Ansonsten so Sachen wie Checksummen, Datenrahmen,... Da kann man kreativ bis erfinderisch sein :-) Allerdings müsstest du mal erzählen, was du alles über die Schnittstelle schickst. Kommen nur Zahlen vor? In welchem Bereich bewegen sich die? Wie oft sendest du? Lohnt es sich, Pakete zu bilden? :-)
Andi schrieb: > leider ist mein Englisch nicht so gut und ich kann mit Begriffen wie > Preamble und Gain nix anfangen. Richtig ist, das ich mit den billigen > 433mhz-Platinen arbeite. Gain = Verstaerkungsfaktor Preamble = "Vorwort" oder "Einleitung", im Zusammenhang hier einfach eine mehr oder weniger lange Folge von Datenbytes, die dem Empfaenger die Moeglichkeit geben zu merken, dass es jetzt was zu empfangen gibt, bevor die Kennung und die eigentlichen Nutzdaten kommen. Ein bisschen Muehe solltest Du Dir aber schon geben und den von mir angegebenen Forumslink genau durchlesen, da findest Du wirklich alle Details ausfuehlich beschrieben; zur Not gibt's ja im Internet genuegend automatische Uebersetzungstools, mit denen man zumindest so eine Grobuebersetzung schnell und einfach machen kann. Mangelnde Englischkenntnisse lasse ich da nicht ganz gelten - technische Tezxte sind von der Komplexitaet und Subtilitaet ja nicht gerade mit Existenzphilosophie o.ae. zu vergleichen :-)
Floh schrieb: > Der Funkkanal an sich ist generell erstmal unzuverlässig. > Zuverlässigkeit lässt sich daher nur mit Fehlerkorrektur und geeignete > Codierung erhöhen. Na ganz so wuerde ich das nicht unterschreiben. Diese Billigmodule muss man schon richtig verwenden, wenn man da Daten uebertragen will - Stichwort eben Preamble (damit der Empfaenger "aufwacht", d.h. nicht nur hochverstaerktes Rauschen am Ausgang liefert), Pause (damit das naechste Startbit im seriellen Datenstrom auch als solche erkannt wird), Signatur (eine definierte Bytefolge, and der der empfangenden Mikrokontroller erkennen kann, dass die folgenden Daten fuer ihn sind - ansonsten koennte er naemlich z.B. faelschlicherweise die Preamble als Nutzdaten missverstehen), und zum Schluss die Nutzdaten. Solange letztere nicht mehr als ein paar Bytes sind (und somit der DC-Level nicht allzu weit wegdriften kann unabhaengig von der Anzahl an Nullen und Einsen darin), war's das. Ohne diese Massnahmen hilft Dir aber auch die ausgefeilteste Codierung oder Pruefsummen nix (ausser dass Du mit denen zumindest nichts Falsches weiterverarbeitest - aber erfolgreich uebertragen wirst Du damit nichts). Erste Verbesserung ist dann eine Pruefsumme (z.B. einfach alle Bytes mit XOR aufaddieren, oder richtiger CRC) und/oder fortlaufende Paketnummern. Zweite Verbesserung zum oben angegebenen Konzept waere eine ausbalanzierte Codierung ("DC balanced"), die sichewrstellt, dass stets in jedem kurzen Datenabschnitt gleich viele Bits Null wie Eins sind. Manchester-Codierung ist dabei das einfachste (kostet aber die halbe Bandbreite).
Deine Pause zwischen Preambel und Nutzdaten ist aber nicht immer notwendig. Das hängt von der Kodierung ab.
Wolfgang M. schrieb: > Andi schrieb: >> leider ist mein Englisch nicht so gut und ich kann mit Begriffen wie >> Preamble und Gain nix anfangen. Richtig ist, das ich mit den billigen >> 433mhz-Platinen arbeite. > > Gain = Verstaerkungsfaktor > Preamble = "Vorwort" oder "Einleitung", im Zusammenhang hier einfach > eine mehr oder weniger lange Folge von Datenbytes, die dem Empfaenger > die Moeglichkeit geben zu merken, dass es jetzt was zu empfangen gibt, > bevor die Kennung und die eigentlichen Nutzdaten kommen. > > Ein bisschen Muehe solltest Du Dir aber schon geben und den von mir > angegebenen Forumslink genau durchlesen, da findest Du wirklich alle > Details ausfuehlich beschrieben; zur Not gibt's ja im Internet genuegend > automatische Uebersetzungstools, mit denen man zumindest so eine > Grobuebersetzung schnell und einfach machen kann. Mangelnde > Englischkenntnisse lasse ich da nicht ganz gelten - technische Tezxte > sind von der Komplexitaet und Subtilitaet ja nicht gerade mit > Existenzphilosophie o.ae. zu vergleichen :-) naja, hier unterscheidet sich der Elektonikbastler schon sehr vom Fachmann. Wer ohne grundlegende Englischkenntnisse versuchen will einen englischen Text zu lesen wird auch ohne Fachbegriffe oder Philosophische Themen schnell auf eine Geduldsprobe gestellt. Programmiersprachen zu erlernen ohne englische Grundkenntnisse wird über Basic kaum hinausführen. Genau diesen Stand schreibe ich dem TO zu. Und ich sehe darin keinen Makel, allerddings sollte er sich wirklich für Elektronik und µC interessieren wird er sich wenigstens einen Englisch Grundkurs antun und die Fachausdrücke dann dazu lernen müssen. Namaste
Hallo und vielen Dank für Eure Hilfe. Durch die vielen Beiträge bin ich schon schlauer. Leider finde ich absolut kein passendes Buch zu Signalübertragung per Funk und MC. Ich werde jetzt als erstes mal eine Praeamble in die Software einfügen, da ich bis jetzt nur das Nutzbyte gesendet habe (Pause zum nächsten Nutzbyte 2-5 Sekunden). Denke mal das de Empfang deshalb nicht immer klappte.
Mir ist auch kein abschließendes Buch dazu bekannt. Es ist ein riesiges Wissensgebiet und sehr individuell abhängig. Eben was gerade mit welchen Bauelementen wie gemacht werden soll. Man kann sich nur diverse Quellen erschließen. Guter Ansatz ist die Literatur zum gerade ausgesuchten Chip, Projekte von anderen damit.
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.