ZigBee技术概述
ZigBee是是一种低速短距离传输的无线网络协议,底层是采用IEEE 802.15.4标准规范的媒体访问层与物理层。主要特色有低速、低耗电、低成本、支持大量网络节点、支持多种网络拓扑、低复杂度、可靠、安全。
802.15.4是链路层协议(OSI二层),定义的目的是适应低功耗的需要,用在物联网中。实现点对点的通信。
ZigBee是网络层协议(OSI三层),目的是用来生成网络拓扑实现多个设备的通信,同时提供认证、加密、路由协议和一些其他的服务。
IEEE 802.15.4/Zigbee Protocol Stack Architecture
1
ZigBee可使用的频段有3个,分别是2.4GHz的ISM频段、欧洲的868MHz频段、以及美国的915MHz频段,而不同频段可使用的信道分别是16、1、10个。
从上图可以看出channel 0为868.3MHz,902MHz-928MHz有10个Channel,从1-10每个channel间隔2MHz,2.4GHz总共16个Channel,从11-26每个channel间隔5MHz。
802.15.4 Physical Layer Frame Structure
前导码 (32 bits) – 用于实现同步
帧起始分隔符(SFD,Start of frame delimiter) (8 bits) –用于标识一个物理帧的开始,该字节固定为“11100101”。
物理层头部(8 bits) –包括帧长度域(7bits)和1 bit的预留域,用于标识物理层负载(PSDU)的长度,最大不超过127个字节
PSDU (0 -127 个字节) – 物理层实际所携带的负载数据。
发射功率至少能达到–3dBm
接收灵敏度-85 dBm (2.4GHz) / -91dBm (868/915MHz)
链路质量指示:
该指标用于衡量所接收的数据包的强度和质量
该指标可通过如下途径测量
检测接收信号的能量
估计接收时的信噪比
空闲信道评估 (CCA)
CCA 模式1:信道的信号能量超过某一门限便认为信道忙(弱)
CCA 模式2:判断无线信号的特征,检测出载波信号后便认为信道忙(中)
CCA 模式3:检测到载波存在,同时信道能量超过一定门限才认为忙(强)
能量检测门限至少要比一般的接收灵敏度高10dB。
CCA检测时间为8 个符号周期.
Tip:什么是符号周期?
OFDM符号周期是一个时间概念,matlab处理的是有离散数据,或者说是有限长序列。要计算OFDM符号周期,必须假设采样周期Ts(频率Fs=1/Ts)已知。
Mac层
CSMA/CA 算法
在此算法中,有三个重要的参数:
NB(后退次数,Number of Back):每检测到信道忙,该值就会加1.在IEEE 802.15.4中,Nb最大值定义为24.为了优化效率,当信道经过4次退避延迟检测后,仍然为忙,则放弃此次传送。在每次传输开始时,该值初始化为0.
CW(碰撞窗口长度, content window length): 每次退避等待时间值,单位为传输20个symbol所需的时间,CW的初始值为2,最大值为31.当判断信道为忙时,重置该值为2 此参数仅在信标网络下才使用。
BE(退避指数,Backoff exponent):设备尝试去退避的最大次数,也就是节点接入信道的能力。
发送数据前,先检测到信道状态,等到信道空闲后,再等待一段时间后,再次检测信道是否空闲,如果还是空闲,那么立刻发送数据,否则,随机等待一定时间,等时间到期后,再次发送检测。
发送真实数据前,先向目标端发送的请求传送报文(RTS),等接收到目标端响应报文CTS,发送端才开始传送真正的数据。采用这种RTS-CTS机制,可以确保接下来传送数据时,不会被碰撞。由于RTS-CTS的封包都很小,因此不会增大整体传输开销,此方式可以确保接下来传送数据时,其他设备不会使用信道以避免冲突。它采用了带确认的发送机制,类似于TCP的ACK回应,如果发送方收到了接收方对其发送数据的ACK确认,那么,不管空中信道是多么的拥挤,数据包还是艰难的穿梭到收发双方,其表现就是收到了ACK信号.
RTS/CTS握手协议:首先,A向B发送RTS信号,表明A要向B发送若干数据,B收到RTS后,向所有基站发出CTS信号,表明已准备就绪,A可以发送,而其余欲向B发送数据的基站则暂停发送;双方在成功交换RTS/CTS信号(即完成握手)后才开始真正的数据传递,保证了多个互不可见的发送站点同时向同一接收站点发送信号时,实际只能是收到接收站点回应CTS的那个站点能够进行发送,避免了冲突发生。
CSMA/CA通过上述三种方式,信道空闲检测、RTS-CTS和ACK确认,提供避免碰撞的无线信道分时访问。
信道的空闲检测有三种方式,分布是通过能量检测、载波检测和能量载波混合检测三种方式来检测信道,统称为CCA。
在无线信标网络中,网络中的协调器会定期发送信标给所有的可感知节点。所有待发送数据的设备,在发送数据前,都会通过CSMA/CA机制来竞争传输媒介的使用权。根据网络中是否有信标,将无线网络分为信标网络和非信标网络。在不同网络模式下,CSMA/CA算法版本不一样,分为信标版本slotted CSMA-CA 和非信标版本的unslotted CSMA-CA算法。
信标(Beacon)和非信标(Non-beacon)两种工作模式。为最大限度的节约能源消耗,信标模式可以使所有网络设备同步工作和同步休眠;而在非信标模式下,协调器和路由器必须长时间处于工作状态,只允许终端设备周期性进入休眠模式。
在信标模式下,协调器向网络广播16个相同时间槽间隔的信标帧一般以15ms-4min之间的时间为间隔。时间槽被分为网络活动区和网络休眠区两个部分,消息只能在网络活动区内发送。
在非信标模式下,采用终端节点向父节点提取数据,父节点为子节点缓存数据的机制,使终端设备可以周期性进入休眠模式以达到低功耗。在ZigBee网络中,子节点大部分时间通常都处于休眠工作状态,但需要周期性醒来确认自己仍处于网络中,并可在15ms的延时后转入数据传输模式,提取数据。
数据传输模型
在信标使能网络中,当协调器需要向某个设备发送数据时,就在下一个信标帧中说明协调器拥有属于某个设备的数据正在等待发送。
在信标不使能的网络中,协调器只是为相关的设备存储数据,被动地等待设备来请求数据,数据帧和命令帧的传送都使用无时隙的CSMA-CA机制。
设备可根据应用程序事先定义好的时间间隔,周期性地向协调器发送请求数据的MAC命令帧,查询协调器是否存有属于自己的数据。
如果有属于该设备的数据,则传送数据帧;如果没有数据,则发送一个0长度的数据帧给设备,表示没有属于该设备的数据。
在信标使能的网络中,PAN网络协调器定时广播信标帧。PAN网络中的设备都通过协调器发送的信标帧进行同步。设备之间通信使用基于时隙的CSMA-CA( slotted CSMA/CA)信道访问机制
在信标不使能的通信网络中,PAN网络协调器不发送信标帧,各个设备使用非时隙的CSMA-CA( unslotted CSMA/CA)机制访问信道。就是会根据间隙发送数据。