深入浅出畅谈Zigbee
ZigBee采用802.15.4标准作为其对等通信的基础。该标准由ZigBee联盟(ZigBee Alliance)开发并管理。ZigBee Alliance是一家投资于该标准并在无线领域进行推广的联合组织,并且日益为业界所关注。不过ZigBee拥有自己独特的应用功能,用户应对此进行充分了解,而不是仓促地将其应用于所有的低功耗无线应用领域。
ZigBee最常用作异步通信标准,其具备CSMA/CA通道接入能力,并拥有802.15.4章节所述的所有功能。针对相同市场领域的情况下,相比之下ZigBee可为寻求准担保信息交付、大规模轻松网络集成以及设备间互操作性的开发人员提供众多优势,同时还提供众多802.15.4标准不能直接解决的较高级别网络问题的解决方案。
ZigBee网络的实施有三种拓扑,如图3所示。与802.15.4类似,ZigBee支持对等通信与星型配置。ZigBee在802.15.4规范之上添加了路由协议与层级网络寻址方案,可实现群集树拓扑结构(具有相同PAN ID)以及多跳网状网络拓扑。
这些拓扑结构均由可实现三种逻辑抽象功能之一的802.15.4FFD和RFD节点提供支持。必须为FFD的ZigBee协调器将启动网络和管理网络连接与安全密钥等大多数网络参数,是路由消息不可分割的组成部分。ZigBee路由器也必须为FFD,负责转发往返于其他网络节点的消息,并实现ZigBee网络的网状网特性,同时扩展网络的总体覆盖范围。ZigBee协调器与路由器一般由主电源供电,因为它们应能够在任何时间接收和传输消息。如果预计应用的数据传输是周期性的,则ZigBee也可以采用802.15.4同步网络的TDMA消息传输协议。ZigBee终端设备以RFD方式实施,可以最大限度地减少其占空比和资源要求,从而实现采用电池供电并长期工作的目的。深圳无线龙推出的LBee系列Zigbee无线模块更是让Zigbee应用变得简单。
ZigBee理想适用于具有下列要求的应用:
● 采用标准化的物理层与较低层协议(IEEE 802.15.4);
● 标准化的较高层协议(比如网状网拓扑,多跳等);
● 全面互操作性,甚至达到应用层级别(公共配置文件);
● 设计与开发要求低(仅限于应用);
● 技术支持与维护厂商/供应商之间竞争激烈。
ZigBee可接受下列劣势:
● ZigBeel Alliance成员费用;
● 认证费用(如果不专门针对符合ZigBee或者ZigBee认证的产品则无需此费用);
● 代码量(功能性的开销可能大到难以使用);
● 无线电广播通道限制(限于在IEEEl 802.15.4中指定的通道)。
上述所列各项表明需要对许多项目进一步澄清,因此首先对标准化的较高层协议进行描述。与802.15.4相比,如图4所示,ZigBee可向上实施至OSI无线应用网络模型的传输层,甚至能够达到部分会话层。
图2:ZigBee的OSI网络模型
对802.15.4协议最突出的三项新特性是网状网路由算法,一个功能强大的安全实施,以及应用级抽象以在目标市场领域中实现设备与可互操作“应用配置文件”的强大关联性。
ZigBee网络的网状网路由算法使其成为网络上终端设备之间数据交付的极可靠方式。除了能够在网络中确保分组交付的可选端到端确认,ZigBee还定义了能够围绕故障节点进行通信的路由发现算法,这也称为ZigBee的通信自愈能力。路由发现是一种可由任何路由器设备启动并始终针对特定目的地执行的最短路径算法。计算的原理是由于每个节点都一直保留着至所有相邻设备的“链接成本”记录,其中链接成本是测量所接收信号的信号强度。累加沿路由所有链接的链接成本就可得出“路由成本”,并可计算网络中每个路由的路由成本。
节点可以通过向其相邻设备广播针对特定目的地的路由请求(RREQ)数据包来请求路由发现。每当某节点接收RREQ时,其就会向路由成本累加其链接成本,然后再相应广播RREQ。这种情况将反复进行,直至所有RREQ均到达目的地设备。然后目的地设备将选择路由成本最低的RREQ数据包,并广播路由回复(Route Reply)。当RREP数据包返回至源地,所有中间节点将更新它们的路由表,指示通往目的地的路由。这样,节点可丢失至下一跳的连接,并向网络发送路由错误(RERR)数据包,以便在下一次有人试图向其发送消息时,就会启动新的路由发现。
ZigBee可实施广泛的安全措施。ZigBee采用三种安全性密钥,即用于长期安全性的主密钥、加入网络的网络密钥,以及用于对等通信的加密密钥。采用AES-128位加密标准执行加密。在检验消息的完整性方面,ZigBee采用MIC-128,即消息完整性代码。此外,通过使用协调器作为信任中心从单个节点管理所有安全性,网络还能够定期选择对对称加密密钥进行更新,从而实现安全通信的无限管理。
不过,应用级抽象可能是ZigBee最具有竞争力的特性。可以对每个节点进行汇编以容纳多达270个“端点”或者应用。举例来说,每个端点都可以代表一个电灯开关或者一个灯泡(灯泡01、灯泡02等)。每个端点可以接受任意类型的数据,也可以发送任意类型的数据。从某端点输出到另一端点的输入数据有单个描述符,一般称为群集(Cluster)。为继续使用灯泡作为例子,假定被命名为“light_status_on_off”的灯泡开关状态是这些称为群集的数据描述符之一。然后,每个端点就可以根据端点ID(1-270)及其群集列表(接收或者传输的数据类型)进行描述。在群集匹配的情况下,就可以进行一对一或者一对多端点的逻辑绑定。在该例中,某一灯泡开关可以与任一或者所有被描述为支持“light_status_on_off”群集的灯泡逻辑绑定。这种应用级的一对一或者一对多绑定是ZigBee协议功能强大的特性。
如果ZigBee Alliance当时定义了群集列表和解释端点间群集流的方法,就可以为特定应用(如电灯开关/电灯泡等)指定标准,且无需担心用于实施应用的具体硬件。ZigBee Alliance正好已经完成了这项任务,将这些标准称为应用配置文件,从而不仅使来自不同厂商的应用能够完全实现互操作性,而且还加强了ZigBee低功耗无线网络目标市场领域的整体竞争性。
如果互操作性不是设计人员的主要意图,ZigBee Alliance还可以让设计人员定义不共享的企业专用型应用配置文件。为简明扼要,我们就不对ZigBee实施的其他特性进行详细讨论了,这些特性包括群组寻址、频率捷变、会话故障的自动重加入和协议最新版本ZigBee 2007(也称为ZigBee PRO)提供的系列附加特性。ZigBee PRO基本上仍属于ZigBee标准范畴,但在编辑时增加了用于优化支持超大网络集成的特性。
采用ZigBee协议进行产品设计的劣势包括与开发ZigBee产品相关的成本:按年支付给ZigBee Alliance的成员费用、认证产品是否符合ZigBee的费用以及协议本身的存储器占用。ZigBee协议加载的特性很难在每项应用中都得到充分利用,从而在定制解决方案的情况下需要设计额外的存储器资源。在某些情况下,对存储器与资源的要求甚至可以限制到最终应用级。因此,部分企业推出了具备集成MCU、预加载了ZigBee软件协议栈的无线电广播组件,其运行则由少量API对另一个以应用为中心的MCU的调用来控制。通过采用SPI通信来更新ZigBee芯片的配置,应用MCU可以免受协议对存储器与资源要求的限制,可以有效地处理其他应用任务。
家庭安全网络
第二与第三个例子将显示出,如果要求略有变动就会导致选择不同的协议。本系统是一个在已装修好的家居环境中安装的家庭安全网络,因此重新布线会花销太大。我们可选配安装几种不同的传感器,如烟雾传感器、玻璃破损传感器、运动传感器以及门禁控制感测(access control)等。每个传感器都与基站通信,然后基站再与家庭安全监控公司通信。该系统应能够与其它传感器实现互操作性,举例来说,从一家公司的烟雾检测器可以配合另一家公司生产的运动检测器。该网络必须具有高度安全性,以防窃听或篡改。设计进度安排能允许工程师有一定的学习时间,以加快网络协议的设计工作。深圳无线龙推出的Zigbee无线传感器网络开发平台,适合广大的设计开发者做二次开发应用。
● 应用方面的考虑事项:
● 家庭安全网络;
● 烟雾检测、玻璃破损、运动检测以及占用检测等;
● 基站必须向家庭安全监控公司传输数据;
● 用户界面必须直观易懂;
● 需要遵循业界标准;
● 应能够从不同厂商技术之间的互操作性及其相关支持方面受益***;
● 稳健性与可靠性;
● 关键的设计标准;
● 系统必须具有高度的安全性,以防篡改、窃听;
● 易用性;
● 需要标准化的实施方案实现可靠性与安全性***;
● 计划在总体的家庭自动化网络中集成家庭安全性应用;
● 愿意花时间学习与充分利用更复杂的API;
● 硬件与RF方面的考虑事项;
● 大多数网络设备都采用电池供电。
本例中的最终结果应选择使用ZigBee,因为不仅需要与不同厂商提供的设备互操作,还要确保满足标准化的可靠性与安全性要求。
深入浅出畅谈Zigbee的更多相关文章
- DTSE Tech Talk | 第10期:云会议带你入门音视频世界
摘要:本期直播主题是<云会议带你入门音视频世界>,华为云媒体服务产品部资深专家金云飞,与开发者们交流华为云会议在实时音视频行业中的集成应用,帮助开发者更好的理解华为云会议及其开放能力. 本 ...
- zigbee 学习记录之一:资料搜索
先从网络来一段资料吧,在学习过程中慢慢整理资料. <由于zigbee 以cc2530 51单片机为基础,Zstack为源头,比较成熟了,学习和摸索就从Zstack开始吧.没有师傅,就有从网络上大 ...
- 深入浅出Z-Stack 2006 OSAL多任务资源分配机制
转自深入浅出Z-Stack 2006 OSAL多任务资源分配机制 一.概述 OSAL (Operating System Abstraction Layer),翻译为"操作系统抽象层&quo ...
- zigbee、profile、cluster、 endpoint、
1.引用ZigBee联盟的说法 Profile: a collection of device descriptions, which together form a cooperative appl ...
- 深入浅出低功耗蓝牙(BLE)协议栈
深入浅出低功耗蓝牙(BLE)协议栈 BLE协议栈为什么要分层?怎么理解蓝牙"连接"?如果蓝牙协议只有ATT没有GATT会发生什么? 协议栈框架 一般而言,我们把某个协议的实现代码称 ...
- ZigBee相关网站链接
1.Arduino开源智能家居<认识Zigbee>zigbee功能和自组网介绍-Arduino中文社区 2.小米智能家庭套装为什么选择 ZigBee 协议?|极客公园 3.晓网智能家居Zi ...
- zigbee ---- endpoint理解
很多资料将其翻译为“端点”,我们不如也这么叫. 在windows上使用不同的软件进行通信,数据包到达不同的应用的方法就是通过寻找IP地址和端口号来确定某一个应用的,也就是我们所说的五元组(源IP,目的 ...
- 深入浅出讲解低功耗蓝牙(BLE)协议栈
详解BLE连接建立过程https://www.cnblogs.com/iini/p/8972635.html 详解BLE 空中包格式—兼BLE Link layer协议解析https://www.cn ...
- 【深入浅出jQuery】源码浅析--整体架构
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
随机推荐
- [TYVJ] P1055 沙子合并
沙子合并 描述 Description 设有N堆沙子排成一排,其编号为1,2,3,…,N(N<=300).每堆沙子有一定的数量,可以用一个整数来描述,现在要将这N堆沙子合并成为一堆,每次 ...
- Typecho 代码阅读笔记(三) - 插件机制
转载请注明出处:http://blog.csdn.net/jh_zzz 以 index.php 为例: /** 初始化组件 */ Typecho_Widget:: widget('Widget_Ini ...
- JS设置获取cookies
结合JavaScript权威指南,加上项目开发时在网上搜集的资料,整理了两种设置和获取cookie的方法. <script> //设置cookie 方法一function setCook ...
- Http响应报文
HTTP响应也由三个部分组成,分别是:状态行.消息报头.响应正文. 其中,HTTP-Version表示服务器HTTP协议的版本:Status-Code表示服务器发回的响应状态代码:Reason-Phr ...
- Linux APP源码级编译安装
首先需要了解下tar包. 以下文章作出解释了: http://www.cnblogs.com/laipDIDI/articles/2214270.html http://baike.baidu.com ...
- HDU5437 Alisha’s Party (优先队列 + 模拟)
Alisha’s Party Time Limit: 3000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- 文件MD5
package mainimport ( "crypto/md5" "fmt" // "github.com/astaxie/bee ...
- asp数组的使用
定义简单数组 有两种方法在asp中定义和初始化数组,让我们看看每种的例子: 方法一:MyArray = Array("Jan","Feb","Mar& ...
- Linux 文件操作——系统调用和标准I/O库
一.什么是文件 在讲述文件操作之前,我们首先要知道什么是文件.看到这个问题你可能会感觉到可笑,因为对于用过计算机的人来说,文件是最简单不过的概念了,例如一个文本是一个文件,一个work文档是一个文件等 ...
- 设置Android设备在睡眠期间始终保持WLAN开启的代码实现
MainActivity例如以下: package cc.ab; import android.os.Bundle; import android.provider.Settings; import ...