APP下载

ZigBee技术及其在扩展型家庭网络中的应用

2011-08-10罗晨汛

电视技术 2011年1期
关键词:家庭网络路由表网关

罗晨汛

(中山大学 信息科学与技术学院,广东 广州 510006)

责任编辑:许 盈

1 研究背景及技术简介

1.1 研究内容与意义

扩展型家庭网络是一个多功能的综合技术系统,它以家庭住宅为平台,利用先进的计算机技术、通信技术以及信息技术等现代科学技术,将家庭中的各种电器设备通过特定的网络有机地融合在一起,从而进行网络化的综合管理与调控,为人们提供一个舒适、安全、方便、环保和高效率的生活环境。

长期以来,无线通信市场对低价、低传输率、短距离、低功率的应用一直有所要求。而IEEE 802.15小组则一直致力于发展完善的适用于短程无线通信的标准。在他们的努力下,发展出了许多适用于各种场合的短程无线通信技术,并且这些技术都展现出了它们本身巨大的应用潜力与不同的应用侧重。在这个背景之下,扩展型家庭网络选用哪种无线通信技术成为了关键问题。

通过如表1所示的常见无线通信技术的对比[1],可以发现:蓝牙的通信速率比较高,但是它的传输距离是瓶颈;WiFi的速率高且传输范围也比较大。

通常,蓝牙和ZigBee用于无线个人区域网(WPAN),而WiFi常用于无线局域网(WLAN)。无线局域网(WLAN)是局域网(LAN)的延伸,其目标是针对更大的传输范围和更快的传输速度。而无线个人区域网(WPAN)的发展不是为了取代局域网,它的目标是为了脱离那些复制的架构,从而提供更方便、更节能的个人无线操作区域(POS)。相对之下,ZigBee提供了一个比较广的传输距离,同时数据率较低,因此功耗也比较低。应用在扩展型家庭网络中可以提供建立整个家庭网络、传达服务器的指令以及对家庭内无线设备的控制与操作等功能。因此,采用ZigBee技术可以给本项目带来更好的扩展性和更低的能耗。

表1 几种常见的无线通信技术对比

本文所介绍的扩展型家庭网络利用ZigBee技术将家庭中许多相对独立的家用电器联系起来,构成了一个统一的智能家居系统,从而方便对家居中的各种电器设备进行本地操作。同时也可通过ZigBee网关连接到互联网,实现远程控制各个ZigBee终端以及各种电器设备[2]。

1.2 ZigBee技术简介

2000年12月IEEE成立了IEEE 802.15.4工作组。这个工作组致力于定义一种提供廉价的固定、便携或者移动设备使用的低复杂度、低成本、低速率的无线连接技术[2]。

ZigBee是建立在IEEE 802.15.4协议的基础上的,是一种短距离、低功耗的无线自组网技术。这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络[3]。ZigBee的特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。基于这些特点,ZigBee现在被广泛用于机械自动化控制、大型土木工程及智能家居等领域。

ZigBee联盟是一个由多个电子半导体厂商联合成立的高速成长的非盈利业界组织,该联盟为Zigbee的发展奠定了基础和并作出了标准[3]。ZigBee联盟指明了ZigBee并不是用来与蓝牙或者其他已经存在的标准竞争,它的目标定位于现存的系统还不能满足其需求的特定的市场,它有着广阔的应用前景。他们预言在未来的4~5年,每个家庭将拥有50个ZigBee器件,最后将达到每个家庭150个。据ZigBee联盟估计,到2007年,ZigBee市场价值将达到数亿美元。

ZigBee技术在国内虽也有所发展,但对比于国外的广泛应用,还是稍显滞后。其中自主研制且比较成熟的ZigBee产品在国内还不常见,只有一些研究性和简单应用的文章出现于期刊杂志。ZigBee在国内的研究主要集中在一些大学内,如清华大学、浙江大学、中山大学等[2]。他们多数通过自主研发或利用厂商提供的模块组建出ZigBee网络,并在此之上建立出各自的应用系统。相信随着研究的深入,ZigBee无线技术在社会上将会有更多的实际应用与产品。

2 ZigBee技术组网与路由

ZigBee联盟于2005年6月公布了第一份ZigBee规范《ZigBee Specification V1.0》[4]。这份规范详细定义了ZigBee协议的细节,对于ZigBee的应用及发展起到了重要的作用。本节基于这份标准,详细分析ZigBee的组网技术和路由技术。

2.1 ZigBee网络体系结构

ZigBee标准由一组被称为层的模块组成。每一层为上面的层执行一组特定的服务:数据实体提供了数据传输的服务,而管理实体提供了其他服务。

服务入点(SAP)是一个接口,每个服务实体通过这接口为上层提供服务。每个SAP可以提供多种功能,是通过支持一些特定的服务原语来实现的[4]。

ZigBee标准栈架构与OSI的7层模型比较相像,但是与其比起来,ZigBee的协议栈只有4层,较之更为精简。

其中底层的两层:物理层PHY和媒体访问控制层MAC由IEEE 802.15.4—2003标准所定义[5]。ZigBee联盟在此基础上定义了网络层NWK、应用层APL架构。应用层架构由应用支持子层APS、应用架构AF以及ZigBee设备对象ZDO组成。整个协议构架(如图1所示)在标准制定的分工上,由ZigBee联盟与IEEE 802.15.4的任务小组共同制定。

图1 ZigBee协议体系

2.2 ZigBee组网技术

首先从研究ZigBee网络设备类型和节点类型入手;然后通过认识网络的拓扑结构、网络的建立来学习ZigBee设备的建网流程和入网流程,最后将说明Zig⁃Bee组网的主要流程与其中用到的算法。

2.2.1 ZigBee设备类型

ZigBee网络中主要工作的是两种设备:全功能设备(FFD)和精简功能设备(RFD)。其中RFD设备只提供数据链路方面的部分服务,因此硬件要求较低。RFD一般只具有收集信息与将采集信息回送给协调的功能,故其只能做为ZigBee网络中的终端设备,也不具备路由功能;而FFD设备相对而言提供更全面的服务,不仅可用于采集数据,还可以转发其他节点的数据。这点性质使其可以做为协调器或路由器,是一个Zig⁃Bee网络中的主要构成[4]。

2.2.2 ZigBee节点类型

ZigBee网络中的节点一共分为3类,分别是协调器(Coordinator)、路由器(Router)和终端设备(End De⁃vice)。一个ZigBee网络由一个协调器、多个路由器和多个终端组成。其中协调器和路由器是全功能设备(FFD),而终端设备则应该是精简功能设备(RFD)[3]。

协调器(Coordinator):协调器的主要功能是启动一个ZigBee网络,启动后会扫描整个RF射频环境,选择一个信道以及一个唯一的网络标识符从而完成这个网络的一些初始化问题。协调器还可以对本网络进行一些配置以及对收集到的数据统一进行加密。

路由器(Router):路由器允许更多的设置加入其所属的网络。它提供了新设备入网和设备离开本网络的接口。它还支持多跳,可以将子节点的信息路由传输给协调器。路由节点应该在整个通信过程中一直保持激活状态(一般不进行睡眠)。

终端设备(End Device):终端设备是网络中的特殊节点,这些节点不具备维护本网络的功能,所以它们是可以通过睡眠来节能的。终端设备只能和协调器或者路由器进行通信,两个终端设备之间是不能进行直接的通信的。

2.2.3 ZigBee网络拓扑结构

ZigBee协议标准中定义了3种网络拓扑形式,分别为星形拓扑、树形拓扑和网状拓扑[2],如图2所示。

图2 ZigBee的3种拓扑结构

星形网络是3种拓扑结构中最简单的,也是最基础的。在星形网络中,每个设备都与协调器直接通信。典型的传感器网络就是星形拓扑:一个FFD做为协调器位于网络的中心,启动和初始化这个网络;这个协调器选一个唯一可标识本网络的标识号后,其他连上此协调器的终端设备都将统一使用本标识号。本网启动之后,其他网络不得再使用此标识号。星形网络的通信基本上都是使用点对点的通信,终端设备与本网段的协调器之间互相通信,协调器采集各终端发来的数据再进行下一步的处理。

在树形网络中,与星形网络相同之处是都有一个协调器启动和初始化本网络,但是区别是树形网络中,FFD节点都可以包含自己的子节点,而RFD只能作为叶子结点。这意味着协调器下还可以分路由器,这样层层划分,从而行成了树形的网络。在树形拓扑结构中,每个节点都只能和他的父节点和子节点通信,其中终端节点作为这棵树中的叶子结点,而路由器则可以参于数据的路由,将数据信息层层上传直到传给非终端节点的目标节点。在树形网络中,路由器同样可以参于配置本网络,但是其缺点是网络建好之后路由也随之确定了,欠缺了灵活性。

网状网络中,ZigBee协调器负责启动和初始化整个网络,路由器则负责传输分支当中的消息,而终端设备作为网络的叶子节点负责收集信息,其没有路由消息的能力,但可以将自身收集的数据发送给其他FFD。网状拓扑的一个功能是多跳,当传输过程中遇到障碍时,可以采用多跳将数据从别的路由器传送给目的设备。网状拓扑的组网过程和分址算法都较前两个拓扑更加复杂。

2.2.4 网络的建立

如前所述,第一个启动的协调器设备会建立一个网络。建立一个新的网络包括一些初始化的过程,其中包括了选择合适的信道和唯一的网络标识符(PAN ID),并设置自己的网络地址为0x0000,如果希望建立信标网络还需要配置超帧结构。

网络层首先请求MAC子层通过信道扫描检测各个信道的能量状况,接收到能量检测扫描结果后,抛弃能量超过可接受水平的信道,从中选择一个能量干扰较低的信道并指定一个与现存

PAN ID不冲突的网络标识符,设置协调器的网络地址为0x0000,通 过 MLME-START.request原语开始运行新的PAN(个人区域网)[6]。

2.2.5 设备入网

ZigBee协调器或路由器通过 NLME-PERMIT-JOINING.request原语设置MAC子层的macAssoeiationPermit PIB为TRUE,允许设备加入网络。NWK层有3种加入网络的情况:1)子设备没有加入任何网络,希望加入一个新的网络;2)子设备没有加入网络,但是父设备希望它加入网络;3)子设备已经加入了网络,但由于某些原因失去和网络的联系,希望重新加入网络。

2.3 ZigBee地址分配与路由算法

在ZigBee协议中常用的是分层次的树型拓扑结构。因为其构造简单,组网方便,运算量少,非常适用于扩展型家庭网络这种组网结构比较简单的网络中。常用的层次拓扑网络见图3。

图3 常用的层次拓扑网络

2.3.1 ZigBee地址分配算法

先定义几个要用到的参数:Lm表示网络所允许的最大深度;Cm表示每个父节点可接受的最大孩子数;Rm表示每个父节点可接受的最大路由器数;d表示设备所处的网络中的深度。

所给出的算法实例以图4进行说明。

图4 Cskip地址分配算法图例

为了运算方便,这里的例子先假定Lm=3,Cm=Rm=2。首先给出计算Cskip(d)的公式

根据式(1),可以算出各个深度的Cskip(d)(如图4)。Cskip(d)是整个Cskip算法的基础,进一步的第n个设备的地址分配就可由Cskip(d)算出。

根据式(2)可以算出新加入网的设备n应该被分配怎样的地址。如图4中,Addr=9的设备,其两个子设备的地址分配可以这样计算:

1)第1个子设备 =9+0×2+1=10;

2)第2个子设备 =9+0×2+2=11。

2.3.2 ZigBee路由算法

ZigBee网络中采用的是一种按距离矢量路由(AODV)的路由算法。一个ZigBee路由器或协调器维护一个路由表,里面记录了许多有关路由计算的信息,通过定期地更新此表与应用下面的一些路由算法,可以比较快速地将信息路由至指定的设备[6]。

紧接着上一节的Cskip算法,根据得出的设备地址得出的一些路由算法如下:

当路由数据时,就可以知道设备X是否为设备A的子孙,利用以下判别式

根据式(3),可以很容易地判断地址为11的设备X是不是地址为8的设备A的子孙。因为8<11<7+8,符合式(3),所以设备X是设备A的子孙。

当设备确定目的地是自己子孙时,就可以计算下一跳;如果目的地就是自己的子孙,直接交付。否则,由下式算出下一跳交付地址

根据式(4),可以算出当如图4的地址为8的设备Y要将数据转发给设备11时,应该做的运算代码是next-hop=8+1+int{(11-(8+1))/3}×3=9,所以设备Y要将数据转给地址为9的子设备。

2.3.3 ZigBee中的路由实现

ZigBee协调器和ZigBee路由器都包含有路由表和路由发现表[7]。

路由表中主要由路由状态信息、目标地址、组地址、下一跳地址等组成。

路由发现表主要由路由发现序列号、源地址、发送者地址(与源地址区别,这个可能是转发器的地址)、前向耗废,累计耗废以及消忘时间等组成。

路由表能力是指一个设备有能力使用其路由表来建立到某个目标设备的一条路由。一般把满足以下条件的设备叫作有路由表能力:1)它是一个ZigBee协调器或ZigBee路由器;2)它维护一个路由表;3)它有一个空闲的路由表条目或已经有一个对应于目标地址的路由表条目。

网络设备在NWK层上通过路由发现程序来寻找和建立路由,它总是由指定的源设备和目标设备共同参与完成的。网络层从上层网络实体收到NLDE.DA⁃TA.request原语,并且该原语的DiscoverRoute参数为TRUE时,在如下情况下,路由发现程序会被NWK层初始化:网络层帧报头中的目的地址不是当前设备地址或者广播地址;NWK层帧控制域的发现路由子域值为1;在路由表中没有与DstAddr相对应的入口[6]。

路由发现期间,一个ZigBee路由器或ZigBee协调器需要维护以便于参与发现某条路由的信息,分布在一个路由表条目和一个路由发现表条目之间。一旦发现完成,只有路由表条目需要维护,以便NWK层可以沿着所发现的路由执行路由寻找。

在本节中,提到了一个路由表条目及其对应的路由发现表条目之间的这种关系,反之亦然。这一对应的维护取决于执行者,因为表中的条目没有任何共同之处,但是值得注意的是定义一个路由发现的唯一密钥,是路由发现命令帧的源地址,路由请求ID由该设备生成,并在命令帧负载中携带。

3 ZigBee技术在扩展型家庭网络中的应用

ZigBee所具有的低速率、低功耗的无线互联应用的特点,非常适合家庭无线组网。本节主要讨论Zig⁃Bee技术在扩展型家庭网络的应用。

3.1 基于ZigBee技术扩展型家庭网络的网络拓扑图

图5给出了基于ZigBee技术扩展型家庭网络的网络拓扑图。

数字家庭网络中的ZigBee子网关与ZigBee终端设备,依据ZigBee协议构成自组织的ZigBee家居控制网络,该网络通过数字家庭网关实现与处于公共网络中的中心服务器的双向通信。

3.2 系统主要模块设计与实现

扩展型网络子网关是智能家居中一个核心设备,它实现了与外网服务器的直接通信,同时对受控设备进行直接的控制。其软件架构主要包括6个部分:主控制模块、Zigbee通信模块、TCP/IP通信模块、指令解析模块、数据处理模块和外部事件处理模块。各模块

图5 基于ZigBee技术扩展型家庭网络拓扑图

间的关系如图6所示。

图6 功能模块关系图

图6中实线箭头表示模块间有直接通信关系;虚线表示模块间有牵制关系,它们通过主控制模块进行间接通信。

如图6所示,主控制模块时刻监视着系统的运行,以实现对各功能模块的调度。外部事件处理模块受到外部事件的触发,当检测到有外部事件发生时修改系统状态并通知主控制模块进行相应的处理。

扩展型网络子网关运用上述几个模块,实现了家居设备与系统后台之间的通信,其具体功能实现包括以下主要部分。

3.2.1 ZigBee通信具体实现

系统采用星型组网方式构建了一个WPAN网络,在WPAN网络中可同时存在两种不同类型的设备,一种是简化功能的设备(RFD),另一种是具有完整功能的设备(FFD)。FFD主要作为WPAN中的协调器,它可与多个RFD以及FFD建立直接通信;RFD作为WPAN中的一个终端设备,只能与一个FFD建立直接通信,在本系统中它用于连接家庭中的受控设备(如水电气计量表、电器、传感器等)。

3.2.2 数据采集、处理及设备控制

ZigBee技术在扩展型家庭网络中主要用于计量数据的采集以及设备的控制。为了实现ZigBee网络中控制器和受控设备的正常通信,制定了一套标准的数据帧格式(见图7)。

图7 ZigBee网络通信数据帧格式

在扩展型家庭网络中,ZigBee网络协调器作为数据采集的集中处理及设备控制的中心节点,存在于家庭子网关中。各数据采集设备及受控设备通过ZigBee网络与子网关建立直接的通信。

3.2.3 TCP/IP通信

由于IPv4仍然广泛使用,家庭局域网内部使用的是私有IP地址[8],且一般情况下家庭网络中外网入口IP是通过DHCP服务器自动分配,有一定的租用期。因此,要实现外网服务器对家电设备进行实时查询和控制就必须使扩展型网络子网关能够主动与外网服务器建立稳定的连接[9]。

基于以上需求,必须在扩展型网络子网关中加入一个TCP/IP网络客户端,与ZigBee协调器共同构成一个整体。TCP/IP网络客户端的主要功能是与外网服务器建立稳定的连接以实现实时的双向通信,同时也具有一定的异常处理能力。

如图8所示,扩展型网络子网关首先向服务器发送连接请求。连接成功建立后,扩展型网络子网关将用户信息发送到远程服务器进行注册,注册后服务器可根据用户信息查询指定用户的家电设备计量数据,这是实现家电设备状态查询的关键。

图8 网关注册请求流程

3.2.4 指令解析模块功能实现

指令解析模块是实现ZigBee协议与TCP/IP协议转换中间部件,它负责对服务器端的查询、控制命令进行解析,以便ZigBee协调器根据解析结果通知各站点做出相应的操作。

数据帧格式的设计是实现扩展型网络子网关与服务器双向交互的关键。在本系统中子网关需要与服务器交互的数据帧有如下几种:1)注册请求帧,由网关发出,用于向服务器请求注册;2)注册状态帧,由服务器发出,作为注册请求帧的回应帧,用于向扩展型网络子网关传达注册状态;3)查表命令帧,由服务器发出,用于向扩展型网络子网关发送查询命令;4)设备控制帧,由服务器发出,用于向扩展型网络子网关发送设备的控制命令,如关闭水电气供应;5)设备数据帧,由扩展型网络子网关发出,作为查表命令帧的回应帧,用于返回所查家电设备的计量数据;6)连接心跳帧,由服务器发出,网关通过该数据帧判断服务器工作是否正常。

4 小结

本文开头先对比了同为2.4 GHz频段的ZigBee、蓝牙、WiFi技术,并通过对扩展型家庭网络的介绍,分析其特点,给出了ZigBee技术用于扩展型家庭网络的可行性与优势。

本文先简略地介绍了ZigBee的历史、发展,然后较为详细地讨论了ZigBee技术中的关键部分,包括Zig⁃Bee的组网技术和路由技术。在讨论组网技术的时候重点介绍了ZigBee网络的拓扑及地址分配的算法。接着详细介绍了路由的算法以及ZigBee协议在一些具体的协议栈里面是如何实现的。

最后阐述了ZigBee技术如何应用在一个具体的项目——扩展型家庭网络中。整个系统包括:Internet服务器端、家庭ZigBee子网关与ZigBee终端设备。较为详细地介绍了其中主模块的设计与实现,包括通信模块、数据采集模块和指令解析模块等。

ZigBee技术弥补了低成本、低功耗和低速率无线通信市场的空缺。但是在标准化、应用推广、安全性、数据库集成等方面仍有待充实与提高,这几点无疑会给今后的研究工作带来更大的挑战,同时也是更多的期待[2]。相信通过不懈的努力和追求,本课题一定会取得更多的成果。

[1]Jennie. Zigbee home snesor demonstration user[EB/OL].[2011-06-10].http://wenku.baidu.com/view/bb7c5a33b90d6c85ec-3ac66a.html.

[2]刘青,宋立军.ZigBee无线传感器网络组网研究[J].电脑开发与应用,2008(6):44-45.

[3]原羿,苏鸿根.基于ZigBee技术的无线网络应用研究[J].计算机应用软件,2004,21(6):89-91.

[4]ZigBee Alliance.ZigBee specification[EB/OL].[2011-03-03].http://www.doc88.com/p-10387572691.html.

[5]IEEE Computer Society.IEEE Std 802.15.4-2003[EB/OL].[2011-05-03].http://www.docin.com/p-57745404.html.

[6]周武斌,罗大庸.ZigBee路由协议的研究[J].计算机工程与科学,2009(6):12-14.

[7]江玲,周健明.ZigBee网络层关键技术研究与实现[J].黄石理工学院学报,2009(1):27-31.

[8]3Com Corp.White paper:understanding IP addressing:everything you ever wanted to know[EB/OL].[2011-05-10].http://wenku.baidu.com/view/4362ea75a417866fb84a8e55.html.

[9]科姆.计算机网络与因特网[M].5版.北京:清华大学出版社,2010.

猜你喜欢

家庭网络路由表网关
基于OSPF特殊区域和LSA的教学设计与实践
研究路由表的查找过程
信号系统网关设备的优化
基于WLAN技术的智能家居系统设计方案
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
MoCA+W iFiW iFi:家庭网络的未来
一种实时高效的伺服控制网关设计
希捷 智汇盒家庭网络硬盘助你管理家庭数码内容
BGP创始人之一Tony Li:找到更好的途径分配互联网地址