Z-Wave协议是一种低带宽半双工协议,设计用于低成本控制网络中可靠的无线通信。该协议的主要目的是实现短消息的可靠传输。Z-Wave协议不是设计来传输大量数据或任何类型的流或定时关键数据。
1. Z-Wave协议栈架构
开放系统互连(OSI)参考模型是一种表示系统,用于在抽象层上描述和标准化通信系统的功能。这允许我们将类似的通信功能描述成逻辑层。OSI模型的7层被许多人认为是一个理想化的模型; 对于大多数真实的协议来说太抽象和细粒度了。然而,当描述一个给定的通信协议框架时,参考OSI模型是有用的。与此相关,Z-Wave协议栈将使用如图1所示的模型进行描述。请注意,Z-Wave应用程序层由OSI堆栈层组成,这些堆栈层被称为传输、会话、表示和应用程序。
图1,Z-Wave协议栈架构
如图1所示,Z-Wave协议栈由OSI层组成,其中每一层为上层执行一组服务。每一层都有两个主要接口,以便通过服务访问点(Service Access Point, SAP)与上层进行通信。接口分别描述为提供数据传输服务的数据实体和提供所有其他服务的管理实体。
ITU-T G.9959[25]定义了物理层和MAC层。
-
物理层提供MAC层和PHY层之间的数据流控制,并增加了PHY相关的管理头。PHY层负责无线电收发机的激活和失活、数据传输和接收、频率选择、清晰信道评估以及接收帧的链路预算评估。
-
MAC层定义了Z-Wave数据传输模型和帧结构。在Z-Wave帧传输过程中,MAC层从更高的层获取有效载荷数据,并构造MAC数据有效载荷(MPDU)和MPDU报头。报头包括地址、帧控制和帧长度信息。帧控制字段长度约为16位,包含关于帧类型和其他可以被更高层使用的控制标志的信息。
在这两个较低的层的基础上,Z-Wave联盟定义了网络层(NWK)和应用层。
Z-Wave网络层(NWK)定义了一种多跳路由协议,用于Z-Wave节点扩展通信范围。这意味着Z-Wave节点因此可以向不在直接无线电通信范围内的节点发送帧。此外,Z-Wave NWK层负责网络的形成(即加入/排除网络中的节点)和网络的维护。Z-Wave NWK层使用被称为Z-Wave协议命令类的命令帧管理网络的建立。这些Z-Wave NWK命令是为网络形成的特定目的而设计的。
Z-Wave应用层负责使用专用的命令类构建应用程序。为了得到认证,应用程序应符合Z-Wave 设备类型和Z-Wave Plus V2设备类型中定义的Z-Wave设备类型。最后,应用层还负责使用NWK接口提供一些网络管理功能。所有的Z-Wave规格都可以在Z-Wave联盟网站上找到
2. 网络层参考模型
网络层(NWK)提供了应用层和MAC层之间的接口。NWK层依赖于MAC层提供的服务,通过NLDE (Network layer Data Entity)和NLME (Network layer Management Entity)服务点接口向更高层提供服务。NLME提供了可以调用NWK层管理功能的管理服务接口。NLME负责维护一个包含网络路由信息的网络信息库(NIB)。图2说明了NWK层的组件和接口。
图2 网络层参考模型
Z-Wave NWK层为应用层提供两种服务,应用层通过两个SAP访问:
-
通过NLDE-SAP访问的数据服务
-
通过NLME-SAP访问的网络管理服务。
3. Z-Wave的定义
3.1 Z-Wave网络拓扑基本原理
以下是ITU-T G.9959[25]建立的基本网络拓扑原则的总结:
1. 一组节点被划分为域:
-
物理节点的域划分是逻辑上的。各域可以完全或部分重叠彼此的无线电频率范围。
-
Z-Wave网络层最多支持232个域。
-
每个域由唯一的HomeID标识。
-
管理相同物理介质中的不同域由不同的域主人处理。
2. 域是连接到同一媒体的一组节点:
-
域中的一个节点作为域主节点,称为主控制器。
-
每个域最多可以包含232个节点(包括域主节点)。
-
域中的每个节点由一个NodeID标识,该NodeID在实际域中是唯一的。
-
域内节点之间可以直接通信,也可以通过域内其他节点进行通信。
3. ITU-T G.9959[25]不同域的节点:
-
Z-Wave网络层在一个域内提供连接。
在某些情况下,来自外部域的帧会重复进入当前域。
4. 网络是自我修复的:
-
节点可以根据需要自主建立新的路由。
支持全网格路由。不需要星形或树形网络拓扑。
3.2 控制器和终端设备
Z-Wave网络层定义了两种网络节点类型:控制器和终端设备。
控制节点负责建立和维护Z-Wave网络。它们可以包含或排除节点,并且能够感知网络拓扑结构。这使得控制器能够确定网络中任意两个节点之间可能的路由。控制器之间可以交换网络拓扑结构。
终端设备只能通过控制器从网络中添加或删除,它们不计算路由,只依赖于控制器提供的路由信息。请注意,终端设备可以向其他节点发送命令,并在应用程序级别上“控制”其他节点的功能。
控制器和终端设备都可以参与mesh路由。它使网络中的节点即使不在直接通信范围内也能相互通信。
3.3 网络拓扑结构
网络拓扑指的是网络中存在的节点列表以及每个节点的直接范围邻居列表。
图3说明了网络拓扑的概念。
图3,网络拓扑结构的例子
3.4 Z-Wave控制器的角色
Z-Wave控制器是一种能够提供网络管理功能的节点,例如在网络中添加/删除节点,以及将网络拓扑分布到其他控制器。NWK层定义了网络中的几个控制器角色:
-
主控制器
默认情况下,主控制器是启动网络的控制器。主控制器总是可以用来建立和维护网络。它可以添加/删除节点,并了解网络拓扑结构。
一个网络中只能有一个主控制器。
主控制器可以为其他控制器提供额外的服务:
“主控制器”可以将“主控制器”(和/或SUC/SIS)角色切换给其他控制器。
-
二级控制器
所有不是主控制器的控制器都是从控制器。
当主控制器不具备SUC/SIS能力时,从控制器不能自动包含节点、排除节点,也不能自动接收更新的网络拓扑。
当网络中存在SUC时,从控制器可以随时请求更新网络拓扑。
-
SCU控制器
SUC (Static Update Controller)是负责保持网络拓扑结构并根据需要将其分配给其他控制器的控制器。
同一个网络中只能配置1台SUC。 主控制器和从控制器都可以是SUC。
-
SIS控制器
SUC ID Server (SIS) Controller是兼有“SUC Controller”角色和“Primary Controller”角色的控制器。此外,它还提供SIS功能。SIS功能包括为其他控制器保留nodeid的能力,以使它们能够包含和排除节点。
-
包含控制器
如果主控制器是SIS,同一网络中的从控制器就成为包含控制器。包含控制器是可以代表SIS包含和排除节点的辅助控制器。
3.5 节点操作模式
Z-Wave节点可以在三种不同的接收模式下工作。
-
总是听(AL)
AL节点的射频接收器始终处于开启状态,这些节点通过重复路由的NPDU和Explore MPDU参与mesh路由。
-
频繁监听(FL)
FL节点的射频接收器大部分时间是关闭的。射频接收器在短时间内按一定时间间隔打开以收听Wake Up Beams。AL节点可以通过在向FL节点发出命令之前发出Wake Up Beams来到达FL节点。
FL节点不参与路由,不重复路由NPDU和探索NPDU。
TU-T G.9959[25]定义了两个可能的唤醒间隔FL节点:250ms和1000ms,以及三个通道配置。
当使用通道配置1和2时,一些NWK命令/帧指示使用哪个设置(250ms或1000ms)
当使用通道配置3操作时,1000毫秒设置总是在帧/命令中使用,尽管使用碎片光束。
-
非监听(NL)
NL节点不能被其他节点唤醒。它们唤醒并以固定的配置间隔向单个NodeID目的地发送帧。
NL节点上报可以通过唤醒命令类配置。
3.6 网络地址
Z-Wave支持以下类型的寻址:
-
Singlecast
-
多播
-
广播
地址的类型和它的帧格式在MPDU报头中定义。广播只能在直接范围内使用。广播和组播可用于到达多个目的地址。在多播的情况下,相同的有效负载将只发送到选定的设备。多播必须始终使用单播跟踪,以确保设备被接触到直接范围之外。
原文地址:Z-Wave 700应用程序框架第一章 – Z-Wave协议概述 - 专注于智能家居产品的创新及应用 (smartlabs.cn)