ZigBee基础知识 您所在的位置:网站首页 zigbee使用的频段是 ZigBee基础知识

ZigBee基础知识

2024-06-10 22:15| 来源: 网络整理| 查看: 265

一、基础知识 1.1 什么是ZigBee

在智能领域的硬件和互联网中,著名的ZigBee组网应该是没有人不知道。除了wifi,蓝牙之外,ZigBee是目前的一个最重要的无线通信协议之一,主要用于物联网和智能硬件和其他领域之中

首先ZigBee是IEEE802.15.4协议的代名词。根据这个协议规定的技术是一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术,主要适合于自动控制和远程控制领域,可以嵌入各种设备中,同时支持地理定位功能。由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位和远近信息的,也就是所蜜蜂依靠着这样的方式构成了群体中的通信“网络”,因此ZigBee的发明者们形象地利用蜜蜂的这种行为来形象地描述这种无线信息传输技术。

ZigBee是建立在 IEEE 802.15.4 标准之上,由于 IEEE 802.15.4标准只定义了物理层协议和MAC 层协议,于是成立了zigbee联盟,ZigBee联盟对其网络层协议和 API 进行了标准化,还开发了安全层。经过ZigBee联盟对 IEEE 802.15.4 的改进,这才真正形成了ZigBee协议栈(Zstack)。 图1 ZigBee和802.15.4

ZigBee的特点

数据传输速率低:10KB/秒~250KB /秒,专注于低传输应用。

功耗低:在低功耗待机模式下,两节普通5号电池可使用6~24个月。

成本低:ZigBee数据传输速率低,协议简单,所以大大降低了成本。

网络容量大:网络可容纳 65,000 个设备。

时延短:通常时延都在 15ms~30ms。

安全: ZigBee提供了数据完整性检查和鉴权功能,采用AES-128加密算法(美国新加密算法,是目前最好的文本加密算法之一)

1.2 ZigBee网络拓扑

如网络图中所述,zigbee网络由协调器(C),路由器(R)和终端设备(E)组成。Zigbee支持网状路由。有关zigbee中使用的路由协议的详细信息,可以参考Ad-hoc按需距离矢量路由协议(AODV协议),RFC 3561 图2 ZigBee中各个设备 图3 ZigBee网络拓扑

Coordinator(协调器):

总是需要安装第一个协调器来建立zigbee网络服务,它启动一个新的PAN(个人区域网络),一旦启动其他zigbee组件即。路由器(R)和终端设备(E)可以加入网络(PAN)。

负责选择频道和PAN ID。它可以帮助通过网状网络路由数据,并允许来自R和E的加入请求。 它是主电源(AC)并支持子设备,它不会进入睡眠模式。

协调器选择一个信道和一个网络ID(也称之为PAN ID,即Personal Area Network ID),随后启动整个网络。协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。

注意,协调器的角色主要涉及网络的启动和配臵。一旦这些都完成后,协调器的工作就像一个路由器(或者消失go away)。由于ZigBee网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。

Router(路由器):

第一个路由器需要加入网络,然后它可以允许其他R&E加入PAN。 主电源(AC)和支持子设备,它不会进入睡眠模式。

路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的终端设备的通讯。

通常,路由器希望是一直处于活动状态,因此它必须使用主电源供电。但是当使用树状网络拓扑结构时,允许路由间隔一定的周期操作一次,这样就可以使用

End-Device(终端设备):

它不允许其他设备加入PAN,也不能协助通过网络路由数据。

电池供电,不支持任何儿童设备。 这可能会睡眠,因此可以在很大程度上最小化电池消耗。

有两种拓扑结构,星形和网状,如前所述Zigbee支持网格路由。PAN ID用于zigbee设备之间的通信,它是16位数。协调器将PAN ID始终设置为零,并且所有其他设备在加入PAN时将接收16位地址。完成Zigbee网络安装有两个主要步骤。通过协调器形成网络并通过路由器和终端设备加入网络。

终端设备没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此它可以可以是一个电池供电设备。通常,终端设备对存储空间(特别是RAM的需要)比较小。

形成Zigbee网络

协调员搜索合适的RF信道,该信道可用且不会干扰正在使用的无线LAN频率。这是因为WLAN也在相同的2.4GHz频段运行。这是在所有16个频道上完成的。它也被称为能量扫描。

协调器通过为网络分配PAN ID来启动网络。分配以两种方式完成。手动(预配置)和动态(通过检查附近操作中已有网络的其他PAN ID获得,以便PAN ID不与其他网络冲突)。协调器还为自己分配网络地址,即0x0000。

现在协调器完成其配置,并准备接受希望加入PAN的路由器和终端设备的网络加入请求查询。

除此之外,协调器(C)在剩余的安静信道上发送广播信标请求帧。这也称为信标扫描或PAN扫描。通过该协调器接收附近存在的路由器(R)和终端设备(E)的PAN ID。还要知道R / E是否允许加入。

现在R / E可以通过向C发送关联请求来加入.C将响应关联响应。

加入Zigbee网络

让我们一起研究路由器或终端设备如何作为zigbee教程的一部分加入zigbee网络。有两种方法可以加入zigbee网络即可。MAC关联和网络重新加入。

第一个由设备底层MAC层实现,第二个由网络层实现,尽管名称也可能首次用于加入网络。

MAC关联可以在C和R / E之间或R和E或R和其他R之间执行。

让我们假设协调员(C)已经建立了PAN网络。因此,R或E的下一步是找出C是否允许加入。因此他们进行PAN扫描或发送信标请求帧。

在他们知道他们可以加入网络后,他们将发送关联请求框架,并在收到关联响应后立即加入网络。

如上所述,无论C或R是否允许新设备加入,取决于两个主要因素:允许加入属性、已有的终端设备子项数。

zigbee在家中的应用之一是使用zigbee技术控制开关,扬声器和灯。

ZigBee有两个工作频段868 / 915MHz和2450MHz。868/915频段提供大约20-40Kb / s和2450MHz频段提供大约250 kb / s的数据速率。除此之外,使用zigbee终端设备可以进入睡眠模式,这节省了电池消耗,并且由于安全层,它还负责信息的安全性。

1.3 工作模式

信标与非信标模式

ZigBee网络的工作模式可以分为信标(Beaeon)和非信标(Non-beaeon)两种模式。信标模式实现了网络中所有设备的同步工作和同步休眠,以达到最大限度的功耗节省,而非信标模式则只允许终端设备进行周期性休眠,协调器 和所有路由器 设备必须长期处于工作状态。

信标模式下,协调器负责以一定的间隔时间(一般在15ms-4mins 之间)向网络广播信标帧,两个信标帧发送间隔之间有16 个相同的时槽,这些时槽分为网络休眠区和网络活动区两个部分,消息只能在网络活动区的各时槽内发送。

非信标模式下,ZigBee 标准采用父节点为终端设备子节点缓存数据,终端设备主动向其父节点提取数据的机制,实现终端设备的周期性(周期可设臵)休眠。

Soc模式与host模式

Soc模式也可以叫单芯片模式,zigbee协议栈是运行在zigbee芯片上的, HOST+NCP, NCP是zigbee协议 ,只运行协议栈的部分,还有一部分(通常zdo,zcl)有关的都在host上,host可以是pc, arm, linux,android等。

二、ZigBee协议栈

图4 ZigBee协议栈简易分层 图5 ZigBee协议栈架构 图6 ZigBee协议栈架构

协议栈规范(Stack Profile):

协议栈规范由ZigBee联盟定义指定。在同一个网络中的设备必须符合同一个协议栈规范(同一个网络中所有设备的协议栈规范必须一致)。

ZigBee联盟为ZigBee协议栈2007定义了2个规范:ZigBee和ZigBee PRO。所有的设备只要遵循该规范,即使在不同厂商买的不同设备同样可以形成网络。

如果应用开发者改变了规范,设备只有在自己的产品中使用,不能与其他产品通信。称之为“特定网络”规范。协议栈规范的 ID 号可以通过查询设备发送的 beacon 帧获得。在设备加入网络之前,首先需要确认协议栈规范的 ID。

“特定网络” 规范 ID 号为 0;ZigBee 协议栈规范的 ID 号为 1;ZigBee PRO 协议栈规范的ID 号为 2。

2.1 应用层(application layer,APL):

请参阅我们关于OSI和TCPIP基础知识的文章来理解应用层。此层有两个配置文件。1.制造商特定的应用程序配置文件 - 作为封闭系统运行,并确保它们可以与其他zigbee系统共存。2.公共应用程序配置文件 - 为了实现各种zigbee设备之间的互操作性是必须的。单个zigbee节点最多支持240个称为端点的应用程序对象。端点指定特定应用程序,例如,0专用于ZDO(Zigbee设备对象),提供控制和管理命令。6用于控制光线。8用于管理供暖和空调。

需要明白的是,mac和nwk已经完成zigbee协议规范的所有功能集合,apl(application layer)之内的zdo、aps、af、zdp都是为应用和交互nwk层服务的,其不再需要继续实现zigbee相关功能。

2.1.1 zigbee设备对象(ZigBee Device Objects,zdo)

zdo属于apl,在aps之上的应用接口层,主要负责:

实现除af应用端点之外的,包含nwk、aps、ssp初始化;

解析用户应用的不同配置实现包含,Primary Discovery Cache Device Operation、Device and Service Discovery 、安全管理、网络管理、绑定管理、Node Manager 、Group Manager 服务。

2.1.2 ZCL( ZigBee Cluster Library)http://notes.leconiot.com/zcl.html

ZCL是zigbee 应用框架层上用以约定抽象描述物联网设备的协议规范,zigbee 将不同的物联网设备按照功能分类分解成单个cluster 元素,而zcl就是所有cluster的集合,也就是对于不同厂商需要的物联网产品,都可以基于zcl 的中cluster描述,通过这样的标准设备描述语言,实现真正意义的万物互联。

如下是物联网设备中典型设备开关/插座,其产品功能集合可以通过一系列cluster描述,其中on/off(0x0006) 用以描述开关功能, basic(0x0000) 用以描述程序版本等基础信息。 图7 ZCL位置

图8 一个产品的描述

在zigbee cluster specification 里,定义如上包含关系,某个设备可以理解为多个cluster的集合(list),而zcl 约定了这里cluster,同时对于每一个固定cluser又是同时包含一个或者多个Attribute、Behavior、Command、Dependency,如下分开解释Cluster下的A、B、C、D。

Attribute 表示某个设备物理特征和状态的数据值,该数据值同其他设备通过如下Command操作关联;反映物理数量或状态的数据值,比如开关值(On/Off),温度值、百分比等

Behavior 行为;

Command 操作或者影响熟悉的动作;

Dependency 依赖;

如上的Command 集合是针对固定Cluster下面的Attribute操作的,同时对于所有的Attribute,zcl还约定一系列的通用操作命令。具体可阅读07-5123-07-ZigbeeClusterLibrary_Revision_7.pdf

2.1.3 Base Device Behavior(BDB)

bdb 是zigbee 应用层上面的纯接口层,提供了设备操作网络相关的交互行为,也就是bdb已经概况总结了可能的人机操作网络的行为(例如,建立网络/加入网络/离开网络),并且规划成接口,方便应用层直接调用,从而进一步规范厂商的应用行为,达到标准化。 图9 BDB

包含未加入网络设备的如下行为:

信道扫描;

选择一个开放网络执行关联加入;

获取 network key;

集中式安全网络的tc link key获取;

而对于已经加入网络的设备的:

控制mac运行设备加入180s(开放网络);

关闭网络;

network formation

信道扫描;

选择一个合适信道,并且初始化网络参数;

作为协调器的集中式安全网络以及tc(信任中心)建立;

作为路由可能的分布式网络下的建立; 图10

广播 identify query request 并且接收回复;

请求 simple descriptor;

匹配 initiator 和 target的cluster;

在绑定表创建对应关系;

2.2 应用支持子层(application support sublary,APS) 2.3 网络层(network layer,NWK)

在网络层使用Ad-hoc按需距离矢量路由协议(AODV)。

zigbee路由机制参考这篇文章

2.4 安全层

如果启用了安全性,则zigbee设备将使用128位AES加密密钥启动。具有相同安全密钥的设备可以在PAN上通信。

如何获得此密钥?

1.预安装

2.在加入过程中通过空中接收钥匙。

2.5 MAC层

每个MAC帧由三个字段MAC头,MAC有效载荷和MFR(FCS)组成。

每个MAC帧将包含帧控制字段(16位),其携带帧类型,寻址字段和其他控制标志。

该MAC控制字段包含帧类型字段,这是用于识别一个MAC帧与另一个MAC帧的主要区别因素。它的长度为3位。

MAC帧分为以下四个主要类别,zigbee设备使用它们通过交换系统信息建立与PAN的连接。

1.信标

2.数据

3.确认

4.MAC命令

参考描述信标,数据,确认,帧和命令帧的Zigbee MAC帧格式。

zigbee MAC层帧由MAC头,MAC有效载荷和FCS组成。下图描绘了MAC层zigbee技术中采用的通用mac帧格式。该部分也称为MPDU或MAC协议数据单元。这嵌入到zigbee的PPDU(物理PDU)帧中。

通用MAC帧格式

2.6 Zigbee 3.0协议栈

11 ZigBee3.0协议栈

图11描绘了zigbee 3.0协议栈。如图所示,它由PHY,MAC,网络和应用层组成。与以前的zigbee版本相比,这些更改已合并到zigbee 3.0中的应用程序层中。网络层在上层即应用层和PHY / MAC之间进行切换,如IEEE 802.15.4标准中所定义。

zigbee 3.0协议栈包含zigbee基础设备层,为调试网络中的新节点提供了一致的行为。 图12 ZigBee3.0安全模式

安全层也得到了增强,这里支持两种安全模式。

集中:此模式由中央协调员管理。该协调员构成网络,并负责新加入节点的密钥分配。

分布式:此模式没有任何中央协调员。zigbee路由器本身管理网络中的对等路由器的网络建立和密钥分配。

图12描绘了zigbee网络安全模式。

Zigbee 3.0支持大约250个节点。

它还支持网络的动态特性。

它支持在父节点丢失的情况下使用新父节点重新连接孤立节点。

Zigbee 3.0提供与其他zigbee应用程序配置文件的向后兼容性,例如zigbee light link 1.0 profile,zigbee home automation 1.2 profile等。

2.7 Zigbee物理层(PHY)

Zigbee标准中有868 / 915MHz和2450MHz频段各有 两种物理层格式。采用BPSK调制的868-868.6 MHz zigbee频段提供约20Ksymbol / s。902-928 MHz频段通过BPSK调制提供约40 Ksymbol / s。通过O-QPSK调制,2400-2483.5 MHz提供约62.5 Ksymbol / s。

在2.4GHz频段,共有16个信道,信道通信速率为250kbps;在915MHz频段,共有10个信道,信道通信速率为40kbps;在896MHz频段,有1个信道,信道通信速率为20kbps。 图13 ZigBee信道

三、ZigBee帧构造

有了如上描述分层结构认识和功能概况,也可以对应zigbee 空中包加深认识,如下数据结构,从mac从开始每层包含一个协议头和数据负载,依次向上,上层的帧构造是基于下一层的数据负载。

对应mac层,这里展开了协议头,由一些列的标志位来表示mac层的协议实现。 图13 ZigBee帧构造

有了上面的帧构造认识,我们就可以清晰解析如下空包,但是具体的协议头和数据负载解析还需要按照ieee组织和zigbbee 联盟协议规范对应章节的帧构造查询。 图14 一个抓包

这里总结了所有分层实现的帧构造对应章节,方便直接查询。

层 帧构造 zcl zigbee-cluster-library-specification.pdf ->Chapter 2 Foundation->2.4 Command Frame Formats->2.4.1 General ZCL Frame Format aps zigbee specification.pdf ->Chapter 2 Application Layer Specification->2.2.5 Frame Formats nwk zigbee sepecification.pdf ->Chapter 3 Network Specification->3.3 Frame Formats mac 802.15.4-2011.pdf->5. MAC protocol->5.2 MAC frame formats->5.2.1 General MAC frame format 四、数据传输流原语



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有