Zigbee系列 学习笔记五(信道选择)

EEE 802.15.4/ZigBee工作在工业科学医疗(ISM)频段,定义了两个工作频段,即2.4 GHz频段和868/915 MHz频段。在IEEE 802.15.4中,总共分配了27个具有3种速率的信道:在2.4 GHz频段有16个速率为250kb/s的信道,在915 MHz频段有10个40 kb/s的信道,在868 MHz频段有1个20 kb/s的信道。

这些信道的中心频率按如下定义(k为信道数):

Fc=868.3MHz,(k=0)

Fc=906MHz+2(k-1)MHz,(k=1,2……10)

Fc=2405MHz+5(k-11)MHz,(k=11,12……26)

一个IEEE802.15.4可以根据ISM频段、可用性、拥挤状况和数据速率在27个信道中选择一个工作信道。从能量和成本效率来看,不同的数据速率能为不同的应用提供较好的选择。

那么如何在程序上配置这些信道呢?

在无线龙CC2530系统配置的ZigBee协议栈中,在“Tools/f8wConfig.cfg”文件内:


// 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

/* Define the default PAN ID.
*
* Setting this to a value other than 0xFFFF causes
* ZDO_COORD to use this value as its PAN ID and
* Routers and end devices to join PAN with this ID
*/
-DZDAPP_CONFIG_PAN_ID=0xFFF1

由于CC2530系统只支持2.4G的ZigBee芯片,因此此协议栈只能配置第11-26个信道。

如果在一个环境复杂的小区或者是工业现场中,存在各种用途的zigbee设备; 

如果每一个网络设置一个信道用于区分,可能16个信道不够使用; 如果两个网络设置在同一个默认信道,就有可能网络A的终端设备加入到网络B中去; 网络B的协调器控制了网络A 中的设备;好比,你们家的遥控器控制了邻居家的灯开光;

解决这个问题的方法是; 使用PANID给网络编号;范围是0X0001----0XFFFF; 可以通过给不同的网络 指定不同的网络ID号来区分网络,避免干扰;

如果这里设置为0XFFFF  :  

那么协调器则随机产生一个值作为自己的PANID;  路由器和终端设备则会在自己的默认信道上随机选择一个网路加入,加入之后协调器的PANID即为自己的PANID;

如过这里设置为不是0XFFFF的其他值:

如果设定的值为0x0001--0xffff 区间内  为合法的; 那么协调器会直接以他为PANID;    如果在建立网络的时候发现 默认信道内该PANID已经被占用,那么协调器会继续搜索其他的PANID使用; 这就带来问题了, 终端和路由器并不知道协调器 换PANID了; 还会加入到原来设定的PANID中去;

原文地址:https://www.cnblogs.com/killer-xc/p/4836794.html