Programming instructions

Atmel AT02597: ZigBee PRO Packet Analysis with Sniffer [APPLICATION NOTE]
32210AWIRELESS09/2013
17
4.
Analyzing Data Traffic in ZigBee PRO Networks
This chapter provides examples of common interaction in ZigBee PRO networks that shall aid the user to look closely
into various fields of the frame and is not aimed at covering all scenarios that fall under ZigBee specification. Explaining
the meaning of all the fields used in a ZigBee frame is outside the scope of this application note and shall be looked up
in the ZigBee specification [6].
All Conf
iguration Server (CS) parameters mentioned in this Application Note can be set from application configuration.h
or at run-time using CS_WriteParameter API. The description of the CS parameters is also present in respective
API_Reference.chm available in the \Documentation folder in the BitCloud
®
SDK. Information on when the
parameter shall be set (at compile time only, at run-time before network start or at any time) along with parameter
persistence is available in this file.
4.1
ZigBee Frame Format Overview
Figure 4-1 shows the skeletal overview of the ZigBee frame format.
Figure 4-1. Frame Format.
The APS and NWK layer security headers and footers are also shown in the Figure 4-1. ZigBee uses a non-beacon
enabled MAC format with no security in the MAC layer.
4.2
MAC Association
Every node in a ZigBee network has its own unique 64-bit IEEE/MAC address. When a node joins the network for the
first time, a MAC association procedure is performed, following which it obtains a 16-bit network (short) address from
the parent. This short address is used for further communication in the network, to reduce frame overhead.
BitCloud provides a configuration parameter in application called CS_UID which can be used to set the value of the 64-
bit MAC address of the node during compilation. The following conditions prevail:
Setting CS_UID for testing: Any random 64-bit value can be set at compile time in application configuration.h
or at run-time before calling ZDO_StartNetworkReq()
Setting CS_UID during production: Commercial usage of ZigBee products require purchase of a block of
IEEE/MAC addresses from IEEE. This can be programmed into an external EEPROM specifically used for this
purpose. In this case, CS_UID can be set to zero during compile-time, BitCloud will attempt to read the value
from the external EEPROM in this case using API, HAL_ReadUid()