This application report describes the process employed to perform a Zigbee® 3.0 large mesh network test using SimpleLink CC1352P and CC2652R devices operating from Z-Stack 3.5.0 as included in the SimpleLink CC13X2/CC26X2 v3.30 SDK. Network topology, stack configurations, and the test procedure are supplied to provide guidance on the best practices and design principles involved with reproducing a large Zigbee system. Pertinent results are also provided to demonstrate the performance reliability of a Z-Stack solution and instill confidence in users wishing to deploy such a robust mesh network for their own application.
SimpleLink is a registered trademark of Texas Instruments.
Arm, Cortex are registered trademarks of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
Zigbee is a registered trademark of Zigbee Alliance.
All other trademarks are the property of their respective owners.
The CC2652R(1) device from Texas Instruments™ is the ideal System-on-Chip (SoC) for high-performance Zigbee applications, addressing many product specifications from a low-power standpoint. The CC2652R combines a powerful 48 MHz Arm®Cortex®-M4F CPU with up to 80KB of RAM and 352KB of on-chip flash. With a dedicated Radio Controller handling low-level RF protocol commands stored in ROM, it can handle complex network stacks ensuring ultra-low power and great flexibility.
In the world of IoT, battery life is tremendously valued by customers, cutting down on the bill of materials and battery replacement costs, while enabling easy maintenance and product convenience. Therefore, current consumption of devices inside a connected network must have their current consumption tightly controlled. The CC2652R is designed with the lowest power performance in sleep mode, active mode, and during sensor and data processing.
When range is an important consideration for an application, Texas Instruments offers the CC1352P(2) device, which contains a +20-dBm integrated high-power amplifier with a best-in-class efficiency for long range applications. The CC1352P is a multiprotocol Sub-1 and 2.4-GHz with the same powerful system, offering the ability for a high-performance, long range Zigbee device.
This application report references examples from Z-Stack 3.5.0(3), which is based on the Zigbee 3.0 profile. Z-Stack comes packaged as part of the SimpleLink CC13X2/CC26X2 SDK(4), which is designed for simplified development within one environment using industry standard APIs, TI Drivers, and TI RTOS to provide a robust foundation for application development. The version used in this report's test is v3.30.
Section 2 describes the hardware and topology used to test a large network. Changes to the default Z-Stack configuration are explained in Section 3. The actual test procedure is provided in Section 4, along with packet error rate (PER) and latency results.
A total of 75 Zigbee nodes were used to create the Z-Stack large mesh network test, consisting of one coordinator (ZC), 12 routers (ZR), and 62 end devices (ZED). Half of the devices use LAUNCHXL-CC26X2R1(5) hardware, whereas, the other half consist of LAUNCHXL-CC1352P(6), all using default output transmit power (5 and 20 dBm, accordingly). For a simple visual of the setup, see Figure 1.
Although all within radio proximity, the routing devices are evenly separated into six separate zones (2 ZR per zone), with the ZC in zone 1 and each zone only capable of communicating with the members of the adjacent zones. This is to ensure that a maximum of five hops (from zone 6 to zone 1) are analyzed during the test. The same was initially done with the end devices (twelve ZED per zone), however, these children would occasionally transfer zones while changing parents during execution of the test.
Several modifications were made to Z-Stack 3.5.0 definitions to help improve the reliability of the network during operation. These changes have all been listed and described in Table 1.
Node Type | Symbol | Location | Description | Value |
---|---|---|---|---|
ZC & ZR & ZED | BDB_FINDING_BINDING_CAPABILITY_
ENABLED |
bdb.h | Enables the finding and binding procedure, only necessary for binding ZCL attributes which is not needed in this test | 0 |
ZC & ZR | NWK_MAX_DEVICE_LIST | nwk_globals.h | Number of children allowed | 6 |
ZC & ZR | LINK_DOWN_TRIGGER | nwk_globals.h | Marks a route as faulty if the transfer count for unsuccessful transmissions exceeds this value | 12 |
ZC & ZR | NWK_ROUTE_AGE_LIMIT | nwk_globals.h | Number of link status messages missed before a neighbor is aged out from the neighbor table | 5 |
ZC & ZR | DEF_NWK_RADIUS | nwk_globals.h | Number of hops that messages can travel in the network | 15 |
ZC & ZR | DEFAULT_ROUTE_REQUEST_RADIUS | nwk_globals.h | Radius of route request packets | 8 |
ZC & ZR | ZDNWKMGR_MIN_TRANSMISSIONS | zd_nwk_mgr.h | Minimum transmissions attempted for channel interference detection, if enabled | 0 |
ZC & ZR | BCAST_DELIVERY_TIME | zglobals.h | Amount of time a broadcast message exists within the network | 100 |
ZC & ZR | ROUTE_DISCOVERY_TIME | zglobals.h | Amount of time a route discovery lasts | 13 |
ZC | SRC_RTG_EXPIRY_TIME | nwk_globals.h | Time for which the route is valid in the source routing table | 2 |
ZC | MTO_RREQ_LIMIT_TIME | nwk_globals.h | Controls the delay of the MTO routing | 5000 |
ZC | ZDSECMGR_TC_DEVICE_MAX | zd_nwk_mgr.h | Total number of devices, based on APS keys, a trust center can allow to join the network | 85 |
ZC | CONCENTRATOR_DISCOVERY_TIME | zglobals.h | Controls the MTO routing period, in seconds | 100 |
ZC | MAX_RTG_SRC_ENTRIES | zglobals.h | Sets the source routing table sime | 100 |
ZC | CONCENTRATOR_ENABLE | zglobals.h | Enables this device to be a concentrator node and turns on the periodic MTO routing event | TRUE |
ZC | CONCENTRATOR_ROUTE_CACHE | zglobals.h | Enables route cache memory allocation for the concentrator | 0 |
ZED | POLL_RATE | zstack_config.h | Frequency at which an end device sends a data request to its parent, in milliseconds | 3000 |
Many-to-one (MTO) routing, which helps minimize traffic of Zigbee mesh networks involving centralized nodes (the concentrator), was implemented during this test. More information on this protocol can be obtained in the Many-to-One Routing Protocol section of the Z-Stack User's Guide [3].
The NV On-Chip Multi-Page (NVOCMP) driver has been implemented for Z-Stack version 3.5.0 and later. This allows for users to expand the number of flash storage pages reserved for NV items and is necessary if desiring to increase NWK_MAX_DEVICE_LIST and/or ZDSECMGR_TC_DEVICE_MAX past the values used in the large network test. However, this will require changes both to the CCS linker command file and SysConfig settings. Further details can be found in the Non-Volatile Memory Items section of the Z-Stack User's Guide [3].