当前位置:首页 > 物联网学习笔记 > 正文

zigbee入门之基本概念

在ZigBee网络中存在三种逻辑设备类型:Coordinator(协调器),Router(路由器)和End-Device(终端设备)。ZigBee 网络由一个 Coordinator 以及多个 Router 和多个 End_Device 组成。

注意:在 ZStack-CC2530-2.3.1-1.4.0 中一个设备的类型通常在编译的时候通过编译选项确定。所有的应用例子都提供独立的项目文件来编译每一种设备类型。对于协调器,在 Workspace 区域的下拉菜单中选择 CoordinatorEB-Pro;对于路由器,在 Workspace 区域的下拉菜单中选择RouterEB-Pro;对于终端设备,在 Workspace 区域的下拉菜单中选择 EndDeviceEB-Pro。

1.Coordinator(协调器)
协调器负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道和一个网络ID(也称之为 PAN ID,即 Personal Area Network ID),随后启动整个网络。协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。注意,协调器的角色主要涉及网络的启动和配臵。一旦这些都完成后,协调器的工作就像一个路由器(或者消失 go away)。由于ZigBee 网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。

2.Router(路由器)
路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的终端设备的通讯。通常,路由器希望是一直处于活动状态,因此它必须使用主电源供电。但是当使用树状网络拓扑结构时,允许路由间隔一定的周期操作一次,这样就可以使用电池给其供电。

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

4.协议栈规范(Stack Profile)
协议栈规范由 ZigBee 联盟定义指定。在同一个网络中的设备必须符合同一个协议栈规范(同一个网络中所有设备的协议栈规范必须一致)。ZigBee 联盟为 ZigBee 协议栈 2007 定义了 2 个规范:ZigBee 和 ZigBee PRO。所有的设备只要遵循该规范,即使在不同厂商买的不同设备同样可以形成网络。

如果应用开发者改变了规范,那么他的产品将不能与遵循 ZigBee 联盟定义规范的产品组成网络,也就是说该开发者开发的产品具有特殊性,我们称之为“关闭的网络”,也就是说它的设备只有在自己的产品中使用,不能与其他产品通信。更改后的规范可以称之为“特定网络”规范。

协议栈规范的 ID 号可以通过查询设备发送的 beacon 帧获得。在设备加入网络之前,首先需要确认协议栈规范的 ID。“特定网络”规范 ID 号为 0;ZigBee 协议栈规范的 ID 号为 1;ZigBeePRO 协议栈规范的 ID 号为 2。协议栈规范的 ID(STACK_PROFILE_ID)在 nwk_globals.h 中定义:
#define NETWORK_SPECIFIC 0
#define HOME_CONTROLS 1
#define ZIGBEEPRO_PROFILE 2
#define GENERIC_STAR 4
#define GENERIC_TREE
#if defined ( ZIGBEEPRO )
#define STACK_PROFILE_ID
#else
ZIGBEEPRO_PROFILE
HOME_CONTROLS
#define STACK_PROFILE_ID
#endif

5.拓扑结构
ZigBee网络支持星状、树状和网状三种网络拓扑结构,如下图所示,分别依次是星状网络,树(簇)状网络和网状网络。
zigbee拓扑结构

星状网络由一个 PAN 协调器和多个终端设备组成,只存在 PAN 协调器与终端的通讯,终端设备间的通讯都需通过 PAN 协调器的转发。树状网络由一个协调器和一个或多个星状结构连接而成,设备除了能与自己的父节点或子节点进行点对点直接通讯外,其他只能通过树状路由完成消息传输。

网状网络是树状网络基础上实现的,与树状网络不同的是,它允许网络中所有具有路由功能的节点直接互连,由路由器中的路由表实现消息的网状路由。该拓扑的优点是减少了消息延时,增强了可靠性,缺点是需要更多的存储空间开销。在 Z-Stack 中网络拓扑结构定义如下:
#define NWK_MODE_STAR 0
#define NWK_MODE_TREE 1
#define NWK_MODE_MESH 2
#if ( STACK_PROFILE_ID == ZIGBEEPRO_PROFILE )
#define NWK_MODE
#elif ( STACK_PROFILE_ID == HOME_CONTROLS )
#define NWK_MODE
NWK_MODE_MESH
NWK_MODE_MESH
#elif ( STACK_PROFILE_ID == GENERIC_STAR )
#define NWK_MODE
NWK_MODE_STAR
#elif ( STACK_PROFILE_ID == NETWORK_SPECIFIC )
#define NWK_MODE
NWK_MODE_MESH
#endif

6.信标与非信标模式
ZigBee 网络的工作模式可以分为信标(Beaeon)和非信标(Non-beaeon)两种模式。信标模式实现了网络中所有设备的同步工作和同步休眠,以达到最大限度的功耗节省,而非信标模式则只允许终端设备进行周期性休眠,协调器 和所有路由器 设备必须长期处于工作状态。信标模式下,协调器负责以一定的间隔时间(一般在 15ms-4mins 之间)向网络广播信标帧,两个信标帧发送间隔之间有 16 个相同的时槽,这些时槽分为网络休眠区和网络活动区两个部分,消息只能在网络活动区的各时槽内发送。

非信标模式下,ZigBee 标准采用父节点为终端设备子节点缓存数据,终端设备主动向其父节点提取数据的机制,实现终端设备的周期性(周期可设臵)休眠。网络中所有父节点需为自己的终端设备子节点缓存数据帧,所有终端设备子节点的大多数时间都处于休眠模式,周期性的醒来与父节点握手以确认自己仍处于网络中,其从休眠模式转入数据传输模式一般只需要15ms。

标签:
上一篇: 下一篇:

报歉!评论已关闭。