在不同的国家和地区,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. mysql中插入多条记录-微软批处理

    当向mysql中插入大量数据时,可以使用微软的批处理方式.这样可以防止内存溢出又提高了效率.我写了一个mysql中插入多条记录的例子.赋值代码可以直接使用. 1.首先需要添加两个dll MySql.D ...

  2. 利用raspberry pi搭建typecho笔记(三) typecho nginx sqlite FAQ

    前言 这是一个汇总文,用来总结我在整个配置过程中遇到的各种问题.因为我在解决这些问题的过程中发现,typecho被部署在这种需要完全自己配置的平台上的情况是比较少的,相关的资料也比较少,所以我的解决过 ...

  3. mac终端 使用摘要

    Root  (拥有对此计算机的所有权限) 查看当前用户:who 切换到root(默认系统是不会使用root的):sudo -s  然后输入密码 更改密码:passwd

  4. android Unable to resolve target 'android-XX'错误和conversion to dalvik format failed with error 1错误

    当用eclipse 导入一个已经存在的项目时,经常会遇见:Unable to resolve target 'android-XX' 类似的错误.这是因为导入的项目代码中project.propert ...

  5. undefined reference to `png_set_longjmp_fn'

    这个是在Linux上编译项目的时候,一个动态库层用到的一个函数实现未找到,即使我链接了libpng2也没有找到,原因是这个库老了一些,没有这个函数定义,需要链接更高版本的png库,CentOS上有了在 ...

  6. bzoj1641 [Usaco2007 Nov]Cow Hurdles 奶牛跨栏

    Description Farmer John 想让她的奶牛准备郡级跳跃比赛,贝茜和她的伙伴们正在练习跨栏.她们很累,所以她们想消耗最少的能量来跨栏. 显然,对于一头奶牛跳过几个矮栏是很容易的,但是高 ...

  7. 二分搜索(Binary Search)

    当我们在字典中查找某个单的时候,一般我们会翻到一个大致的位置(假设吧,翻到中间位置),开始查找.如果翻到的正好有我们要的词,那运气好,查找结束.如果我们要找的词还在这个位置的前面,那我们对前面的这一半 ...

  8. 记事本写hello world_Java

    1 新建记事本,重命名为hello.java 2 打开hello.java,编辑并保存 class Hello { public static void main(String[] args) { S ...

  9. Python 面向对象基础

    面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机 ...

  10. python3 时间和日期

    Python程序可以通过多种方式来处理日期和时间.日期格式之间的转换是计算机的一个共同核心.Python的时间和日历模块能够帮助我们跟踪的日期和时间. 什么是刻度? 时间间隔以秒为单位的浮点数.特别是 ...