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中去;