Zigbee协议栈中文说明

2019-07-20 17:02发布

1.概述

1.1解析ZigBee堆栈架构ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。图1-1给出了这些组件的概况。
1.1.1ZigBee堆栈层
每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。
    设备是由模板定义的,并以应用对象(Application Objects)的形式实现(见图1-1)。每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件 图1-1 zigbe堆栈框架
从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。
端点之间的通信是通过称之为簇的数据结构实现的。这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。图1-1-2就是设备及其接口的一个例子:

图1-1-2每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。一共有二个特殊的端点,即端点0和端点255。端点0用于整个ZigBee设备的配置和管理。应用程序可以通过端点0与ZigBee堆栈的其它层通信,从而实现对这些层的初始化和配置。附属在端点0的对象被称为ZigBee设备对象(ZD0)。端点255用于向所有端点的广播。端点241到254是保留端点。
所有端点都使用应用支持子层(APS)提供的服务。APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带灯的开关。
APS使用网络层(NWK)提供的服务。NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过ZigBee设备对象(ZD0)对网络层参数进行配置和访问。
1.1.2  802.15.4 MAC层
IEEE 802.15.4标准为低速率无线个人域网(LR-WPAN)定义了OSI模型开始的两层。PHY层定义了无线射频应该具备的特征,它支持二种不同的射频信号,分别位于2450MHz波段和868/915MHz波段。2450MHz波段射频可以提供250kbps的数据速率和16个不同的信道。868/915MHz波段中,868MHz支持1个数据速率为20kbps的信道,915MHz支持10个数据速率为40kbps的信道。
MAC层负责相邻设备间的单跳数据通信。它负责建立与网络的同步,支持关联和去关联以及MAC层安全:它能提供二个设备之间的可靠链接。
1.1.3  关于服务接入点
ZigBee堆栈的不同层与802.15.4 MAC通过服务接入点(SAP)进行通信。SAP是某一特定层提供的服务与上层之间的接口。
ZigBee堆栈的大多数层有两个接口:数据实体接口和管理实体接口。数据实体接口的目标是向上层提供所需的常规数据服务。管理实体接口的目标是向上层提供访问内部层参数、配置和管理数据的机制。
1.1.4  ZigBee的安全性
安全机制由安全服务提供层提供。然而值得注意的是,系统的整体安全性是在模板级定义的,这意味着模板应该定义某一特定网络中应该实现何种类型的安全。
每一层(MAC、网络或应用层)都能被保护,为了降低存储要求,它们可以分享安全钥匙。SSP是通过ZD0进行初始化和配置的,要求实现高级加密标准(AES)。ZigBee规范定义了信任中心的用途。信任中心是在网络中分配安全钥匙的一种令人信任的设备。
1.1.5  ZigBee堆栈容量和ZigBee设备
根据ZigBee堆栈规定的所有功能和支持,我们很容易推测ZigBee堆栈实现需要用到设备中的大量存储器资源。 不过ZigBee规范定义了三种类型的设备,每种都有自己的功能要求:ZigBee协调器是启动和配置网络的一种设备。协调器可以保持间接寻址用的绑定表格,支持关联,同时还能设计信任中心和执行其它活动。一个ZigBee网络只允许有一个ZigBee协调器。
ZigBee路由器是一种支持关联的设备,能够将消息转发到其它设备。ZigBee网格或树型网络可以有多个ZigBee路由器。ZigBee星型网络不支持ZigBee路由器。
ZigBee端终设备可以执行它的相关功能,并使用ZigBee网络到达其它需要与其通信的设备。它的存储器容量要求最少。然而需要特别注意的是,网络的特定架构会戏剧性地影响设备所需的资源。NWK支持的网络拓扑有星型、树型和网格型。在这几种网络拓扑中,星型网络对资源的要求最低。
ZigBee堆栈应该可以提供ZigBee规范要求的所有功能,因此制造商的重点工作是开发实际的应用。为了更加容易实现,如果制造商使用某种公共模板,那么可用大多数现成的配置。如果没有合适的公共模板,则可以充分利用其它模板已经做过的工作创建自己的模板。
ZigBee协议栈体系包含一系列的层元件,其中有IEEE802.15.4 2003标准中的MAC层和PHY层,当然也包括ZigBee组织设计的NWK层。每个层的元件有其特定的服务功能。本说明描述内容涉及ZigBee协议栈的各层元件,但侧重于描述最具实际和理论探讨性的APL应用层和NWK网络层。图1-1为ZigBee栈结构框图。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
说书先生
2019-07-21 15:24
2.3ZigBee应用程序框架
2.3.1建立一个ZigBee Profile
在ZigBee网络中两个设备之间通信的关键是统一一个profile。
Profile的一个例子就是智能家居。这个ZigBee profile允许一系列设备类型交换控制消息来构造一个无线智能家居应用。这些设备被设计成很好的交换已知信息来实现这些控制,如控制灯的开和关,发送一个亮度传感器测量给一个照明设备控制器或者如果已有的传感器检测到移动就发送一个警告信息。
Profile另一个类型的例子是在连个ZigBee设备间定义了普通行为。为了举例说明,无线网络在网络中依靠自制设备的能力来同网络连接和发现其他设备和在设备上的服务。设备和服务发现是在设备的profile中支持的特性。
2.3.1.1从ZigBee联盟获得的Profile标识符
ZigBee在两个分开的等级定义Profile,这两个等级是:私人的和公开的。这些等级的精确定义和标准是在ZigBee联盟和在这个文件范围之外的一个管理问题。为了这个技术规范的目的,对Profile标识符标准是唯一的。到最后,对一个Profile标识符的应用程序,每一个Profile必须以向ZigBee联盟的一个请求开始。一旦获得Profile标识符,Profile标识符允许Profile设计者有如小定义:
(1)       设备描述
(2)       簇标识符
Profile标识符的应用的市场空间对从ZigBee联盟发行Profile标识符是一个关键的标准。Profile需要覆盖一个足够宽的设备范围来允许互动性来发生在没有过度范围设备之间,且导致用来描述它们接口的一个簇标识符的不足。相反的。Profile不能被定义的太狭窄导致很多被个人Profile标识符描述的设备导致Profile标识符寻址空间的浪费,且在描述设备如何接口时产生互操作性。在ZigBee联盟里的政策组将就如何定义Profile建立标准,且帮助请求者制作它们的Profile标识符请求。
2.3.1.2定义设备描述和簇
Profile标识符是在ZigBee协议中主要的主要枚举量。每一个唯一的Profile标识符定义了设备描述和簇标识符的一个联合的枚举量。例如,对Profile标识符“1”,存在一些被16位值描述的设备描述(就是说在每一个Profile中可能有65536个设备描述)和一些被16位值描述的簇标识符(就是说在每一个Profile中可能有65536个标识符)。每一个簇标识符也支持一些被16位值描述的属性。例如,每一个Profile标识符最多有65536格簇标识符且每一个这样的标识符最多又可以包含65536格属性。Profile开发者的责任就是定义和分配设备描述,簇标识符和在它们已分配的Profile标识符里的属性。注意设备描述、簇标识符和属性标识符的定义必须很小心的采用以保证简单描述的有效建立和当交换消息时单一化处理。
设备描述和簇标识符必须通过将被处理的已知的profile标识符来完成。在任何消息被定向到一个设备之前,ZigBee协议采用已经使用服务发现确定profile在设备和端点的支持。同样的,绑定处理采用相似的服务发现,且profile发生,由于作为结果的匹配提取到源地址、源端点、簇标识符、目的地址和目的端点。
2.3.1.3在端点配置profile
在一个单独的ZigBee设备也许包含许多的profile的维持,这些profile是由在这些profile定义的各种簇标识符的子集提供的,且维持多样的设备描述。在设备里使用一个分层寻址定义的能力如下:
(1)     设备:设备是由有唯一的IEEE和网络地址的单个无线电来维持的。
(2)       端点:这是一个8位的域,描述了不同的应用程序,这些应用都是由单个无线电来维持的。端点0x00用来寻址设备profile,设备profile是每个ZigBee设备必须使用的;端点0xff用来寻址所有活动的端点(广播端点),且端点0xf1-0xfe保留。结果,一个单独的物理ZigBee无线电能维持最多240个应用程序在端点0x01-0xf0.
应用程序决定关于如何造设备端点配置应用程序和哪个端点来广播(advertise)。唯一的要求是每个端点都建立简单的描述符,且这些描述符对于服务发现是有效的。
2.3.1.4激活安全发现
一旦设备被建立维护特殊的profile且同簇描述符使用一致,簇描述符使用是为在这些profile中的设备描述,那么应用程序能被配置。为了达到这一点,每一个应用程序被分配给个别的端点,且每一个都使用简单描述符来描述。通过简单描述和在ZigBee设被profile中描述的其他服务发现机制,激活服务发现,设备的绑定被维持和在补充的设备间应用程序的通知。
重要的一点是服务发现是以profile标识符、输入簇标识符列表和输出簇标识符列表(设备描述很明显的丢失了)为基础构成的。设备描述是在表示profile的类型的设备里规定必选的和可选的簇标识符维持的一个简单的协定。另外,期望设备描述枚举在PDA里使用或者其他辅助的绑定设备提供设备能力的额外描述。
2.3.1.5混合标准和所有权Profile
一个例子,ZigBee设备能被建立带有一个为了一个标准而写的单独的端点应用程序,公开的ZigBee profile标识符“XX”。如果生产商想配置一个ZigBee设备支持的标准profile“XX”,且提供给卖主特殊的扩展名,这些扩展名将被advertised在一个孤立的端点。维持标准的profile标识符“XX”,但生产时没有卖主扩展名的设备将仅仅advertised维持单独的profile标识符“XX”,且不能使用卖主扩展名响应或者建立消息。
2.3.1.6激活相反的兼容性
在先前的例子中,使用一个标准建立一个设备,这个标准公布ZigBee profile标识符“XX”,它包含了标准的profile的最初版本。如果ZigBee联盟将更新这个标准profile来建立新的特性和加法(additions),修订本将组合成一个新的标准profile,这个新的标准profile有一个新的profile标识符(即“XY”)。有profile标识符“XX”的设备应域新设备兼容,这新的设备对于profile标识符“XX”和profile标识符“XY”有新设备advertised维持。以这种方式,新设备使用profile标识符“XX”与旧设备通信,然而,也可以使用profile标识符“XY”与旧设备通信在相同的应用程序里。在ZigBee中的服务发现特性激活网络中的设备来确定维持级别。
2.3.2ZigBee描述
ZigBee设备使用描述符数据结构来描述它们自己。包含在这些描述符里的实际数据被定义在个人的设备描述符里。有五个描述符:节点、节点电源、简单的、复杂的和使用者,如表2.25所示。
表2.25ZigBee描述符
描述符名称
状态
描述
Node
M
节点的类型和能力
Node power
M
节点电源特性
Simple
M
包含在节点里的设备描述
Complex
O
设备描述的进一步信息
User
O
定义的使用者的描述符

一周热门 更多>