Hallo, auf der Suche nach einem Funkmodul zum Senden und Empfangen bin ich (wie viele hier im Forum) auf das Modul RFM70 bei Pollin gestoßen. Wenn ich mir das Datenblatt anschaue, glaube ich, dass es keine Fehlerbehandlung gibt, falls mal mehrere Sender gleichzeitig anfangen zu senden. Sehe ich das richtig? Für meine Anwendung wäre es wichtig, dass jeder Teilnehmer senden kann und dabei keine Daten verloren gehen. Eine Rückmeldung die Daten (im Fehlerfall) erneut senden zu müssen wäre völlig ok. Kenn jemand ein günstiges Funkmodul welches mit dem Problem zeitgleichem Senden von Daten umgehen kann? Meine Anwendung bietet keinen übergeordneten Master, der eventuell time-slots vergeben könnte. Edit: Eine Möglichkeit wäre sicher das ganze durch zwei Module (eines für Empfang + eines zum Senden) zu realisieren. Das würde ich aber gerne aus Platzgründen vermeiden.
:
Verschoben durch Moderator
Hans Wurst schrieb: > Kenn jemand ein günstiges Funkmodul welches mit dem Problem zeitgleichem > Senden von Daten umgehen kann? Alle, die IEEE 802.15.4 (landläufig meist "Zigbee" genannt) implementieren. Da gibt's CSMA/CA plus ACK plus Wiederholungen bei fehlendem ACK. Wird bei allen aktuellen Modulen praktisch durchweg bereits in der Hardware erledigt, braucht also keine nennenswerte Softwareunterstützung.
Sende Deine Pakete oft genug zu einer sinnvollen Zeit und bilde PrüfzahleN. Wenn Du 3 Quellen hast, die immer nach 3 Sekunden 1 Paket senden könnten sie sich theoretisch jedes Mal treffen, wenn jedoch die Zeiten sich ständig etwas verschieben, finden diese Treffen seltener statt. Wer Funk kennt, nimmt Kabel.
Danke für die Antworten. Jörg Wunsch schrieb: > Alle, die IEEE 802.15.4 ... Gut, werde ich mich mal einlesen. oszi40 schrieb: > Sende Deine Pakete oft genug zu einer sinnvollen Zeit und bilde > PrüfzahleN. Genau das würde ich aber vermeiden wollen. Zum einen kann ich nicht bestimmen / voraussagen wann die Teilnehmer ihre Daten senden und zum anderen wären die freien Zeitschlitze immer kleiner, wenn mehrer Teilnehmer ihre Daten erneut senden wollen und somit eventuell (das gleiche Paket) ein fünftes mal senden müssen.
Hallo, mittlerweile habe ich gesehen, dass Zigbee nur funktioniert, wenn ein Master vorhanden ist. Ohne ihn können die Slaves nicht untereinander kommunizieren. Hat noch jemand Vorschläge für Funkmodule, die mit dem zeitlichen Überschneiden von gesendeten Daten umgehen können? Danke schon mal für weitere Tipps.
Esgibt Zigbee module, ohne zigbee drauf. Dh man muss da sein eigenes Protokoll laufen lassen. Ein Multimaster protokoll ist aber wesentlich aufwendiger wie ein master-slave protokoll.
Hi, "Hans", > Wenn ich mir das Datenblatt anschaue, glaube ich, dass es keine > Fehlerbehandlung gibt, falls mal mehrere Sender gleichzeitig anfangen zu > senden. Sehe ich das richtig? Ja. Das Problem hatten schon die ersten Marconi-Funker mit ihren Funkensendern. Die Forderung nach unkontrolliertem Funk und gleichzeitig Garantie gegen Überschneidungen ist nur zu realisieren, wenn man jeder Funkstrecke ihre eigene Sendefrequenz gibt - und jeder Empfänger nur auf seinen Sender abgestimmt ist. Dann bleiben nur noch die Störungen durch andere Funkdienste im selben Band. Die neuzeitlichen Forderungen nach Produkten mit Eigenschaften des perpetuum mobile kommen gern von fachdilettantischen Kunden. Schön, wenn die wenigstens lernbereit sind. Die Kosten für das eben beschriebene Funksystem könnten drastisch gesenkt werden durch zeitliche Steuerung der Sendeberechtigung. Wer ein übliches Handy benutzt, benutzt diese Technik. Ciao Wolfgang Horn
Ein Mobiltelephon arbeitet im Master-slave Betrieb und bekommt die Zeitscheibe und Frequenz zugewiesen. Wie schon gesagt, man kann ein Multimaster System aufbauen, indem das Netzwerk sich selbst per Algorithmus dynamisch adressiert, und ein Token herumgibt. Wenn das Token verloren geht, muss es neu generiert werden. das geschieht auch per Algorithmus. so ein System funktioniert gut auf einem Kabel. Dort hat man gleichbleibende Signalqualitaet und keine externen Stoerungen. Bei Funk kann es je nach Frequenz externe Stoerungen geben. Deshalb muesste man den Token-regenerier Algorithmus anpassen. Und alle Stationen muessen eine Routingtabelle mitfuehren. Da kann man sich vertun. Ein Master-Slave Netzwerk ist viel einfacher. Mach sowas.
Zunächst einmal herzlichen Dank für eure Beiträge. Mir ging noch ein weiterer Lösungsweg durch den Kopf: Wenn jedes Funkmodul einen Sender und einen Empfänger enthält, könnte es bei jedem Senden prüfen ob das gleiche auch am Empfangsmodul gelesen werden konnte. Glaubt ihr das macht Sinn? Oder würde das Empfangsmodul (auf der Sender-Platine) dann eh immer das "richtige" Lesen, da es zu nah am Sendemodul sitzt?
Was hast denn du für eine Vorstellung von Funk, Hans Wurst? > Wenn jedes Funkmodul einen Sender und einen Empfänger enthält, könnte es > bei jedem Senden prüfen ob das gleiche auch am Empfangsmodul gelesen > werden konnte. Das geht im Kabel. Ethernet macht das auch, "collision sense". Aber im Funk kann die Störsituation bei jedem Empfänger eine andere sein. Hast Du Dir das tatsächlich nicht überlegt? Dann stell Dir das ganze Funknetz doch mal wie in der Modelleisenbahn vor und bevölkere es mit Störern. Ciao Wolfgang Horn
Hans Wurst schrieb: >Für meine Anwendung wäre es wichtig, dass jeder Teilnehmer senden kann >und dabei keine Daten verloren gehen. Eine Rückmeldung die Daten (im >Fehlerfall) erneut senden zu müssen wäre völlig ok. Diese Grundfunktionalitaeten sind u.a. bei den Atmel-Transceivern schon in Hardware implementiert. Die Anzahl der Daten-Wiederholungen ist natuerlich begrenzt (0 ... 15), d.h. du musst z.B. den Fehlerfall, dass der Kanal gestoert ist, selbst abfangen. Genauso ist ein intelligenter Kanalwechsel derzeit in den Standards nicht vorgesehen. Fuer einen ausfallsicheren Betrieb sollte es so sein, dass regelmaessig Pakete gesendet werden, und wenn diese ausbleiben, ein Fallback in einen sicheren Zustand erfolgt. Viel interessanter ist aber, wie das zeitliche Sende-Empfangsschema aussehen soll und ob die Knoten auf Batterie laufen sollen? Delta Oschi schrieb: >Esgibt Zigbee module, ohne zigbee drauf. Dh man muss da sein eigenes >Protokoll laufen lassen. Ein Multimaster protokoll ist aber wesentlich >aufwendiger wie ein master-slave protokoll. Der Koordinator bei Zigbee-artigen Netzen dient nicht nur dazu, das Netzwerk unnoetig kompliziert zu machen, sondern, dass Funkknoten die mit einer Batterie laufen moeglichst lange schlafen koennen. (sie muessen daher nicht permanent im RX mode zu sein, der eine Menge Strom braucht). Der Koordinator ist aber auch ein Single-Point-Of-Failure. Ein Multimaster-Protokoll, das stromsparend sein soll braucht pro Knoten eine sehr genaue Zeitbasis, damit alle Stationen auch im selben Zeitslot aufwachen und Daten austauschen koennen.
Hans Wurst schrieb: > Zunächst einmal herzlichen Dank für eure Beiträge. > > Mir ging noch ein weiterer Lösungsweg durch den Kopf: > Wenn jedes Funkmodul einen Sender und einen Empfänger enthält, könnte es > bei jedem Senden prüfen ob das gleiche auch am Empfangsmodul gelesen > werden konnte. Dann wird dir der Empfänger der am Sender sitzt immer sagen das das Signal erfolgreich gesendet wurde weil der durch die räumliche Nähe in dem Moment gar keine anderen Sender hören kann. Sende eine Datenpaket und warte auf Bestätigung vom Empfänger, wenn keine kommt dann widerhole das Paket. Die Zeit bis zur Widerholung stellst du bei jedem Modul geringfügig anders ein. Sascha
Sascha Weber schrieb: > Sende eine Datenpaket und warte auf Bestätigung vom Empfänger, wenn > keine kommt dann widerhole das Paket. Die Zeit bis zur Widerholung > stellst du bei jedem Modul geringfügig anders ein. Das ist letztlich genau das, was IEEE 802.15.4 macht (landläufig oft mit "ZigBee" verwechselt). Die Zeit bis zur Wiederholung (und auch die Zeit der ersten Aussendung) werden dabei zufällig gewählt. Axel Wachtler schrieb: > Der Koordinator bei Zigbee-artigen Netzen dient nicht nur dazu, das > Netzwerk unnoetig kompliziert zu machen, sondern, dass Funkknoten die > mit einer Batterie laufen moeglichst lange schlafen koennen. (sie > muessen daher nicht permanent im RX mode zu sein, der eine Menge Strom > braucht). Oder anders ausgedrückt: wenn man für die Knoten Strom ohne Ende zur Verfügung hat, kann auch problemlos jeder mit jedem kommunizieren. Sie bleiben dann halt permanent auf Empfang und werden nur zum Senden umgeschaltet. Das geht auf der Ebene von IEEE 802.15.4 (also auf MAC-Ebene) praktisch "aus der Dose raus" bereits mit den langen 64-bit-Adressen, von denen jeder Knoten eine eigene hat. Wenn man stattdessen lieber mit kurzen 16-bit-Adressen arbeiten will, müsste man sich aber ein Schema ausdenken, wie jeder Knoten eine eindeutige 16-bit-Adresse bekommt und wie man trotzdem noch weiß, wer welche hat (denn man will ja in der Regel mit einem ganz genau definierten Endpunkt kommunizieren ;-). Diese Adressverteilung ist bei Zigbee auch eine der Aufgaben des zentralen Koordinators.
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.