Specifications

XBee®/XBeePRO®SERFModules
©2009DigiInternational,Inc. 45
transmission check the 64-bit address in the payload and compare it to their own 64-bit address.
If the addresses match, the device sends a response packet back to the initiator. This response
includes the remote's 16-bit address. When the discovery response is received, the initiator will
then transmit the data.
Address Table
Each ZigBee device maintains an address table that maps a 64-bit address to a 16-bit address.
When a transmission is addressed to a 64-bit address, the ZigBee stack searches the address
table for an entry with a matching 64-bit address, in hopes of determining the destination's 16-bit
address. If a known 16-bit address is not found, the ZigBee stack will perform address discovery
to discover the device's current 16-bit address.
The XBee modules can store up to 10 address table entries. For applications where a single device
(i.e. coordinator) may send unicast transmissions to more than 10 devices, the application should
implement an address table to store the 16-bit and 64-bit addresses for each remote device. Any
XBee that will send data to more than 10 remotes should also use API firmware. The application
can then send both the 16-bit and 64-bit addresses to the XBee in the API transmit frames which
will significantly reduce the number of 16-bit address discoveries and greatly improve data
throughput.
If an application will support an address table, the size should ideally be larger than the maximum
number of destination addresses the device will communicate with. Each entry in the address table
should contain a 64-bit destination address and its last known 16-bit address.
When sending a transmission to a destination 64-bit address, the application should search the
address table for a matching 64-bit address. If a match is found, the 16-bit address should be
populated into the 16-bit address field of the API frame. If a match is not found, the 16-bit
address should be set to 0xFFFE (unknown) in the API transmit frame.
The API provides indication of a remote device's 16-bit address in the following frames:
• All receive data frames
ZigBee Explicit Rx Indicator (0x91)
ZigBee Route Record Indicator (0xA1)
• All transmit data frames
Explicit Addressing ZigBee Command Frame (0x11)
ZigBee Tx Status (0x8B)
The application should always update the 16-bit address in the address table when one of these
frames is received to ensure the table has the most recently known 16-bit address. If a
transmission failure occurs, the application should set the 16-bit address in the table to 0xFFFE
(unknown).
Fragmentation
Each unicast transmission may support up to 84 bytes of RF payload. (Enabling security or using
source routing can reduce this number. See the NP command for details.) However, the XBee SE
firmware supports a new ZigBee feature called fragmentation that allows a single large data
packet to be broken up into multiple RF transmissions and reassembled by the receiver before
sending data out its UART. This is shown in the image below.
SampleAddressTabl e
64-bit Address 16-bit Address
0013 A200 4000 0001 0x4414
0013 A200 400A 3568 0x1234
0013 A200 4004 1122 0xC200
0013 A200 4002 1123 0xFFFE (unknown)