ZigBee技术是物联网领域最常用的无线技术之一,如果我们要做基于ZigBee技术的物联网应用,最好对ZigBee协议栈有一个基本的了解。这篇文章对ZigBee协议栈做一个简单明了的介绍。

概述

本文准备介绍的ZigBee协议栈是ZigBee2007,也是目前业界最常用的标准版本,对于ZigBee协议栈的演进历程,可以参加《5分钟了解Zigbee的前世今生》。

ZigBee协议栈可以分为四层:物理层(PHY)、媒体访问控制层(MAC)、网络层(NWK)及应用层(APL)。如图所示,粉色的部分是由IEEE标准中定义的,浅蓝色部分是由ZigBee联盟规定的,黄色部分是由设备厂商自行定义。

ZigBee协议栈图示

在ZigBee协议栈的图示中,我们还可以发现有很多圆角矩形,都带有SAP的字样。SAP的意思就是服务接入点(Service Access Point)的意思,是协议栈层与层之间的接口,协议栈都是分层结构的,接口就是层与层之间的沟通渠道。

协议栈相邻的上下层之间一般都有两个接口,也就是两个SAP。名字中带字母D的SAP是数据接口,负责层间数据传输;名字中带字母M的SAP是管理接口,供上层或协议栈的管理平面对该层进行控制,比如进行一些参数配置,或读取状态等。PHY & MAC & NWK

ZigBee2007协议栈的物理层及MAC层都是IEEE802.5.14-2003标准中定义的。PHY层(物理层)规定了所使用的频段,以及所使用的编码、调制、扩频、调频等无线传输技术;有了物理层,就有了一个实现点到点之间的信号发射与接收的基础,没有物理层协议,设备间是根本没有办法通信的,有可能都不在一个频段上。

MAC层的主要作用规定了无线信道的访问控制机制,也就是规定各个设备按照什么规矩轮流使用信道;如果没有MAC层协议,节点一多,大家没有个规矩,就会发生信号冲突,谁都没法正常传输数据了。。

ZigBee协议栈在802.15.4协议基础上定义了网络层。网络层的主要作用是负责设备的连接和断开、在帧数据传递时采用的安全机制、路由发现和维护。简单说,就是保障设备之间的组网和网络节点间的数据传输。ZigBee技术支持多跳路由,可以实现星型拓扑、树型拓扑和网状拓扑等不同的网络拓扑结构。

PHY & MAC & NWK这三层协议,主要是为了上面的应用层服务的,在产品开发过程中,不需要深入涉及这三层协议的实现细节,应用层才是开发关注的部分。应用层

ZigBee的应用层的内部又分了三个部分:包括应用框架、应用支持子层(APS)及ZigBee设备对象(ZDO)。应用框架中包含至少一个应用程序对象,也就是ZigBee设备的应用程序,是ZigBee产品开发人员所要实现的部分。

应用支持子层APS参考模型

转载于:https://www.cnblogs.com/sidoom/p/9253811.html

ZigBee协议栈解析相关推荐

  1. zigbee协议栈之中终端绑定

    1193628586 个人中心 好友 消息 退出 聪明女人必撒的九个谎 发博文 博文 痴白孺子牛 http://blog.sina.com.cn/u/1326039221 [订阅] [手机订阅] 首页 ...

  2. zigbee协议栈学习(二)

    协议栈规范的 ID号可以通过查询设备发送的 beacon 帧获得.在设备加入网络之前,首先 需要确认协议栈规范的 ID."特定网络"规范 ID号为0: ZigBee协议栈规范的 I ...

  3. ZigBee协议栈简介和流程

    ZigBee协议栈实际上就是ZigBee协议的API接口 一般步骤为: 1.组网:调用协议栈的组网函数.加入网络函数,实现网络的建立与节点的加入 2.发送:发送节点调用协议栈的无线数据发送函数,实现无 ...

  4. ZIGBEE通讯-7.ZigBee协议栈简介

    想要学习协议栈,必须先知道协议是什么.协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发,而协议栈是协议的具体实现形式,通俗的理解为用代码实现的函数库,以便于开发人员调用. ...

  5. ZigBee协议栈浅显解读(一)

    目前ZigBee开发主要用的是TI的CC2530.CC2530内部集成看增强型的51所以对于只学过51的小白入门不成问题. 本篇文章我只会介绍ZigBee的协议栈. 我们打开ZigBee协议栈后可以加 ...

  6. Zigbee协议栈ZStack构架

     协议栈版本信息: ZigBee2006\ZStack-1.4.3-1.2.1 1.ZStack协议栈构架 Zigbee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些 ...

  7. zigbee协议栈ADC采集外部电压

    ADC 由于最近在做一个项目,其中一个步骤是需要CC2530片内ADC采集外设的电压值,三天反思不得其解,终于解决了这个问题. zigbee协议栈是有错误的,稍后我会写出来 ADC支持14位模数转换, ...

  8. CC2530下ZigBee协议栈中添加BH1750数字光照传感器

    项目里需要获得光照强度,之前用的是光敏电阻,但是光敏电阻实在不精确,换用BH1750数字光照传感器.网上购买后,送的资料都是单片机的,移植到ZigBee协议栈里面,时序有些问题,在网上找的一些资料,很 ...

  9. CC2530/Zigbee协议栈外部中断配置详解

    CC2530/Zigbee协议栈配置外部中断 一.I/O端口 二.配置寄存器 三.中断处理函数 一.I/O端口 1.在CC2530芯片中,其I/O口用作通用 I/O 时,引脚可以组成 3 个 8 位端 ...

  10. zigbee协议栈初使用(三)无线数据传输

    zigbee协议栈初使用(三)无线数据传输 本次使用协议栈例程广播通信完成,本文记录网蜂<Zigbee实战演练>学习总结 一.发送部分   打开SampleApp.c找到 uint16 S ...

最新文章

  1. C++ 对TXT 的串并行读写
  2. python 字典程序_Python 字典(Dictionary)操作详解
  3. 微信退款通知,退款回调数据解密.SHA256签名AEAD_AES_256_GCM解密
  4. php 类名访问静态属性,请问可以用类名直接调用静态属性吗?
  5. STM32那点事(1)_STM32F40_41xx启动文件详解
  6. 【CSS3】---only-child选择器+only-of-type选择器
  7. SAP License:在LMLCCS_UPDATEF02 LCL_DB 内部错误的解决办法
  8. 计算机信息的应用安全中心在哪,腾讯游戏安全中心
  9. odbc mysql server_使用MySQL ODBC进行MySQL和SQL Server转换
  10. LR之Java Vuser
  11. 【聚类算法】| Kmeans算法的Python实现(以西瓜数据集为例)
  12. python爬虫汽车之家全车型及基本参数入数据库(截止50524个数据)(详解)
  13. uos统一操作系统命令与linux一样,UOS统一操作系统仍然存在着不少的问题,需用户更新系统来完善...
  14. HACK RF学习之旅记录3——安装WIN10+Ubuntu双系统
  15. 客户无盘系统服务器内存,无盘服务器内存大小
  16. Knight Tournament
  17. (纪中)1593. 【GDKOI训练】电视游戏问题(vidgame)【DP】
  18. RT-Thread源码下载介绍
  19. 【查看服务器磁盘空间请用情况】
  20. 机械工程基础知识点汇总

热门文章

  1. JS实现键盘事件上下翻页
  2. 流程图函数’怎么画_程序员必备画图技能之——流程图
  3. python手机安装不了软件怎么办_安装python安装方法
  4. js base64编码_使用psd.js将PSD转成SVG -- 基础篇(文字amp;图片)
  5. 专访普渡科技:深耕餐饮业务,充分发掘送餐机器人的商业价值
  6. shell 练习(07)——MySQL 数据库备份
  7. ORACLE数据泵还原(IMPDP命令)【转】
  8. Java编程提高性能时需注意的地方
  9. OpenCart支付宝付款接口(直接到账、担保交易、双接口)
  10. jquery ui accordion的详细参数