ZigBee基本概念术语说明

2024-06-01 04:58

本文主要是介绍ZigBee基本概念术语说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      在学习ZigBee之初,应该对ZigBee相关的一些术语有较为全面的了解,这有助于在后续在更深层次的学习中以及编码开发中加深对ZigBee的理解。以下是当初刚开始接触ZigBee时从各类资料、网络博客等整理下来的对ZigBee相关概念的说明,在经历较长的ZigBee开发工作后再看这些,觉得概括得不错,对于初学者来说很有帮助。


ZigBee三种节点类型的特点:

       1.1  协调器的功能特点
>选择一个频道和PAN ID,组建网络
>允许路由和终端节点加入这个网络
>对网络中的数据进行路由
>必须常电供电,不能进入睡眠模式
>可以为睡眠的终端节点保留数据,至其唤醒后获取。

1.2  路由器的功能特点
>在进行数据收发之前,必须首先加入一个zigbee网络
>本身加入网络后,允许路由和终端节点加入
>加入网络后,可以对网络中的数据进行路由
>必须常电供电,不能进入睡眠模式
>可以为睡眠的终端节点保留数据,至其唤醒后获取。

       1.3  终端节点的功能特点
>在进行数据收发之前,必须首先加入一个zigbee网络
>不能允许其他设备加入
>必须通过其父节点收发数据,不能对网络中的数据进行路由
>可由电池供电,进入睡眠模式

协调器在选择频道和PAN ID组建网络后,其功能将相当于一个路由器。协调器或者路由器均允许其他设备加入网络,并为其路由数据。
终端节点通过协调器或者某个路由器加入网络后,便成为其“子节点;对应的路由器或者协调器即成为“父节点”。由于终端节点可以进入睡眠模式,其父节点便有义务为其保留其他节点发来的数据,直至其醒来,并将此数据取走。

PAN ID:
PAN的全称为Personal Area Networks,即个域网。每个个域网都有一个独立的ID号,即称为PAN ID。整个个域网中的所有设备共享同一个PAN ID。Zigbee设备的PAN ID可以通过程序预先指定,也可以在设备运行期间,自动加入到一个附近的PAN中。

地址分配:
在任何一个PAN中,短地址0x0000都是指协调器。而其他设备的短地址是随机生成的。当一个设备加入网络之后,它从其父节点获取一个随机地址,然后向整个网络广播一个包含其短地址和IEEE地址的“设备声明”(Device Announce),如果另外一个设备收到此广播后,发现与自己地址相同,它将发出一个“地址冲突”(Address Conflict)的广播信息。有地址冲突的设备将全部重新更换地址,然后重复上述过程,直至整个网络中无地址冲突。


数据发送模式:
1、单播方式
单播方式下,数据由源设备发出,直接或者经过几级中转后,发送至目的地址。加入zigbee网络的所有设备之间都可以进行单播传输,可用16位短地址或者64位长地址进行寻址。具体路由关系由协调器/路由器进行维护、查询。路由表的相关内容将在后续FBee API模式的章节中进行介绍。

2、广播方式
广播方式是由一个设备发送信息至整个zigbee网络的所有设备,其目标短地址使用0xFFFF。另外,0xFFFD与0xFFFC也可作为广播地址。其区别如下:

0xFFFF: 广播数据发送至所有设备,包括睡眠节点
0xFFFD: 广播数据发送至正在睡眠的所有设备
0xFFFC: 广播数据发送至所有协调器和路由器

提到“广播”,可能不少人会认为zigbee的广播就像村里的大喇叭,一个人讲一遍,所有的人竖着耳朵听一次,就完成任务了。其实并不是这样的,Zigbee的广播更像是“传悄悄话”,一传十、十传百,一点点“蔓延”出去的。


簇ID号(clusterId
    一个Zigbee节点有很多属性,一个簇实际上是一些相关命令和属性的集合,在整个网络中,每个簇都有唯一的簇ID,也就是用来标识不同的控制操作的命令号。











这篇关于ZigBee基本概念术语说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1020050

相关文章

Linux内核定时器使用及说明

《Linux内核定时器使用及说明》文章详细介绍了Linux内核定时器的特性、核心数据结构、时间相关转换函数以及操作API,通过示例展示了如何编写和使用定时器,包括按键消抖的应用... 目录1.linux内核定时器特征2.Linux内核定时器核心数据结构3.Linux内核时间相关转换函数4.Linux内核定时

Java之ServerSocket使用及说明

《Java之ServerSocket使用及说明》本文介绍了Java中ServerSocket类的使用方法,包括创建ServerSocket对象、绑定端口、监听连接请求、接受连接、关闭连接等常用方法,还... 目录前言常用方法使用案例1.实现TCP2.实现UDP总结前言Java中的ServerSocket

Java Exception与RuntimeException使用及说明

《JavaException与RuntimeException使用及说明》:本文主要介绍JavaException与RuntimeException使用及说明,具有很好的参考价值,希望对大家有所... 目录简介ExceptionRuntimeException自定义异常选择继承Exception(受检异常)

MySQL中存储过程(procedure)的使用及说明

《MySQL中存储过程(procedure)的使用及说明》存储过程是预先定义的SQL语句集合,可在数据库中重复调用,它们提供事务性、高效性和安全性,MySQL和Java中均可创建和调用存储过程,示例展... 目录概念示例1示例2总结概念存储过程:在数据库中预先定义好一组SQL语句,可以被程序反复调用。

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

MySQL之复合查询使用及说明

《MySQL之复合查询使用及说明》文章讲解了SQL复合查询中emp、dept、salgrade三张表的使用,涵盖多表连接、自连接、子查询(单行/多行/多列)及合并查询(UNION/UNIONALL)等... 目录复合查询基本查询回顾多表查询笛卡尔积自连接子查询单行子查询多行子查询多列子查询在from子句中使

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片