ZigBee PHY层
1. 介绍
ZigBee PHY层,即IEEE 802.15.4 PHY层,这里主要介绍了802.15.4-2003版本
PHY主要实现了如下功能
- 启动和关闭RF收发器
- 信道能量检测(Channel ED)
- 接收数据包链路质量检测(LQI)
- CSMA-CA的信道忙闲评估(CCA)
- 信道频率选择
- 数据的发送和接收
需要注意区分: 收发器(transceiver)、发射器(transmitter)、接收器(receiver)
2. 服务
PHY通过RF固件和硬件为MAC层提供了两种类型的服务:PHY数据服务和PHY管理服务
PHY数据服务使PHY能通过物理无线信道传输和接收PHY协议数据单元(PPDU);PHY管理服务为PLME提供接口
PHY包括一个称为PLME的管理实体;PLME提供了层管理服务接口,通过该接口可以调用层管理功能;PLME还负责维护与PHY有关的被管理对象的数据库,该数据库被称为PHY PIB
其中,PHY数据服务,通过PD-SAP(PHY Data SAP)访问;PHY管理服务,通过PLME-SAP(PLME's SAP)访问
参考模型如下图所示
2.1 数据服务
PD-SAP支持在对等MAC子层实体之间传输MPDU
PD-SAP支持的原语为PD-DATA;PD-DATA包括Request、Confirm、Indication
2.1.1 PD-DATA request/confirm
PD-DATA.request原语由MAC层发起,向PHY层请求MPDU数据的传输
PHY实体收到该原语并且收发器使能时(TX_ON状态),PHY首先构造包含PSDU的PPDU,然后传输该PPDU;传输完成时,通过PD-DATA.confirm原语反馈结果
该原语语法和参数为
- PD-DATA.request(psduLength, psdu)
- PD-DATA.confirm(status)
psduLength: 待传输PSDU字节数, ~aMaxPHYPacketSize
psdu: 待传输PSDU数据
status: 数据传输结果, SUCCESS、RX_ON、TRX_OFF
2.1.2 PD-DATA Indication
PD-DATA.indication原语指示MPDU从PHY到本地MAC子层实体的传送
该原语由PHY实体生成并发布到其MAC子层实体以传送接收的PSDU;当psduLength为零或大于aMaxPHYPacketSize,则不生成该原语;收到该原语后,MAC层则会被通知一个PSDU的到达
该原语语法和参数为
- PD-DATA.indication(psduLength, psdu, ppduLinkQuality)
psduLength: 待接收PSDU字节数, ~aMaxPHYPacketSize
psdu: 待接收PSDU数据
ppduLinkQuality: PSDU接收时LQ值, 0x00-0xff
2.2 管理服务
PLME-SAP用于在MLME和PLME之间传输管理命令
PLME-SAP支持的原语为PLME-CCA、PLME-ED、PLME-GET、PLME-SET-TRX-STATE、PLME-SET;
每个原语包括Request、Confirm
2.2.1 PLME-CCA
MLME通过PLME-CCA.request原语向PLME请求CSMA-CA信道忙闲评估;
PLME完成CCA后,通过PLME-CCA.confirm原语反馈CCA结果
该原语语法和参数为
- PLME-CCA.request()
- PLME-CCA.confirm(status)
status: TRX_OFF、TX_ON、BUSY、IDLE
2.2.2 PLME-ED
MLME通过PLME-ED.request原语向PLME请求信道能量检测,PLME对PHY执行该操作;
操作完成后PLME通过PLME-ED.confirm反馈结果
该原语语法和参数为
- PLME-ED.request()
- PLME-ED.confirm(status, EnergyLevel)
status: 检测结果, SUCCESS、TRX_OFF、TX_ON
EnergyLevel: 当前信道能量值, 0x00-0xff
2.2.3 PLME-GET
MLME通过PLME-GET.request原语向PLME请求获取PHY PIB Attribute值;
PLME从数据库中检索并通过PLME-GET.confirm反馈对应结果
该原语语法和参数为
- PLME-GET.request(PIBAttribute)
- PLME-GET.confirm(status, PIBAttribute, PIBAttributeValue)
status: 请求结果, SUCCESS、UNSUPPORTED_ATTRIBUTE
PIBAttribute: 待获取PHY PIB attribute
PIBAttributeValue: PHY PIB attribute值
2.2.4 PLME-SET-TRX-STATE
MLME通过PLME-SET-TRX-STATE.request原语请求PLME改变receiver的操作状态,PLME对PHY执行该操作;
操作完成后PLME通过PLME-SET-TRX-STATE.confirm反馈操作结果
该原语语法和参数为
- PLME-SET-TRX-STATE.request(state)
- PLME-SET-TRX-STATE.confirm(status)
state: 请求状态, RX_ON、TRX_OFF、FORCE_TRX_OFF、TX_ON
status: 请求结果或者当前状态, SUCCESS, RX_ON、TRX_OFF、TX_ON、BUSY_RX、BUSY_TX
2.2.5 PLME-SET
MLME通过PLME-SET.request原语向PLME请求写入PHY PIB Attribute值;
PLME将对应数据写入数据库并通过PLME-SET.confirm反馈结果
该原语语法和参数为
- PLME-SET.request(PIBAttribute, PIBAttributeValue)
- PLME-SET.confirm(status, PIBAttribute)
status: 操作结果, SUCCESS、UNSUPPORTED_ATTRIBUTE、INVALID_PARAMETER
PIBAttribute: 待写入PHY PIB attribute
PIBAttributeValue: 待写入PHY PIB attribute值
2.3 枚举描述
下图显示了PHY规范中定义的枚举值的描述
3. PPDU格式
PPDU, PHY Protocol Data Unit, 即PHY协议数据单元
TIP: 八位字节字段应首先发送或接收最低有效八位字节,并且每个八位字节应首先发送或接收LSB;该规定适用于PHY和MAC子层之间传输的数据传输
3.1 报文格式
PPDU包由以下组成部分
- SHR, Synchronization Header, 允许接收设备同步并锁定比特流
- PHR, PHY Header, 包含帧长度信息
- PHY Payload, MAC层帧数据, 长度可变
通用格式如下图所示
3.2 字段描述
PPDU各字段含义如下
Preamble: 前导码, 通常为32个二进制零, 收发器用以获得与传入消息的芯片和符号同步
SFD: Start-of-Frame Delimiter, 帧定界符, 8bit, 用来指示前导码的结束和分组数据的开始, 格式如下图
Frame Length: 帧长度字段, 7bit, 标识PSDU字节数, 取值范围为0~aMaxPHYPacketSize
PSDU: 可变长度并包含PHY分组数据; 长度为5或者8及以上时, PSDU包含MAC层帧
4. PHY常量和PIB属性
4.1 PHY常量
在PHY中定义了如下两个常量
4.2 PIB属性
PHY PIB定义了管理PHY所需的属性;可以分别使用PLME-GET.request和PLME-SET.request原语读取或写入
5. PHY规范
该章节主要介绍了2.4 GHz PHY的规范要求
5.1 速率
2.4GHz PHY速率应为250 kb/s
5.2 调制和扩频
2.4GHz PHY采用16进制准正交调制技术,其调制和扩频功能参考如下图
5.2.1 Bit-to-symbol映射
Bit-to-symbol将PPDU中包含的所有二进制数据映射到数据符号中
从前导码开始至最后一个八位字节结束,对于每个二进制八位字节先处理最低有效位,然后是高有效位
以一个八位字节为例, 先将其4个LSB(b0,b1,b2,b3)应映射成一个数据符号,随后将4个MSB(b4,b5,b6,b7)映射到下一个数据符号
5.2.2 Symbol-to-chip映射
Symbol-to-chip是将每个数据符号映射到下表中规定的32码片PN(Pseudo-random Noise)序列
其中,PN序列通过循环移位和/或共轭(即,奇数索引的码片值的反转)彼此相关
5.2.3 O-QPSK调制
O-QPSK调制过程将芯片序列通过半正弦脉冲整形滤波器进行O-QPSK调制至载波
其中,偶数索引的码片调制到I-Phase载波上,奇数索引的码片调制到Q-Phase载波上
因为数据符号由32码片序列表示,所以码片速率(通常为2.0 Mchip / s)是符号速率的32倍;为了形成I相和Q相芯片调制之间的偏移,Q相芯片应相对于I相芯片延迟Tc(Tc是芯片速率的倒数)
5.2.4 脉冲形状
用于描述基带芯片的半正弦脉冲形状由如下公式描述
其形状如下
5.2.5 芯片传输顺序
对于芯片序列的传输,首先发送最低有效位c0,最后发送最高有效位c31
5.3 无线电规范
除满足不同地区监管要求外,在2.4 GHz频段工作的设备还应满足下面的无线电要求
!!! 在下无能,规范这里真心是看不懂!!!
6. 通用无线电规范
这里介绍的无线电规范同时适用于2.4 GHz PHY和868/915 MHz PHY
6.1 TX-to-RX周转时间
TX-to-RX周转时间应小于aTurnaroundTime
其测量方式为从最后发送的符号的后沿开始,直到接收器准备好开始接收下一个PHY分组结束
6.2 RX-to-TX周转时间
RX-to-TX周转时间应小于aTurnaroundTime
其测量方式为从接收分组的最后一个Symbol的最后一个Chip的后沿开始,直到发射器准备好开始发送所得到的确认结束; 实际传输开始时间由MAC子层指定
6.3 误差矢量幅度
误差矢量幅度, EVM(Error-vector magnitude),是在一个给定时刻理想无误差基准信号与实际发射信号的向量差,是衡量一个RF系统总体质量指标
在802.15.4中,通过EVM测量来确定接收器的调制精度
其测量方式为: 捕获N个接收的复合码片值的时间记录 ;对于每个接收到的复合码片,决定传输哪个复合码片值;所选复合码片的理想位置由矢量表示; 误差向量定义为从理想位置到接收点实际位置的距离
其中,接收矢量是理想矢量和误差矢量之和
IEEE Std 802.15.4-2003 EVM计算公式如下(S为???)
IEEE 802.15.4要求1000次chip其EVM值应小于35%
6.4 频率容差
频率容差,frequency tolerance,发射的特征频率偏离参考频率的最大允许偏差,单位为百万分之几(ppm)
传输中心的频率容差最大为±40 ppm
6.5 发射功率
发射功率,transmit power,IEEE 802.15.4规定发射器必须能够发射至少-3dBm; 设备应尽可能传输较低的功率,以减少对其他设备和系统的干扰;最大发射功率受当地监管机构的限制
6.6 接收器最大输入电平
IEEE 802.15.4 接收器最大输入电平应大于或等于-20 dBm
6.7 能量检测
接收器ED的测量旨在作为信道选择算法的一部分由网络层使用,它是IEEE 802.15.4信道带宽内接收信号功率的估计值
ED测量结果通过PLME-ED.confirm上报被MLME,范围为0x00-0xff;最小值0表示接收功率低于规定的接收器灵敏度10dB;ED值跨越的接收功率应至少为40dB;在此范围内,从接收功率(以分贝为单位)到ED值的映射应为线性,精度为±6dB
6.8 LQI
LQI测量是对接收分组的强度和质量的表征;可以使用接收器ED,信噪比估计或这些方法的组合来实现测量;IEEE 802.15.4未规定网络层或应用层对LQI结果的使用
应对每个接收到的数据包执行LQI测量,并使用PD-DATA.indication将结果报告给MAC子层,范围为0x00到0xff;最小和最大LQI值应与最低和最高质量相关联
6.9 CCA
IEEE 802.15.4 PHY应提供根据以下三种方法中的至少一种执行CCA的能力:
- CCA模式1: 能量高于阈值, 在检测到高于ED阈值的任何能量时, CCA应报告介质繁忙
- CCA模式2: 仅限载波侦听, 只有在检测到具有IEEE 802.15.4的调制和扩频特性的信号时, CCA才应报告介质繁忙; 该信号可以高于或低于ED阈值
- CCA模式3: 载波检测能量高于阈值, 只有在检测到具有IEEE 802.15.4的调制和扩频特性且能量高于ED阈值的信号时, CCA才应报告繁忙的媒体
对于任何CCA模式,如果在接收PPDU期间PHY接收到PLME-CCA.request原语,则CCA应报告介质繁忙;在检测到SFD之后,PPDU接收被认为正在进行中,并且它一直在进行,直到已经接收到由解码的PHR指定的八位字节的数量
繁忙信道应由PLME-CCA.confirm原语指示,状态为BUSY;空闲信道应由PLME-CCA.confirm原语指示,状态为IDLE
PHY PIB属性phyCCAMode应指示适当的操作模式
CCA参数符合以下标准:
a) ED阈值应至少比指定的接收机灵敏度高10dB
b) CCA检测时间应等于8个符号周期
参考:
<IEEE 802.15.4-2003>
<End-to-End IEEE 802.15.4 PHY Simulation>
ZigBee PHY层的更多相关文章
- ZigBee MAC层(上)
1. 介绍 ZigBee MAC层,即IEEE 802.15.4 MAC层,这里主要介绍了802.15.4-2003版本 MAC层处理所有对物理无线信道的访问控制,并负责下面的任务 - 为协调器生成网 ...
- ZigBee MAC层(下)
6. MAC功能描述 6.1 信道访问 802.15.4使用的物理无线电信道的访问机制有下面两种: - 基于竞争的访问机制: 设备使用CSMA-CA退避算法以分布式方式访问信道 - 无竞争的访问机制: ...
- ZigBee NV层使用
原文转载于http://www.cnblogs.com/yqh2007/archive/2011/05/31/2065284.html 系统NV区:初始化nv数据项 osal_nv_item_in ...
- 802.11(wi-fi)的PHY层(编码与调制方法)
版本概要: 802.11-2007是目前的基础版本,之前的过时版本不考虑. 2009是较新的版本,就是目前最普及的802.11n.(100Mb/s) 2012就是传说中的802.11ac,工作在5G, ...
- 基于ZigBee的家居控制系统的设计与应用
基于ZigBee的家居控制系统的设计与应用 PPT简介:http://pan.baidu.com/s/1i38PC6D 摘 要 智能家居是未来家居的发展方向,其利用先进的网络技术.计算机技术和无线通 ...
- ZigBee协议基本介绍
ZigBee是一种短距离(10~100米).低速率(20~250Kbps).底成本.低功耗的无线网络技术,主要用于近离无线通讯.能够做到在数千个微小的传感器之间相互协调实现通讯,这些传感器只需要很少的 ...
- zigbee
IEEE802.15.4定义了两种器件:全功能器件(FFD,Full-FunctionDevice),和简化功能器件(RFD,Reduced-functionDevice) 协调器:(coordina ...
- [zigbee]zigbee的一些基础
--------------------------下面转自知乎 首先要区分协议跟协议栈.◇协议是一种规定.是一系列的通信标准,通信双方按照这一标准进行数据收发.◇协议栈是一系列代码,是协议的具体实现 ...
- ZigBee介绍
ZigBee网络 什么是ZigBee技术 Zigbee在中国被译为"紫蜂",是一种基于IEEE802.15.4协议的最近发展起来的一种短距离无线通信技术,功耗低,被业界认为是最有可 ...
随机推荐
- SPRITEKIT游戏框架之关于PHYSICS物理引擎属性
Spritekit提供了一个默认的物理模拟系统,用来模拟真实物理世界,可以使得编程者将注意力从力学碰撞和重力模拟的计算中解放出来,通过简单地代码来实现物理碰撞的模拟,而将注意力集中在更需要花费精力的地 ...
- 在Code::Blocks中编译和使用wxWidgets3.0.0教程
跳转至:指南,搜索 注意,编译Code :: Blocks的对wxWidgets的3.0.0链接不是很稳定,但该库至少可以被正确编译,(只是使用的时候可能会有问题):CodeBlocks开发商都在 ...
- Leetcode 684.冗余连接
冗余连接 在本问题中, 树指的是一个连通且无环的无向图. 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成.附加的边的两个顶点包含在1到N中间,这条 ...
- 机器学习 (三) 逻辑回归 Logistic Regression
文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...
- python学习笔记-list的用法
1.list的定义 list = [] list = [1,2,'a','b'](list中的元素不一定是一个类型) 2.list的操作 1)list.append(value) 2)list.ins ...
- vue里的this
vue中methods对象里的函数, this指向的都是当前实例或者组件.
- java enum naming rules & Pascal case, Camel case, Uppercase
java enum naming rules Constant & all Capital Case https://stackoverflow.com/questions/3069743/c ...
- 【Python】PYTHON九九乘法表
python2.7 for i in range(1,10): for j in range(1,i+1): print j,'x',i,'=',j*i,'\t', print '\n'pr ...
- fckeditor的简单使用
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEnco ...
- StrutsResultSupport的使用
在有特殊情况时:如果没有异常信息,但是有错误并且有错误信息等内容:此时也需要进行友好的错误处理的话,那么可以借助StrutsResultSupport 返回结果类型来实现特定处理.此种方式先需要继承S ...