短距离无线通信-Zigbee

阅读引言: 最近在复习之前做过的项目, 所以向将zigbee这个协议分享出来, 一方面可以给需要的人看到, 一方面也方便自己整理zigbee的知识。

目录

一、什么是 ZigBee?

二、Zigbee 通信频段和信道

三、Zigbee协议和Zigbee协议栈

四、ZigBee 联盟与 IEEE 802.15.4 标准的关系

五、Zigbee协议体系结构

六、Zigbee设备在zigbee网络中的角色

七、ZigBee 网络拓补

八、Zigbee寻址方式

九、WIFI、BLE、Zigbee的区别联系

十、Zigbee特点总结


一、什么是 ZigBee?

        Zigbee是一个短距离的无线通信协议,类似于wifi蓝牙, 在文章的末尾会给出wifi、蓝牙、zigbee协议三者的区别和联系。 ZigBee 标准是基于IEEE802.15.4标准的个域网、低数据速率、短距离无线通信定义的一系列通信协议。基于 ZigBee 的无线设备工作在2.4GHz(全球流行)、915MHz(美国流行)和868MHz(欧洲流行)3个频段上,分别具有最高250kbit/s、40kbit/s和20kbit/s的传输速率。

二、Zigbee 通信频段和信道

        频段就是设备在工作时可以使用的一定范围的频率段,信道是在这个频段内可供选择、用于传输信息的通道。ZigBee 物理层工作在 868MHz、915MHz 和 2.4GHz 这三个频段上,这三个频段共计分为 27 个信道,且分别拥有 1 个、10 个、16 个信道。

三、Zigbee协议和Zigbee协议栈

        简单来说, 协议栈就是协议的具体实现, 就是有zigbee联盟和ieee组织将zigbee各个层次的功能用代码写好了, 我们可以直接使用, 我们只需要在应用层调用地城封装好的API接口即可完成数据无线传输的功能。我们采用的 Z-Stack 协议栈是 ZigBee 规范的一种具体实现,应用开发人员可在应用层完成代码编写,实现应用项目的相关功能

        虽然用起来比较简单, 但是作为嵌入式软件开发者, 我们不需要深入了解底层的射频芯片的工作原理, 但是对嵌入式开发中常见的协议理论基础还是需要的, 而今天的内容就是为这个准备的。

四、ZigBee 联盟与 IEEE 802.15.4 标准的关系

ZigBee 联盟?

IEEE 802.15.4是?

IEEE 802.15.4是一种针对无线个域网(WPAN)的通信标准,主要用于设备之间的低成本、低速率和低功耗的通信。IEEE 802.15.4的主要特点包括:

1. **低速率**:该标准的传输速率为250 kbit/s,最初定义了更低的速率,如20 kbit/s和40 kbit/s,以满足不同应用场景的需求。在当前版本中,还增加了100 kbit/s的速率选项。
2. **短距离**:设计目标是支持大约10米的通信范围,适用于个人空间内的设备互联互通。
3. **低功耗**:IEEE 802.15.4旨在降低设备的功耗,使得设备能够在电池供电的情况下长时间运行,特别适合于嵌入式设备和传感器网络。
4. **多种物理层**:标准定义了多个物理层选项,以适应不同的应用需求和环境条件,通过权衡传输速率和功耗来支持更多的基础嵌入式设备。

值得一提的是,IEEE 802.15.4常用于智能家居、穿戴设备、工业自动化和物联网等领域,它为这些领域提供了一个稳定、可靠且节能的通信基础。与Wi-Fi等其他无线通信技术相比,IEEE 802.15.4更注重于低成本和低功耗,而不是高带宽或长距离通信。因此,它在需要大量部署且电池寿命要求较长的场景中尤为适用。

        Zigbee 的诞生和生长与两个组织密不可分,这两个组织分别是 IEEE 802.15 工作组和 zigbee 联盟。 如下图所示,网络的最下面两层是由 IEEE 802.15.4 标准所定义的, 该标准是由 IEEE802 标准委员会所开发并于 2003 年最初发布的,IEEE 802.15.4 标准定义了无线网络 PHY 层和 MAC 层的详细信息,但它没有为更高的层规定任何要求。 ZigBee 标准仅仅定义了协议的网络层、应用层和安全层,并采用 IEEE 802.15.4 的 PHY 层和 MAC 层作为其部分协议。因此,任何遵循 ZigBee 标准的设备也同样遵循 IEEE 802.15.4 标准。

五、Zigbee协议体系结构

可以结合TCP/IP协议的体系结构来看

(1)APP:应用层,用户创建应用工程的地方。项目的主要内容由应用框架层(AF)、Zigbee设备对象层(ZDO)、应用支持子层(APS)组成。

- 应用框架层(AF):提供了一个如何在Zigbee协议栈上及案例一个规范的描述。它规定了规范的一系列的标准数据类型,协助服务发现的描述符,传输数据的帧格式等等。

- Zigbee设备对象层(ZDO):定义了一个设备在网络中的角色(协调器、路由器或者终端节点),发起或者应答绑定和发现请求,并在网络设备间建立一个安全关系。它同时也提供定义了Zigbee设备规范里的一套丰富的管理指令。位于应用框架和应用支持子层之间。它描述了一个基本的功能函数类,在应用对象、配置文件(Profile)和应用支持子层之间提供了一个接口,满足了ZigBee协议栈所有操作的一般要求。同时,ZDO还具备初始化应用支持子层、网络层、安全服务文档。

- 应用支持子层(APS):负责提供了一个数据服务给应用和Zigbee设备规范。它也提供一个管理服务以维护绑定链接和它字节绑定表的存储。

注意:应用层是ZigBee无线网络中的最高协议层和承载应用的实体。单个设备最多可拥有240个应用实体(应用任务)。

ZigBee协议标准在开发应用时会提供应用协议,应用协议是一组统一的消息格式和处理方法。对某个特定应用而言,使用应用协议可使产品开发者能够在不同厂商生产的产品上使用该应用。比如说,如果两个厂商使用相同的应用协议开发产品,那么一个厂商生产的产品就可以与另一个厂商生产的产品相互交互,这就好像它们都是同一个制造商生产的一样。

(2)NWK:网络层,半开源,核心代码不开源,比如路由算法不开源。

这一层包含有网络层配置参数文件及网络层库的函数接口文件,APS层库的函数接口。主要负责路径选择和数据转发。

- 网络层对MAC和应用层提供接口并管理网络结构和路由。

- 路由通俗的说就是选择一条路径将数据传输到目的设备。在ZigBee网络中,终端设备并没有路由转发的能力,但Zigbee协调器和ZigBee路由器具此功能。

- ZigBee协调器的网络层建立并维持整个网络的正常工作,选择网络的拓扑结构(树状,星型或者对等),保持和终端设备间的通讯。此外,Zigbee协调器还能给设备分配标识码的功能。

- 网络层首先确保MAC层具备正常的工作的能力,同时为应用层提供服务接口。

- 网络层包含网络数据实体(NLDE)和网络管理实体(MLME)在内的两个服务实体。

- 其中NLDE提供的服务有:生成网络数据单元:也就是对上层的数据进行分段、封装,以及指定路由拓扑和安全支持。

- MLME提供的服务有:配置新设备,建立新网络,允许设备加入或离开网络,路由的发现邻居寻址。

(3)MAC:包含MAC层的参数配置文件以及MAC的LIB库的函数接口文件。

- 它负责为节点和它的直接邻居之间提供可靠的通信链路,提供冲突避免以提高通信效率。帮助避免碰撞和提高效率,MAC层还负责打包和分解数据。

- MAC层主负责产生信标(Beacon)和为信标(beacon-enable网络)同步设备。

- MAC层包含一个管理实体,称为MLME(MAC Layer Management Entity)

- MLME负责维护和MAC子层相关的管理目标数据库,也就是MAC子层的PAN信息数据库。

六、Zigbee设备在zigbee网络中的角色

ZigBee 标准将网络节点按照功能划分为三种类型:PAN协调器(Personal Area Network Zigbee Coordinator, ZC)、路由器(ZigBee Router, ZR)和终端设备(ZigBee EndDevice, ZE)。

协调器:一个 ZigBee 网络中仅有一个协调器,是 PAN 的总控制器。其职责包括:
  - 为网络中每个设备分配一个唯一地址;
  - 初始化、终止、转发网络中的消息;
  - 为网络选择一个唯一的 PAN 标识符,使得网络中的设备可以使用 16 位短地址进行通信。

路由器:主要负责允许设备加入网络、扩展网络覆盖的物理范围以及数据包路由的功能。

终端设备:主要负责无线网络数据的采集。

注意:

- 协调器启动并建立网络后,首先选择网络标识符,并将自己短地址设置为0x0000,然后开始向邻近的设备发送信标,接受其他设备的连接,形成树的第一级。协调器与这些设备之间形成父子关系。


- 与协调器建立了连接的设备都会被分配一个16位的网络地址称为短地址。如果设备以终端设备的身份接入网络,则协调器会为它分配一个唯一的16位网络地址;如果设备以路由器的身份与网络建立连接,则协调器会为它分配一个地址块,包含有若干16位短地址。


- 路由器根据接收到的协调器信标的信息,配置并发送它自己的信标,允许其他设备与自己建立连接,成为其子设备。这些子设备中可以有路由器,它们可以有自己的子设备,如此下去形成多级树簇型结构的网络。

七、ZigBee 网络拓补

ZigBee 网络支持星状、树(簇)状、网状三种网络拓补结构

星状网络:在星状网络中,所有的终端设备都只与 PAN 协调器通信。且只允许 PAN 协调器与终端设备通信,终端设备和终端设备不能直接通信,终端设备间的消息通信需通过 PAN协调器进行转发。

簇(树)状网络:由一个 PAN 协调器和一个或多个星状网络结构组成。终端设备可以选择加入 PAN 协调器或者路由器。设备能与自己的父节点或子节点直接通信,但与其他设备的通信只能依靠树状节点组织路由进行。


网状网络:网状网络中任意两个路由器能够直接通信,且具有路由功能的节点不用沿着树来通信而可以直接把消息发送给其它的路由节点。

八、Zigbee寻址方式

Zigbee 网络有两种类型的地址:扩展地址、短地址。


扩展地址:又称 IEEE 地址、MAC 地址。扩展地址位数为 64 位,由设备商固化在设备里。任何 zigbee 网络设备都具有全球唯一的扩展地址,在 PAN 网络中,此地址可以直接用于通信。


短地址:又称为网络地址,它用于在本地网络中标识设备节点。 短地址位数为 16 位。在协调器建立网络后,使用 0x0000 作为 自己的短地址,在设备需要关联得时候,由父设备分配 16 位短地址。设备可以使用 16 位短地址在网络中进行通信。不同的zigbee 网络可能具有相同的短地址。

OK, 关于zigbee的理论知识分享到此结束,希望对需要的人有所帮助。哦还有wifi, 蓝牙, zigbee三者的对比每写。

九、WIFI、BLE、Zigbee的区别联系

WiFi、BLE(蓝牙低功耗技术)和Zigbee都是无线通信技术,但它们在应用场景和技术特性上存在一些差异。

- **WiFi**:传输速率高,通常用于大规模数据传输和宽带网络接入。它的覆盖范围较大,非常适合家庭和办公室环境内的网络连接。WiFi适用于高速上网、视频流媒体、大文件传输等带宽密集型活动。


- **BLE**:是一种专为低功耗应用设计的无线通信协议,主要针对需要长时间待机和使用电池供电的设备。BLE的通信距离较短,适合近距离通信,如智能手表、健康监测设备和一些物联网设备之间的数据同步。


- **Zigbee**:是低速、低功耗、低成本的短距离无线通信技术,特别适合于大规模的传感器网络和自组织网状网络。Zigbee的传输速率相对较低,但可以提供稳定可靠的通信,因此常被用于智能家居、工业控制等领域。

十、Zigbee特点总结

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

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

相关文章

泽尼克波前拟合 matlab

tic; %tic()函数可以用来启动一个计时器m zernikePhase unwrappedPhaseMask((img_rows/2-0.3*img_rows1):(img_rows/20.3*img_rows),(img_cols/2-0.3*img_cols1):(img_cols/20.3*img_cols)); [zernike_rows, zernike_cols] size…

prompt提示词:AI英语词典优化版Pro,让AI教你学英语,通过AI实现一个网易有道英语词典

目录 一、前言二、效果对比三、优化《AI英语词典》提示词四、其他获奖作品链接 一、前言 不可思议!我的AI有道英语字典助手竟然与百度千帆AI应用创意挑战赛K12教育主题赛榜首作品差之毫厘 ,真的是高手都是惺惺相惜的,哈哈,自恋一…

后端工程师——C++工程师如何准备面试?

相比 Java 语言方向,C++ 入门简单,精通难,找工作竞争压力更小,但 C++ 依然是近年来招聘的热门岗位之一。本文将从以下三个方面进行详细讲解,帮助你对 C++ 相关岗位的就业前景、岗位要求、学习路线等有更充分的了解。 C++工程师面试准备 上两篇文章对 C++ 工程师的招聘需求…

Python:解析pyserial串口通讯

简介:串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单&#…

Spring Boot 中Mybatis使用Like的使用方式和注意点

说明 模糊查询在项目中还是经常使用的,本文就简单整理Mybatis中使用Like进行模糊查询的几种写法以及一些常见的问题。 使用Springboot简单配置一下Mybatis,然后进行说明。Springboot集成Mybatis这里就不做介绍了,这里我们主要介绍一下在mybat…

简单把玩下SpringAI

Hello大家好,今天写一些不烧脑的文章,我们来体验一下Spring的新框架Spring AI,只是简单玩玩不深入😏 Spring AI 简介 Spring AI是为了简化人工智能相关应用程序的开发Spring AI的诞生,灵感来自于LangChain等项目 Oll…

【Java EE】总结12种锁策略以及synchronized的实现原理

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

在线课程|基于SprinBoot+vue的在线课程管理系统(源码+数据库+文档)

在线课程目录 基于SprinBootvue的在线课程管理系统 一、前言 二、系统设计 三、系统功能设计 1 管理员模块的实现 2在线课程 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕…

【Android12】Bugreport实现原理

Bugreport实现原理 Bugreport Bugreport介绍 Android Bugreport是一个用于记录和收集 Android设备上系统信息、日志和调试信息的工具。 系统发生某些问题时,可以通过bugreport把系统当前时刻点(运行BugRepot的时刻)的系统相关的状态和信息…

守护人类健康:人工智能赋能医疗领域创新应用

常言道,“如果说人生是一场漫长的马拉松,那么健康将是决定跑道长度的关键因素。”健康是幸福生活和社会发展的基石。随着智能化时代的到来,人工智能技术在医疗健康领域的应用也日益广泛,成为了维护和促进人类健康的新工具。无论是…

精通MongoDB聚合操作API:深入探索高级技巧与实践

MongoDB 聚合操作API提供了强大的数据处理能力,能够对数据进行筛选、变换、分组、统计等复杂操作。本文介绍了MongoDB的基本用法和高级用法,高级用法涵盖了setWindowFields、merge、facet、expr、accumulator窗口函数、结果合并、多面聚合、查询表达式在…

IntelliJ IDEA - Lombok supports: OpenJDK javac, ECJ

问题描述 java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled.Your processor is: com.sun.proxy.$Proxy26Lombok supports: OpenJDK javac, ECJ 解决方案 在 IDEA 设置中 File -> Settings 中找到配置如下&#xff1…