zigbee协议规范.docx
《zigbee协议规范.docx》由会员分享,可在线阅读,更多相关《zigbee协议规范.docx(10页珍藏版)》请在冰豆网上搜索。
zigbee协议规范
zigbee协议概述
1.1.1ZigBee堆栈层
ZigBee堆栈是在IEEE802.15.4标准基础上建立的,定义了协议的MAC和PHY层。
ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:
网络层(NWK)、应用层和安全服务提供层。
图1-1给出了这些组件的概况。
图1-1zigbe堆栈框架
每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。
这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。
公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。
设备是由模板定义的,并以应用对象(ApplicationObjects)的形式实现(见图1-1)。
每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。
端点之间的通信是通过称之为簇的数据结构实现的。
这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。
图1-1-2就是设备及其接口的一个例子:
每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。
一共有二个特殊的端点,即端点0和端点255。
端点0用于整个ZigBee设备的配置和管理。
应用程序可以通过端点0与ZigBee堆栈的其它层通信,从而实现对这些层的初始化和配置。
附属在端点0的对象被称为ZigBee设备对象(ZD0)。
端点255用于向所有端点的广播。
端点241到254是保留端点。
所有端点都使用应用支持子层(APS)提供的服务。
APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带灯的开关。
APS使用网络层(NWK)提供的服务。
NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。
应用层可以通过ZigBee设备对象(ZDO)网络层参数进行配置和访问。
1.1.2于服务接入点
ZigBee协议栈体系包含一系列的层元件,其中有IEEE802.15.42003标准中的MAC层和PHY层,当然也包括ZigBee组织设计的NWK层和应用层。
每个层的元件有其特定的服务功能。
ZigBee的体系结构由称为层的各模块组成。
每一层为其上层提供特定的服务:
即由数据服务实体提供数据传输服务;管理实体提供所有的其他管理服务。
ZigBee堆栈的大多数层有两个接口:
数据实体接口和管理实体接口。
数据实体接口的目标是向上层提供所需的常规数据服务。
管理实体接口的目标是向上层提供访问内部层参数、配置和管理数据的机制。
每个服务实体通过相应的服务接入点(SAP)为其上层提供一个接口,每个服务接入点通过服务原语来完成所对应的功能。
1.1.3zigbee中原语的概念
原语是层与层之间信息交互的接口,交互的信息就是原语的参数。
原语只有四种类型:
请求原语:
Request,确认原语:
Confirm,指示原语:
Indication,响应原语:
Response,其中Request和Response是从上层到下层的,Confirm和Indication是从下层到上层的。
举例:
假如上层请求下层打开接收机,给下层一个request,下层完成请求的功能后,给上层一个Confirm,告诉上层正确完成了,或者出什么错了;
假如上层请求下层发送数据到Remote端,给下层一个数据发送的request,下层完成数据发送任备后,给上层一个Confirm告诉上层结果;在对端,对应的下层收到数据后,需要通过indication把收到的数据传给上层!
假如节点A要请求节点B的对等层的一个服务,给自己下层一个请求,下层将信息发送到节点B的对等层之后,节点B的下层用indication告诉上层,上层做出影响后,用Response给到下层,节点B再发送到节点A的对等层,节点A的下层再用confirm原语要得到的信息返回给上层。
1.1.3设备类型和角色
IEEE802.15.4无线网络协议中定义了两种设备类型:
全功能设备(FFD)和半功能设备(RFD)。
FFD可以执行IEEE802.15.4标准中的所有功能,并且可以在网络中扮演任何角色,那反过来讲,RFD就有功能限制。
比如FFD能与网络中的任何设备通信,而RFD就只能和FFD通信。
RFD设备的用途是为了做一些简单功能的应用,比如做个开关之类的。
而其功耗与内存大小都比FFD要小很多。
在Zigbee网络中,节点分为三种角色:
协调器、路由器和终端节点。
其中Zigbee协调者(coord)为协调者节点,每各Zigbe网络必须有一个。
他的主要作用是初始化网络信息。
Zigbee路由器(router)为路由节点,他的作用是提供路由信息。
Zigbee终端节点(rfd为终端节点),它没有没有路由功能,完成的是整个网络的终端任务。
其中FFD可以扮演任何一个角色,而RFD只能扮演终端节点的角色。
图zigbee节点类型和角色
1.1.4zigbee网络拓扑结构
ZigBee技术网络有两种网络拓扑结构:
星型的拓扑结构和对等的拓扑结构。
Zigbee网络拓扑结构
星型拓扑网络结构有一个叫做PAN主协调器的中央控制器和多个从设备组成,主协调器必须为一个完整功能的设备,从设备既可为完整功能设备也可为简化功能设备,在实际应用中,应根据具体应用情况,采用不同功能的设备,合理的构造通信网络。
在网络通信中,通常将这些设备分为起始设备或者终端设备,PAN主协调器既可作为起始设备、终端设备,也可以作为路由器,它是PAN网络的主要控制器。
在任何一个拓扑网络上,所有设备都有唯一的64位长地址码,该地址码可以在PAN中用于直接通信,或者当设备发起连接时,可以将其转变为16位的短地址码分配给PAN设备,因此,在设备发起连接时,应采用64位的长地址码,只有在连接成功后,系统分配了PAN的标识符后,才能采用16位的短地址进行连接,因此,短地址吗是一个相对地址码,长地址码是一个绝对地址码。
在ZigBee技术应用中,PAN主协调器是主要的耗能设备,而其他从设备均采用电池供电,ZigBee技术的星型拓扑结构通常在家庭自动化、PC外围设备、玩具、游戏以及个人健康检查等方面得到应用。
对等的拓扑网络机构中,同样也存在一个PAN主设备,但该网络不同于星型拓扑网络结构,在该网络中的任何一个设备只要是在它的通信范围内,就可以和其它设备进行通信。
对等拓扑网络结构能够构成较为复杂的网络结构,例如,网孔拓扑网络结构,这种对等拓扑网络结构在工业监测和控制、无线传感器网路偶、供应物资跟踪、农业智能化,以及安全监控等方面都有广泛的应用。
一个对等网络的路由协议可以是基于Adhoc技术的,也可以是自组织式的和自恢复的,并且,在网络中各个设备之间发送消息时,可通过多个中间设备中继的方式进行传输,即通常称为多跳的传输方式,以增大网络的覆盖范围。
其中,组网的路由协议,在ZigBee网络层中没有给出,这样为用户的使用提供了更为灵活的组网方式。
无论是星型拓扑结构,还是对对等拓扑网络结构,每个独立的PAN都有一个唯一的标识符,利用该PAN标识符,可采用16位的短地址码进行网络设备间的通信,并且可激活PAN网络设备间的通信。
各网络结构的组网特点
1、星型网络结构的形成
当一个具有完整功能的设备(FFD)第一次被激活后,它就会建立一个自己的网络,将自身成为一个PAN主协调器。
所有星型网络的操作独立于当前其它星型网络的操作,这就说明了在星型网络结构中只有一个唯一的PAN主协调器,通过选择一个PAN标识符确保网络的唯一性,目前,其它无线通信技术的星型网络没有用这种方式。
因此,一旦选定了一个PAN标识符,PAN主协调器就会允许其它从设备加入到它的网络中,无论是具有完整功能的设备,还是简化功能的设备都可以加入到这个网络中。
2、对等网络的形成
在对等拓扑结构中,每一个设备都可以与在无线通信范围内的其他任何设备进行通信。
任何一个设备都可定义为PAN主协调器,例如,可将信道中第一个通信的设备定义为PAN主协调器。
未来的网络结构很可能不仅仅局限为对等的拓扑结构,而是在构造网络的过程中,对拓扑结构进行某些限制。
例如,树簇拓扑结构是对等网络拓扑结构的一种应用形式,在对等网络中的设备可以为完整功能设备,也可以为简化功能设备。
而在树簇中的大部分设备为FFD,RFD只能作为树枝末尾处的叶节点上,这主要是由于RFD一次只能连接一个FFD。
任何一个FFD都可以作为主协调器,并且,为其它从设备或主设备提供同步服务。
在整个PAN中,只要该设备相对于PAN中其它设备具有更多计算资源,比如具有更快的计算能力、更大的存储空间以及更多的供电能力等,这样的设备都可以成为该PAN的主协调器,通常称该设备为PAN主协调器。
在建立一个PAN时,首先,PAN主协调器将其自身设置成一个簇标识符(CID)为0的簇头(CLH),选择一个没有使用的PAN标识符,并向临近的其他设备以广播的形式发送信标帧,从而形成第一簇网络。
接收到信标帧的候选设备可以在簇头中请求加入该网络,如果PAN主协调器允许该设备加入,那么主协调器会将该设备作为子节点加到她的临近表中,同时,请求加入的设备将PAN主协调器作为它的父节点加到邻近列表中,成为该网络中的一个从设备;同样,其他的所有候选设备都按照同样的方式,可请求加入到该网络中,作为网络的从设备。
如果原始的候选设备不能加入到该网络中,那么它将寻找其它的父节点。
在树簇网络中,最简单的网络结构是只有一个簇的网络,但是多数网络结构由多个相邻的网络构成。
一旦第一簇网络满足预定的应用或网络需求时,PAN主协调器将会指定一个从设备为另一簇网络的簇头,使得该从设备成为另一个PAN的主协调器,随后其他的从设备将逐个加入,并形成一个多簇网络。
多簇网络结构的优点在于可以增加网络的覆盖范围,而随之产生的缺点是会增加传输信息的延迟时间(星型连接的相对优点)。
1.1.4ZigBee堆栈容量
根据ZigBee堆栈规定的所有功能和支持,我们很容易推测ZigBee堆栈实现需要用到设备中的大量存储器资源。
不过ZigBee规范定义了三种类型的设备,每种都有自己的功能要求:
ZigBee协调器是启动和配置网络的一种设备。
协调器可以保持间接寻址用的绑定表格,支持关联,同时还能设计信任中心和执行其它活动。
一个ZigBee网络只允许有一个ZigBee协调器。
ZigBee路由器是一种支持关联的设备,能够将消息转发到其它设备。
ZigBee网格或树型网络可以有多个ZigBee路由器。
ZigBee星型网络不支持ZigBee路由器。
ZigBee端终设备可以执行它的相关功能,并使用ZigBee网络到达其它需要与其通信的设备。
它的存储器容量要求最少。
然而需要特别注意的是,网络的特定架构会戏剧性地影响设备所需的资源。
NWK支持的网络拓扑有星型、树型和网格型。
在这几种网络拓扑中,星型网络对资源的要求最低。
ZigBee堆栈应该可以提供ZigBee规范要求的所有功能,因此制造商的重点工作是开发实际的应用。
为了更加容易实现,如果制造商使用某种公共模板,那么可用大多数现成的配置。
如果没有合适的公共模板,则可以充分利用其它模板已经做过的工作创建自己的模板。
1.1.3ZigBee的安全性
安全机制由安全服务提供层提供。
然而值得注意的是,系统的整体安全性是在模板级定义的,这意味着模板应该定义某一特定网络中应该实现何种类型的安全。
每一层(MAC、网络或应用层)都能被保护,为了降低存储要求,它们可以分享安全钥匙。
SSP是通过ZDO进行初始化和配置的,要求实现高级加密标准(AES)。
ZigBee规范定义了信任中心的用途。
信任中心是在网络中分配安全钥匙的一种令人信任的设备。
2协议栈各层功能概述
2.1.物理层(PHY)
物理层定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务和物理层管理服务。
物理层采用DSSS(DirectSequenceSpreadSpectrum,直接序列扩频)技术。
共有三个频段,可提供27个信道用于数据收发。
都采用相位调制技术,2.4GHz采用较高阶的QPSK调制技术以达到250kbit/s的速率,并降低工作时间,以减少功率消耗。
而在915MHz和868MHz方面,则采用BPSK的调制技术。
图信道分配情况
物理层功能:
1)ZigBee的激活;
2)当前信道的能量检测;
3)接收链路服务质量信息;
4)ZigBee信道接入方式;
5)信道频率选择;
6)数据传输和接收。
2.2MAC层
MAC层负责处理所有的物理无线信道访问,并产生网络信号、同步信号;支持PAN连接和分离,提供两个对等MAC实体之间可靠的链路。
1)网络协调器产生信标;
2)与信标同步;
3)支持PAN(个域网)链路的建立和断开;
4)为设备的安全性提供支持;
5)信道接入方式采用免冲突载波检测多址接入(CSMA-CA)机制;
6)处理和维护保护时隙(GTS)机制;
7)在两个对等的MAC实体之间提供一个可靠的通信链路。
3.网络层
ZigBee协议栈的核心部分在网络层。
网络层主要实现节点加入或离开网络、接收或抛弃其他节点、路由查找及传送数据等功能。
网络层功能:
1)网络发现;
2)网络形成;
3)允许设备连接;
4)路由器初始化;
5)设备同网络连接;
6)直接将设备同网络连接;
7)断开网络连接;
8)重新复位设备;
9)接收机同步;
10)信息库维护。
4.应用层
ZigBee应用层框架包括应用支持层(APS)、ZigBee设备对象(ZDO)和制造商所定义的应用对象。
应用支持层的功能包括:
维持绑定表、在绑定的设备之间传送消息。
ZigBee设备对象的功能包括:
定义设备在网络中的角色(如ZigBee协调器和终端设备),发起和响应绑定请求,在网络设备之间建立安全机制。
ZigBee设备对象还负责发现网络中的设备,并且决定向他们提供何种应用服务。
ZigBee应用层除了提供一些必要函数以及为网络层提供合适的服务接口外,一个重要的功能是应用者可在这层定义自己的应用对象。