物联网--Zigbee协议(二):Zigbee协议架构以及数据帧结构

news/2024/5/19 20:07:33/文章来源:https://blog.csdn.net/aixuexidexiaowan/article/details/127017017

上一篇整理了关于Zigbee协议的一些基础知识,接下来主要讨论Zigbee协议的架构,希望通过这篇文章能够帮助小伙伴们更好地理解Zigbee协议,废话不多说,进入正题吧。

文章目录

  • 一、Zigbee协议架构
  • 二、Zigbee协议的数据帧结构
  • 总结


一、Zigbee协议架构

Zigbee协议的架构可以分为四层:

  • 物理层(PHY)
  • 媒体访问控制层(MAC)
  • 网络层(NWK)
  • 应用层(APS)
    在这里插入图片描述

一部分是IEEE802.15.4定义的物理层和MAC层技术规范;另一部分是Zigbee联盟在IEEE802.15.4基础上对Zigbee协议的网络层协议和应用层定义的技术规范;

PHY层
1)ZigBee 设备的激活;
2)当前信道的能量检测;
3)接收链路服务质量信息;
4)ZigBee 信道接入方式;
5)信道频率选择;
6)数据传输和接收。
物理层定义了物理无线信道和MAC 子层之间的接口,提供物理层数据服务和物理层管理服务。物理层数据服务从无线物理信道上收发数据。物理管理服务维护一个由物理层相关数据组成的数据库。

MAC 层
1)网络协调器产生信标;
2)与信标同步;
3)支持PAN(个域网)链路的建立和断开;
4)为设备的安全性提供支持;
5)信道接入方式采用免冲突载波检测多址接入(CSMA-CA)机制;
6)处理和维护保护时隙(GTS)机制;
7)在两个对等的MAC 实体之间提供一个可靠的通 信链路。

NWK层
1)产生网络层的数据包:当网络层接受到来自应用子层的数据包,网络层对数据包进行解析,然后加上适当的网络层包头向MAC传输。
2)网络拓扑的路由功能:网络层提供路由数据包的功能,如果包的目的节点是本节点的话,将该数据包向应用子层发送。如果不是,则将该数据包转发给路由表中下一结点。
3)配置新的器件参数:网络层能够配置合适的协议,比如建立新的协调器并发起建立网络或者加入一个已有的网络。

APS层
Zigbee应用层包括应用支持子层APS、应用框架AF、Zigbee设备对象ZDO。它们共同为各应用开发者提供统一的接口。
-应用支持子层APS
负责提供一个数据服务给应用和Zigbee设备规范。也提供一个管理服务以维护绑定链接和它字节绑定表的存储。应用框架AF提供了一个如何在Zigbee协议栈上及案例一个规范的描 述。它规定了规范的一系列的标准数据类型,协助服务发现的描述符,传输数据的帧格式等等。
-Zigbee设备对象ZDO
ZigBee设备对象(ZDO)定义了一个设备在网络中的角色 (协调器、路由器或者终端节点),发起或者应答绑定和发现请求,并在网络设备间建立一个安全关系。它同时也提供定义了Zigbee设备规范里的一套丰富的管理指令。

二、Zigbee协议的数据帧结构

在上面提到过Zigbee协议是在IEEE 802.15.4的基础上建立起来的,所以在了解Zigbee协议的数据帧格式之前,先让我们看看IEEE 802.15.4协议定义的数据帧结构,下图是其数据帧结构图。
在这里插入图片描述
由IEEE 802.15.4数据帧结构图可以看到各个帧结构的组成,IEEE802.15.4定义的数据帧有两层,MAC层数据帧嵌套在PHY层的数据域中:
SHR(同步帧头):

  • Preamble Sequence(同步序列码)
  • Start of Frame DElimiter(帧定界符)

PHR(物理层数据帧头):

  • Frame Length(帧长)

PSDU(物理层数据域):

  • MPDU(MAC层数据帧)
       MHR:
         Frame Control(帧控制)
         Data Sequence Number(数据包序列号)
         Address Information(地址域)
       MSDU(有效载荷):
        Data Payload(MAC数据域)
       MFR(帧校验):
        FCS(帧尾)

以上就是IEEE802.15.4协议定义的数据帧格式,Zigbee协议的数据帧格式其实就是在MAC层的数据域上增加了NWK、APS两层的数据帧,其数据帧格式结构图如下:
在这里插入图片描述
在这里插入图片描述

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_88891.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用微信提供的云开发实现后端 微信小程序云开发的内容管理CMS

以前开发一款小程序或者应用啥的,首先就是申请域名租服务器,这是必不可少的步骤。 现在小程序云开发出来后,又再出现内容管理的这个功能,对于开发一款简单的小程序来说,真的是太简单的了。 现成的后台直接配置&#…

TS_React:类型化EventHandler

❝ 焦虑可分为「有用焦虑」和「无用焦虑」两种。 有用焦虑指向现在无用焦虑指向未来,它的本质,是对现在失控的恐惧❞大家好,我是「柒八九」。 今天还是--「TypeScript实战系列」的文章。前面的文章中,我们从不同的角度介绍了&…

如何优雅的在 Mac 上安装fiddler [无需mono - 完美解决]

订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我。推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V!说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量4300,购买任意…

CH8-HarmonyOS流转架构解析

文章目录前言目标核心概念流转架构特性Ability的调度流转应用场景流转架构核心模块跨端迁移关键流程多端协同关键流程分布式任务调度连接远程PA启动远程FA/PA迁移FA接口IAbilityContinuation的方法跨端迁移功能开发多端协同功能开发启动遥控器连接远程智慧屏遥控器与智慧屏交互…

【算法刷题】第二篇——链表(一)

个人简介: > 📦个人主页:赵四司机 > 🏆学习方向:JAVA后端开发 > 📣种一棵树最好的时间是十年前,其次是现在! > 🔔博主推荐网站:牛客网 刷题|面…

java注册界面发送邮箱验证码(无线程版)

​ 邮箱验证注册 本篇文章使用第三方jar包实现邮箱发送验证码来注册用户,该文章未采用线程如果多人访问注册注册页面发送邮件可能会导致服务器崩溃,建议采用线程发送邮件!!! 一、前期准备工作 1.发送验证码所需要用…

MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本

MinGW-w64安装教程——著名C/C编译器GCC的Windows版本 MinGW-w64安装教程——著名C/C编译器GCC的Windows版本 本文主要讲述如何安装 C语言 编译器——MinGW-w64,特点是文章附有完整详细的实际安装过程截图,文字反而起说明提示作用。 编写本文的原因始于…

计算机三级数据库技术

第一章 数据库应用系统开发方法 数据库应用系统生命周期 软件工程与软件开发方法 瀑布模型 快速原型模型 螺旋模型 DBAS生命周期 DBAS生命周期:项目规划、需求分析、系统设计、实现与部署、运行与维护 规划与分析 可行性分析:经济可行性、技术可行性、操…

NoSQL之redis配置

目录 关系数据库与非关系数据库 关系数据库与非关系数据库概念 关系型数据库和非关系型数据库区别 关系型数据库与非关系型数据库特点 字段保存方式 Redis Redis 优点 Redis为什么这么快? redis安装部署 redis工具 redis 命令工具 redis-cli 命令行工具 …

Mybatis中如何实现一对一,一对多的关联查询?

MyBatis实现一对一、一对多关联查询一般有两种方式: 方式一:sqlMapper配置文件 一对一:在resultMap标签中使用 association 标签 一对多:在resultMap 标签中使用collection 标签 方式二:注解 一对一:在…

MySQL使用简单教程

本文通过演示如何使用MySQL客户机程序创建和使用一个简单的数据库,允许连接到MySQL服务器、运行查询和查看结果。 mysql也可以在批处理模式下使用:预先将查询放在文件中,然后告诉mysql执行文件的内容。 要查看mysql提供的选项列表&#xff0c…

解决MySQL插入不了中文数据问题

🎈目录🎈 原因⁉ 具体解决方法 1️⃣创建数据库时设置字符集为utf8 2️⃣修改数据库配置文件(比较麻烦) 我们使用MySQL可能会遇到加入中文报错的情况,如下。 报错:非法的字符值 放入 ‘name’ 为什么…

MySQL 复制架构

MySQL 复制架构 第一节 概述 1.1 数据拓展 热备份:数据库在运行的过程中,对数据进行备份操作。相对的,还有冷备份,冷备份需要停机,然后对数据进行备份操作。多活:所谓的多活,就是让数据库机器…

习惯了微信聊天,利用WebSocket手动实现个聊天功能怎么样?

1.背景 基于项目需求,最近需要实现一个简单的聊天功能。日常生活中,大家对于聊天也习以为常,微信、QQ等软件也经常用到,其实我们也可以引入一些第三方的sdk包等去实现,也可以利用WebSocket通信协议去手动实现简单的聊…

【蓝桥杯】第十三届蓝桥杯省赛 AK 攻略 —— C++ B组全真题超详细剖析

🎄目录🌼写在前面🌻 A题 --- 九进制转十进制🌷 题目描述🌷 解题思路🌷 代码编写🌻 B题 --- 顺子日期🌷 题目描述🌷 解题思路🌷 代码编写🌻 C题 --…

92年程序员发帖晒薪资称自己很迷茫,网友:老弟你可以了

当下,是一个“向钱看,向厚赚”的社会。快节奏的生活下,家庭、工作各方面压力很容易使年轻人陷入迷茫和焦虑。 与其他行业相比,程序员的高薪让人羡慕。那么,对于那些真正达到这么多收入的人来说,他们是怎么…

Mysql安装包安装教程(亲测简单高效版)

Mysql安装包安装教程(亲测简单高效版)安装流程mysql安装SQLyog安装安装流程 mysql安装 1.下载mysql,官方地址:mysql官网 2.解压mysql安装包到任意目录下 3.新建my.ini文件 4.配置my.ini [mysqld] basedirD:\Program Files\J…

sql语法:详解DDL

Mysql版本:8.0.26 可视化客户端:sql yog 目录一、DDL是什么?二、和数据库相关的DDL2.1 创建数据库2.2 删除数据库2.3 查看所有的数据库,当前用户登录后,可以看到哪些数据库2.4 查看某个数据库的详细定义2.5 修改数据库…

Windows系统GIT安装与GitHub远程仓库

文章目录Windows系统GIT安装Git是什么windows环境安装环境变量验证安装GitHub与远程仓库GitHub是什么GitHub账号注册创建本地SSH KeyGitHub接入本地电脑公匙创建个人远程库传送门Windows系统GIT安装 Git是什么 Git(读音为/gɪt/)是一个开源的分布式版本…

接口测试之Postman使用全指南(原来使用 Postman测试API接口如此简单)

目录 一、Postman背景介绍 二、Postman的操作环境 三、Postman重要提示: 四、什么是接口测试 五、接口测试工具 六、接口测试流程 七、接口测试执行 八、全局变量和环境变量 九、postman接口关联 十、postman动态参数 十一、postman断言 十二、postman用…