原理学习
ZigBee有3种网络拓扑,即星状、树状和网状网络。星状网中,所有节点只能与协调器进行通信,而它们相互之间是禁止通信的。不存在有路由节点,只有终端节点和协调器节点。
代码修改
在Zstack的nwk_globals.h中,通过修改STACK_PROFILE_ID的值来选择不同的控制模式;再通过修改NWK_MODE的值,选择不同的网络拓扑模式。
// Controls various stack parameter settings
#define NETWORK_SPECIFIC 0
#define HOME_CONTROLS 1
#define ZIGBEEPRO_PROFILE 2
#define GENERIC_STAR 3
#define GENERIC_TREE 4
// Controls the operational mode of network
#define NWK_MODE_STAR 0 //星状
#define NWK_MODE_TREE 1 //树状
#define NWK_MODE_MESH 2 //网状
在nwk_globals.c中,
uint8 CskipRtrs[1] = {0};//某级子节点树数中最大路由数
uint8 CskipChldrn[1] = {0};//某级最大子节点数
注:不同的控制方式有什么区别,暂时还不明白。目前使用的是ZIGBEEPRO_PROFILE控制方式。
数据传输
星状网中,通常协调器到终端使用广播传输,终端到协调器可以使用点播、和广播。协调器短地址是0x0000。如果终端到协调器使用广播,那么其他终端节点也会接受到消息。