Hallo Forenmitglieder, ich möchte ein ZigBee Netzwerk aufbauen, in dem es keinen Coordinator gibt. Soweit ich weiß fragt ein Coordinator immer alle angeschlossenen Endstationen zyklisch nach event. neuen zu sendenden Daten ab. Also die Endknoten sollen nicht der Reihe nach von einem Coordinator abgefragt werden, ob diese zu sendende Daten haben. Ich möchte das so realisieren, dass die Endknoten sich selber an einem anderen Endknoten melden, wenn diese Daten untereinander austauschen wollen. Geht das überhaupt?? Also: z.B. Drei Endknoten, wobei jeder selber bei dem anderen Knoten anfragt ob eine gewünschte Datenübertragung gestartet werden kann. Ich freue mich auf eure Anregungen...
Carsten B. schrieb: > ich möchte ein ZigBee Netzwerk aufbauen, in dem es keinen Coordinator > gibt. Dann ist es kein ZigBee[tm] mehr. > Soweit ich weiß fragt ein Coordinator immer alle angeschlossenen > Endstationen zyklisch nach event. neuen zu sendenden Daten ab. Nein, andersrum wird ein Schuh draus. Die Endstationen fragen den Koordinator, ob er Daten für sie hat. Dem Koordinator dürfen sie immer (non beacon-enabled network) oder während der CAP (beacon- enabled network) Daten senden. > Geht das > überhaupt? In ZigBee nicht, denn das ist im Protokoll nicht vorgesehen. Was du mit der Schicht 2 von IEEE 802.15.4 selbst implementieren magst, bleibt dir überlassen. Denk aber dran, dass Empfangen der teure Part ist, nicht das bisschen Senden.
Hallo !!! Wollte ich auch grade schreiben. Ein Netz ohne Koordinator ist in ZigBee nicht vorgesehen. Es gibt immer einen Knoten der das management des Netzes übernimmt. Du kannst netürlich selbst in den unteren OSI Schichten zu implementieren beginnen jedoch glaube ich das das nicht frü den Aufwand gerechtfertigt wird. Was du auch machen kannst ist dass du über dem ZigBee noch ein eigenen Protokoll legst in dem du deine Funktionalitäten implementierst. Sende und Empfanhsroutinen stehen ja zu verfügung. Mfg Michi
Ich schildere mal meine Gedankenspiele :) Was ist denn z.B. wenn ich mehrere Endknoten habe. An einen dieser Endknoten sind Sensoren angeschlossen (Poti,PT-100,Taster,...) . An einen anderen Endknoten ist dann über PWM ein Heißluftföhn angeschlossen. Also ein Endknoten für einen Aktor. Des Weiteren habe ich einen Knoten auf dem ein PID-Regler implementiert ist, der dann die in Abhängigkeit des PT-100 den Heizluftföhn steuert. Somit müsste nach meinen Überlegungen der Knoten mit den Sensoren Bescheid geben, wenn er aktuelle Daten (Änderung PT-100 Signal,...) zum Senden hat. Diese müssten dann an den Knoten mit der Regelung gehen, wobei dieser einen neuen Stellwert für das PWM-Signal an den Knoten mit dem Aktor sendet. Dabei sollen alle Knoten selbstständig signalisieren, dass sie neue Daten senden wollen.... so waren meine Gedanken zu dem Beitrag!
Du hast das wesentliche Problem noch gar nicht verstanden, warum man den Koordinator überhaupt erst eingeführt hat: das Empfangen ist (energiemäßig) schweineteuer. Aus diesem Grunde möchte man die Endknoten keinesfalls permanent auf Empfang haben, sondern nur so kurz wie möglich, andernfalls kannst du einen Batteriebetrieb in den Wind schreiben. (OK, bei Pt100 kannst du Batteriebetrieb auch so in den Wind schreiben ;-), aber solange du keine 500+ °C messen willst, gibt's ja effektivere Methoden zur Temperaturmessen.) Desweiteren erledigt der Koordinator noch die Vergabe der kurzen Adressen, aber das kann man sicher auch anders organisieren.
Hy ! Ja das geht schon. Jeder Endknoten erfährt beim Connecten des Netzes wer Koordinator ist (Parent Address). Im obrigen Beispiel könnte man das so relaisieren dass der Knoten der die Regelung enthält der Koordinatorknoten ist. Ablauf wäre dann folgendermaßen: Der Endknoten schickt zyklisch neue Temperaturwerte an den Koordinator. (In dem Fall gleich dem Knoten mit der Regelung). Die neue PWM Stellgröße wird berechnet und ein PWM update an den Aktor Knoten gesendet. Mfg Michi
> Der Endknoten schickt zyklisch neue Temperaturwerte an den Koordinator.
Geht das auch ohne dieses zyklische senden? Sondern nur senden, wenn
auch wirklich eine Änderung vorliegt....
Ja klar geht das auch nur bei Änderungen. Hier ist halt wieder wie schon oben erwähnt die Sache des Energieverbrauches im Spiel. Aber wenn du nicht auf den Askekt angewiesen bist, dass dein Controller so oft wie möglich schlafen soll und der RF Teil nur dann aktiviert wird wenns unbedingt sein muss kannst du das ohne weiteres so lösen. Mfg
Also das wäre echt gut wenn das geht! Kannst du das bitte noch etwas genauer erklären wie das dann umgesetzt wird.... so dass bei mir der Groschen fällt :) Danke!
OK. Also ich nehme jetzt wieder mal an dass der Energieverbrau in deiner Applikation keine Rolle spielt. Am Endknoten mit der PT100 Messung sind folgende Funktionen Verfügbar: -> ZigBee Paket senden -> ZigBee Paket empfangen -> Pt100Temperaturmessung -> 1 sekunde warten (wie auch immer realisiert) Am Koordinatorknoten isnd folgende Funktionen relaisiert: -> ZigBee senden und empfangen von Paketen -> PID Algorithmus -> Sollwert einstellen (wie auch immer) Am Aktor endknoten gibt es funktionen für: -> ZigBee senden und empfangen von Paketen -> PWM starten -> PWM Duty cycle update 1. Koordinator einschalten. Dieser eröffnet ein neues ZigBee Netz und wartet dan auf Endknoten. Initialisierung der Regelung. Initialen Sollwert vorgeben. 2. Endknoten einschalten. Diese connecten sich an das eröffnete netz des Koordinators und wissen auch welche addresse der Koordinator hat. Initialisierung der Endknoten (Pt100 Messung initialisieren, PWM starten und initialen Wert vorgeben) 3. Zyklische Ablauf: -> Pt100 Knoten wartet 1 sekunde und führ dann eine PT100 Messung durch. Ist neuerWert != AlterWert so wird der neue Temperaturwert an den koordinator gesendet. -> Dann wieder eine Sekunde warten und das Spiel beginnt erneut. -> Empfängt der koordinator ein Paket des Pt100 Knotens so updatet er seine IstTemperatur variable. -> PID Funktion Ausführen. -> Den neuen Stellgrößenwert via ZigBee Send an den Aktor Knoten Schicken. -> Dann wieder auf Pakete vom Pt100 Knoten warten -> Empfängt der Aktor Knoten ein Paket so wird der PWM Duty cycle mit diesen PWM Daten upgedatet und somit die PWM neu eingestellt. -> Dann wieder auf Daten vom Koordinator warten. Mfg Michi
Vielen Dank für diese ausführliche Beschreibung! Die hat mir für´s Verständnis sehr geholfen!! Sind diese Funktionen zum Senden und Empfangen von Datenpaketen fertige Funktionen einer Bibliothek? Der Energieverbrauch spielt bei mir nicht so die große Rolle. Allerdings müsstest du mir nochmal erklären, warum man bei einer derartige Lösung (wie oben beschrieben) einen hohen Energieverbrauch hat...das hab ich leider noch nicht so recht verstanden...
Carsten B. schrieb: > Sind diese Funktionen zum Senden und Empfangen von Datenpaketen fertige > Funktionen einer Bibliothek? Sowas: Meshnetics Zigbee vielleicht? P.S.: Achtung, von mir noch nie benutzt worden, ich kenne nur die µc.net-Suche. ;-)
Carsten B. schrieb: > Sondern nur senden, wenn > auch wirklich eine Änderung vorliegt. Ist doch nur eine Frage der Messauflösung. ;-) Wenn die hinreichend hoch ist, liefert jede Messung ein anderes Ergebnis. Ich verstehe gar nicht, warum du dich so sehr gegen periodische Messungen sträubst. Carsten B. schrieb: > Allerdings > müsstest du mir nochmal erklären, warum man bei einer derartige Lösung > (wie oben beschrieben) einen hohen Energieverbrauch hat. Weil der Betrieb allein des Empfängers bereits so ziemlich mit dem maximal möglichen Stromverbrauch "belohnt" wird. Ist schließlich oberes Ende des UHF-Bereichs, und die Digitalmimik für die Korrelation gibt's auch nicht kostenlos. Die einzige Maßnahme zum Energiesparen ist: Abschalten, solange es nicht unbedingt betrieben werden muss.
Jörg Wunsch schrieb: > Ist doch nur eine Frage der Messauflösung. ;-) Ja das stimmt schon kann man sich aber mit schwellwerten zur Reaktion abhelfen. Jörg Wunsch schrieb: > Ich verstehe gar nicht, warum du dich so sehr gegen periodische > Messungen sträubst. Ich würde auch periodisch einen neuen Ist-Wert messen. Und dann auch zyklisch ein PWM update machen. Als Softwarelösung kann man z.B. 6LoWPAN auf einem Meshnetics Zigbee Chip implementieren. Hab ich schon gemacht solltest du auch so ein System haben kannst du dich gern noch mal wegen sources und getting started Beispiele melden. Ansonsten gibts auch andere gute Libs (openMac, bitcloud, ...). Musst dich mal herumgoogeln was für deinen controller und RF chip möglich und verfügbar ist. mfg Michi
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.