码迷,mamicode.com
首页 > 其他好文 > 详细

如何使用ZStack——网络配置

时间:2016-07-09 17:42:02      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:

1.PAN ID 和Channel(f8wConfig.cfg)

ZigBee协议使用一个14位的个域网标志符(PAN ID)来标识一个网络。ZStack允许用两种方式配置PAN ID,当ZDAPP_CONFIG_PAN_ID值不设置为0xFFFF时,那么设备建立或加入网络的PAN ID由ZDAPP_CONFIG_PAN_ID指定;如果设置ZDAPP_CONFIG_PAN_ID为0xFFFF,那么设备就将建立或加入一个“最优”的网络。

//-DZDAPP_CONFIG_PAN_ID=0xFFFF
-DZDAPP_CONFIG_PAN_ID=0x2FFF

IEEE 802.15.4/ZIGBEE规范在2.4G频段上规定了16各频道,用户可以通过选择DEFAULT_CHANLIST不同的值选择不同的频道,协议默认频道为0xB即0x00000800。

//-DDEFAULT_CHANLIST=0x04000000  // 26 - 0x1A
//-DDEFAULT_CHANLIST=0x02000000  // 25 - 0x19
-DDEFAULT_CHANLIST=0x01000000  // 24 - 0x18
//-DDEFAULT_CHANLIST=0x00800000  // 23 - 0x17
//-DDEFAULT_CHANLIST=0x00400000  // 22 - 0x16
//-DDEFAULT_CHANLIST=0x00200000  // 21 - 0x15
//-DDEFAULT_CHANLIST=0x00100000  // 20 - 0x14
//-DDEFAULT_CHANLIST=0x00080000  // 19 - 0x13
//-DDEFAULT_CHANLIST=0x00040000  // 18 - 0x12
//-DDEFAULT_CHANLIST=0x00020000  // 17 - 0x11
//-DDEFAULT_CHANLIST=0x00010000  // 16 - 0x10
//-DDEFAULT_CHANLIST=0x00008000  // 15 - 0x0F
//-DDEFAULT_CHANLIST=0x00004000  // 14 - 0x0E
//-DDEFAULT_CHANLIST=0x00002000  // 13 - 0x0D
//-DDEFAULT_CHANLIST=0x00001000  // 12 - 0x0C
//-DDEFAULT_CHANLIST=0x00000800  // 11 - 0x0B

 2.网络结构(nwk_globals.h,nwk_globals.c)

STACK_PROFILE_ID定义为NETWORK_SPECIFIC、 HOME_CONTROLS、BUILDING_AUTOMATION、GENERIC_STAR、GENERIC_TREE中的一个,默认为HOME_CONTROLS,并据此设置MAX_NODE_DEPTH、NWK_MODE等,具体如下:

#define STACK_PROFILE_ID      HOME_CONTROLS

#if ( STACK_PROFILE_ID == HOME_CONTROLS )
    #define MAX_NODE_DEPTH      5
    #define NWK_MODE            NWK_MODE_MESH
    #define SECURITY_MODE       SECURITY_RESIDENTIAL
#if   ( SECURE != 0  )
    #define USE_NWK_SECURITY    1   // true or false
    #define SECURITY_LEVEL      5
#else
    #define USE_NWK_SECURITY    0   // true or false
    #define SECURITY_LEVEL      0
#endif

网络最大设备数设定:

#if !defined( NWK_MAX_DEVICE_LIST )
  #define NWK_MAX_DEVICE_LIST     20  // Maximum number of devices in the
                                    // Assoc/Device list.
#endif

路由器和终端设备数设定:

#if defined ( RTR_NWK )
  // change this if using a different stack profile...
  // Cskip array
  uint16 *Cskip;

  #if ( STACK_PROFILE_ID == HOME_CONTROLS )
    byte CskipRtrs[MAX_NODE_DEPTH+1] = {6,6,6,6,6,0};
    byte CskipChldrn[MAX_NODE_DEPTH+1] = {20,20,20,20,20,0};
  #elif ( STACK_PROFILE_ID == GENERIC_STAR )
    byte CskipRtrs[MAX_NODE_DEPTH+1] = {5,5,5,5,5,0};
    byte CskipChldrn[MAX_NODE_DEPTH+1] = {5,5,5,5,5,0};
  #elif ( STACK_PROFILE_ID == NETWORK_SPECIFIC )
    byte CskipRtrs[MAX_NODE_DEPTH+1] = {5,5,5,5,5,0};
    byte CskipChldrn[MAX_NODE_DEPTH+1] = {5,5,5,5,5,0};
  #endif // STACK_PROFILE_ID
#endif  // RTR_NWK

其中CskipRtrs和CskipChldrn分别为每一级的最大路由器数和最大节点数,前者是后者的子集。

转自:http://blog.sciencenet.cn/blog-114642-351776.html 

如何使用ZStack——网络配置

标签:

原文地址:http://www.cnblogs.com/zq-Embedded-System/p/5656067.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!