文章目录
介绍了 ZigBee PRO 的重要概念,并详细介绍了针对 ZigBee 3.0 应用开发的API。
第1部分 概念和操作信息
二、ZigBee PRO 架构和操作
本章从架构和操作角度介绍ZigBee PRO,方法是:
- ZigBee PRO 所基于的基本架构(第2.1节)
- 在网络级别理解 ZigBee PRO 的概念(第2.2节)
- 网络形成过程(2.3节)
- 在应用程序级别理解 ZigBee PRO 的概念(第2.4节)
- 与 消息路由 相关的功能和概念(第2.5节)
- 与 交换消息 相关的功能和概念(第2.6节)
- ZigBee PRO 软件架构的详细视图(第2.7节)
2.1 架构概览
本节介绍在ZigBee PRO网络节点上运行的软件的基本体系结构。 该软件体系结构建立在 IEEE 802.15.4之上,IEEE 802.15.4是一种经过验证的无线通信标准。
从高层次来看,任何ZigBee网络的软件体系结构都包括四个基本协议栈层:应用程序层,网络层,数据链路层和物理层。 如下图所示,应用程序层是最高级别,物理层是最低级别。
ZigBee软件协议栈 的基本层从上至下描述如下:
-
应用程序层:应用程序层包含在网络节点上运行的应用程序。这些使设备具有功能-本质上是一个应用程序将输入转换为数字数据,和/或将数字数据转换为输出。单个节点可以运行多个应用程序-例如,环境传感器可能包含单独的应用程序以测量温度,湿度和大气压。
-
网络层:网络层提供ZigBee PRO功能以及应用程序与IEEE 802.15.4层的接口(请参见下文)。该层与网络结构和多跳路由有关。
-
数据链路层:数据链路层由IEEE 802.15.4标准提供,负责寻址-对于传出数据,它确定数据去向,对于传入数据,它确定数据来自何处。它还负责组装要发送的数据包或帧,以及分解接收到的帧。在IEEE 802.15.4标准中,数据链路层称为IEEE 802.15.4 MAC(媒体访问控制),并且使用的帧是MAC帧。
-
物理层:物理层是由IEEE 802.15.4标准提供的,与物理传输介质(在这种情况下为无线电)的接口有关,与该介质交换数据位,并与物理层交换数据位。上一层(数据链接层)。在IEEE 802.15.4标准中,物理层称为IEEE 802.15.4 PHY。
有关 ZigBee PRO 的软件体系结构的详细信息,请参阅第2.7节。
2.2 网络级概念(Network Level Concepts)
本节介绍与ZigBee堆栈工作有关的重要概念。
2.2.1 ZigBee 节点
协调器:
所有 ZigBee网络必须具有一个(只有一个)协调器。
在网络级别,系统初始化时主要需要协调器-它是要启动的第一个节点,并执行以下初始化任务:
- 选择网络要使用的频道(通常是活动最少的频道)
- 启动网络
- 允许子节点通过它加入网络
协调器还可以提供其他服务,例如消息路由和安全管理。它还可以在应用程序级别提供服务。如果使用了这些附加服务中的任何一项,则协调员必须始终能够提供它们。但是,如果这些附加服务均未使用,则即使协调器发生故障或已关闭,网络也将能够正常运行。
路由器:
ZigBee PRO网络通常至少具有一个路由器。
路由器的主要任务是:
- 将消息从一个节点中继到另一个节点
- 允许子节点通过它加入网络
请注意,路由器无法休眠,因为它必须始终可用于路由。
终端设备:
终端设备在网络级别的主要任务是发送和接收消息。 终端设备只能直接与其父设备通信,因此,往返于终端设备的所有消息都将通过其父设备传递。
终端设备可以由电池供电,并且在不进行发送或接收时,可以休眠以节省电量。 发往启用了睡眠的终端设备的消息将由其父级缓冲,以使其在唤醒后由终端设备收集(另请参阅下文第2.2.2节)。
请注意,终端设备不能中继消息,也不能允许其他节点通过它们连接到网络-也就是说,它们不能有子级。
2.2.2 网络拓扑(None)
2.2.3 邻居表
路由节点(路由器或协调器)保存有关其相邻节点的信息。 此信息存储在邻居表中,该表包含该节点的直接子项,其自身的父项以及网状网络中该节点与其进行直接无线电通信的所有对等路由器的条目。
可以在邻居表中定义最大条目数。 如果将此参数设置为较低的值,将导致“长而细的网络”。
邻居表的结构和配置在附录B.5.1中描述。
2.2.4 网络地址
在ZigBee网络中,每个节点必须具有唯一的标识。这可以通过两个地址来实现:
- IEEE(MAC)地址:这是IEEE分配的64位地址,用于唯一标识设备-世界上没有两个设备可以具有相同的IEEE地址。它通常被称为MAC地址,在ZigBee网络中,有时也被称为“扩展”地址。
- 网络地址:此16位地址标识网络中的节点,并且位于该网络的本地(因此,单独网络中的两个节点可能具有相同的网络地址)。有时称为 短地址。
在ZigBee PRO中,当节点首次加入网络时,父节点会将节点的网络地址动态分配为随机的16位值。由于地址分配的随机性,这称为随机寻址。尽管是随机的,但父级确保所选的地址尚未分配给其邻居之一。在网络邻居附近已经存在该地址的极少数情况下,存在一种机制可以自动检测并解决冲突。分配的网络地址可以由加入节点保留,即使后来失去其父节点并获得新的父节点也是如此。
协调器 始终具有网络地址 0x0000。
尽管节点上的应用程序可以使用IEEE / MAC地址或网络地址来标识远程节点,但ZigBee PRO堆栈始终为此目的使用网络地址。促进IEEE / MAC地址和网络之间的转换地址,可以在节点上维护一个地址映射表,其中每个表项都包含一个远程节点的地址对。
在 ZigBee PRO 的 NXP实现中,(其他网络节点的)IEEE / MAC地址存储在节点上的单个位置,称为MAC地址表。这样避免了在其他表(例如地址映射表和邻居表)中重复64位IEEE / MAC地址的需求,从而节省了存储空间。而是在其他表中存储指向MAC地址表中相关条目的16位索引。
也可以定义一个16位的“组地址”,该组地址指的是可能位于多个节点上的一组应用程序(或端点-请参见2.4.1节)。在数据传输中指定组地址将导致数据广播到网络中的所有节点,但是在目的地,数据将仅传递到组地址所覆盖的那些应用程序。有关使用组地址的更多详细信息,请参见第5.3节。
2.2.5 网络身份
ZigBee网络必须是唯一可识别的。 这样一来,多个ZigBee网络就可以近距离运行-在相同空间中运行的节点必须能够识别它们属于哪个网络。
为此,ZigBee使用两个标识符,如下所示:
- PAN ID:称为PAN ID(个人局域网标识符)的16位值用于节点间通信(在堆栈的IEEE 802.15.4级别实现),以标识相关网络。 启动网络时,由协调器随机选择PAN ID的值。 当其他节点加入网络时,他们将学习网络的PAN ID,并将其用于与网络的所有后续通信中。
为新安装的网络生成的PAN ID可能与已经在同一社区中的同一无线电信道上运行的另一个网络的PAN ID冲突。 在这种情况下,ZigBee PRO 会通过为新网络生成另一个随机PAN ID来自动解决此类冲突,直到获得的值不与任何其他可检测网络的PAN ID冲突为止。 - 扩展 PAN ID:称为 扩展PAN ID(EPID)的64位值用于形成网络并在必要时随后修改网络。
可以在运行于协调器上的用户应用程序中将该标识符预先设置为随机值。或者,可以将标识符预设为零,在这种情况下,协调器将在网络启动时采用其自己的64位IEEE / MAC地址作为扩展PAN ID-这是获得全局唯一性的可靠方法值(请参阅第2.2.4节)。
当路由器或终端设备首次尝试查找要加入的网络时,它将以以下两种方式之一使用扩展PAN ID:
(1)如果在路由器或终端设备的用户应用程序中预先设置了扩展PAN ID,则该节点将加入具有该扩展PAN ID的网络(只要检测到此网络)。
(2)如果没有为路由器或终端设备预设的扩展PAN ID,则该节点将加入检测到的第一个网络,而与扩展PAN ID无关。然后,由于某种原因,加入节点失去与网络的联系(该节点是孤立节点),加入节点将学习其网络的扩展PAN ID,然后使用该标识符重新加入网络。
有关加入网络的更多信息,请参阅第2.3.2节。
2.3 网络创建(Network Creation)
本节概述了启动和形成ZigBee PRO网络的过程:
2. 2.3.1节描述了协调器如何启动网络。
2.第2.3.2节描述了路由器或终端设备如何作为网络形成过程的一部分加入网络。
2.3.1 启动网络(协调器)
协调员负责启动网络。它必须是要启动的第一个节点,并且一旦上电,将经历以下网络初始化步骤:
- 设置EPID和协调器地址
协调器首先为网络和设备自己的网络地址设置扩展PAN ID(EPID):
(1)将EPID设置为协调器应用程序中指定的64位值(如果该值为零,则将EPID设置为协调器设备的64位IEEE / MAC地址)
(2)将协调器的16位网络地址设置为0x0000 - 选择广播频道
然后,协调器在选定的RF频段内选择网络将在其中运行的无线电信道。协调器执行能量检测扫描,在其中扫描RF频段以找到安静的信道(可以将扫描编程为“收听”特定的信道)。选择活动最少的通道。 - 设置网络的PAN ID
选择了无线电信道后,协调器将为网络选择一个16位PAN ID。为此,它在通道中侦听来自其他网络的流量,并标识这些网络的PAN ID(如果有)。为避免冲突,协调器会为其自己的网络分配一个随机的PAN ID,该ID未被其他网络使用。 - 接收来自其他设备的加入请求
现在,协调器已准备就绪,可以接收来自其他设备(路由器和终端设备)的请求,以通过它无线连接到网络。有关加入网络的更多信息,请参阅第2.3.2节。
2.3.2 加入网络(路由器和终端设备)
路由器和终端设备可以加入由协调器创建的现有网络。协调器和路由器具有允许其他节点通过它们加入网络的能力。加入过程如下:
- 搜索网络(Search for network)
新节点首先扫描相关RF频段的信道以找到网络。多个网络甚至可以在同一信道中运行,并且网络的选择是应用程序的责任(例如,此决定可以基于预定义的扩展PAN ID)。 - 选择父节点(Select parent)
现在,该节点通过侦听网络活动来选择所选网络中的父节点。该节点可能能够从网络中“听到”多个路由器和协调器。给定父级的选择,节点将选择网络中深度最小的父节点,即距离协调器最近的父节点(深度为零)。 - 申请加入(Request joining)
节点将消息发送到所需的父节点,要求加入网络。 - 收到回应(Receive response)
现在,该节点等待潜在父级的响应,该响应会确定该节点是否为允许的设备以及父级当前是否允许设备加入。为了确定加入节点是否是允许的设备,父级会咨询信任中心(如果不是信任中心,则请咨询其)。
如果满足这些条件,则父节点将允许该节点作为其子节点加入网络。在其对新孩子的接受响应中,父母将包括它随机分配给孩子的16位网络地址(请参阅第2.2.4节)。
如果潜在的父节点无法将节点作为子节点接受,则拒绝响应将发送到该节点,该节点随后必须尝试另一个潜在的父节点(或另一个网络)。 - 学习网络IDs(Learn network IDs)
新节点将学习网络的PAN ID和扩展PAN ID以及已为其分配的网络地址。它需要PAN ID才能与网络通信,如果将来需要重新加入网络,则需要扩展PAN ID(如果以后再加入网络,它也将能够重用其网络地址)。 )。
路由器或协调器可以配置为具有允许加入的时间段,该时间段由其“允许加入”状态控制。可以通过诸如按下按钮之类的用户动作来启动加入期。还可以设置无限的加入周期,以便子节点可以随时加入父节点。
2.4 应用层概念(Application Level Concepts)
本节描述了应用程序级别所需的一些关键概念。
2.4.1 多种应用和端点
一个节点上可能运行着几个应用程序-例如,智能家庭网络中的一个节点可能包含一个占用传感器和一个电灯开关,每个传感器都是一个应用程序。 实际上,每个应用程序都实现ZigBee设备类型(请参见1.10节)。 通过端点提供对应用程序实例的访问,这些端点充当应用程序的通信端口。
为了将消息定向到节点上的适当应用程序实例,必须指定相关端点。 端点编号为1到240。
因此,要与ZigBee网络中的远程应用程序实例进行通信,您需要提供远程节点的地址以及该节点上所需的端点号。
端点255是广播端点号-通过将消息发送到该端点号,可以将相同的数据发送到节点上的所有应用程序实例。
2.4.3 应用规范(Application Profiles)
ZigBee 3.0 的目标之一是统一收集特定设备类型的特定于市场的ZigBee应用程序配置文件(Profile)。 ZigBee 3.0中仍然需要应用程序配置文件标识符(这确保了与早期ZigBee版本的向后兼容性),但是标识符已经进行了一些合并-例如,应用程序配置文件ID 0x0104涵盖了ZigBee Light Link和Home Automation,现在 对应于ZigBee照明和居住(ZLO)设备。 配置文件匹配规则存在,并在ZigBee 3.0规范中进行了详细说明。
2.5 网络路由(Network Routing)
网络中的基本操作是将数据从一个节点传输到另一个节点。 数据来自始发节点上的输入(可能是开关或传感器),并被传送到可以解释和使用数据的另一个节点。
在最简单的数据通信中,数据直接从源节点传输到目标节点。 但是,如果两个节点相距较远或处于困难的环境中,则可能无法进行直接通信。 在这种情况下,有必要将数据发送到无线电范围内的另一节点,然后将其传递到另一节点,依此类推,直到到达所需的目标节点为止-也就是说,使用一个或多个中间节点作为步进 石头。 接收发往另一个节点的数据并将其传递的过程称为路由。
路由允许将网络范围扩展到直接无线电通信所支持的距离之外。 远程设备可以通过连接到路由器来加入网络。
(注意:中间节点中的应用程序不知道中继的消息或其内容-中继机制由ZigBee堆栈处理。)
2.5.1 消息寻址和传播(Message Addressing and Propagation)
如果从一个节点发送到另一节点的消息需要经过一个或多个中间节点才能到达其最终目的地(最多允许30个此类跃点),则该消息带有两个目的地地址:
- 最终目的地的地址
- 下一跳的节点地址
ZigBee PRO 专为Mesh网络(请参阅第2.2.2节)而设计,其中消息的传播路径(路由)取决于目标节点是否在无线电范围内:
- 如果目标节点在范围内,则仅使用“最终目标”地址。
- 如果目标节点不在范围内,则“下一跳”地址是到达最终目的地的路由中第一个节点的地址。
“下一跳”地址是使用存储在路由节点(路由器或协调器)上的路由表中的信息确定的。 该表的条目包含有关远程节点的信息,包括该远程节点以及到该远程节点的路由中下一个路由节点的网络地址。 因此,当路由节点收到消息时,它将在其路由表中查找目标地址,并从该表中提取“下一跳”地址以插入到消息中。 然后,该消息将继续传递,并以这种方式继续传播,直到到达目标节点为止。
请注意,如果消息来自终端设备,则消息将始终先传递到源节点的父级,然后再传递。
2.5.2 路由发现(Route Discovery)
ZigBee堆栈网络层支持“路由发现”功能,该功能可以在发送消息时找到到达目的地的最佳可用路由。 一条消息通常沿着已发现的网状路由(如果存在)进行路由,否则,发送该消息所涉及的路由节点(路由器或协调器)将启动路由发现。 完成后,将沿着计算出的路线发送邮件。
两个终端设备之间的路由发现机制具有以下步骤:
- 路由发现广播由源终端设备的父级发送,并包含目标终端设备的网络地址。
- 所有路由节点最终将接收广播,其中一个是目标终端设备的父节点
- 目标节点的父级发送回给源节点的父级的答复。
- 当答复通过网络返回时,将记录跳数和每个跳的信号质量度量。路径中的每个路由节点都可以构建一个路由表条目,其中包含到目标终端设备的最佳路径。
最佳路径的选择通常是跳数最少的路径,尽管如果最直接路径上的跳数的信号质量较差(因此需要重试的机会更大),则可能会有更多跳数的路径。选择。 - 最终,路径中的每个路由节点将具有一个路由表条目,并且建立了从源到目标终端设备的路由。请注意,从目的地到源的相应路由是未知的-发现的路由是单向的。
源路由器以与上述类似的方式实现路由发现,只是路由器广播自己的路由发现消息(不需要其父级执行此操作)。同样,协调器广播其自己的路由发现消息。
2.5.3 “多对一”路由(‘Many-to-one’ Routing)
无线网络中的常见情况是大多数网络节点需要与执行某些集中功能的单个节点进行通信,例如,网络通信。一个网关。该节点通常称为集中器。
为了与集中器建立通信,每个远程节点都可以启动“路由发现”,从而在沿途在每个路由节点的路由表中产生一个对应的条目。如果大多数网络节点需要与集中器通信,则可以启动许多此类路由发现。如果生成的路由具有相同的分支,则相关的路由表条目将不会重复但会共享。但是,大量同时进行的路由发现可能需要在集中器附近的节点中需要大量存储空间,用于临时存储路由发现信息,并可能导致内存溢出和流量拥塞。
建立到集中器的路由的一种更有效的方法是使集中器启动从所有其他网络节点到其自身的路由的“多对一”路由发现。为此,集中器广播路由发现请求,并在广播通过网络传播时更新路由表。由于不生成响应,因此不需要路由发现信息的临时存储,并且可以最大程度地减少网络流量拥塞。
下图说明了多对一的路由发现。
(集中器广播路由发现请求以返回到自身的路由:Concentrator broadcasts a route discovery request for routes back to itself)
为了避免将返回路由(来自集中器)存储在中间节点的路由表中,使用了源路由技术-消息将到达集中器的向外路由由集中器记住并嵌入到响应中 信息。 在这种情况下,响应消息必须包含沿返回路由最多30个节点的地址(允许的最大跳数为30)。
2.6 网络通信
本节考虑了允许设备网络交换信息并执行有用功能所需的过程。 为了彼此通信,两个节点必须兼容,因为一个节点可以生成另一节点可以有意义的方式接受和解释的数据。 例如,温度传感器节点产生温度测量值,供加热控制器节点用来控制中央供暖系统。
当新节点加入网络时,它必须找到能够与之通信的兼容节点-服务发现机制简化了此过程。 然后,它必须选择将与之通信的兼容节点。 绑定机制提供了一种将节点配对以方便通信的方法。
(注意:虽然应该始终使用Service Discovery查找兼容节点,但是绑定是配对兼容节点的可选方法。)
服务发现和绑定在下面的小节中介绍。
2.6.1 服务发现(Service Discovery)
加入网络的设备必须能够找到网络中可以使用其提供的信息或可以生成该设备执行其自身功能所需的信息的其他设备。节点可以使用服务发现来查找可以与之通信的节点。 2.4.6节介绍了服务发现。
节点通过在整个网络中传播的广播消息向其他节点请求所需的服务。具有请求的服务的任何节点然后将响应单播回请求的节点。这意味着发出请求的节点可能会收到多个响应。
响应包括包含请求的服务的远程节点的网络地址。节点在本地存储此地址,然后应用程序可以将该地址用于将来与远程节点的所有通信。这称为直接寻址。
或者,两个节点可以通过绑定机制进行通信,而不是在其通信中使用直接寻址,这将在下文的2.6.2节中进行介绍。
2.6.2 绑定(Binding)
2.7 详细架构(Detailed Architecture)
本节详细介绍第2.1节中介绍的简化软件体系结构。下图说明了详细的体系结构。
2.7.1 软件分层(Software Levels)(APL,NWK,PHY,DLL)
图9中的软件架构图显示(从上到下):
应用程序层(APL):
这包括:
- 应用程序(Applications):单个ZigBee节点上最多可支持240个应用程序实例。每个应用程序实例都通过一个端点进行通信,端点的编号在1到240之间(请注意,端点0保留用于节点的ZDO-参见下文)。
- 应用程序框架(AF: Application Framework):AF通过称为服务访问点或SAP的接口促进了应用程序与APS层(见下文)之间的交互。
- ZigBee设备对象(ZDO):ZDO代表设备(协调器,路由器或终端设备)的ZigBee节点类型,并具有许多通信角色。 ZDO通过端点0进行通信。有关更多信息,请参见2.4.7节。
- ZigBee基本设备:所有ZigBee 3.0节点都需要此设备,并且该设备处理整个节点的基本任务,例如调试。它不占用端点。
- ZigBee群集库(ZCL):ZCL提供了在端点上运行的设备应用程序使用的标准 ZigBee 群集。
- 应用程序支持子层(APS):APS层负责:
(1)与相关应用程序通信-例如,当消息到达以点亮LED时,APS层使用消息中的端点信息将该指令中继给负责的应用程序。
(2)维护绑定表(见2.6.2节)并在绑定节点之间发送消息
(3)与信托中心进行沟通以获得授权
APS层具有一个关联的数据库,称为APS信息库(AIB)。它包含主要与系统安全性相关的属性。
网络层(NWK)
NWK层通过在MAC层中调用动作来处理网络寻址和路由。 它提供以下服务:
- 启动网络
- 分配 网络地址
- 在网络中添加设备或从网络中删除设备
- 将消息路由到其预期的目的地
- 对传出邮件应用安全性
- 实现路由发现并存储路由表信息
NWK层 具有一个关联的数据库,称为NWK信息库(NIB)。
这包含在 NWK层的管理中所需的属性。
物理/数据链路层(PHY,DLL)
它由第2.1节中描述的 IEEE 802.15.4 PHY和MAC层组成。
(注意:安全服务提供者(图中未显示)跨越APS和NWK层,提供安全服务-例如,安全密钥管理,数据流加密和解密。 它可以使用节点中提供的硬件功能来有效地执行编码和解码操作。)
一、ZigBee 概述
ZigBee协议 的开发旨在为涉及监视和控制的各种网络应用程序提供低功耗无线连接。 ZigBee是由ZigBee联盟控制的全球开放标准。 ZigBee PRO 随后被开发为原始ZigBee协议的增强,提供了许多额外的功能,这些功能对于超大型网络(可能包括数百个甚至数千个节点)特别有用。
ZigBee Features
ZigBee标准建立在用于基于分组的无线传输的已建立的IEEE 802.15.4标准的基础上。 ZigBee通过提供具有集成设置和路由智能功能的灵活,可扩展的网络拓扑,增强了IEEE 802.15.4的功能,从而简化了安装并提高了故障恢复能力。 ZigBee网络还结合了先听后听和严格的安全措施,使它们能够在同一操作环境中与其他无线技术(例如蓝牙和Wi-Fi)共存。
ZigBee的无线连接性意味着可以轻松,便宜地安装它,其内置的智能性和灵活性使网络可以通过添加,移除或移动网络节点轻松地适应不断变化的需求。该协议的设计使节点可以出现在网络中或从网络中消失,从而使某些设备在不活动时可以进入省电模式。这意味着ZigBee网络中的许多设备都可以由电池供电,使其成为独立设备,并再次降低了安装成本。
图1显示了HVAC(供暖,通风和空调)系统中ZigBee网络的简单示例。
ZigBee 3.0
ZigBee 3.0 采用 ZigBee PRO协议,旨在促进非特定于市场的通用无线网络。 因此,来自不同市场领域的设备可以属于同一无线网络-例如,医院中的照明设备和医疗设备可以共享一个ZigBee网络,从而无论设备功能如何,都可以通过任何中间(路由)设备路由数据 。
将网络连接到Internet将设备带入“物联网”(IoT),从而可以通过基于IP的设备(例如计算机,平板电脑和智能手机)对网络设备进行控制和监视。
1.1 ZigBee 网络节点(ZigBee Network Nodes)
无线网络包括 可以根据一组路由规则(用于在节点之间传递消息)通过 无线电传输 彼此通信的一组节点。
ZigBee 无线网络 包括三种类型的节点:
序号 | 设备类型 | 描述 |
---|---|---|
1 | 协调器 (Coordinator ) | (1)这是要启动的第一个节点,并通过允许其他节点通过它加入网络来负责形成网络。 (2)一旦网络建立,协调器就具有 路由角色(能够将消息从一个节点中继到另一个节点),并且还能够 发送/接收数据。 (3)每个网络必须只有一个协调器。 |
2 | 路由器 (Router ) | (1)这是一个具有路由功能的节点,也能够发送/接收数据。 (2)它还 允许其他节点 通过它加入网络 ,因此在扩展网络 方面发挥了作用。 (3)一个网络可能有许多路由器。 |
3 | 终端设备 (End Device ) | (1)这是一个只能发送和接收数据的节点(没有路由功能)。 (2)一个网络可能有许多终端设备。 |
1.2 ZigBee PRO 网络拓扑
从最简单的星形拓扑 到高度结构化的树形拓扑,再到灵活的 Mesh拓扑,ZigBee 促进了各种网络拓扑的发展。ZigBee PRO 主要设计用于 Mesh网络。
Mesh网络 几乎没有隐式结构。 它是节点的集合,包括 协调器以及 许多路由器 和/或 终端设备,其中:
序号 | 描述 |
---|---|
1 | 除协调器 外,每个节点都与 路由器或协调器 关联-这是它通过其加入网络的节点,称为"父节点"。 每个"父节点"都可能有多个"子节点"。 |
2 | 终端设备 只能与自己的父节点 直接通信。 |
3 | 每个路由器和协调器 都可以直接 与无线电范围内的 任何其他路由器/协调器 通信。 |
这是上面的最后一个属性,它为Mesh网络提供了节点间通信方面的灵活性和效率。
Mesh网络如下图所示:
1.3 ZigBee 的理想应用
ZigBee适用于广泛的应用,涵盖商业和家庭用途,其中包括:
- 点对点电缆更换(例如无线鼠标,遥控器,玩具)
- 安全系统(例如消防和入侵者)
- 环境控制(例如暖气和空调)
- 医院病人监护
- 灯光控制
- 家庭自动化(例如家庭娱乐,门,门,窗帘和百叶窗)
- 自动抄表(AMR)
- 工业自动化(例如工厂监控)
ZigBee的无线通信还使一些尚无法用电缆系统实现的应用程序得以开发。 例如涉及移动性的应用程序,这些应用程序必须没有电缆(例如,长期健康监控,仓库中的资产跟踪)。 随着ZigBee减少或消除电缆安装成本,可以更便宜地实现当前依赖基于电缆的系统的现有应用程序(例如照明控制和工厂监控)。
ZigBee在基于电缆的解决方案可能难以安装且安装昂贵的环境中也可能是有益的-例如,在家庭安全系统中,传感器需要易于安装(无电缆或电源线),体积小且自包含( 电池供电)。
1.4 无线射频操作
ZigBee构建于其上的 IEEE 802.15.4协议提供了在三个可能的RF(射频)频带之一中运行的基于无线电的网络连接:868、915或2400 MHz。
868和915 MHz 频段具有某些优势,例如更少的用户,更少的干扰以及更少的吸收和反射,但是2400 MHz频段由于许多原因而被广泛采用:
- 全球范围内的非授权使用
- 更高的数据速率(250 kbps)和更多的信道
- 较低的功率(由于较高的数据速率,发送/接收的时间较短)
- 频段更容易为市场所理解和接受
ZigBee 包括避免无线电通信之间干扰的措施。其中之一是在初始化时自动选择最佳频道的能力。如果当前信道存在问题,也可以通过将网络移动到另一个信道来适应不断变化的RF环境-这种“频率捷变”是 ZigBee PRO的核心功能。其他措施在第1.7节中介绍。
无线电传输的范围取决于操作环境,例如室内或室外。使用装有外部偶极天线的NXP JN516x或JN517x标准模块,通常可以在空旷区域实现超过1km的射程,但是由于吸收,反射,衍射和驻波效应,在建筑物内部可以减小射程墙壁和其他固体物体。大功率模块(大于15 dBm的输出功率)可以达到的范围比标准模块大五倍。另外,在ZigBee网络中可以扩展设备之间的范围,因为在将数据传递到目的地时,网络拓扑(请参阅第2.2.2节)可以使用中间节点(路由器)作为跳板。
1.7 高度可靠的操作
ZigBee和IEEE 802.15.4采用了多种技术来确保网络节点之间的可靠通信-即,确保通信无损到达其目的地。 腐败可能是由 例如无线电干扰或不良的发送/接收条件引起的。
- 数据编码:在第一级,将编码机制应用于无线电传输。 在2400 MHz频段中使用的编码方法使用QPSK(正交相移键控)调制,将4位数据符号转换为32位码片序列。 由于这种编码,即使传输发生冲突(一个以上的设备同时在同一频道中传输),消息也很可能完整到达目的地。
- 发送前先听:传输方案还避免在所选信道上有活动时传输数据-这被称为载波侦听,具有冲突避免功能的多路访问(CSMA-CA)。 简而言之,这意味着在开始传输之前,节点将侦听该通道以检查其是否畅通。 如果在信道上检测到活动,则该节点将传输延迟一段随机的时间,然后再次侦听-如果该信道现在是空闲的,则传输可以开始,否则将重复延迟侦听周期。
- 确认:两种确认系统可用于确保消息到达目的地:
(1)端到端:当消息到达其最终目的地时,接收设备将确认发送到源节点,以指示已接收到消息。 端到端确认是可选的。
(2)下一跳:当消息通过中间节点路由到达其目的地时,路由中的下一个路由节点(或“下一跳”节点)会向前一个节点发送确认,以表明它已接收到该消息。 始终执行下一跳确认。
在这两种情况下,如果发送设备在特定时间间隔内未收到确认,则它会重新发送原始消息(它可以多次发送消息,直到确认消息为止)。 - 频率捷变:最初建立ZigBee网络时,将自动选择相关无线电频段中的“最佳”频道作为工作频道。 通常,这是在整个频带的能量扫描中检测到的最安静的信道,但是,如果在附近引入以相同信道运行的其他网络,则它可能不会始终保持最安静的信道。 因此,ZigBee包括可选的频率捷变功能。 如果操作信道变得过于嘈杂,则此功能允许将整个网络移至无线电频带中的更好信道。
- 路由修复:采用网状拓扑结构的网络(请参阅第1.2节)具有内置的智能功能,以确保消息到达目的地。 如果由于中间节点或链接故障而导致到目的节点的默认路由中断,则网络可以“发现”并实施替代路由来传递消息。 ZigBee PRO专为Mesh网络而设计,因此将“路由修复”作为核心功能。
通过上述可靠性措施,即使附近还有其他ZigBee网络在同一频带中运行,ZigBee网络也可以运行。 因此,相邻的ZigBee网络不会互相干扰。 此外,ZigBee网络还可以基于其他标准(例如Wi-Fi和蓝牙)在网络附近运行,而不会受到任何干扰。
1.8 安全的 操作环境
可以使ZigBee网络安全-可以合并措施以防止潜在敌方和相邻ZigBee网络的入侵。 ZigBee还为同一网络的节点之间的通信提供了隐私。
ZigBee PRO 安全性 包括以下功能:
序号 | 描述 |
---|---|
1 | 访问控制列表(Access control lists) |
2 | 基于密钥加密的通信( Key-based encryption of communications) |
3 | 帧计数器(Frame counters) |
这些安全措施概述如下:
- 访问控制列表:访问控制列表 仅允许预定义的“友好”节点加入网络。
- 基于密钥的加密:一个非常安全的基于128位AES的加密系统(作为硬件功能内置于JN516x / 7x设备中)被用于网络通信,从而防止外部代理解释ZigBee网络数据。
这种加密是基于密钥的。通常,网络中的所有节点都使用相同的“网络密钥”。但是,可以在给定的一对网络节点之间使用单独的“链接密钥”,从而允许两个节点之间的通信(可能包含敏感数据)相对于同一网络中的其他节点是私有的。
密钥可以在工厂的节点中预先配置,可以在系统安装期间进行调试,也可以在中央“信任中心”节点的工作网络中进行分发。
信任中心管理密钥和安全策略-例如,更改所有网络节点上的网络密钥,为节点对发布链接密钥,并限制某些事件或交互发生的时间。可以将任何节点指定为信任中心,但默认情况下是协调器。
也可以使用没有信任中心的分布式安全模型-相反,安全性由网络中的路由器节点管理。 - 帧计数器:使用帧计数器可防止两次发送相同的消息,并且新鲜度检查会拒绝任何此类重复的消息,从而防止对网络进行消息重播攻击。 重播攻击的示例是某人记录了车库门开启器的打开命令,然后重播它以获取未经授权的进入进入物业。 帧计数器在附录C中有更详细的描述。
1.10 设备类型和集群
为了实现互操作性(在1.9节中进行了描述),ZigBee联盟采用了设备类型和集群的概念,它们定义了网络节点的功能。 集群和设备类型在下面介绍(但更多详细信息可以在2.4节中找到)。
1.10.1 集群(Clusters)
集群是一种软件实体,它包含网络节点的特定功能。 集群由与功能相关的一组属性(参数)和一组命令(通常可用于请求操作)定义在集群属性上)。 例如,恒温器将使用“温度测量”集群,该集群包括诸如当前温度测量,可测量的最高温度和可测量的最低温度等属性(但仅需对这些属性执行的操作) 属性将被读写)。
ZigBee联盟 在 ZigBee集群库(ZCL)中定义了一组集群。 这些集群涵盖了最有可能使用的功能。 这些集群的NXP实现在ZigBee 3.0软件开发人员工具包(SDK)中提供,并在《 ZigBee集群库用户指南》(JN-UG-3115)中进行了描述。
1.10.2 设备类型(Device Types)
网络节点的完整功能由其设备类型决定。 这定义了组成设备支持的功能的集群的集合(有些是必需的,有些是可选的)。 例如,恒温器设备使用基本型和温度测量集群,也可以使用一个或多个可选集群。 设备是设备类型的实例。
一个网络节点可以支持多个设备类型。 设备类型的应用程序在称为终结点的软件实体上运行,每个节点最多可以具有240个终结点。
所有ZigBee 3.0节点必须实现ZigBee基本设备(不占用端点),该设备可处理诸如调试之类的基本操作。
ZigBee设备用户指南(JN-UG-3114)中详细介绍了ZigBee设备类型和ZigBee基本设备。
缩略语(Acronyms and Abbreviations)
序号 | 缩写 | 定义(Definition) | 描述 |
---|---|---|---|
1 | AF | Application Framework | 应用程序 框架 |
2 | AIB | APS Information Base | APS 信息库 |
3 | APDU | Application Protocol Data Unit | 应用 协议数据单元 |
4 | APS | Application Support (sub-layer) | 应用程序支持(子层) |
5 | APSDE | Application Support (sub-layer) Data Entity | 应用程序支持(子层)数据实体 |
6 | APSME | Application Support (sub-layer) Management Entity | 应用程序支持(子层)管理实体 |
7 | BDB | Base Device Behaviour | 基本设备行为 |
8 | EPID | Extended PAN ID | 扩展PAN ID |
9 | HA | Home Automation | 家庭自动化 |
10 | HVAC | Heating, Ventilation and Air-Conditioning | 加热,通风和空调 |
11 | PAN | Personal Area Network | 个人区域网 |
12 | NIB | NWK Information Base | NWK信息库 |
13 | NPDU | Network Protocol Data Unit | 网络 协议数据单元 |
14 | NWK | Network | 网络 |
15 | PDUM | Protocol Data Unit Manager | 协议数据单元管理器 |
16 | PDM | Persistent Data Manager | 永久数据管理器 |
17 | PIC | Programmable Interrupt Controller | 可编程中断控制器 |
18 | PWRM | Power Manager | 电源管理 |
19 | SAP | Service Access Point | 服务访问点 |
20 | ZCL | ZigBee Cluster Library | ZigBee 集群库 |
21 | ZCP | ZigBee Compliant Platform | ZigBee 兼容平台 |
22 | ZDO | ZigBee Device Objects | ZigBee 设备对象 |
23 | ZDP | ZigBee Device Profile | ZigBee 设备规范 |
24 | ZLL | ZigBee Light Link | - |
25 | ZPS | ZigBee PRO Stack | ZigBee PRO 协议栈 |