zigbee 网络如何设置PANID?(转,技术分享)
如果在一个环境复杂的小区或者是工业现场中,存在各种用途的zigbee设备;
如果每一个网络设置一个信道用于区分,可能16个信道不够使用; 如果两个网络设置在同一个默认信道,就有可能网络A的终端设备加入到网络B中去; 网络B的协调器控制了网络A 中的设备; 好比,你们家的遥控器控制了邻居家的灯开光;
解决这个问题的方法是; 使用PANID 给网络编号;范围是0X0001----0XFFFF; 可以通过给不同的网络 指定不同的网络ID号来区分网络,避免干扰;
用户可在 f8wConfig.cfg 文件中配置PANID;
/* Define the default PAN ID.
*
* Setting this to a value other than 0xFFFF causes 设置这个值是一个非0XFFFF的值
* ZDO_COORD to use this value as its PAN ID and 协调器会使用这个值作为他的PANID
* Routers and end devices to join PAN with this ID 路由器和终端会加入到这个PANID中;
*/
-DZDAPP_CONFIG_PAN_ID=0xFFFF
如果这里设置为0XFFFF :
那么协调器则随机产生一个值作为自己的PANID; 路由器和终端设备则会在自己的默认信道上随机选择一个网路加入,加入之后协调器的PANID即为自己的PANID;
如过这里设置为不是0XFFFF的其他值:
如果设定的值为0x0001--0xffff 区间内 为合法的; 那么协调器会直接以他为PANID; 如果在建立网络的时候发现 默认信道内该PANID已经被占用,那么协调器会继续搜索其他的PANID使用; 这就带来问题了, 终端和路由器并不知道协调器 换PANID了; 还会加入到原来设定的PANID中去;
协调器如何选择信道?
协调器是 网路的建立和启动者,那么他建立网络时是如何选择信道的?有的书上说是他自己选择相对空闲的信道,但是TOOLS->f8config.cfg 文件中也有配置的选项;
所以我想知道,协调器到底是怎样配置信道? 用户应该如何配置?
tools->f8wConfig.cfg 该文件定义了11-26共16个信道。 可以任选其中一个作为自己的默认信道;也可以 定义多个默认信道,协调器将在其中选择一个最好的,干扰最小的信道建立自己网路;路由器和终端设备也是选择自己的一个默认信道加入网络;
/* Default channel is Channel 11 - 0x0B */
// Channels are defined in the following:
// 0 : 868 MHz 0x00000001
// 1 - 10 : 915 MHz 0x000007FE
// 11 - 26 : 2.4 GHz 0x07FFF800
//
//-DMAX_CHANNELS_868MHZ 0x00000001
//-DMAX_CHANNELS_915MHZ 0x000007FE
//-DMAX_CHANNELS_24GHZ 0x07FFF800
//-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