Zigbee调研报告.docx
《Zigbee调研报告.docx》由会员分享,可在线阅读,更多相关《Zigbee调研报告.docx(12页珍藏版)》请在冰豆网上搜索。
![Zigbee调研报告.docx](https://file1.bdocx.com/fileroot1/2022-12/10/13121849-72a3-4022-a46a-25635548e5bc/13121849-72a3-4022-a46a-25635548e5bc1.gif)
Zigbee调研报告
Zigbee调研报告
一、Zigbee简介
1、Zigbee名字的由来:
Zigbee名字起源于蜜蜂之间传递信息的方式。
蜜蜂通过一种特殊的肢体语言告知同伴新发现的事物源的位置信息,这种肢体语言是Zigzag舞蹈,借此意义以Zigbee作为新一代通信技术的命名。
在此之前Zigbee也被称为HomeRFLite、RF-Easylink或Firely无线电技术,现在统一称为Zigbee技术。
2、无线传感器网络与Zigbee的关系:
无线传感器网络是指大量的静止或移动的传感器以自组织和多跳的方式构成的无线网络。
其目的是协作地感知、采集和处理传输网络覆盖地理区域内感知对的监控信息,并报告给用户。
无线传感器网络起源于20世纪70年代,是一种特殊的无线网络,最早用于美国军方,例如空中预警控制系统。
这种原始的传感器网络只能捕获单一信号,传感器节点只能进行简单的点对点通信。
无线传感器网络与Zigbee的关系,无线传感器网络的应用,一般不需要很高的带宽,但对于功耗要求却很严格,大部分时间必须保持低功耗。
传感器节点通常使用储存容量不大的嵌入式处理器,对协议栈的大小也有严格的限制。
另外,无线传感器网络对网络安全性、节点自动配置和网络动态重组等方面也有一定的要求。
无线传感器网络的特殊性对应用于该技术的协议提出了较高的要求,目前使用最广泛的无线传感器网络的物理层和MAC层协议为IEEE802.15.4。
无线传感器网络与Zigbee技术之间的关系可以从两方面进行分析:
1、协议标准:
目前大多数无线传感器网络的物理层和MAC层都采用IEEE802.15.4协议标准。
IEEE802.15.4描述了低功率无线个人局域网的物理层和媒体接入控制层协议,属于IEEE802.15.4工作组,而Zigbee技术是基于IEEE802.15.4标准的无线技术。
2、应用:
Zigbee适用于通信数量不大,数据传输速率传输相对较低、成本较低的便携或移动设备。
这此设备只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到另一个传感器,并能实现传感器之间组网,实现无线传感器网络分布式,自组织和低功耗的特点。
Zigbee是实现无线传感器网络应用的一种重要的技术。
3、Zigbee技术的特点:
Zigbee可在2.4GHZ(全球流行)、868MHZ(欧洲流行)和915MHZ(美国流行)三个频段上,分别具有250kb/s、20kb/s、40kb/s的传输速率,它的传输距离在10m~75m的范围内。
1.低功耗。
一般的Zigbee芯片有多种电源管理模式,这些管理模式可以有效的对节点工作和休眠进行配置,从而使得系统在不工作时可以关闭射频部分,极大地降低了系统功耗,节约了电池能量。
2.低成本。
Zigbee网络协议简单,可以在计算能力和储存能力都很有限的MCU上运行,非常适用于对成本要求苛刻的场合。
现有的Zigbee芯片一般都是基于8051单片机内核,成本较低,这对于一些需要布置大量无线传感器网络节点的应用是很重要的。
3.大容量。
Zigbee设备即可以使用64位IEEE网络地址,又可以使用指配的16位网络短地址。
在一个单独的Zigbee网络内,理论上可以容纳最多65536个设备。
4.可靠。
无线通信是共享信道的,因而面临着众多有线网络所没有的问题。
Zigbee在物理层和MAC层采用IEEE802.15.4协议,使用带时隙或不带时隙的“载波检测多址访问/冲突避免”的数据传输方法,并与“确认和数据检测”等措施相结合,可保证数据的可靠传输。
同时,为了提高灵活性和支持在资源匮乏的MCU上运行,Zigbee支持三种安全模式。
最高级安全模式采用属于高级加密标准(AES)的对称密码和公开密钥,可以提高数据传输的安全性。
5.时延性。
针对时延性敏感做了优化,通信时延和从休眠状态激活的时延都非常短。
6.灵活的网络拓扑结构。
Zigbee支持星型、树型和网状拓扑结构,既可以单挑、又可以通过路由实现多跳的数据传输。
4、Zigbee芯片:
Zigbee芯片为cc243x系列、mc1322x系列和cc253x系列。
5、常见的Zigbee协议栈:
1.非开源协议栈;
2.半开源协议栈——适合工业级应用的Zigbee协议栈;
3.开源协议栈——对于初学者来说比较容易上手。
Freakz适合用于学习,对于工业应用来说讲Zstack比较实用。
2、Zigbee技术原理
1.Zigbee网络结构
Zigbee技术是一种低数据传输速率的无线个域网,网络的基本成员称为设备。
网络中的设备按照各自作用的不同可以分为协调器节点、路由器节点和终端节点。
1.Zigbee网络协调器是整个网络的中心,它的功能包括建立、维持和管理网络,分配网络地址等。
所以可以将Zigbee网络协调器认为是整个Zigbee网络的“大脑”。
2.Zigbee网络路由器主要负责路由发现、消息传输、允许其他节点通过它接入网络。
3.Zigbee终端节点通过Zigbee协调器或者Zigbee路由器接入到网络中,Zigbee终端节点主要负责数据采集或控制功能,但不允许其他节点通过它接
入网络中。
2.网络体系
按照OSI模型,Zigbee网络分为4层,分为物理层、媒体访问层(MAC)、网络层(NWK)和应用层。
其中物理层和MAC层由IEEE802.15.4标准定义,合称IEEE802.15.4通信层,网络层和应用层由Zigbee联盟定义。
3.拓扑结构
Zigbee网络支持三种拓扑结构:
星型、树型和网状型结构。
其中:
在星型拓扑结构中,所有的终端设备只和协调器之间进行通信。
树型网络由一个协调器和多个星型结构连接而成,设备除了能与自己的父节点或子节点互相通信外,其他只能通过网络中的树型路由完成通信。
网状型结构是在树型网络的基础上实现的,与树状网络不同的是,它允许网络中具有路由功能的节点互相通信,由路由器的路由表完成路由查询过程。
1.星型网络的形成过程
在星型网络中,协调器作为发起设备,协调器一旦被激活,它就建立一个自己的网络,并作为PAN协调器。
路由设备和终端设备可以选择PAN标准符加入网络。
不同PAN标准符的星型网络中的设备之间不能进行通信。
2.树型网络的形成过程
在树型网络中,由协调器发起网络,路由器和终端设备加入网络。
设备加入网络后由协调器为其分配16位短地址,具有路由功能的设备可以拥有自己的子设备。
但是在树型网络中,子设备只能和自己的父设备进行通信,如果某终端设备要与非自己的其他设备通信,必须经过树型路由进行通信。
3.网状型网络的形成过程
在网状型网络中,每个设备都可以与无线通信范围内其他任何设备进行通信。
理论上任何一个设备都可以定义为PAN主协调器,设备之间通过竞争的关系竞争PAN主协调器。
✧物理层和MAC层:
IEEE802.15.4标准为低速率无线个人域网定义了OSI模型最底层的两层,即物理层和MAC层,也是Zigbee协议底部的两层,因此这两层也称为IEEE802.15.4通信层。
物理层负责的是主要功能包括:
工作频段分配、信道的分配以及MAC层服务提供数据服务和管理服务。
v工作频段的分配
IEEE802.15.4定义了两个物理标准,分别是2450MHZ的物理层和868/915MHZ的物理层。
它们基于直接序列扩散,使用相同的物理层数据包格式,区别在于工作频段、调制技术和传输速率不同。
2.4GHZ是全球统一的无需申请的ISM频段,有助于Zigbee设备的推广和生产成本的降低。
此频段的物理层通过采用高阶调制技术能够提供250kb/s的传输速率,有助于获得更高的吞吐量、更小的通信延时和更短的周期,达到节约能源的目的。
另外此频段提供16个数据速率为250kb/s的信道。
v信道的分配
IEE802.15.4物理层在三个频段上划分了27个信道,信道编号K为0~26。
2.4GHZ频段上划分了16个信道,915MHZ频段上有10个信道,868MHZ频段只有1个信道。
v物理层服务规范
物理层的主要功能是在一条物理传输媒体上,实现数据链路实体之间透明的传输各种数据比特流。
它提供的主要服务包括:
物理层连接的建立、维持与释放、物理服务数据单元的传输、物理层管理、数据编码。
物理层功能涉及“服务原语”和“服务访问接口”两个概念,它们的意义如下:
服务原语:
Zigbee协议栈是一种分层结构,从上至下第N层向第N+1层或者第N+1层向第N层提供一组操作(也叫服务),这种“操作”叫做服务原语,它一般通过一段不可分割的或者不可中断的程序实现其功能。
服务原语用以实现层和层之间的信息交流。
服务访问接口:
服务访问接口(SAP)是某一特定层提供的服务于上层之间的接口。
这里所说的“接口”是指不同功能层的“通信规则”。
“服务原语”和“协议”的区别:
“协议”是两个需要通信的设备之间的同一层之间如何发送数据、如何交换帧的规则,是“横向”的;而“服务原语”是“纵向”的层与层之间的一组操作。
IEEE802.15.4标准的物理层所实现的功能包括数据的发送和接收、物理层信道的能量检测、射频收发器的激活和关闭、空闲信道评估、链路质量指示、物理层属性参数的获取与设置。
这些功能是通过物理层访问接口来实现的,物理层主要有两种服务接口(SAP):
物理层管理服务接口(PLME-SAP),PLME-SAP除了负责在物理层和MAC层之间传输管理服务外,还负责维护物理层PAN信息库(PHYPIB)。
物理层数据服务访问接口(PD-SAP),PD-SAP负责为物理层和MAC层之间提供数据服务。
PLME-SAP和PD-SAP通过物理层服务原语实现物理层的各项功能。
v数据的发送与接收
数据的发送和接收是通过PD-SAP提供的PD-DATA原语完成的,它可以实现两个MAC子层的MAC协议数据单元传输。
IEEE802.15.4标准专门定义了三个与数据相关的原语;数据请求原语(PD-DATA.REQUEST)和数据确认原语(PD-DATA.COMFIRM)和数据指示原语(PD-DATA.INDICATION)。
数据请求原语有MAC子层产生,主要用于处理MAC子层的数据发送请求。
语法如下:
PD_DATA.REQUEST(
PSDULENGTH,
PSDU
)
其中参数PSDU为MAC层请求物理层发送的实际数据,PSDULENGTH为待发数据报文长度。
物理层接收该原语的时候,首先会确认底层的射频收发器已置于发送打开状态,然后控制射频硬件把数据发送出去。
数据确认原语由物理层发给MAC子层,作为对数据请求原语的响应。
语法如下:
PD_DATA.CONFIRM(
status
)
其中原语的参数status为失败的原因,即参数为射频收发器置于收发状态(RX-ON)或者打开状态(TRX-OFF)时,将通过数据确认原语告知上层。
否则视为发送成功,即参数为SUCCESS,同样通过原语报告给上层。
数据指示原语主要用于MAC子层报告接收的数据。
在物理层成功收到一个数据后,将产生原语通告给MAC子层。
语法如下:
PD_DATA.INDICATION(
psduLength
Psdu
ppdulinkQuality
)
其参数为接收数据的长度、实际数据和根据PPDU测得的链路质量(LQI)。
其中LQI与数据无关,是物理层在接收当前数据报文时链路质量的一个量化值,上层可以借助这个参数进行路由选择。
v物理能量信道的检测
协调器在构建一个新的网络时,需要扫描所有信道,然后为网络选择一个空闲的信道,这个过程在底层是借助物理信道能量检测来完成的。
如果一个信道被别的网络占用,体现在信道能量上的值是不一样的。
IEEE802.15.4标准定义了与之相关的两个原语:
能量检测请求原语(PLME_ED.request)和能量检测确认原语(PLME_ED.confirm)。
能量检测请求原语由MAC子层产生。
能量检测原语为一个无参原语,语法如下:
PLME_ED.request()。
收到该原语后,如果设备处于使能状态,PLME就指示物理层进行能量检测(ED)。
能量检测确认原语由物理层产生,物理层在接收到能量检测原语后把当前状态以及当前信道的能量返回给MAC子层。
语法如下:
PLME_ED.confirm(
Status,
EnergyLevel
)
其中状态参数status将指示能量检测失败的原因,如果设备处于收发关闭状态或发送使能状态时,则无法进行能量检测。
在具体实现中,一般射频芯片使用特定的寄存器存放当前的信道状态以及信道的能量值。
v射频收发器的激活与关闭
收发器状态设置请求原语由MAC子层产生。
语法如下:
PLME-SET-TRX-STATE.request(
status
)
其中参数为需要设置的目标状态,包括射频接收打开(EX_ON)、发送打开(TX_ON)、收发关闭(TRX_OFF)和强制收发关闭(FORCE-SET-TRX-STATE.confirm)。
物理层在接收到收发器状态设置确认原语后,将射频设置为对应的状态,并通过确认原语返回才做结果。
语法如下:
PLME-SET-TRX-STATE.confirm(
status
)
其中参数status的取值为SUCCESS、RX_ON、TRX_OFF、TX_ON、BUSY_RX或BUSY_TX。
v空闲信道评估
由于802.15.4标准的MAC子层采用的是CSMA/CA机制访问信道,需要探测当前的物理信道是否关闭,物理层提供的CCA检测功能就是专门为此定义的。
此功能定义了两个与之相关的原语:
CCA请求原语(PLME-CCA.request)和CCA确认原语(PLME-CCA.confirm)。
CCA请求原语由MAC子层产生,语法为:
PLME-CCA.request(),是一个无参的请求原语,用于向物理层询问当前的信道状况。
在物理层收到该原语后,如果当前的射频收发状况设置为接收状态,将进行CCA操作。
CCA确认原语由物理层产生,语法如下:
PLME-CCA.confirm(
status
)
通过CCA确认原语返回信道空闲或者信道繁忙状态。
如果当前射频收发器处于关闭状态或者发送状态,CCA确认原语将对应返回TRX_OFF或者TX_ON。
v链路质量指示
高层的协议往往需要依据底层的链路质量来选择路由,物理层在接收一个报文的时候,可以返回当前的LQI值,物理层主要通过底层的射频硬件支持来获取LQI。
MAC软件产生的LQI值可以用信号接收强度指示器(RSSI)来表示。
v物理层属性参数的获取与设置
在Zigbee协议栈里面,每一层协议都维持着一个信息库(PIB),用于管理该层,里面具体放着与该层相关的一些属性参数,如最大报文长度。
在高层可以通过原语或者修改下一层的信息库里面的属性参数。
IEEE802.15.4物理层也同样维护着这样一个信息库,并提供4个相关原语:
属性参数获取请求(PLME-GET.request)。
属性参数获取确认原语(PLME-GET.confirm)。
属性参数设置请求原语(PLME-SET.request)。
属性参数设置确认原语(PLME-SET.confirm)。
MAC层:
物理层负责信道的分配,而MAC层负责无线信道的使用方法,它们是构建Zigbee协议底层的基础。
1.MAC功能概述
IEEE802.15.4标准定义MAC子层具有以下几项功能:
Ø采用CSM/CA机制来访问信道。
ØPAN(个域网)的建立和维护。
Ø支持PAN网络的关联和解除关联。
Ø协调器产生网络信标帧,普通设备根据信号帧与协调器同步。
Ø处理和维护保证。
Ø在两个对等MAC实体间提供可靠链路。
2.MAC服务规范
MAC层包括MAC层管理服务和数据服务。
ØMAC管理服务可以提供调用MAC层管理功能的服务接口,同时还负责维护MACPAN信息库。
ØMAC数据服务可以提供调用MAC公共部分子层(MCPS)提供的数据服务接口,为网络层数据添加协议头,从而实现MAC层帧数据。
Ø除了以上两个接口外,在MCPS和MLME之间还隐含了一个内部接口,用于MLME调用MAC管理服务。
MAC子层具有的功能:
CSMA/CA的工作原理
CSMA/CA机制实际是在发送数据帧之前对信道进行预约,以免造成信道碰撞问题。
CSMA/CA提供了两种方式对无线信道共享访问:
Ø送出数据前,监听信道的使用情况,维持一段时间后,在等待一段随机的时间后信道依然空闲,送出数据。
由于每个设备采用的随机时间不同,所以可以减少冲突的机会。
Ø送出数据前,先送一段小小的请求传送RTS报文给目标端回应CTS报文后才开始传送。
利用RTS/CTS握手程序,确保传送数据时不会碰撞。
PAN的建立和维护
在一个新设备上电的时候,如果设备不是协调器,它将通过扫描发现已有的网络,然后选择一个网络进行关联。
如果是一个协调器设备,则扫描已有网络,选择空余的信道与合法的PANID,然后构建一个新网络。
当一个设备在通信过程中,与其关联的协调器失去同步,也需要通过扫描通知其他协调器。
为了实现这些功能,802.15.4标准专门定义了4种扫描:
ED信道扫描、主动信道扫描、被动信道扫描和孤立信道扫描。
相关原语为请求原语和确认返回原语。
关联和解决关联
“关联”即设备加入一个网络,“解除关联”即设备从这个网络中退出。
对于一般的设备(路由器或终端节点),在启动扫描后,已经得到附近各个网络参数,下一步就是选择合适的网络和协调器进行关联。
信标帧
在信标帧使能的网络中,一般设备通过协调器信标帧的同步得知协调器是否有发送给自己数据;另外,为了减少设备的功耗,设备需要知道信号何时进入不活跃时段,这样,设备可以在不活跃时段关闭射频,而协调器广播信号帧打开射频。
所有的这些操作都需要通过信标帧实现精确同步。
MAC帧的结构
MAC帧即MAC协议单元,是由一系列字段按照特定的排列而成的。
设计目标是在保持低复杂度的前提下实现在噪声信道的可靠数据传输。
MAC层帧结构分为一般格式和特定格式。
1.MAC帧的一般格式结构
MAC帧由三部分组成:
MAC帧头(MHR)、MAC有效载荷和MAC帧尾(MFR)。
MAC帧头部分由帧控制字段和帧序号字段组成;MAC有效载荷由地址信息和特定帧类型的有效载荷组成,MAC有效载荷的长度与特定帧类型相关;MAC帧尾是检验序列(FCS)。
✓帧控制
帧控制字段的长度为16位,共分为9个子域。
帧控制字段的格式如图:
0~2
3
4
5
6
7~9
10~11
12~13
14~15
帧类型
安全使能
数据待传
确认请求
网内/网际
预留
目的地址模式
预留
源地址模式
帧类型子域占3位:
000表示信标帧,001表示数据帧,010表示确认帧,011表示MAC命令帧,其他取值预留。
安全使能子域占1位:
0表示MAC层没有对该帧做加密处理;1表示该帧使用了MACPIB中的密钥进行保护。
数据传指示:
1表示当前帧之后,发送设备还有数据要传送给接收设备,接收设备需要再发送数据请求命令来索取数据;0表示发送数据帧的设备没有更多的数据要传送给接收设备。
确认请求占1位:
1表示接收设备在接收到该数据帧或命令帧后,如果判断为有效帧,就要向发送设备反馈一个确认帧;0表示接收设备不需要反馈确认帧。
网内/网际子域占1位,表示该数据帧是否在同一个PAN内传输。
目的地址模式子域占2位:
00表示没有源PAN标识码和源地址,01预留,10表示源地址是16位短地址,11表示源地址是64位扩展地址。
✓帧序号
序号是MAC层为每帧制定的唯一顺序标示码,帧序号字段长度为8位。
其中信标帧的序号是信标序号(BSN)。
数据帧、确认帧或MAC命令帧的序号是数据信号(DSN)。
✓目的PAN标识码
目的PAN标识码的字段长度为16位,它指定了帧的期望接收设备所在PAN的标识。
只有帧控制字段中的地址模式不为0时,帧结构中才存在目的PAN标识码字段。
✓目的地址字段
目的地址是帧的期望接收设备的地址。
只有帧控制字段中目的地址模式非00时,帧结构中才存在目的地址字段。
✓源PAN标识码
源PAN标识码字段的长度为16位,它制定了帧发送设备的PAN标识码。
只有当帧控制字段中源地址模式值不为0,并且网内/网际指示位等于0时,帧结构中才包括含有源PAN标识字段。
一个设备的PAN标识码是初始关联到PAN时获取的,但是在解决PAN标识码冲突时可能会改变。
✓源地址字段
源地址是帧发送设备的地址。
只有帧控制字段中的源地址模式非00时,帧结构才存在源地址字段。
✓帧有效载荷字段
有效载荷字段的长度是可变的,因帧类型的不同而不同。
✓FCS字段
FCS字段是对MAC帧头和有效载荷计算得到的16位CRC校检码。
2.MAC特定帧的结构
MAC帧特定格式包括信标帧、数据帧、确认帧和命令帧。
1 信标帧
信标帧实现网络中设备的同步工作和休眠,建立PAN主协调器。
2 数据帧
数据帧用来传输上层发到MAC子层的数据。
它的负载字段包含了上层需要传送的数据。
数据负载传送至MAC子层时,被称为MAC服务数据单元。
它的首尾被分别附加了MAC帧头和MAC帧尾信息。
3 确认帧
由MAC帧头和MAC帧尾组成。
4 命令帧
用于组建PAN网络,传输同步数据等,命令帧识别字段指示所有的MAC命令,其取值范围0x01~0x09。
✧网络层
网路层提供保证IEEE802.15.4MAC层正确的工作能力,并为应用层提供合适的服务接口,包括数据服务接口和管理服务接口。
数据服务接口主要作用:
为应用支持子层的数据添加适当的协议头以便产生网络协议数据单元。
根据路由拓扑结构,把网络数据单元发送到通信链路的目的地址设备或通信链路的下一跳地址。
管理服务接口的主要作用:
提供服务包括配置新设备、创建新网络、设备请求或者离开网络。
允许Zigbee协调器或路由器请求离开网络、寻址、路由发现等功能。
✧应用层
包括三部分:
应用支持子层、Zigbee设备对象和厂商定义的应用对象。
1 应用子层提供了网络层和应用层之间的接口,包括数据服务接口和管理服务接口。
其中管理服务接口提供设备发现服务和绑定服务,并在绑定的设备之间传递信息。
2 Zigbee设备对象功能包括:
定义设备在网络中的角色,发起和响应绑定请求,在网络设备之间建立安全机制。
另外,还负责发现网络中的设备,并且向它们提供应用服务。
3 厂商定义的应用对象功能包括:
提供一些必要
3、Zigbee硬件设计
Zigbee硬件分为三部分,即CC2530核心片、协调器底板和路由器底板。
协调器底板集成了LED、LCD、RS232、电源接口、JTAG接口、蜂鸣器、时钟模块、按键以及传感器模块。
路由器底板集成了LED、电源接口、JTAG接口、蜂鸣器、按键以及传感器模块。
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)