Managing End Devices End Device operation
XBee/XBee-PRO ZigBee RF Modules User Guide 89
ZigBee End Devices are intended to be battery-powered devices capable of sleeping for extended periods of time.
Since end devices may not be awake to receive RF data at a given time, routers and coordinators are equipped
with additional capabilities (including packet buffering and extended transmission timeouts) to ensure reliable
data delivery to end devices.
End Device operation
When an end device joins a ZigBee network, it must find a router or coordinator device that is allowing end
devices to join. Once the end device joins a network, a parent-child relationship is formed between the end
device and the router or coordinator that allowed it to join. See XBee ZigBee networks on page 33 for details.
When the end device is awake, it sends poll request messages to its parent. When the parent receives a poll
request, it checks a packet queue to see if it has any buffered messages for the end device. It then sends a MAC
layer acknowledgment back to the end device that indicates if it has data to send to the end device or not.
If the end device receives the acknowledgment and finds that the parent has no data for it, the end device can
return to idle mode or sleep. Otherwise, it will remain awake to receive the data. This polling mechanism allows
the end device to enter idle mode and turn its receiver off when RF data is not expected in order to reduce current
consumption and conserve battery life.
The end device can only send data directly to its parent. If an end device must send a broadcast or a unicast
transmission to other devices in the network, it sends the message directly to its parent and the parent performs
any necessary route or address discoveries to route the packet to the final destination.
Parent operation
Each router or coordinator maintains a child table that contains the addresses of its end device children. A router
or coordinator that has unused entries in its child table is said to have end device capacity, or the ability to allow
new end devices to join. If the child table is completely filled (such that the number of its end device children
matches the number of child table entries), the device cannot allow any more end devices to join to it.
Since the end device children are not guaranteed to be awake at a given time, the parent is responsible for
managing incoming data packets in behalf of its end device children. If a parent receives an RF data transmission
destined for one of its end device children, and if the parent has enough unused buffer space, it will buffer the
packet. The data packet will remain buffered until a timeout expires, or until the end device sends a poll request
to retrieve the data.
The parent can buffer one broadcast transmission for all of its end device children. When a broadcast
transmission is received and buffered, the parent sets a flag in its child table when each child polls and retrieves
the packet. Once all children have received the broadcast packet, the buffered broadcast packet is discarded. If