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,直接序列扩频)技术。共有三