PAN IDs是用来在逻辑上分离在同一领域内的多个节点组。这样不同组之间节点通信就不会干扰,且可以在同一通道(channel)上(zigbee2007不行,因为它通信时可以改变频率的)Pan id是16位,范围是0x0000~03fff。当建立或加入网络时没有指定PAN ID的话,就会根据default PAN ID确定。它是个常量,在 f8wConfig.cfg 中。
/* 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=0xFFFF
当config_pan_id是0xffff时表明协调器建立网络时使用随机的pan_id, 申请加入网络的节点don't care which network it joins.
那么一个应用时怎样选择一个PAN ID的呢?答案是Application Profile决定的。例如在Home Automation中,所有节点的default PAN ID都是0xffff,但是在一些私有private profile 中,就必须指定PAN ID。
2.Extended PAN IDs
首先,它是64位,前24位是OUI(organization unique identifier),是公司向IEEE申请的,后面40位由公司自己安排。它与PID完全无关unrelated.
那为什么要用它呢?书上说了:有时候PAN ID还不够,比如一个特定的应用设备要加入到有这个应用的网络中,一种方法是选择加入到一个special PAN ID中,but that's not a very sure way to join the network.(应该是说PAN ID不一定靠谱吧)。令一种方法是加入到一个网络中去,然后看其是否有这种应用,没有的话再退出加入其它网络。但是如果使用Extended PAN ID就可以只加入同一公司中的某组具有同样应用的网络中。在应用中,可以使用mask去过滤选择一组特定的Extended PAN IDs。
具体参看宝典2《zigbee wireless networking》140~148页
zigbee使用了3个频段,定义了27个物理信道,其中868MHz频段定义了一个信道;915MHz频段附近定义了10个信道,信道间隔为2MHz;2.4GHz频段定义了16个信道,信道间隔为5MHz。
具体信道分配如下表:
信道编号 | 中心频率/MHz | 信道间隔/MHz | 频率上限/MHz | 频率下限/MHz |
k=0 | 868.3 | | 868.6 | 868.0 |
k=1,2,3…10 | 906+2(k-1) | 2 | 928. 0 | 902. 0 |
k=11,12,13…26 | 2401+5(k-11) | 5 | 2483.5 | 2400.0 |
=======下面这段来自百度百科=========
PANID的出现一般是伴随在,确定信道以后的。PANID其全称是Personal Area Network ID,网络的ID(即网络标识符),是针对一个或多个应用的网络,用于区分不同的ZigBee网络,一般是mesh或者cluster tree两种拓扑结构之一。所有节点的panID唯一,一个网络只有一个PANID,它是由pan协调器生成的,PANID是可选配置项,用来控制 ZigBee路由器和终端节点要加入那个网络。文件f8wConfg.cfg中的 ZDO_CONFIG_PAN_ID 参数可以设置为一个 0~0x3FFF 之间的一个值。协调器使用这个值,作为它要启动的网络的 PAN ID。而对于路由器节点和终端节点来说只要加入一个已经用这个参数配置了PAN ID的网络。如果要关闭这个功能,只要将这个参数设置为0xFFFF。 要更进一步控制加入过程,需要修改 ZDApp.c 文件中的ZDO_NetworkDiscoveryConfirmCB 函数。当然了,如果ZDAPP_CONFIG_PAN_ID被定义为0xFFFF,那么协调器将根据自身的IEEE地址建立一个随机的PANID(0~0x3FFF)。