ZigBee ohne Coordinator

OP #2132869
Lesenswert?

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...
Moderator Persönliche Seite #2132880
Lesenswert?

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.
#2132886
Lesenswert?

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
OP #2132917
Lesenswert?

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!
Moderator Persönliche Seite #2132928
Lesenswert?

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.
#2132941
Lesenswert?

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
#2132952
Lesenswert?

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
#2133001
Lesenswert?

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
OP #2133023
Lesenswert?

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...
Moderator Persönliche Seite #2133093
Lesenswert?

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.
#2133163
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren