Transmission methods

An XBee module can communicate with multiple devices or with just one device:

Broadcast transmission

Broadcast means to transmit the same data to all nodes on a network. These transmissions are propagated throughout the entire network so that all possible nodes receive the transmission.

To accomplish this, the coordinator and all routers that receive a broadcast transmission re-transmit the data three times. When a router or coordinator delivers a broadcast transmission to an end device child, it sends the transmission only once, immediately after the end device wakes and polls the parent for new data.

You can address broadcast transmissions using either the 64-bit broadcast address or the 16-bit broadcast address:

Note Broadcast transmissions do not use ACKs, so there is no guarantee that every node will hear a particular broadcast. Because the XBee devices re-transmit broadcast transmissions by every device in the network, use broadcast messages sparingly.

Unicast transmission

A unicast transmission consists of sending messages to a single node on the network identified by a unique address. The destination XBee can be an immediate neighbor of the sender, or be several hops away.

Wireless data may be addressed using either the 64-bit address or the 16-bit address (network address):

The Zigbee network layer uses the 16-bit address of the destination on each hop to route the data.

If you use an invalid 16-bit address as a destination address, and the 64-bit address is unknown (FFFFFFFFFFFFFFFF), the Transmit Status (0x8B) message shows a delivery status code of 0x21 (network ACK failure) and a discovery status of 0x00 (no discovery overhead).

If you use a non-existent 64-bit address as a destination address, and the 16-bit address is unknown (FFFE), the device attempts address discovery and the Transmit Status (0x8B) message shows a delivery status code of 0x24 (address not found) and a discovery status code of 0x01 (address discovery attempted).

Address table

XBee devices use the destination network address to send data in a unicast transmission. Since data can only be sent using the destination's 64-bit address, all Zigbee devices maintain an address table to map 64-bit address to the corresponding 16-bit address. XBee modules can store up to 10 address table entries.

If the destination's 16-bit address is unknown:

  1. The Zigbee stack uses its address table to look for an entry with a matching 64-bit address which determines the destination's 16-bit address.
  1. If it is not found, the XBee automatically initiates a discovery process to find that address before transmitting the data:
  1. First, the sending device broadcasts an address discovery message. This message includes the 64-bit address of the remote XBee module whose 16-bit address is being requested.
  2. All nodes that receive this transmission compare their own 64-bit address to the one included in the message.
  3. If the addresses match, the remote XBee sends a response back to the requester module. This response includes the remote device's 16-bit address.
  4. When the requesting module receives this discovery response with the destination's 16-bit address, it transmits the data.