User Manual
Table Of Contents
- 1. Overview
- 2. RF Module Operation
- 3. XBee ZigBee Networks
- Introduction to ZigBee
- ZigBee Stack Layers
- Networking Concepts
- ZigBee Application Layers: In Depth
- Coordinator Operation
- Router Operation
- End Device Operation
- Channel Scanning
- 4. Transmission, Addressing, and Routing
- 5. Security
- 6. Network Commissioning and Diagnostics
- 7. Managing End Devices
- 8. XBee Analog and Digital IO Lines
- 9. API Operation
- API Frame Specifications
- API UART Exchanges
- Supporting the API
- API Frames
- AT Command
- AT Command - Queue Parameter Value
- ZigBee Transmit Request
- Explicit Addressing ZigBee Command Frame
- Remote AT Command Request
- Create Source Route
- AT Command Response
- Modem Status
- ZigBee Transmit Status
- ZigBee Receive Packet
- ZigBee Explicit Rx Indicator
- ZigBee IO Data Sample Rx Indicator
- XBee Sensor Read Indicator
- Node Identification Indicator
- Remote Command Response
- Over-the-Air Firmware Update Status
- Route Record Indicator
- Many-to-One Route Request Indicator
- Sending ZigBee Device Objects (ZDO) Commands with the API
- Sending ZigBee Cluster Library (ZCL) Commands with the API
- Sending Public Profile Commands with the API
- 10. XBee Command Reference Tables
- 11. Module Support
- Appendix A: Definitions
- Appendix B: Agency Certifications
- Appendix C: Migrating from ZNet 2.5 to XBee ZB
- Appendix D: Additional Information
XBee®/XBee‐PRO®ZBRFModules
©2011DigiInternational,Inc. 54
16-bit address is obtained after joining a network. The 16-bit address can also change under certain
conditions.
When sending a unicast transmission, the ZigBee network layer uses the 16-bit address of the destination
and each hop to route the data packet. If the 16-bit address of the destination is not known, the ZigBee
stack includes a discovery provision to automatically discover the destination device's 16-bit address before
routing the data.
To discover a 16-bit address of a remote, the device initiating the discovery sends a broadcast address
discovery transmission. The address discovery broadcast includes the 64-bit address of the remote device
whose 16-bit address is being requested. All nodes that receive this 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 (e.g.
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
Rx Data (0x90)
Rx Explicit Data (0x91)
IO Sample Data (0x92)
Node Identification Indicator (0x95)
Route Record Indicator (0xA1)
etc.
•Transmit status frame (0x8B)
SampleAddressTable
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)










