ZigBee Technology-Texas Instruments Online Support community Click on the Open link
1. The ZigBee terminal sleep device, which can support AC and DC two kinds of power supply, how to maintain the low power sleep characteristics in DC and improve the real-time of data communication when AC power is supplied.
The device switches the power supply through a switch switch, each time the device reads the switch state to determine whether it is currently DC or AC power, and when the DC is powered, the poll rate is set to 7s (HA Protocol), and the AC power supply does not need to consider the power consumption, the poll rate is set to 1s (smaller according to stack and actual requirements) 2. How to select the 64-bit MAC address of the device.
There are two IEEE addresses in the cc2530/cc2538/cc2630 chip, one called primary IEEE address (read-only, world-wide only), stored in the information page of the chip, available through osal_memcpy ( Aextendedaddress, (Uint8 *) (P_infopage+hal_infop_ieee_oset), Z_extaddr_len) read; another is called the secondary address (readable and writable). The last PAGE of FLASH, stored in CC2530, is passed through the function halflashread (Hal_flash_ieee_page, Hal_flash_ieee_oset, aextendedaddress, z_extaddr _len) read.
How does the protocol stack choose the primary IEEE address or secondary address as the MAC address of the device?
Specifically in function zmain_ext_addr (void) operations:
1 read the IEEE address from NV, if it already exists (none 0xFF), use the address as the MAC address.
2 If 1 does not, read from the secondary IEEE address location, if any (none 0xFF), write the address into the NV, then use the address as the MAC address.
3 If 2 does not, read from the primary IEEE address location, if any (none 0xFF), write the address to NV and use the address as the MAC address later
4) If 3 does not, the random generation of a 64-bit variable, written to the NV, and as a MAC address.
Modify MAC Address method: Write secondary IEEE address, and save to NV, as MAC address
3, how to let end device into a low-power state, how the sleep time is set.
A. Enabling Power_saving macro definition:
B.-drfd_rcvc_always_on=false in f8wconfig.cfg file, adjust-dpoll_rate size according to application requirements (set to 1000 for real-time communication sensitivity, 7000 for power sensitivity):
The end device can then be put into hibernation, and the time for hibernation is determined by the scheduling of the Osal operating system, and each sleep time is based on the latest occurrence of an event timeout as the dormant time. Specifically in the protocol stack hal_sleep functions are described. This timeout mainly divides into two kinds, one kind is the application layer event timeout, the other is the MAC layer event timeout,
1 The timeout time of the application layer is obtained by the Osal_next_timeout () in the Osal_pwrmgr_powerconserve (void) function.
2 The timeout time of the MAC layer is obtained through the Halsleep (uint16 osal_timeout) function through the mac_pwrnexttimeout (). 4,end device is a low-power device, battery-powered, after the node in the network, how to prevent the node to continue to search the network, or to send beacon request interval to increase
1 Start Search network uint8 zdapp_startjoiningcycle (void)
Stop searching the network uint8 zdapp_stopjoiningcycle (void)
2) Change the cycle of sending beacon request
Modify Variable Zgdefaultstartingscanduration
Beacon Order Values
#define Beacon_order_no_beacons 15
#define Beacon_order_4_minutes//245760 milliseconds
#define Beacon_order_2_minutes//122880 milliseconds
#define Beacon_order_1_minute//61440 milliseconds
#define Beacon_order_31_seconds//30720 milliseconds
#define Beacon_order_15_seconds//15360 msecs
#define Beacon_order_7_5_seconds 9//7680 msecs
#define Beacon_order_4_seconds 8//3840 msecs
#define Beacon_order_2_seconds 7//1920 Msecs
#define BEACON_ORDER_1_SECOND 6//960 MSECS
#define BEACON_ORDER_480_MSEC 5
#define BEACON_ORDER_240_MSEC 4
#define BEACON_ORDER_120_MSEC 3
#define BEACON_ORDER_60_MSEC 2
#define BEACON_ORDER_30_MSEC 1
#define BEACON_ORDER_15_MSEC 0
5. How to identify whether the network equipment support ZigBee 3.0.
After the ZigBee device is in network, you can send node descriptor request to ZigBee device via coordinator, if ZigBee device node descriptor The ZigBee protocol version number in response is 0x15=21, which is the ZigBee protocol platform version of the 3.0 requirement is R21, as shown in the following figure:
6.many-to-one and Source Router.
The purpose of the
Many-to-one is to allow nodes to be stored in the coordinator routing path, which is updated periodically, Souce routing to allow coordinator to be stored on each node routing path, which is stored throughout the path, requires more RAM overhead. If it is the Many-to-one and SOURC routing network, the routing information for all nodes is kept on the coordinator, and will be updated regularly, so you need to poll the node without having to route the request every time. And each node has its own path to the coordinator, so the node in the heartbeat packet also need not route request.