Chinaunix首页 | 论坛 | 博客
  • 博客访问: 173908
  • 博文数量: 63
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 181
  • 用 户 组: 普通用户
  • 注册时间: 2016-02-25 15:50
文章分类
文章存档

2020年(1)

2016年(62)

我的朋友

分类: 嵌入式

2016-03-04 15:45:36

zigbee基本概念及组网特性

 

在这一章中,我们将一起来看一下zigbee的几个基本概念。当然,由于zigbee协议的复杂性,暂时只介绍下后面将提到的几个功能中用得到的概念。对于一些深入的概念的理解,将在介绍模块的API模式时,再进行补充。

一、Zigbee基本概念介绍
  Zigbee是一种基于802.15.4物理层协议、支持自组网、多点中继,可实现网状拓扑的复杂的组网协议,加上其低功耗的特点,使得网络间的设备必须各司其职,有效地协同工作。

1、Zigbee网络的设备类型
  在Zigbee网络中,有三种不同类型的设备,分别叫做:协调器(Coordinator)、路由器(Router)和终端节点(End Device),如下图所示:
   



  1.1  协调器的功能特点
       >选择一个频道和PAN ID,组建网络
       >允许路由和终端节点加入这个网络
       >对网络中的数据进行路由
       >必须常电供电,不能进入睡眠模式
       >可以为睡眠的终端节点保留数据,至其唤醒后获取。

  1.2  路由器的功能特点
      >在进行数据收发之前,必须首先加入一个zigbee网络
        >本身加入网络后,允许路由和终端节点加入
        >加入网络后,可以对网络中的数据进行路由
        >必须常电供电,不能进入睡眠模式
        >可以为睡眠的终端节点保留数据,至其唤醒后获取。

  1.3  终端节点的功能特点
        >在进行数据收发之前,必须首先加入一个zigbee网络
        >不能允许其他设备加入
        >必须通过其父节点收发数据,不能对网络中的数据进行路由
        >可由电池供电,进入睡眠模式

  协调器在选择频道和PAN ID组建网络后,其功能将相当于一个路由器。协调器或者路由器均允许其他设备加入网络,并为其路由数据。

  终端节点通过协调器或者某个路由器加入网络后,便成为其“子节点”;对应的路由器或者协调器即成为“父节点”。由于终端节点可以进入睡眠模式,其父节点便有义务为其保留其他节点发来的数据,直至其醒来,并将此数据取走。

2、PAN ID
  PAN的全称为Personal Area Networks,即个域网。每个个域网都有一个独立的ID号,即称为PAN ID。整个个域网中的所有设备共享同一个PAN ID。Zigbee设备的PAN ID可以通过程序预先指定,也可以在设备运行期间,自动加入到一个附近的PAN中。

二、寻址

1、Zigbee设备的地址类型

  Zigbee设备有两种不同的地址:16位短地址和64位IEEE地址。其中64位地址是全球唯一的地址,在设备的整个生命周期内都将保持不同,它由国际IEEE组织分配,在芯片出厂时已经写入芯片中,并且不能修改。而短地址是在设备加入一个zigbee网络时分配的,它只在这个网络中唯一,用于网络内数据收发时的地址识别。但由于短地址有时并不稳定,由于网络结构的变化会发生改变,所以在某些情况下必须以IEEE地址作为通讯的目标地址,以保证数据有效送达。

2、FBee的地址分配方法
  FBee采用的是最新的Zigbee Pro的协议栈,在此版本的协议栈中:首先,在任何一个PAN中,短地址0x0000都是指协调器。而其他设备的短地址是随机生成的。当一个设备加入网络之后,它从其父节点获取一个随机地址,然后向整个网络广播一个包含其短地址和IEEE地址的“设备声明”(Device Announce),如果另外一个设备收到此广播后,发现与自己地址相同,它将发出一个“地址冲突”(Address Conflict)的广播信息。有地址冲突的设备将全部重新更换地址,然后重复上述过程,直至整个网络中无地址冲突。

3、FBee设备的短地址变化说明
  在FBee的“透传”、“采集”与“控制”几大功能中,设备地址是至关重要的一个参数,只有地址设置正确,通讯才能按照预期进行。在此有必要对地址的使用进行详细的说明。

  3.1 协调器和路由器的短地址
  协调器的短地址为0x0000,不会发生变化。而FBee的路由器短地址,是在其第一次上电时,按照上文2的规则,由其父节点成功分配一次之后,保存在内部flash中,以后无论如何开关机都将保持不变。

  值得一提的是,正是由于这种简单的网络结构,用户可以选择一个协调器+n个路由器的方式来组成一个无“低功耗”需求的网络,进行“无线透传”等应用,简单地使用短地址即可保证数据送达至正确的设备。

  3.2 终端节点的短地址
  上述协调器+路由器的方式可以满足部分应用,但无法体现Zigbee自组网与低功耗的优势。这时就要发挥终端节点的特点。FBee终端节点的使用,将在后续章节中详细说明,此处仅介绍其短地址变化规律与长地址的使用。

  FBee终端节点可实现Zigbee的“自组”、“自愈”功能。每次打开终端节点的电源,它将自动检查其附近的路由器/协调器与其连接的信号质量,选择信号质量最好的路由为其父节点加入网络。在加入网络之后,它将周期性地发送数据请求(MAC data requests),如果其父节点没有对其请求进行响应,并且重试几次后,仍无响应,则判定为父节点丢失,此时终端节点将重复上述过程,重新寻找并加入网络。

  注:由于FBee遵循的是Zigbee Pro的规范,重新加入新的父节点后,其短地址将保持不变。但在Zigbee 2007协议中,由于采用的是树型的固定地址方式,在更换父地址后,节点短地址会发生变化。

  3.3 利用节点的长地址进行寻址
  由于短地址的可变性,在具备可移动节点(End Device)的网络中,最好使用长地址进行通讯,以确保数据送到正确的设备中。FBee模块可实现设备的长地址寻址,仅需一个简单的ATDL指令即可。具体的操作将在后续章节进行介绍。

 

三、数据发送方式
  针对FBee模块现有的数据发送方式,我们重点介绍Zigbee的单播和广播两种方式。单播模式下面,数据由一个源设备,发送至一个目标设备;而广播模式,数据是由一个源设备,发送至很多,或者是所有的设备。

1、单播方式
  单播方式下,数据由源设备发出,直接或者经过几级中转后,发送至目的地址。加入zigbee网络的所有设备之间都可以进行单播传输,可用16位短地址或者64位长地址进行寻址。具体路由关系由协调器/路由器进行维护、查询。路由表的相关内容将在后续FBee API模式的章节中进行介绍。

2、广播方式
  广播方式是由一个设备发送信息至整个zigbee网络的所有设备,其目标短地址使用0xFFFF。另外,0xFFFD与0xFFFC也可作为广播地址。其区别如下:

  0xFFFF: 广播数据发送至所有设备,包括睡眠节点
  0xFFFD: 广播数据发送至正在睡眠的所有设备
  0xFFFC: 广播数据发送至所有协调器和路由器

  提到“广播”,可能不少人会认为zigbee的广播就像村里的大喇叭,一个人讲一遍,所有的人竖着耳朵听一次,就完成任务了。其实并不是这样的,Zigbee的广播更像是“传悄悄话”,一传十、十传百,一点点“蔓延”出去的。

  举个最简单的例子:
  一个网络中,有ABC三个设备,A是B的邻居;B是C的邻居;但A和C不是邻居。 

          A--------->B-------->C

  当A要发广播给整个网络的时候,由于距离关系,A无法直接发送给C,那么A首先广播给它的邻居(此例中只有B),B再广播给它的邻居(此例中有A和C),A此时收到B的广播数据,与自己发送的广播数据对比后得知:自己已经将信息广播给了B,且B已经成功中继此广播数据,此时A完成任务,并不再继续接受广播。

  同理,C收到B的广播后,再广播给它的邻居(此例中只有B),B受到C的广播后,得知C也已经收到了自己的广播信息,且成功中继。

  以此类推,任何一个数据广播都可以以这种方式,一步步往外蔓延,最终每个节点都成功收到信息,而且保证信息不会无止境地在网络间传播。

  这种广播方式成功地将通讯范围扩大至整个网络,但由于这种信息在网络间频繁地转发,导致网络负担陡增,所以建议不要过分使用广播方式,而且每次广播的数据尽可能少,发送的时间间隔尽量不要太短!

阅读(1713) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~