Forum: HF, Funk und Felder Bestandteile eines Zigbee Netzwerkes


von Owen S. (senmeis)


Lesenswert?

Hi,

um ein Zigbee Netzwerk aufzubauen, müssen zumindest ein Coordinator UND 
ein Router (oder ein End Device) vorhanden sein. Ist dieses Verständnis 
korrekt?

Ciao
Owen

von Markus U. (markjus) Benutzerseite


Lesenswert?

Ja.

Markus

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wobei du mir meiner Meinung nach den Router zu sehr betonst: einfache
Netzwerke kommen eher ohne Router aus, also nur coordinator und
end device(s).

von Michael S. (Gast)


Lesenswert?

Hallo allerseits,

> ... einfache Netzwerke kommen kommen eher ohne Router aus ...

bevor man sich entscheidet, einen Router oder ein Enddevice zu 
verwenden, muss man sich die Unterschiede vor Augen führen
(siehe Kap. 3 XBee ZigBee Networks - End Device Operation und Kap. 7. 
Managing End Devices):

Ein Enddevice ist als batteriegestütztes Device konzipiert, das die 
meiste Zeit im stromsparenden Sleep-Modus verbringt. Selbst wenn awake, 
ist der Empfänger abgeschaltet (Erfolg: nur 1/3 der Stromaufnahme eines 
Routers).

Die Kommunikation zwischen Parent und Enddevice wird vom Enddevice 
angestoßen:
wenn es aus dem Sleep geweckt ist, dann sendet es Poll Requests und das 
Parentdevice meldet zurück, ob Daten zur Auslieferung anstehen.
Per default werden die Poll Requests in 100ms Abstand gesendet.
Hätte ein Parent 10 Childdevices, die alle awake sind, dann würden im 
Mittel alle 10ms Poll-Requests an den Parent gesendet !

Um Daten empfangen zu können ist das Enddevice von seinem Parent 
abhängig:
das Parentdevice puffert alle Daten, die an das Enddevice gesendet 
werden bis zum nächsten Poll Request (die Größe des Puffers ist aber 
endlich !).

Ein Enddevice kann nur Verbindung zu seinem Parent aufnehmen.
Ein Parentdevice kann nur eine beschränkte Anzahl von Enddevices 
verwalten (ca. 10-12).
Sollen mehr Enddevices benutzt werden, dann müssen zusätzliche Router 
zur Verwaltung eingesetzt werden.

Beim Router entfallen viele Einschränkungen des Enddevice:
- der Router ist immer empfangsbereit
  (deswegen hat er auch einen höheren Energiebedarf),
- es können beliebig viele Router im Netz verwaltet werden,
- jeder kann direkt mit jedem kommunizieren.

Meine Schlussfolgerung:
Ein Enddevice ist gut geeignet, um (batteriebetrieben) Daten zu 
aquirieren und an einen Datenkollektor zu versenden.
Es ist weniger geeignet, wenn es selbst häufiger Daten empfangen soll 
oder wenn kurze Reaktionszeiten gefordert sind.

mfg

Michael S.

von Owen S. (senmeis)


Lesenswert?

Du schreibst:
"Selbst wenn awake,ist der Empfänger abgeschaltet (Erfolg: nur 1/3 der 
Stromaufnahme eines
Routers)."

"Um Daten empfangen zu können ist das Enddevice von seinem Parent
abhängig:"

Ist das etwa widersprüchlich? Wird der Empfänger im Enddevice nach dem 
Zigbee Standard überhaupt abgeschaltet?

Kann das passieren, dass Kollisionen vorhanden sind wenn mehrere 
Enddevices gleichzeitig Daten senden?

Ciao
Owen

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Owen Senmeis schrieb:

> Wird der Empfänger im Enddevice nach dem
> Zigbee Standard überhaupt abgeschaltet?

Ja, natürlich.  Im Extremfall ist der Empfänger nur eingeschaltet,
um das ACK vom Router/Coordinator zu empfangen, danach geht die
Kiste wieder schlafen.

> Kann das passieren, dass Kollisionen vorhanden sind wenn mehrere
> Enddevices gleichzeitig Daten senden?

Dafür gibt's CSMA/CA.  Das "CA" steht für "collision avoidance",
das heißt, dass natürlich Kollisionen passieren können, man
versucht nur, sie zu vermeiden.

von Owen S. (senmeis)


Lesenswert?

Was ist mit dem Status im Netz wenn Enddevices in den Standby-Modus 
gehen? Müssen diese vom Coordinator neu erkannt werden, wenn die wieder 
wach sind?

Ciao
Owen

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Owen Senmeis schrieb:
> Was ist mit dem Status im Netz wenn Enddevices in den Standby-Modus
> gehen? Müssen diese vom Coordinator neu erkannt werden, wenn die wieder
> wach sind?

Der coordinator weiß nicht einmal, dass sie sich schlafen gelegt
haben.  Das hat natürlich zur Folge, dass, wenn du ein solches device
jetzt final aus dem Netz entfernst, der coordinator u. U. auf ewig die
Verbindung der MAC-Adresse zur short address in seiner Tabelle
vorhält.  Insofern täte ein coordinator natürlich gut daran, devices,
die sich gemäß für die konkrete Funktion bereits ungewöhnlich lange
nicht mehr gemeldet haben, dann irgendwann doch auszutragen.

Im beacon-enabled network weiß zumindest das device, wenn es die
Verbindung zum coordinator verloren hat (beacon wurde mehr als zweimal
[oder so] nicht mehr gehört).

von Michael S. (Gast)


Lesenswert?

Owen Senmeis schrieb:

> Wird der Empfänger im Enddevice nach dem
> Zigbee Standard überhaupt abgeschaltet?

Der Empfänger wird abgeschaltet, alleine an der Stromaufnahme, die sich 
auf wenige uA reduziert, kann man das erkennen (und die 
Energieeinsparung ist ja der Sinn des Sleep - für den man sich ja auch 
einige Nachteile einkauft).

> Was ist mit dem Status im Netz wenn Enddevices in den Standby-Modus
> gehen? Müssen diese vom Coordinator neu erkannt werden, wenn die wieder
> wach sind?

Nach meiner Kenntnis (die sich aber nur auf die Lektüre des manuals 
stützt) ist das Parent-Device für das Enddevice zuständig.
Dort werden Anfragen an das Enddevice zwischengespeichert - aber der 
verfügbare Puffer ist sehr begrenzt.
Wenn das Enddevice über einen längeren Zeitraum schläft und mehrere 
Anfragen eingehen, dann muss das Parent-Device die Daten verwerfen, für 
die es keinen Speicher bereitstellen kann.

Darum ist es eine sinnvolle Strategie, dass die Aktivität vom Enddevice 
ausgeht:
es sendet eine Nachricht, der Empfänger erkennt, dass das Enddevice 
aufgewacht ist und schickt sofort seine Daten auf die Reise.
Das Enddevice muss die Antwort abwarten, bevor es sich wieder zur Ruhe 
legt.

Im Netzwerk ist im Normalfall bekannt, welches Device ein Enddevice ist.
Entscheidend ist, die Parameter SN und SP so zu setzen, dass die 
maximale Sleeptime abgedeckt ist.
Ist das Produkt aus SN und SP kleiner als die Dauer des Sleep, dann wird 
das Enddevice als abwesend registriert aus dem Netz geworfen
(das konnte ich bei meinen Versuchen nachvollziehen - bei zu kleinen 
SN/SP Werten wird die Verbindung abgebrochen, obwohl das Enddevice immer 
wieder zu senden versucht.

mfg

Michael S.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Michael S. schrieb:
> Wenn das Enddevice über einen längeren Zeitraum schläft und mehrere
> Anfragen eingehen, dann muss das Parent-Device die Daten verwerfen, für
> die es keinen Speicher bereitstellen kann.

Es gibt ja auch devices, die grundsätzlich nie etwas gesendet bekommen
müssen (außer einem ACK), sondern die nur selbst senden.  Das
klassische Beispiel dafür wäre ein Lichtschalter.  Der kann schlafen,
solange er will, er muss erst aufwachen, wenn der Nutzer ihn betätigt,
dann sendet er seinen neuen Zustand, und verfällt wieder ins Träumen.

von Michael S. (Gast)


Lesenswert?

Jörg Wunsch schrieb

> Es gibt ja auch devices, die grundsätzlich nie etwas gesendet bekommen
> müssen (außer einem ACK), sondern die nur selbst senden.

Ja, ich halte es auch für sinnvoll, dass ein Enddevice ausschließlich 
sendend eingesetzt werden sollte.

Michael S.

von Owen S. (senmeis)


Lesenswert?

Wenn ich mich richtig errinere wird das beacon-enabled network in Zigbee 
nicht verwendet.

Bezüglich des Empfängers im Enddevice: Der Empfänger muss aktiviert 
werden, um im Parent-Device zwischengespeicherten Daten abzuholen, also 
doch nicht abgeschaltet. Habe ich Recht?

Ciao
Owen

von Markus U. (markjus) Benutzerseite


Lesenswert?

Ja, deswegen sollte man die sleep period im Coordinator/ Router auch 
gleich oder größer der des Enddevice setzen.

Markus

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Owen Senmeis schrieb:
> Wenn ich mich richtig errinere wird das beacon-enabled network in Zigbee
> nicht verwendet.

Der Standard kennt es sehr wohl.

Ob es auch eine aktuelle Implementierung gibt, die es wirklich benutzt,
entzieht sich jedoch meiner Kenntnis.

> Bezüglich des Empfängers im Enddevice: Der Empfänger muss aktiviert
> werden, um im Parent-Device zwischengespeicherten Daten abzuholen, also
> doch nicht abgeschaltet. Habe ich Recht?

Nein, hast du nicht, siehe mein Beispiel mit dem Lichtschalter oben.
Niemand schreibt einem End-Device vor, dass es wirklich Daten
abholen muss.  Natürlich sollte derjenige, der versucht, dem Device
Daten zu schicken, besser darüber Bescheid wissen, dass dieses Device
gar keine Daten haben will. ;-)  Im Übrigen werden Daten vom Router/
Coordinator zum Device normalerweise indirekt geschickt, eben damit
das Device nicht ewig seinen Empfänger an lassen muss: sowie das
Device bereit ist, Daten entgegenzunehmen, fragt es beim Router nach,
ob er welche hat.  Danach kann es sich wieder schlafen legen.

In einem beacon-enabled network muss das Device gar nicht auf Verdacht
fragen, denn die Information, für wen Daten da sind, wird an den beacon
angehängt.  Dafür müssen natürlich dort alle Devices regelmäßig zum
Verfolgen des beacons ihren Empfänger einschalten.

von Owen S. (senmeis)


Lesenswert?

Wie macht man wenn der Sensor im End Device kalibriert werden soll? Es 
scheint unmöglich ohne eingeschalteten Empfänger.

Gruss
Owen

von Michael S. (Gast)


Lesenswert?

Hallo,

vielleicht den CB drücken, dann sollte das Enddevice für einige Zeit 
aufwachen und wach bleiben ??

Michael S.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Owen Senmeis schrieb:
> Wie macht man wenn der Sensor im End Device kalibriert werden soll? Es
> scheint unmöglich ohne eingeschalteten Empfänger.

Du kannst ein solches System nicht losgelöst auf der ISO-Schicht 3
allein betrachten.  Das Gesamtsystem muss schon in sich stimmig
konzipiert sein: wenn die Endgeräte irgendwie gelegentlich Daten
empfangen müssen, um ihre reguläre Funktion aufrecht zu erhalten,
dann muss das Gesamtsystem ein Schema haben, nach dem sie sich dann
auch mal aktivieren und ihre Daten abholen.  Der zuständige Router
wiederum muss genügend Speicherkapazität haben, dass er für die
angedachte Anzahl von Devices und den zu erwartenden statistisch
maximal auftretenden Abfragezeitraum die Daten auf Abruf vorhalten
kann.

Auf Ebene 3 kannst du das Ganze nicht festmachen, daher wollte ich
dir nur mal Beispielen nennen für potenzielle Devices, die grundsätzlich
eben nie etwas empfangen müssen.  Die kann es geben, und Zigbee
selbst muss, falls im System solche Devices existieren, halt damit
zurecht kommen.

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
Noch kein Account? Hier anmelden.