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

ZigBee的协议分为两部分,IEEE802.15.4定义了PHY(物理层)和 MAC(介质访问层)技术规范,ZigBee联盟定义了NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。ZigBee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些应用层API,供用户调用。ZigBee 无线网络协议如下图所示:

ZigBee协议栈具有很多版本,不同厂商提供的ZigBee协议栈有一定的区别,在本手册中,采用TI公司推出的ZigBee 2007协议栈ZStack-CC2530-2.5.1a进行讲解。

该协议栈可以在TI官网进行下载,下载后的文件为ZStack-CC2530-2.5.1a.exe,双击协议栈安装包进行安装,在安装过程中选择安装的位置,如图:

安装完成后,找到安装目录下工作空间文件,如图:

打开工程后,可以看到SampleApp工程的文件布局,工程界面中,左侧有很多文件夹,如App、 HAL、 MAC等,这些文件夹对应了ZigBee协议中不同的层,可以看到,在每个层中都有着大量的文件,不过在学习过程中也不用担心,简单来说,可以把Z-stack协议栈理解为一个小型的操作系统,而这个系统采用任务轮询机制进行工作。如图:

Z-Stack协议栈和网络通信一样采用分层架构,从下往上依次为物理层,介质访问层,网络层和应用层,应用层包含应用程序支持子层,应用程序框架层和ZDO设备对象。在Z-Stack协议栈中,上层可以调用下层的函数来实现某些功能,但是下层对上层的功能是不知道的。

其中,APSDE-SAP为应用支持子层数据实体-服务接入点 ,MLDE-SAP为媒体接入控制子层数据实体-服务接入点,APSME-SAP为 应用支持子层管理实体-服务接入点,MLME-SAP 为媒体接入控制子层管理实体-服务接入点,NLDE-SAP为网络层数据实体-服务接入点,PD-SAP 为物理层数据实体-服务接入点,NLME-SAP为 网络层管理实体-服务接入点,PLME-SAP为物理层管理实体-服务接入点。服务接入点就是应用函数API接口,这些接口用于调用下层的功能函数。

Z-Stack协议物理层和媒体访问控制层采用了IEEE 802.15.4协议规范。物理层无线频段为全球通用的2.4GHz、欧洲适用的868MHz、美国适用的915MHz,使用直接序列扩频技术,提供27个信道,20Kb/s、40Kb/s、250Kb/s三种数据速率用于数据收发,其中,常用的2.4GHz频段提供16个信道。物理层功能包括了激活和休眠射频收发器、信道能量检测、信道接收数据包的链路质量指示、空闲信道评估、收发数据等。

Z-Stack的MAC层负责设备间无线数据链路的建立、维护和结束,确认模式的数据传送和接收,采用载波侦听多址冲突避免接入方式,数据包的最大长度为127字节,每个数据包均由头字节和16位CRC校验值组成。

网络层为Z-Stack协议栈的核心部分,实现节点接入或离开网络、路由查找及传送数据等功能,支持星形、树形、网络三种拓扑结构,网络拓扑结构根据具体的ZigBee应用来选择。节点按功能分为全功能设备(FFD)、简化功能设备(RFD)、协调器(ZcRD)和路由器,协调器与路由器通常也是全功能设备。

Z-Stack的应用层包括了应用支持子层(APS)、ZigBee设备对象(ZDO)和制造商制订的应用对象。应用支持子层负责维护绑定表,根据服务和需求在两个绑定实体间传递信息。ZDO负责定义设备节点在网络中的角色,并负责网络设备的发现,决定提供何种应用服务,还负责初始化或响应绑定请求及建立网络设备间安全关系。

ZigBee网络采用多点接入,有使能信标网络或不使能信标网络两种类型。使能信标的网络中,协调器在预定义的时隙周期性发送信标帧用于节点关联、加入网络、同步传送数据。在不使能信标的网络中,协调器也周期性发送信号,但这只用于终端设备并检测协调器的存在,设备要随时准备好进行点对点通信,通过发送数据请求和应答进行通信。

在安全方面,Z-Stack采用IEEE802.15.4媒体访问控制子层的安全模型,其规范了四个方面的安全服务,即访问控制、数据加密、帧完整性检查及采用顺序更新值防止帧重放。

ZigBee 协议栈已经实现了 ZigBee 协议,用户可以使用协议栈提供的 API 进行应用程序的开发,在开发过程中完全不必关心 ZigBee 协议的具体实现细节,要关心的问题是:应用层的数据是使用哪些函数通过什么方式把数据发送出去或者把数据接收过来的。所以最重要的是学会使用 ZigBee协议栈。

用户实现一个简单的无线数据通信时一般只需要关注组网、发送、接收等三个问题,而这三个问题,协议栈都已经实现了,只需要调用相应的API函数即可。

ZIGBEE通讯-7.ZigBee协议栈简介相关推荐

  1. ZIGBEE通讯-10.ZigBee协议栈的无线点灯

    在ZIGBEE协议栈中已经自带了按键与LED的驱动与使用函数,所以只需要将按键与LED修改为使用的开发板所连接IO就可以使用了.接下来将主要分析在协议栈中按键的初始化.按键的检测以及按键事件的传递与处 ...

  2. Zigbee通讯之开发篇(基于TI 的Z-Stack)

    1.Zigbee协议和Z-Stack   Zigbee协议和Z-Stack是什么关系?这可能是初学Zigbee同学想知道的问题.给大家举个例子吧,我们生活中使用的插排是要符合一定的标准的,现在国家标准 ...

  3. Zigbee通讯漫谈(初次见面)

    郑重声明:以下文章内容适合初学Zigbee的童鞋们,大神请略过-- 1 缘由:   工作中听说过Zigbee技术,只是知道是一种无线通讯技术,具体技术细节及使用都不是很清楚.不料,一个项目中需要使用Z ...

  4. 【ember zigbee】序章:协议栈相关文档学习笔记

    原文地址:https://blog.csdn.net/tainjau/article/details/90648114 文章目录 写在前面 一.材料出处 二.文档解析 2.1.EZSP Protoco ...

  5. ZigBee无线传感器的网络协议栈

    小结: Z-Stack协议栈 = OSAL操作系统 + CC2530硬件模块 + AF无线网络应用 协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发;协议栈是协议的具体实现 ...

  6. zigbee zcl规范及其协议栈实现3 读取服务器端属性值

    zigbee zcl规范及其协议栈实现2   中有介绍 对通用命令的处理,按照那个思路和信息流程添加读取服务器端属性值的功能 客户端samplesw想要知道与自己的12号端点SAMPLESW_ENDP ...

  7. zigbee通讯技术复习笔记

    这门课对于我一个学嵌入式的来说,还是比较重要的,所以我还是以老师给出的大纲为主体,好好复习一下! 题型:选择题24x1.5 判断10x1 填空15x1 简答4x5 程序1x5 另外一个设计题1x14 ...

  8. zigbee无线传感网技术与应用开发v2.0_物联网通讯协议——Zigbee

    一.什么是Zigbee ZigBee是一种新兴的短距离.低速率无线网络技术.具有成本低.体积小.能量消耗小和传输速率低等优势. ZigBee是介于无线标识技术和蓝牙之间的一种技术,主要用于近距离无线连 ...

  9. (转载)ZigBee zcl规范及其协议栈实现1

    zigbee zcl规范及其协议栈实现1 http://www.cnblogs.com/-song/archive/2013/03/16/3331818.html refer to ZigBee_Cl ...

最新文章

  1. java 边界_Java数组边界问题
  2. Java黑皮书课后题第4章:4.19(商业:检测ISBN-10)改写编程练习题3.9,将ISBN号作为一个字符串输入
  3. Python基础之:struct和格式化字符
  4. UDP打洞NAT大致分为下面四类 P2P
  5. 从操作系统内核看设计模式--linux内核的facade模式
  6. 动词ing基本用法_哪些动词后面只能接动名词背诵口诀
  7. 跨专业考计算机专业,计算机专业可以跨考哪些专业
  8. Vetur:Root file specified for compilation
  9. .Net Core3.1 Centos离线部署
  10. (二十四) 单链表的逆置(java)
  11. 提取最后一个星号后的数字
  12. 读《逍遥游》感叹中国教育
  13. apktool,dex2jar,jd-gui简单使用
  14. bose蓝牙音箱使用说明_想买个家用蓝牙音箱,beats JBL BOSE 这三个牌子哪个好?...
  15. 喇叭原理及使用时需要避免的事项
  16. 在线作图|小基因组——叶绿体基因组圈图
  17. c语言成绩管理系统完整vc6,学生成绩管理系统源代码
  18. Golang 编写测试用例(单元测试、压力测试等)最新教程,细到极致
  19. [Android手机]教程:修改安卓手机…
  20. HTML期末大作业 ~ 凤阳旅游网页设计作业成品(HTML+CSS+JavaScript)

热门文章

  1. mysql 删除权限记录_mysql-数据(记录)相关操作(增删改查)及权限管理
  2. 【CSDN竞赛第25期】赢热门图书《千脑智能》和定制周边
  3. 错误<pandas.core. resample. DatetimeIndexResampler object at 0x0000016F4B943288>
  4. stata回归表格输出
  5. 沙盘推演的4个阶段是攻防比赛的最后一个环节
  6. 不安装Oracle使用plsqldev工具
  7. proteus四人抢答器_51单片机四路抢答器PROTEUS仿真报告(含C语言程序).doc
  8. Kad算法模拟测试程序
  9. Proteus VSM STM32仿真原理图绘制与设置
  10. python 小说下载工具_下载输入python之小说下载器version2.0