在不同的国家和地区,ZigBee技术所允许使用的工作频率是不同的,而对于不同的应用频率范围,其调制方式。传输速率均不同,众所周知,蓝牙技术在世界多数国家都采用统一的频率范围,其范围为2.4GHz的ISM频段上,调制采用快速跳频扩频技术,而ZigBee技术不同,对于不同的国家和地区,为其提供的工作频率范围是不同的,ZigBee所使用的频率范围主要分为868/915MHz和2.4Ghz ISM频段,各个具体的频段的频率范围如下表所示:
 
   由于各个国家的地区采用的工作频率范围不同,为提高数据传输速率,IEEE802.15.4规范标准对于不同的频率范围,规定了不同的调制方式,因而在不同的频率段上,其数据传输速率不同,具体调制和传输速率如下所示:
   从上面可以看出ZigBee使用了3个工作频段,每一个频段宽度不同,其分配信道的个数也不相同,在IEEE802.15.4规范标准定义了27个物理信道,信道编号从0到26,在不同的频段其带宽不同,其中2450MHz频段定义了16个信道,915MHz频段定义了10个信道,868MHz频段定义了1个信道。这些信道的中心频率定义如下:
ZigBee物理层通过射频固件和射频硬件提供了一个从MAC层以物理层无线信道的接口。在物理层中,包含一个物理层管理实体(PLME),该实体通过调用物理层的管理功能函数,为物理层管理服务提供其接口,同时,还负责维护由物理层所管理的目标数据库,该 数据库包含有物理层个域网络的基本信息。
ZigBee物理层的结构及接口如下图:
 
图1 物理层结构模型
从图中可以看出,在物理层中,存在有数据服务接入点和物理层实体服务接入点,通过这两个服务接入点提供如下两种服务,它们是:(1)通过物理层数据服务接入点(PD-SAP)为物理层数据提供服务(2)通过物理层管理实体(PLME)服务的接入点(PLME-SAP)为物理层管理提供服务。
物理层的数据服务和管理服务都是通过各种的原语操作完成的,这里就不介绍各种原语的用法和功能了。在以后用到时再结合的具体的实例。
ZigBee协议数据单元的结构
ZigBee协议数据单元(PPDU)数据包的格式。在PPDU数据包结构中,最左边的字段优先发送和接收。在多个字节的字段中,优先发送或接收最低有效字节,而在每一个字节中优先发送最低有效位(LSB),同样在物理层与MAC层之间数据字段的传送也遵循这一规则。每个PPDU数据包由以下几个基本的部分组成:
  • 同步包头SHR:允许接收设备锁定在比特流上,并且与该比特流保持同步
  • 物理层包头PHR:包含帧长度的信息
  • 物理层净荷:长度变化的净荷,携带MAC层的帧信息
PPDU数据包的格式如下图所示:
 
 
PPDU 数据包的格式
1.前同步码
收发机根据前同步码引入的消息,可获得码同步和符号同步的信息,在802.15.4标准协议中,前同步码由32个进制组成
2.帧定界符
帧定界符由一个字节组成,用来说明前同步码的结构和数据包数据的开始。
3.帧长度
帧长度占7个比特,它的值是PSDU中包含的字节数也即净荷数,该值在0到aMaxPHYPacketSize之间。
4.物理层服务数据单元PSDU
物理层服务数据单元的长度是可以变化的,并且该字段能够携带物理层数据包的数据。如果数据包的长度类型为5个字节或大于8个字节,那么,物理层服务数据单元携带MAC层的帧信息,即MAC层协议数据单元。
2.4GHz频带的物理层规范
.扩展调制
位准正交调制技术。在调制前,将数据信号进行转换处理,将信息按每4位信息比特进行处理,第4位信息比特组成一个符号数据,根据该符号数据,从16个几乎正交的为随机序列(PN序列)中,选取其中一个序列作为传送序列。根据所发送连续的数据信息,将所选出的PN序列串接起来,并使用O-QPSK的调制方法,将这些集合在一起的序列调制到载波上。
 
 
1)比特-符号转换器(Bit-to-Symbol)
   在对物理层协议数据单元进行调制前,必须对其所有的二进制数据进行转换处理。首先,必须将二进制数据转换成符号数据,其转换过程如下所述。
将每个字节按4比特位进行分解,将低4位转换成一个符号数据,高4位转换成一个符号数据,物理层协议数据单元的每个字节都要逐个进行处理,即从它的前同步码字段开始到它的最后一个字节。在每个字节处理过程中,优先处理低4位,随后处理高4位。
2)符号-码片的映射(Symbo-to-Chip)
   根据处理得到的符号数据,将其进行扩展,即每个符号数据映射成一个32位的伪随机序列(PN序列),这些PN序列通过循环移位或者相互结合(如奇数位取反)等相互关联。
3)O-QPSK调制

扩展后的码元序列通过采用半正弦脉冲形式的O-QPSK调制方法,将符号数据信号调制到载波信号上。其中,编码为偶数的码元调制到I相位的载波上,编码为奇数的码元,调制到Q相位的载波上。每个符号数据由32码元的序列来表示,所以,码元速率是符号速率的32倍。为了使I相位的码元要延迟Tc 秒发送,Tc是码元速率的倒数。

ZigBee物理层协议规范的更多相关文章

  1. zigbee 中ZDO的理解

    ---恢复内容开始--- ZigBee     物理层:主要进行无线数据的收发,同时定义了无线传输的信道以及频率.      MAC层:使用CSMA-CA机制接入到无线信道,负责传输信标帧,保持同步和 ...

  2. 自学工业控制网络之路1.5-典型的现场总线介绍DeviceNet

    返回 自学工业控制网络之路 自学工业控制网络之路1.5-典型的现场总线介绍DeviceNet 2002年10月DeviceNet被批准为中国国家标准GB/T18858.3-2002,并于2003.4. ...

  3. ZigBee 协议规范

      ZigBee协议栈体系结构由应用层.应用汇聚层. 网络层.数据链路层和物理层组成,如下图所示:   图1 ZigBee 协议栈体系的层次结构      应用层定义了各种类型的应用业务,是协议栈的最 ...

  4. LoRaWAN 1.1 网络协议规范 - 3 物理层帧格式

    LoRaWAN 1.1 网络协议规范 LoRaWAN 1.1 版本封稿很久了也没有完整啃过一遍,最近边啃边翻译,趁着这个机会把它码下来. 如果觉得哪里有问题,欢迎留言斧正. 翻译不易,转载请申明出处和 ...

  5. Zigbee系列(概览)

    Zigbee技术特点 低速率: 数据传输速率只有20~250kb/s, 2.4GHZ提供250kb/s, 915MHz对应40kb/s, 868Mhz对应20kb/s 低功耗:睡眠模式设备使用电池供电 ...

  6. 物联网常见通信协议RFID、NFC、Bluetooth、ZigBee等梳理

    1  概述 在上一篇文章<物联网常见通信协议与通讯协议梳理[上]-通讯协议>中,对物联网常用通信协议和通讯协议作了区分,并对通讯协议进行了分享:本文将对常用的通信协议进行剖析,重点面向市场 ...

  7. 【转】ZigBee终端入网方式深入分析

    前述 继之前对终端Direct Join的分析,发现很多东西还很模糊,存在很多问题.终于找到时间继续深入挖下去,这次应该比较完整地搞清了终端的入网机制,并纠正之前的几个认识偏差. 由于Z-Stack网 ...

  8. 【转】ZigBee是如何组网的?

    组网方案设计:组建一个完整的zigbee网状网络包括两个步骤:网络初始化.节点(路由器或终端)加入网络,其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网. 一.网络初始化:  ...

  9. zigbee学习之路(十二):zigbee协议原理介绍

    一.前言 从今天开始,我们要正式开始进行zigbee相关的通信实验了,我所使用的协议栈是ZStack 是TI ZStack-CC2530-2.3.0-1.4.0版本,大家也可以从TI的官网上直接下载T ...

随机推荐

  1. information_schema.referential_constraints 学习

    information_schema.referential_constraints 表用于查看外键约束 1.information_schema.referential_constraints表的常 ...

  2. Java所有编码问题参考手册

     一.编码基本知识 1.iso8859-1 ——属于单字节编码,最多能表示的字符范围是 0-255,应用于英文系列.比如,字母 'a' 的编码为0x61=97. 很明显,iso8859-1 编码表示的 ...

  3. 在 .pro里加入 QMAKE_CXXFLAGS += /MP 将并行编译,加快编译速度(姚冬的办法)

    但是只对VC编译器有效果. 另外还可以自己设置stdafx.h文件 http://www.zhihu.com/question/23045749

  4. 编译boost python模块遇到的错误:../../libraries/boost_1_44_0/boost/python/detail/wrap_python.hpp:75:24: fatal error: patchlevel.h: No such file or directory

    就是遇到类似标题上面的错误. 原因是没有安装对应python的python-dev依赖,不然编译到boost python模块的时候就会出错. 所以解决方案是sudo apt-get install ...

  5. 解决ssh无密码登录不成功的问题

    把ssh设置为无密码登录很简单,只需两步: 1.在本地创建公钥和私钥: ssh-keygen -t rsa 2.然后把公钥上传到远程机器上: ssh-copy-id -i ~/.ssh/id_rsa. ...

  6. [转]Traceroute网络排障实用指南(2)

    五.优先级与限速 5.1 Traceroute延时判断影响因素 Traceroute延时包括三点: 探测包到达一个特定路由器的时间 路由器生成IPMI TTL Exceed的时间 ICMP TTL E ...

  7. 标准linuxserver搭建

    一:针对大数据平台的linux例如以下搭建.为了方便截图,採用的虚拟机,与真实环境有点出入 二:过程例如以下 1. 在vmware中选择载入虚拟光盘iso文件,然后进入安装 2. 默认选择第一项 In ...

  8. Ruby中,&:(ampersand colon)的用法

    前几日看Ruby代码,发现一个奇怪的用法,如下: a=['a', 'b', 'c'].map! &:upcase p a #["A", "B", &qu ...

  9. LR实战之Discuz开源论坛——登录脚本

    脚本业务流:访问Discuz论坛首页——登录论坛——退出论坛.本次使用LoadRunner11版本. 一.录制脚本注意 1.确保Discuz论坛能在服务器运行正常. 2.录制前先试访问Discuz论坛 ...

  10. Babel6.x 转换ES6

    本文介绍Babel6.x的安装过程~ 首先呢,可以使用Babel在线转换 https://babeljs.io/repl/ 然后进入主题:安装Babel(命令行环境,针对Babel6.x版本) 1.首 ...